using System.Diagnostics; using static Shogi.Domain.YetToBeAssimilatedIntoDDD.Pathing.Path; namespace Shogi.Domain.YetToBeAssimilatedIntoDDD.Pathing; [DebuggerDisplay("{Step} - {Distance}")] public record Path { public Vector2 Step { get; } public Vector2 NormalizedStep => Vector2.Normalize(Step); public Distance Distance { get; } /// /// /// /// The smallest distance that can occur during a move. /// public Path(Vector2 step, Distance distance = Distance.OneStep) { Step = step; this.Distance = distance; } public Path Invert() => new(Vector2.Negate(Step), Distance);