using PathFinding; using System.Collections.Generic; namespace Gameboard.ShogiUI.BoardState.Pieces { public class Bishop : Piece { private static readonly List Moves = new(4) { new PathFinding.Move(Direction.UpLeft, Distance.MultiStep), new PathFinding.Move(Direction.UpRight, Distance.MultiStep), new PathFinding.Move(Direction.DownLeft, Distance.MultiStep), new PathFinding.Move(Direction.DownRight, Distance.MultiStep) }; private static readonly List PromotedMoves = new(8) { new PathFinding.Move(Direction.Up), new PathFinding.Move(Direction.Left), new PathFinding.Move(Direction.Right), new PathFinding.Move(Direction.Down), new PathFinding.Move(Direction.UpLeft, Distance.MultiStep), new PathFinding.Move(Direction.UpRight, Distance.MultiStep), new PathFinding.Move(Direction.DownLeft, Distance.MultiStep), new PathFinding.Move(Direction.DownRight, Distance.MultiStep) }; public Bishop(WhichPlayer owner) : base(WhichPiece.Bishop, owner) { moveSet = new MoveSet(this, Moves); promotedMoveSet = new MoveSet(this, PromotedMoves); } public override Piece DeepClone() { var clone = new Bishop(Owner); if (IsPromoted) clone.Promote(); return clone; } } }