public void PlayerForfit(Player i_PlayerForfit, out Move.eMoveStatus i_CurrentMoveStatus) { int forfitPlayerPoints = i_PlayerForfit.PlayerPosition == ePlayerPosition.BottomPlayer ? m_BottomPlayerPoints : m_TopPlayerPoints; int otherPlayerPoints = i_PlayerForfit.PlayerPosition == ePlayerPosition.BottomPlayer ? m_TopPlayerPoints : m_BottomPlayerPoints; if (forfitPlayerPoints <= otherPlayerPoints) { i_CurrentMoveStatus = Move.eMoveStatus.Legal; m_PlayerHasForfit = true; m_PlayerForfit = i_PlayerForfit.PlayerPosition; } else { i_CurrentMoveStatus = Move.eMoveStatus.Illegal; } }
public void MovePiece(ref Move io_Move, Move i_PreviousMove, out Move.eMoveStatus o_MoveStatus) { o_MoveStatus = Move.eMoveStatus.Illegal; if (checkMoveLegality(ref io_Move, i_PreviousMove)) { o_MoveStatus = Move.eMoveStatus.Legal; changePiecePosition(io_Move); checkKing(io_Move.End); if (io_Move.Type != Move.eMoveType.Jump) { return; } removedJumpedOverPiece(io_Move); if (isJumpPossible(PossibleMovesForPiece(io_Move.End), out List <Move> jumpsList)) { o_MoveStatus = Move.eMoveStatus.AnotherJumpPossible; } } else { o_MoveStatus = Move.eMoveStatus.Illegal; } }