/// <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;
     }
 }
Esempio n. 3
0
    /// <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");
     }
 }
Esempio n. 5
0
    /// <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));
            }
        }
    }