private void ClientMessenger_OnGameOver(BasePacket packet) { LeaderboardPacket leaderBoard = (LeaderboardPacket)packet; var scene = new LeaderboardScene(_client, _width, _height, leaderBoard); scene.Initalise(_contentManager, _graphicsDevice); SetNewScene(scene); }
public LeaderboardPacket MakeLeaderboardPacket(int playerCount, string[] playerNames, int[] playerScores, PlayerColour[] playerColours) { LeaderboardPacket packet = new LeaderboardPacket { PlayerCount = playerCount, PlayerNames = playerNames, PlayerScores = playerScores, PlayerColours = playerColours }; return(packet); }
public LeaderboardScene(Client client, int width, int height, LeaderboardPacket leaderboardPacket) { Client = client; _width = width; _height = height; _leaderboard = leaderboardPacket; _sceneState = LeaderboardSceneState.WaitingForSelection; _readyRematchCount = 0; _isReadyRematch = false; _playersLeftInInstance = leaderboardPacket.PlayerCount; }
private void CheckGameOver() { foreach (KeyValuePair <string, int> player in _playerScores) { if (player.Value >= Application.SCORE_TO_WIN) { Logger.Instance.Info(_playerNames[player.Key] + " has reached the score limit"); int playerCount = ComponentClients.Count; int[] playerScores = new int[playerCount]; string[] playerNames = new string[playerCount]; int index = 0; foreach (KeyValuePair <string, int> playerScore in _playerScores) { playerScores[index] = playerScore.Value; playerNames[index] = _playerNames[playerScore.Key]; index++; } PlayerColour[] playerColours = new PlayerColour[_playerColours.Count]; index = 0; foreach (KeyValuePair <string, Color> playerColour in _playerColours) { playerColours[index] = NetworkPacketFactory.Instance.MakePlayerColour(playerColour.Value.R, playerColour.Value.G, playerColour.Value.B); index++; } LeaderboardPacket packet = NetworkPacketFactory.Instance.MakeLeaderboardPacket(playerCount, playerNames, playerScores, playerColours); for (int iClient = 0; iClient < ComponentClients.Count; iClient++) { ComponentClients[iClient].SendPacketToClient(packet, MessageType.GI_ServerSend_GameOver); } OnGameCompleted(packet); return; } } }