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); }
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); } }
public void MovePassDelayed(ChessDelayedAction action) { }