/// <summary> /// Updates the play game request /// </summary> void Update() { if (!m_initialised) { SelectNewLevel(selectedLevel); m_initialised = true; } UpdatePlayersList(); if (Diagnostics.IsActive()) { Diagnostics.Add("Max Players Chosen", Utilities.GetMaximumPlayers()); } if (!m_playGameRequest) { if (!m_network.IsConnected()) { // Wait until connected before entering a room m_joinGameRequest = false; lobbyStatus.text = "Connecting" + GetDots(); } else { lobbyStatus.text = "Connected"; if (isReady.isOn) { if (!m_joinGameRequest) { m_joinGameRequest = true; m_network.JoinGameLevel(m_selectedLevel); SetMaxPlayerSlider(false); } else if (m_network.IsRoomReady()) { StartGame(); m_playGameRequest = true; } if (Utilities.IsOpenLeveL(m_selectedLevel) || !m_network.IsInRoom() || m_network.GetPlayerID() < 0) { lobbyStatus.text = "Joining Level" + GetDots(); } else { int maxSlots = Utilities.GetMaximumPlayers(); int players = m_network.GetRoomPlayerCount(); lobbyStatus.text = "Waiting for: " + (maxSlots - players).ToString() + " / " + maxSlots.ToString(); } } else if (m_joinGameRequest) { Debug.Log("Leaving game room from lobby"); m_network.LeaveGameLevel(); m_joinGameRequest = false; SetMaxPlayerSlider(true); } } } else { // At this point if a disconnect happens let the level deal with it lobbyStatus.text = "Entering Game"; if (FadeGame.Get().IsFadedIn()) { FadeGame.Get().FadeOut(); Application.LoadLevel((int)Utilities.GetSceneIDFromLevel(m_selectedLevel)); } } }