예제 #1
0
    public void ButtonSelected(NumberedLevelSelectButton button)
    {
        MMVibrationManager.Haptic(HapticTypes.Selection);
        if (LevelSelectOpen)
        {
            int buildIndex = SceneHelpers.GetBuildIndexFromLevel(WorldSelected, button.TempNumber.HasValue ? button.TempNumber.Value : button.Number);
            MusicManager.Instance.SlideVolume(0.4f, 1f);
            GameManager.Instance.LoadScene(buildIndex, null);
        }
        else
        {
            if (button.Paywalled)
            {
                Debug.Log($"TAKE ME TO THE STORE TO BUY WORLD {button.Number}!");
            }
            else
            {
                levelData = GameManager.Instance.SaveData.LevelData;
                CopyManager.OnLevelChange(button.Number);

                (this.MirroredComponent as LevelSelect).OnLevelSelectNoAction(button.MirroredComponent as NumberedLevelSelectButton);
                OnLevelSelectNoAction(button);

                // tell camera to wipe
                // world one and no world share the same style
                if (WorldSelected > 1)
                {
                    StartCoroutine(CameraWipe(0));
                }
            }
        }
    }
예제 #2
0
    public void Continue()
    {
        MMVibrationManager.Haptic(HapticTypes.Selection);
        int nextWorld = World + 1;

        if (nextWorld <= GameManager.AvailableWorlds)
        {
            GameManager.Instance.SaveData.LastPlayedWorld = nextWorld;
            MusicManager.Instance.LoadMusicForWorldAndChangeTrack(nextWorld);
            GameManager.Instance.LoadScene(SceneHelpers.GetBuildIndexFromLevel(nextWorld, 1));
        }
        else
        {
            GameManager.Instance.LoadScene(SceneHelpers.SceneCount - 1);
        }
    }
예제 #3
0
    public void GoToMenu()
    {
        MMVibrationManager.Haptic(HapticTypes.Selection);

        int nextWorld = World + 1;
        var nextLevel = SceneHelpers.GetBuildIndexFromLevel(nextWorld, 1);

        if (ContinueButton.activeInHierarchy &&      // only active when we've reached here from a level
            nextWorld <= GameManager.AvailableWorlds &&
            nextLevel >= GameManager.Instance.HighestUnlockedLevel)
        {
            GameManager.Instance.SaveData.LastPlayedWorld = nextWorld;
        }

        GameManager.Instance.LoadScene(
            SceneHelpers.MenuBuildIndex,
            null,
            () => GameManager.Instance.MenuManager.OpenLevelSelect(true)
            );
    }