public override List <IMove> GetMoves() { var moves = PossibleMoves.Concat(CastleMoves.Select(m => m.Key)).ToList(); return(moves); }