Example #1
0
    public void NextLevel()
    {
        int nextScene = SceneManager.GetActiveScene().buildIndex + 1;

        if (scriptAchievments != null)
        {
            switch (SceneManager.GetActiveScene().buildIndex)
            {
            case 6:
                Debug.Log("Achievement 1/0: ");
                scriptAchievments.UnlockSteamAchievement("NEW_ACHIEVEMENT_1_0");
                break;

            case 11:
                Debug.Log("Achievement 1/1");
                scriptAchievments.UnlockSteamAchievement("NEW_ACHIEVEMENT_1_1");
                break;

            case 16:
                Debug.Log("Achievement 1/2");
                scriptAchievments.UnlockSteamAchievement("NEW_ACHIEVEMENT_1_2");
                break;

            case 21:
                Debug.Log("Achievement 1/3");
                scriptAchievments.UnlockSteamAchievement("NEW_ACHIEVEMENT_1_3");
                break;

            case 26:
                Debug.Log("Achievement 1/4");
                scriptAchievments.UnlockSteamAchievement("NEW_ACHIEVEMENT_1_4");
                break;

            case 31:
                Debug.Log("Achievement 1/5");
                scriptAchievments.UnlockSteamAchievement("NEW_ACHIEVEMENT_1_5");
                break;

            case 36:
                Debug.Log("Achievement 1/6");
                scriptAchievments.UnlockSteamAchievement("NEW_ACHIEVEMENT_1_6");
                break;

            case 41:
                Debug.Log("Achievement 1/7");
                scriptAchievments.UnlockSteamAchievement("NEW_ACHIEVEMENT_1_7");
                break;

            case 46:
                Debug.Log("Achievement 1/8");
                scriptAchievments.UnlockSteamAchievement("NEW_ACHIEVEMENT_1_8");
                break;

            case 51:
                Debug.Log("Achievement 1/9");
                scriptAchievments.UnlockSteamAchievement("NEW_ACHIEVEMENT_1_9");
                break;

            case 56:
                Debug.Log("Achievement 1/10");
                scriptAchievments.UnlockSteamAchievement("NEW_ACHIEVEMENT_1_10");
                break;

            case 61:
                Debug.Log("Achievement 1/11: Zerar o jogo");
                scriptAchievments.UnlockSteamAchievement("NEW_ACHIEVEMENT_1_11");
                break;
            }
        }

        if (nextScene > 61)
        {
            EndGame();
        }
        else
        {
            SaveGame(nextScene);
            SceneManager.LoadScene(nextScene);
        }
    }
Example #2
0
    public IEnumerator GoToLevel(Level level, bool fromCongrats = false)
    {
        if (gameCamera.isInTransition)
        {
            yield break;
        }

        var prevLevel = activeLevel;

        activeLevel = level;

        history.Clear();

        if (activeLevel == null)
        {
            screenFade.SetColor(prevLevel.cameraParams.backgroundColor);
            screenFade.FadeIn();

            yield return(new WaitWhile(() => screenFade.fadeOut == true));

            yield return(new WaitForSeconds(0.5f));

            cityMapGameObject.SetActive(true);
            prevLevel.gameObject.SetActive(false);

            gameCamera.MoveImmediate(gameCamera.cameraCityInbetweenTransform);
            gameCamera.StartMoving(gameCamera.cameraCityTransform, null);

            screenFade.FadeOut();

            musicManager.SetTrack(0, true);

            yield return(new WaitWhile(() => screenFade.fadeOut == false));

            if (prevLevel.buttonString == "35" && !gameData.IsSolvedCompletely())
            {
                yield return(new WaitWhile(() => gameCamera.isInTransition == true));

                phoneUI.animatorComponent.SetTrigger("Show");
                phoneUI.isShowing = true;

                yield return(new WaitWhile(() => phoneUI.isShowing == true));

                yield return(new WaitForSeconds(1.0f));

#if !DISABLESTEAMWORKS
                if (SteamManager.Initialized)
                {
                    SteamAchievements.UnlockSteamAchievement("ACHIEVEMENT_04");
                }
#endif
            }
            else if (gameData.IsSolvedCompletely() && fromCongrats)
            {
                yield return(new WaitWhile(() => gameCamera.isInTransition == true));

                Debug.Log("Game Completed!!!");

                if (System.String.IsNullOrEmpty(gameData.date))
                {
                    gameData.date = System.DateTime.Now.ToString("dd.MM.yyyy");
                    Save();
                }

                certificateUI.animatorComponent.SetTrigger("Show");
                certificateUI.dateText.text = gameData.date;
                certificateUI.isShowing     = true;

                yield return(new WaitWhile(() => certificateUI.isShowing == true));

                yield return(new WaitForSeconds(1.0f));

#if !DISABLESTEAMWORKS
                if (SteamManager.Initialized)
                {
                    SteamAchievements.UnlockSteamAchievement("ACHIEVEMENT_05");
                }
#endif
            }
            else
            {
                yield return(new WaitForSeconds(0.5f));

#if !DISABLESTEAMWORKS
                if (SteamManager.Initialized)
                {
                    if (gameData.IsSolvedLevelsForGettingSmarterAchievement())
                    {
                        SteamAchievements.UnlockSteamAchievement("ACHIEVEMENT_01");
                    }
                    if (gameData.IsSolvedLevelsForHalfwayToSuccessAchievement())
                    {
                        SteamAchievements.UnlockSteamAchievement("ACHIEVEMENT_02");
                    }
                    if (gameData.IsSolvedLevelsForUrbanistAchievement())
                    {
                        SteamAchievements.UnlockSteamAchievement("ACHIEVEMENT_03");
                    }
                }
#endif
            }

            cityUI.animatorComponent.SetTrigger("Show");
        }
        else
        {
            levelUI.UpdateText(activeLevel.goldMedalThreshold, history.Count);
            levelUI.UpdateLevelInfo(activeLevel.levelName, activeLevel.buttonString);

            var room = activeLevel.room;
            if (room == null)
            {
                Debug.Log("Room is null");
                yield break;
            }
            room.ResetRoom();
            activeLevel.MovablesToStart();

            screenFade.SetColor(activeLevel.cameraParams.backgroundColor);
            screenFade.FadeIn();

            gameCamera.StartMoving(activeLevel.cameraParams, null, true);

            yield return(new WaitWhile(() => screenFade.fadeOut == true));

            cityMapGameObject.SetActive(false);
            activeLevel.gameObject.SetActive(true);

            yield return(new WaitWhile(() => gameCamera.isInTransition == true));

            screenFade.FadeOut();

            musicManager.SetTrack(activeLevel.trackIndex, true);

            yield return(new WaitWhile(() => screenFade.fadeOut == false));

            levelUI.animatorComponent.SetTrigger("Show");

            activeLevel.StartTimer();
        }
    }