/// <summary> /// Logic for when in game over state /// </summary> void UpdateOnGameOver() { // If currently processing a button press request if (m_toMenuRequest || m_toPlayRequest) { var gameFader = FadeGame.Get(); if (gameFader.IsFadedIn()) { gameFader.FadeOut(); if (m_toMenuRequest) { Debug.Log("Leaving game room from game over"); Utilities.GetNetworking().LeaveGameLevel(); Application.LoadLevel((int)SceneID.LOBBY); } else { SetGameOver(false); } } } else /*Check if used has clicked/mouseover on the buttons*/ { if (!m_levelComplete) { if (IsOverImage(replayGameButton)) { replayGameText.color = mouseOverColor; if (Input.GetMouseButtonDown(0)) { Debug.Log("Clicked Play Game"); PlayGameButton(); } } else { replayGameText.color = m_textColour; } } if (IsOverImage(toMenuButton)) { toMenuText.color = mouseOverColor; if (Input.GetMouseButtonDown(0)) { Debug.Log("Clicked To Menu"); GoToMenuButton(); } } else { toMenuText.color = m_textColour; } } }
/// <summary> /// On Click Go To Menu when game over is active /// </summary> public void GoToMenuButton() { if (m_isGameOver && !m_toMenuRequest) { var soundManager = SoundManager.Get(); soundManager.PlaySound(SoundManager.SoundID.BUTTON_CLICK); soundManager.PlayMusic(SoundManager.MusicID.MENU_TRACK); FadeGame.Get().FadeIn(); Crosshair.Get().ShowCursor(); m_toMenuRequest = true; } }
/// <summary> /// Starts the game /// </summary> void StartGame() { m_network.StartLevel(); var soundManager = SoundManager.Get(); soundManager.PlaySound(SoundManager.SoundID.BUTTON_CLICK); soundManager.StopMusic(SoundManager.MusicID.MENU_TRACK); soundManager.PlayMusic(SoundManager.MusicID.GAME_TRACK); soundManager.PlayMusic(SoundManager.MusicID.GAME_AMBIENCE); FadeGame.Get().FadeIn(); }
/// <summary> /// On Click replay Game when game over is active /// </summary> public void PlayGameButton() { if (m_isGameOver && !m_toPlayRequest) { var soundManager = SoundManager.Get(); soundManager.PlaySound(SoundManager.SoundID.BUTTON_CLICK); soundManager.StopMusic(SoundManager.MusicID.MENU_TRACK); soundManager.PlayMusic(SoundManager.MusicID.GAME_TRACK); soundManager.PlayMusic(SoundManager.MusicID.GAME_AMBIENCE); FadeGame.Get().FadeIn(); m_toPlayRequest = true; Debug.Log("Game over called"); } }
/// <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)); } } }