/// <summary> /// Check if the game can be started /// Current condition checks if the count of connected players matches the expected amount /// </summary> private void StartGame() { matchGameEventWrapper.GameStarted_Invoke(matchThread.GetServer()); matchThread.pingDeterminer.CalculateMatchPing(); List <Shared_PlayerInfo> playerInfoes = matchThread.GetConnectedClientsInfo(); foreach (var client in matchThread.GetConnectedClients()) { Message_Response_GameAllConnected gameData = new Message_Response_GameAllConnected( client.Value.info, playerInfoes, matchThread.clock.GetTimeForClient(client.Value)); sender.Send(gameData, client.Value); foreach (var extension in serverExtensions) { var msgList = extension.GetMessagesForClientSetup(client.Value, matchThread.clock); foreach (var msg in msgList) { if (msg != null) { matchThread.GetServer().messageSender.SendToAll(msg, matchThread.GetServer().clientManager.GetClients()); } } } } matchThread.updater.Remove(this); }
public void JoinedGame(Message_Response_GameAllConnected data) { guiHandler.SetState_InGame(); InGameWrapper.instance.mapWrapper.Setup(data.AllPlayers.Count); InGameWrapper.instance.playersWrapper.SetupPlayersPositions(); InGameWrapper.instance.clockWrapper.SetClockTime(data.gameClockTime); }