using PathFinding; using System.Collections.Generic; using System.Linq; using System.Numerics; namespace Gameboard.ShogiUI.BoardState.Pieces { public class GoldenGeneral : Piece { public static readonly List MoveSet = new List(6) { new Path(Direction.Up), new Path(Direction.UpLeft), new Path(Direction.UpRight), new Path(Direction.Left), new Path(Direction.Right), new Path(Direction.Down) }; public GoldenGeneral(WhichPlayer owner) : base(WhichPiece.GoldenGeneral, owner) { } public override Piece DeepClone() { var clone = new GoldenGeneral(Owner); if (IsPromoted) clone.Promote(); return clone; } public override ICollection GetPaths() => Owner == WhichPlayer.Player1 ? MoveSet : MoveSet.Select(_ => new Path(Vector2.Negate(_.Direction), _.Distance)).ToList(); } }