Example #1
0
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape) && gameRunning)
        {
            if (Time.timeScale == 1f)
            {
                pauseMenu.SetActive(true);
                setTimeScale(0f);
            }
            else
            {
                setTimeScale(1f);
                pauseMenu.SetActive(false);
            }
        }

        int remainingBarrels = GameObject.FindObjectsOfType <Barrel>().Length;

        if (gameRunning && remainingBarrels == 0)
        {
            // end game screen
            FindObjectOfType <Timer>().running = false;
            FindObjectOfType <MenuManager>().switchToMenu(endGameMenu);

            string gameTime = GameObject.Find("Timer").GetComponent <Text>().text;

            // update the leaderboard
            updateHighScores(score.score, waveCounter.waveCount, gameTime);

            gameRunning = false;

            if (enemies.transform.childCount > 0)
            {
                for (int i = 0; i < enemies.transform.childCount; i++)
                {
                    Destroy(enemies.transform.GetChild(i).gameObject);
                }
            }
        }

        if (enemies.transform.childCount == 0 && numberOfEnemies > 0)           // all enemies in a wave have been destroyed
        // Add points to the player's score for each remaining barrel
        {
            if (remainingBarrels > 0)
            {
                int barrelPointsValue = barrels.GetComponentInChildren <Barrel>().pointsValue;
                score.addPoints(remainingBarrels * barrelPointsValue);

                waveCounter.incrementWaveCounter();
                spawnWave();                 // spawn the next wave of enemies
            }
        }

        if (players.transform.childCount == 0)          // player has died
        {
            spawnPlayer();
        }

        if (powerUps.transform.childCount == 0)           // spawn power-ups
        {
            for (int i = 0; i < numberOfPowerUps; i++)
            {
                spawnPowerUp();
            }
        }

        int currentNumHazards = hazards.transform.childCount;

        if (currentNumHazards < numberOfHazards)           // spawn hazards
        {
            for (int i = 0; i < numberOfHazards - currentNumHazards; i++)
            {
                spawnHazard();
            }
        }
    }