예제 #1
0
    void Start()
    {
        sharedSoundHandler = FindObjectOfType <SharedSoundHandler> ();
        if (sharedSoundHandler == null)
        {
            Debug.LogError("Could not find shared sound handler");
        }

        fadeGameHandler = FindObjectOfType <FadeGame> ();
        if (fadeGameHandler == null)
        {
            Debug.LogError("Could not find FadeGame");
        }

        GameObject[] allEnemies = GameObject.FindGameObjectsWithTag("Enemy");
        for (int i = 0; i < allEnemies.Length; ++i)
        {
            enemies.Add(allEnemies[i]);
        }

        GameObject[] allIslands = GameObject.FindGameObjectsWithTag("IslandTrigger");
        for (int i = 0; i < allIslands.Length; ++i)
        {
            islands.Add(allIslands[i]);
        }

        if (islands.Count == 0)
        {
            Debug.LogError("Could not find any island triggers");
        }
    }
예제 #2
0
    /// <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;
            }
        }
    }
예제 #3
0
    private float m_fadeSpeed = 0.75f; // Speed for fading

    #endregion Fields

    #region Methods

    /// <summary>
    /// Gets the FadeGame from the scene
    /// </summary>
    public static FadeGame Get()
    {
        if(sm_fadeGame == null)
        {
            sm_fadeGame = FindObjectOfType<FadeGame>();
            if(sm_fadeGame == null)
            {
                Debug.LogError("Could not find FadeGame");
            }
        }
        return sm_fadeGame;
    }
예제 #4
0
 /// <summary>
 /// Gets the FadeGame from the scene
 /// </summary>
 public static FadeGame Get()
 {
     if (sm_fadeGame == null)
     {
         sm_fadeGame = FindObjectOfType <FadeGame>();
         if (sm_fadeGame == null)
         {
             Debug.LogError("Could not find FadeGame");
         }
     }
     return(sm_fadeGame);
 }
예제 #5
0
 /// <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;
     }
 }
예제 #6
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();
    }
예제 #7
0
 /// <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");
     }
 }
예제 #8
0
    void Start()
    {
        menuMusicHandler = FindObjectOfType <SharedSoundHandler> ();
        if (!menuMusicHandler)
        {
            Debug.Log("MenuMusicHandler could not be found in scene.");
        }

        fadeGameHandler = FindObjectOfType <FadeGame> ();
        if (!fadeGameHandler)
        {
            Debug.Log("FadeGame could not be found in scene.");
        }

        GameInformation.SetPVP(false);
        GameInformation.SetPlayerName("unnamed");
    }
예제 #9
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));
            }
        }
    }