public void OnSnapshotReceived(JUMPCommand_Snapshot data) { WordsWar_Snapshot snap = new WordsWar_Snapshot(data.CommandData); GameStatus.text = snap.Stage.ToString(); MyScore.text = snap.MyScore.ToString(); OpponentScore.text = snap.OpponentScore.ToString(); UIStage = snap.Stage; if (UIStage == WordsWarGameStages.SendBoardID) { Message.text = "Receiving board .. " + snap.BoardID.ToString(); BoardSol = BoardManager.GetBoard(snap.BoardID); Board.text = BoardSol.SolvedBoard.ToString().ToUpper(); // "Playing Board: " + snap.BoardID.ToString(); WordsWarCommand_BoardReceived ack = new WordsWarCommand_BoardReceived(JUMPMultiplayer.PlayerID, snap.BoardID); Singleton <JUMPGameClient> .Instance.SendCommandToServer(ack); } else if (UIStage == WordsWarGameStages.CountingDown) { TimeLeft.text = snap.CountingDownRemaining.ToString("0."); } else if (UIStage == WordsWarGameStages.Playing) { TimeLeft.text = snap.PlayTimeRemaining.ToString("0."); } else if (UIStage == WordsWarGameStages.GameOver) { Message.text = (snap.WinnerPlayerID == JUMPMultiplayer.PlayerID) ? "You Won :)" : "You Lost :("; } }
public void ProcessCommand(JUMPCommand command) { // Players received the board id and sends AckBoard back if ((command.CommandEventCode == WordsWarCommand_BoardReceived.BoardReceived_EventCode) && (GameState.Stage == WordsWarGameStages.SendBoardID)) { WordsWarCommand_BoardReceived ackBoard = command as WordsWarCommand_BoardReceived; WordsWarPlayer player; if (GameState.Players.TryGetValue(ackBoard.PlayerID, out player)) { player.BoardReceived = true; } // how many players received the board id? int NumPlayersAcked = GameState.Players.Count(p => p.Value.IsConnected); if (NumPlayersAcked == JUMPOptions.NumPlayers) { // move on to the next stage, the countdown GameState.Stage = WordsWarGameStages.CountingDown; GameState.CountingDownRemaining = CountDownSeconds; } } else if ((command.CommandEventCode == WordsWarCommand_WordFound.WordFound_EventCode) && (GameState.Stage == WordsWarGameStages.Playing)) { WordsWarCommand_WordFound wordFound = command as WordsWarCommand_WordFound; WordsWarPlayer player; if (GameState.Players.TryGetValue(wordFound.PlayerID, out player)) { string found = wordFound.WordFound.ToLower(); if (!player.WordsFound.Contains(wordFound.WordFound)) { player.Score += found.Length; player.WordsFound.Add(found); } } } }