Beispiel #1
0
    protected void OnEnable()
    {
        HappinessCollector.Initialize();

        PlayerData.Create();

        s_Instance = this;

        m_ConsumableDatabase.Load();

        // We build a dictionnary from state for easy switching using their name.
        m_StateDict.Clear();

        if (states.Length == 0)
        {
            return;
        }

        for (int i = 0; i < states.Length; ++i)
        {
            states[i].manager = this;
            m_StateDict.Add(states[i].GetName(), states[i]);
        }

        m_StateStack.Clear();

        PushState(states[0].GetName());
    }
    public override void Enter(AState from)
    {
        m_CountdownRectTransform = countdownText.GetComponent <RectTransform>();

        m_LifeHearts = new Image[k_MaxLives];
        for (int i = 0; i < k_MaxLives; ++i)
        {
            m_LifeHearts[i] = lifeRectTransform.GetChild(i).GetComponent <Image>();
        }

        if (MusicPlayer.instance.GetStem(0) != gameTheme)
        {
            MusicPlayer.instance.SetStem(0, gameTheme);
            CoroutineHandler.StartStaticCoroutine(MusicPlayer.instance.RestartAllStems());
        }

        m_AdsInitialised        = false;
        m_GameoverSelectionDone = false;

        HappinessCollector.Start();

        StartGame();
    }
    IEnumerator WaitForGameOver()
    {
        m_Finished = true;
        trackManager.StopMove();

        // Reseting the global blinking value. Can happen if game unexpectly exited while still blinking
        Shader.SetGlobalFloat("_BlinkingValue", 0.0f);

        yield return(new WaitForSeconds(2.0f));

        HappinessCollector.Stop(new Dictionary <string, string>
        {
            ["score"] = trackManager.score.ToString()
        });

        if (currentModifier.OnRunEnd(this))
        {
            //if (trackManager.isRerun)
            manager.SwitchState("GameOver");
            //else
            //    OpenGameOverPopup();
        }
    }