Chess.Domain.GameManager.PerformMove C# (CSharp) Method

PerformMove() private method

private PerformMove ( Move move, ChessPiece defender, ChessPiece piece ) : void
move Chess.Data.Entities.Move
defender Chess.Data.Entities.ChessPiece
piece Chess.Data.Entities.ChessPiece
return void
        private void PerformMove(Move move, ChessPiece defender, ChessPiece piece)
        {
            if (FitsEnPassantCriteria(move, defender, piece))
            {
                PerformEnPassant(move);
            }

            if (FitsCastleCriteria(move, piece))
            {
                MoveRookForCastle(move);
            }

            if (defender != null)
            {
                if (piece.Team == Team.Dark)
                    Game.DarkScore += defender.ScoreValue;
                if (piece.Team == Team.Light)
                    Game.LightScore += defender.ScoreValue;
            }

            piece.Move(_board.Squares, move);

            IncrementMoveData(move);
        }