public void LoadOnlineGame(GameInfoWithMoves gameInfo, PlayerData localPlayerData) { localGame = false; onlineGameID = gameInfo.id; //Determine local color if (localPlayerData.id == gameInfo.gamedata.wplayer) { localPlayerColor = PieceColor.White; } else { localPlayerColor = PieceColor.Black; } //Get opponent info (TODO) //Insert moves CreateGame(); PieceColor[] colors = new PieceColor[] { PieceColor.White, PieceColor.Black }; for (int i = 0; i < gameInfo.moves.Count; ++i) { AddMove(gameInfo.moves[i], colors[i % 2]); } if (!CanPieceMove(localPlayerColor, false)) { webController.WaitForGameState(onlineGameID); } UpdatePlayerInfo(gameInfo); }
public void UpdateGameForOpponent(GameInfoWithMoves gameInfo) { ChessMove move = AlgebraicNotation.ToChessMove(gameInfo.moves[gameInfo.moves.Count - 1], moveManager, GetOpponentColor()); moveManager.DoMove(move, false, false); UpdatePlayerInfo(gameInfo); }
public void UpdatePlayerInfo(GameInfoWithMoves gameInfo) { bool whiteMove = GetGameState() == GameState.WhiteMove; whitePlayerPanel.Setup(gameInfo.gamedata.wplayername, gameInfo.gamedata.wtimeleft, gameInfo.gamedata.wplayerrank, whiteMove); blackPlayerPanel.Setup(gameInfo.gamedata.bplayername, gameInfo.gamedata.btimeleft, gameInfo.gamedata.bplayerrank, !whiteMove); }