void Update() { int objectivesCompleted = 0; foreach (Objective objective in objectives) { objective.isCompleted(); if (objective.completed) { ++objectivesCompleted; } } if (!gameOver && objectivesCompleted >= objectives.Length) { won = true; } if (gameOver && !won) { if (!loading && !settingsMenu.enabled && !graphicsQualityMenu.enabled && !soundMenu.enabled) { gameOverMenu.enabled = true; } if (loseMusic) { AudioSource music = Camera.main.GetComponent <AudioSource>(); if (music && music.clip != loseMusic) { music.clip = loseMusic; music.Stop(); music.Play(); } } clickSource = ClickSources.GameOver; Cursor.lockState = CursorLockMode.None; } else if (!gameOver && won) { StartCoroutine(loadScene("Ending")); Cursor.lockState = CursorLockMode.None; } if (!loading) { loadingScreen.SetActive(false); } else { loadingScreen.SetActive(true); } }
public void pause() { if (audioSource) { if (buttonClick) { audioSource.PlayOneShot(buttonClick); } else { audioSource.Play(); } } if (!gameOver && !won && !gameOverMenu.enabled) { if (!paused) { clickSource = ClickSources.GamePaused; paused = true; Time.timeScale = 0; AudioListener.pause = true; gamePausedMenu.enabled = true; pauseButton.gameObject.SetActive(false); } else { if (!settingsMenu.enabled && !quitGameMenu.enabled && !restartPrompt.enabled) { paused = false; Time.timeScale = 1; AudioListener.pause = false; gamePausedMenu.enabled = false; pauseButton.gameObject.SetActive(true); } } } }
void Update() { if (Input.GetKeyDown(KeyCode.Escape) && paused) { if (settingsMenu.enabled) { settingsMenu.enabled = false; if (clickSource == ClickSources.GamePaused) { gamePausedMenu.enabled = true; } else if (clickSource == ClickSources.GameOver) { gameOverMenu.enabled = true; } else if (clickSource == ClickSources.LevelCompleted) { levelCompletedMenu.enabled = true; } } else if (quitGameMenu.enabled) { quitGameMenu.enabled = false; if (clickSource == ClickSources.GamePaused) { gamePausedMenu.enabled = true; } else if (clickSource == ClickSources.GameOver) { gameOverMenu.enabled = true; } else if (clickSource == ClickSources.LevelCompleted) { levelCompletedMenu.enabled = true; } } else if (restartPrompt.enabled) { restartPrompt.enabled = false; if (clickSource == ClickSources.GamePaused) { gamePausedMenu.enabled = true; } else if (clickSource == ClickSources.GameOver) { gameOverMenu.enabled = true; } else if (clickSource == ClickSources.LevelCompleted) { levelCompletedMenu.enabled = true; } } } if (gameOver) { clickSource = ClickSources.GameOver; if (!loading && !quitGameMenu.enabled) { gameOverMenu.enabled = true; } if (gamemode == Gamemodes.Endless && !newHighScore) { newHighScore = true; if (!PlayerPrefs.HasKey("HighScore") && score > 0) { PlayerPrefs.SetString("HighScore", score.ToString()); StartCoroutine(showNewHighScore()); } else if (PlayerPrefs.HasKey("HighScore") && score > long.Parse(PlayerPrefs.GetString("HighScore"))) { PlayerPrefs.SetString("HighScore", score.ToString()); StartCoroutine(showNewHighScore()); } PlayerPrefs.Save(); } if (audioSource && loseJingle && !playedLoseSound) { playedLoseSound = true; audioSource.PlayOneShot(loseJingle); } if (Camera.main.GetComponent <AudioSource>()) { Camera.main.GetComponent <AudioSource>().Stop(); } pauseButton.gameObject.SetActive(false); } if (gamemode == Gamemodes.Campaign && !gameOver && won) { clickSource = ClickSources.LevelCompleted; if (!loading && !quitGameMenu.enabled) { levelCompletedMenu.enabled = true; } if (!completed) { completed = true; int currentLevel = PlayerPrefs.GetInt("IngameLevel"); if (PlayerPrefs.GetInt("Level") < PlayerPrefs.GetInt("MaxLevels") && PlayerPrefs.GetInt("Level") == currentLevel) { PlayerPrefs.SetInt("Level", currentLevel + 1); PlayerPrefs.Save(); } long money = long.Parse(PlayerPrefs.GetString("Money")); if (!PlayerPrefs.HasKey("Completed" + currentLevel)) { money += moneyReward; PlayerPrefs.SetString("Money", money.ToString()); PlayerPrefs.SetInt("Completed" + currentLevel, 1); } else { money += (long)(moneyReward * 0.2); PlayerPrefs.SetString("Money", money.ToString()); } PlayerPrefs.Save(); } if (audioSource && winJingle && !playedWinSound) { playedWinSound = true; audioSource.PlayOneShot(winJingle); } if (Camera.main.GetComponent <AudioSource>()) { Camera.main.GetComponent <AudioSource>().Stop(); } pauseButton.gameObject.SetActive(false); } if (gamemode == Gamemodes.Campaign) { waveText.text = "WAVE " + wave + "/" + enemyGroups.LongLength; } else if (gamemode == Gamemodes.Endless) { if (!newHighScore) { waveText.text = "WAVE " + wave; } } if (!currentBoss) { currentBoss = null; bossMaxHealth = 0; bossName.gameObject.SetActive(false); } else { if (bossMaxHealth <= 0) { bossMaxHealth = currentBoss.GetComponent <EnemyHealth>().health; } bossName.gameObject.SetActive(true); bossName.text = currentBoss.name; bossHealthBar.value = currentBoss.GetComponent <EnemyHealth>().health; bossHealthBar.maxValue = bossMaxHealth; bossHealthText.text = bossHealthBar.value + " / " + bossHealthBar.maxValue; } if (!loading) { loadingScreen.SetActive(false); } else { loadingScreen.SetActive(true); } if (gamemode == Gamemodes.Campaign) { if (wave < 1) { wave = 1; } else if (wave > enemyGroups.LongLength) { wave = enemyGroups.LongLength; } } else if (gamemode == Gamemodes.Endless) { if (wave < 1) { wave = 1; } else if (wave > 9223372036854775806) { wave = 9223372036854775806; } } if (long.Parse(PlayerPrefs.GetString("Money")) > 99999999) { PlayerPrefs.SetString("Money", "99999999"); PlayerPrefs.Save(); } if (PlayerPrefs.HasKey("HighScore") && long.Parse(PlayerPrefs.GetString("HighScore")) < 0) { PlayerPrefs.SetString("HighScore", "0"); PlayerPrefs.Save(); } }