예제 #1
0
    /// <summary>
    /// Updates times and other necessary pieces of game play.
    ///
    /// Authors: Amy Lewis, Cole Twitchell, David Askari, Steven Johnson, Courtney Chu
    /// </summary>
    public void Update()
    {
        SetTimerText();
        WaveManager.Update();

        var saturation = ppProfile.colorGrading.settings;

        if (currentWave == 1)
        {
            saturation.basic.saturation = 1;
        }
        else if (currentWave == 6)
        {
            sendBossButton.SetActive(true);
            PauseGame.sendBossButton = sendBossButton.GetComponent <SendBossButton>();
        }

        if (gameOver)
        {
            waveTimer.SetPaused(true);

            if (CastleManager.CastleHealth > 0)
            {
                saturation.basic.saturation = 0;
            }

            PauseGame.Status = true;

            GameObject.Find("OptionsMenu").SetActive(false);
            GameObject.Find("OptionsButton").GetComponent <Button>().interactable = false;
            sendBossButton.GetComponent <SendBossButton>().DisableButton();

            if (CastleManager.CastleHealth > 0)
            {
                XmlImporter.Cleanup();
                PauseGame.Status = false;
                SceneManager.LoadScene("victory_cutscene");
            }
            else
            {
                gameOverObject.transform.Find("GameOverText").GetComponent <Text>().text = "GAME OVER";
                gameOverObject.SetActive(true);
                enabled = false;
            }
        }
        else
        {
            if (!waveTimer.IsPaused() && waveTimer.IsDone())
            {
                waveTimer.SetPaused(true);
                WaveManager.BeginWave();
                AudioManager.PlayBeginWaveSound();
                sendBossButton.GetComponent <SendBossButton>().DisableButton();
            }

            if (WaveManager.WaveFinished() && EnemyManager.EnemiesRemaining() <= 0)
            {
                saturation.basic.saturation = 1.0f - ((float)(currentWave - 1) / (float)totalWaves);
                currentWave++;
                waveText.text = currentWave.ToString();
                waveTimer.Reset();
                waveTimer.SetPaused(false);
                WaveManager.SetNextWave();
                skipTimeButton.interactable = true;
                sendBossButton.GetComponent <SendBossButton>().ResetButton();
            }

            if (Hover.IsActive())
            {
                GameManager.rangeIndicatorRenderer.transform.position = Hover.GetPosition();
            }

            if (Input.GetKeyDown(KeyCode.S))
            {
                GameManager.AddMoney(100);
            }

            if (Input.GetKeyDown(KeyCode.A))
            {
                SkipTimer();
            }
            else if (Input.GetMouseButtonUp(1) && Hover.IsActive())
            {
                GameManager.rangeIndicatorRenderer.enabled = false;
                Hover.Deactivate();
                GameManager.ResetTower();
                TowerInformation.Reset();
            }
        }
        ppProfile.colorGrading.settings = saturation;
        healthText.text = CastleManager.CastleHealth.ToString();
        moneyText.text  = money.ToString();

        errorTextTimer.Update();
        if (errorTextTimer.IsDone())
        {
            errorText.gameObject.SetActive(false);
            errorTextTimer.Reset();
            errorTextTimer.SetPaused(true);
        }
    }