// ReSharper disable InvertIf private static bool PromotePawns(Board board, Piece piece, byte dstPosition, ChessPieceType promoteToPiece) { if (piece.PieceType == ChessPieceType.Pawn) { if (dstPosition < 8) { board.Squares[dstPosition].Piece.PieceType = promoteToPiece; board.Squares[dstPosition].Piece.PieceValue = Piece.CalculatePieceValue(promoteToPiece); board.Squares[dstPosition].Piece.PieceActionValue = Piece.CalculatePieceActionValue(promoteToPiece); return(true); } if (dstPosition > 55) { board.Squares[dstPosition].Piece.PieceType = promoteToPiece; board.Squares[dstPosition].Piece.PieceValue = Piece.CalculatePieceValue(promoteToPiece); board.Squares[dstPosition].Piece.PieceActionValue = Piece.CalculatePieceActionValue(promoteToPiece); return(true); } } return(false); }