Пример #1
0
    // Update is called once per frame
    void Update()
    {
        if (playerHp.isPlayerDead())
        {
            return;
        }

        if (scoreMultiplierTimer > 0f)
        {
            scoreMultiplierTimer -= Time.deltaTime;

            if (scoreMultiplierTimer <= 0f)
            {
                scoreMultiplier          = baseMultiplier;
                scoreMultiplierText.text = scoreMultiplier.ToString() + "x";
            }
        }

        if (currentState == GameState.Setup)
        {
            breakTimer -= Time.deltaTime;

            if (breakTimer <= 0f && !coroutineStarted)
            {
                StartCoroutine(NextLevel());
            }
        }
        else if (currentState == GameState.Round)
        {
            roundTimer -= Time.deltaTime;

            if (roundTimer <= 0f)
            {
                clearField();
                currentState = GameState.Boss;
                bossPicker();
            }
        }
        else if (currentState == GameState.Boss)
        {
            foreach (Enemy boss in currentBossScripts)
            {
                if (!boss.checkDeath())
                {
                    return;
                }
            }

            foreach (GameObject boss in currentBosses)
            {
                Destroy(boss.gameObject);
            }

            clearBasicEnemySpawners();

            clearBosses();

            clearField();

            determineDrop();

            breakTimer = setBreakTimer;

            blockerSpawners.SetActive(false);

            currentState = GameState.Setup;
        }
    }