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);
}