예제 #1
0
    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);
        }
    }
예제 #2
0
 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);
             }
         }
     }
 }
예제 #3
0
 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();
     }
 }