Esempio n. 1
0
    /** @brief Play music on the level selection screen */
    private static IEnumerator PlayMusic()
    {
        uint  startLevel, endLevel, level;
        float waitTime;

        if (LevelsCompleted % Instance.LevelsPerLine == 0)
        {
            startLevel = 0;
            endLevel   = (uint)Instance.LevelList.Length - 1;
        }
        else
        {
            startLevel = (LevelsCompleted / Instance.LevelsPerLine) * Instance.LevelsPerLine;
            endLevel   = startLevel + Instance.LevelsPerLine - 1;
        }

        Logger.Instance.LogAction("LevelSelection",
                                  string.Format("Playing music from {0} to {1}", startLevel, endLevel), (LevelsCompleted + 1).ToString());

        //ShowPlayButton();

        for (level = startLevel; level <= endLevel && !LevelHasStarted; level++)
        {
            AudioPlayer player = Objects[level].audioPlayer;
            if (MeasureIsLocked(level))
            {
                waitTime = 1.1f;
            }
            else
            {
                waitTime = 2.0f;
            }

            Instance.StartCoroutine(PopoutTile(level, waitTime));
            Instance.StartCoroutine(player.PlayBlocking());
            yield return(new WaitForSeconds(waitTime));

            if (level == LevelsCompleted)
            {
                ShowPlayButton();
                if (IsAutoplaying())
                {
                    Instance.PlayNextLevel();
                }
            }
        }

        Logger.Instance.LogAction("LevelSelection", "Done Playing Music", (LevelsCompleted + 1).ToString());

        if (LevelsCompleted == Instance.LevelList.Length)
        {
            // Application.LoadLevel("OutroCutscene1");
            HttpWriter.Flush();
            Logger.Instance.LogAction("Transitioning to Outro", "", "");
            SceneManager.LoadScene("OutroCutscene1");
            Destroy(Instance.gameObject);
        }
    }