IEnumerator GameLoop() { gameIsOn = true; // Disable cell editing for now cellSel.isOn = false; cellSel.TurnOffUI(); while (gameIsOn) { if (currentWave >= waves.Length) { StartCoroutine(WinGame()); break; } FindObjectOfType <SoundManager>().PlayTrack("Soundtrack"); gameLoopText.text = "Inimigos irão invadir a colméia pelos buracos ao redor. Prepare-se!"; enemyMan.ActivateHoles(waves[currentWave].holeQuantity); //REVEAL NEXT HOLES yield return(new WaitForSeconds(3)); //Give the player 10 seconds to build base timer = waves[currentWave].playerConstructionTime; gameLoopText.text = "Você tem " + timer + " segundos para organizar sua colméia."; cellSel.isOn = true; //LET PLAYER BUILD BASE //Wait for player input while (!Input.anyKeyDown) { yield return(null); } //Begin countdown while (timer > 0) { yield return(new WaitForSeconds(1)); timer--; gameLoopText.text = "Você tem " + timer + " segundos para organizar sua colméia."; yield return(null); } //TIME IS OUT //Turn off the cell GUI cellSel.isOn = false; cellSel.TurnOffUI(); //RELEASE THE ENEMIES gameLoopText.text = "Sua colméia está em perigo!"; enemyMan.isDone = false; StartCoroutine(enemyMan.ReleaseEnemies(waves[currentWave].howManyTimes, waves[currentWave].howManyEnemies, waves[currentWave].timeBetweenSpawn)); while (!enemyMan.isDone) { yield return(null); if (playerStats.stats.royalCellCount <= 0 && playerStats.stats.royalJelly <= 0) { StartCoroutine(LoseGame()); break; } } CheckNextBake(); ReplenishCellHP(); currentWave++; yield return(null); } yield break; }