コード例 #1
0
        public void MoveDelayed(ChessDelayedAction action)
        {
            if (Logic.Turn != action.Color)
            {
                return;
            }

            var player = Sides[(int)action.Color].GetPlayer();

            if (player == null)
            {
                QuitDelayed(action.Color);
                return;
            }

            var result = Logic.DoMove(action.Color, action.From, action.To);

            if (result < ChessMoveResult.NoMoveResult)
            {
                SendMoveResponse(player, result);
                return;
            }

            MoveResult = result;
            FinalizeWeenieMove(result);
        }
コード例 #2
0
        public void StalemateDelayed(ChessDelayedAction action)
        {
            var side   = Sides[(int)action.Color];
            var opSide = Sides[(int)Chess.InverseColor(action.Color)];

            side.Stalemate = action.Stalemate;

            if (action.Stalemate && opSide.Stalemate)
            {
                Finish(Chess.ChessWinnerStalemate);
            }
            else if (!opSide.IsAi())
            {
                SendOpponentStalemate(opSide.GetPlayer(), side.Color, action.Stalemate);
            }
        }
コード例 #3
0
 public void MovePassDelayed(ChessDelayedAction action)
 {
 }