public void loadMainMenu(bool showLevelEnd, LevelEndInfo end = null, int menu = 0) { this.showLevelEnd = showLevelEnd; levelEnd = end; if (showLevelEnd) { //levelEnd.index = int.Parse(Application.loadedLevelName[Application.loadedLevelName.Length - 1].ToString()); //levelEnd.index = PlayerPrefs.GetInt("levelToLoad"); } currentMenu = menu; GameManager.LoadLevel("MainMenu"); }
private IEnumerator PostGame(bool passed) { gameState = GameState.PostGame; int endReason = EndReason.lose; //Determine why the level ended if (passed == true && objectives.AllObjectiveCompleted()) { endReason = EndReason.winner; } else if (passed == true && objectives.AnyObjectiveCompleted()) { endReason = EndReason.passed; } else if (exploded == true) { endReason = EndReason.explode; } else if (splash == true) { endReason = EndReason.drowned; } LevelEndInfo end = new LevelEndInfo(passed, endReason); end.level = LevelHandler.CurrentLevel; end.itemsSaved = getSavedCrates(); end.maxItems = getCrateAmount(); end.Reward = reward; end.levelTime = levelTimer; RubyScript ruby = GameObject.FindObjectOfType <RubyScript>(); if (ruby == null) { Debug.LogError("Ruby not found"); } else { end.rubyFound = ruby.found; end.sapphireFound = ruby.found && ruby.IsSapphire; } if (objectives == null) { Debug.LogError("Objectives not found"); } else if (passed == true) { end.obj1Passed = objectives.LevelObjective1(); end.obj2Passed = objectives.LevelObjective2(); end.obj3Passed = objectives.LevelObjective3(); } if (passed == true) { LevelHandler.CompleteLevel(end.level); FireworksController fw = GameObject.FindObjectOfType <FireworksController>(); if (!cheerOnce) { endCheer.PlaySound(); cheerOnce = true; } if (fw != null) { //fw.transform.position = GameObject.FindObjectOfType<Copter>().transform.position + Vector3.up * 3; fw.Launch(); } } if (!passed) { setResetButton(true); } float timer = resetCountdown; float deltaTime = Time.time; while (timer > 0) { timer -= (Time.time - deltaTime); deltaTime = Time.time; yield return(null); } if (SceneManager.GetActiveScene().name == "Tutorial00" && !passed) { GameManager.LoadLevel("IntroScreen"); } else { gameManager.loadMainMenu(true, end, 2); } }
public void UpdateLevelEnd(GameManager gm) { gameManager = gm; audioObject = GameObject.Find("LevelMapMusic").GetComponent <MusicObject>(); moneyText = GameObject.Find("TextMoney").GetComponent <MoneyUIUpdate>(); star1Text = star1.GetComponentInChildren <Text>(); star2Text = star2.GetComponentInChildren <Text>(); star3Text = star3.GetComponentInChildren <Text>(); targetTime = GameObject.Find("TargetTime").GetComponent <Text>(); playerTime = GameObject.Find("YourTime").GetComponent <Text>(); bonusObjective = GameObject.Find("BonusObjective").GetComponent <Text>(); personalBest = GameObject.Find("PersonalBest").GetComponent <Image>(); personalBest.gameObject.SetActive(false); CreateFaceDictionary(); levelEnd = gameManager.levelEnd; if (levelEnd == null) { Debug.LogError("Level end is null"); } level = levelEnd.level; if (level == null) { Debug.LogError("Level end is null"); } starsEarned = 0; alsFace.sprite = endFaces[levelEnd.endCondition]; if (levelEnd.obj1Passed) { starsEarned++; } if (levelEnd.obj2Passed) { starsEarned++; } if (levelEnd.obj3Passed) { starsEarned++; } //Save the amount of stars and rubies the player has earned from all levels int playerStars = PlayerPrefs.GetInt(SaveStrings.sPlayerStars, 0); moneyText.setOldMoney(gameManager.wallet.Coins); moneyText.setLevelEnd(true); string levelNumber = ""; switch (level.setName) { case "Tutorial0": levelNumber = "0-1"; break; case "Tutorial1": levelNumber = "0-2"; break; case "Tutorial2": levelNumber = "0-3"; break; case "Cat": levelNumber = "1-"; levelNumber = levelNumber + (level.id + 1).ToString(); break; case "Crate": levelNumber = "2-"; levelNumber = levelNumber + (level.id + 1).ToString(); break; case "Swim": levelNumber = "3-"; levelNumber = levelNumber + (level.id + 1).ToString(); break; case "fisherman": levelNumber = "4-"; levelNumber = levelNumber + (level.id + 1).ToString(); break; case "iceberg": levelNumber = "5-"; levelNumber = levelNumber + (level.id + 1).ToString(); break; case "Mountain": levelNumber = "6-"; levelNumber = levelNumber + (level.id + 1).ToString(); break; } clearText.text = "Level " + levelNumber + (levelEnd.passedLevel ? " cleared" : " failed"); if (level.star1 == false && levelEnd.obj1Passed == true) { gameManager.wallet.AddMoney(10 + 10 * level.id); StartCoroutine(CoinFlow(10 + 10 * level.id, GameObject.Find("Star1"))); playerStars++; } if (level.star2 == false && levelEnd.obj2Passed == true) { gameManager.wallet.AddMoney(10 + 10 * level.id); StartCoroutine(CoinFlow(10 + 10 * level.id, GameObject.Find("Star2"))); playerStars++; } if (level.star3 == false && levelEnd.obj3Passed == true) { gameManager.wallet.AddMoney(10 + 10 * level.id); StartCoroutine(CoinFlow(10 + 10 * level.id, GameObject.Find("Star3"))); playerStars++; } PlayerPrefs.SetInt(SaveStrings.sPlayerStars, playerStars); if (level.rubyFound == false && levelEnd.rubyFound == true) { int rubies = PlayerPrefs.GetInt(SaveStrings.sPlayerRubies) + 1; PlayerPrefs.SetInt(SaveStrings.sPlayerRubies, rubies); } star1Text.text = levelEnd.itemsSaved.ToString() + "/" + levelEnd.maxItems.ToString(); star2Text.text = levelEnd.obj2Passed || level.star2 ? "Bonus" : "Bonus"; bonusObjective.text = "Bonus: " + LevelHandler.GetLevelSet(level.setName).challenge2; float timeDifference = (level.bestTime < level.levelTimeChallenge && level.star3) ? (levelEnd.levelTime - level.bestTime) : (levelEnd.levelTime - level.levelTimeChallenge); star3Text.text = (timeDifference.CompareTo(0f) >= 0 ? "+ " : "- ") + (Mathf.Abs(timeDifference / 60f) >= 1f ? Mathf.Floor(Mathf.Abs(timeDifference / 60f)).ToString("##:") : "") + Mathf.Abs(timeDifference % 60f).ToString("00.00"); playerTime.text = levelEnd.passedLevel ? ("Time: " + (levelEnd.levelTime / 60f >= 1f ? Mathf.Floor(levelEnd.levelTime / 60f).ToString("##:") : "") + (levelEnd.levelTime % 60f).ToString("00.00")) : "Time: 0.00"; if (!level.star3) { targetTime.text = "Target: " + (level.levelTimeChallenge / 60f >= 1f ? Mathf.Floor(level.levelTimeChallenge / 60f).ToString("##:"): "") + (level.levelTimeChallenge % 60f).ToString("00.00"); if (levelEnd.levelTime < level.levelTimeChallenge && levelEnd.passedLevel) { level.bestTime = levelEnd.levelTime; //personalBest.gameObject.SetActive(true); //PlayerPrefs.SetFloat(level.name + "BestTime", level.bestTime); } else { level.bestTime = 999f; } } else { targetTime.text = "Best: " + (level.bestTime / 60f >= 1f ? Mathf.Floor(level.bestTime / 60f).ToString("##:") : "") + (level.bestTime % 60f).ToString("00.00"); if (levelEnd.levelTime < level.bestTime && levelEnd.passedLevel) { level.bestTime = levelEnd.levelTime; //personalBest.gameObject.SetActive(true); //PlayerPrefs.SetFloat(level.name + "BestTime", level.bestTime); } } // Musiikin määritys if (levelEnd.passedLevel) { if (levelEnd.obj1Passed && levelEnd.obj2Passed && levelEnd.obj3Passed) { audioObject.clips = threeStarMusic; } else if (levelEnd.obj1Passed || levelEnd.obj2Passed || levelEnd.obj3Passed) { audioObject.clips = threeStarMusic; } } else { audioObject.clips = loseMusic; } audioObject.PlayMusic(); level.rubyFound = levelEnd.rubyFound || level.rubyFound; level.star1 = levelEnd.obj1Passed || level.star1; level.star2 = levelEnd.obj2Passed || level.star2; level.star3 = levelEnd.obj3Passed || level.star3; // Grafiikoiden määritys if (levelEnd.passedLevel == true) { PassedLevel(); Level.Save(level); } else { FailedLevel(); Level.Save(level); } if (levelEnd.rubyFound == true) { rubyImage.sprite = levelEnd.sapphireFound ? unlockedSapphire : unlockedRuby; } else { rubyImage.enabled = false; } //debugTime.text = "Time spent: " + levelEnd.levelTime; //StartCoroutine(Animations(levelEnd.rubyFound)); }