IEnumerator Exploding() { float timeToWait = 1.0f; float shipFireActiveTime = 0.5f; while (_isExploding == true) { Instantiate(_explosionPrefab, transform.position + Position(-6.5f, -1.5f, 0f), Quaternion.identity); yield return(new WaitForSeconds(shipFireActiveTime)); _shipFireOne.SetActive(true); yield return(new WaitForSeconds(timeToWait)); Instantiate(_explosionPrefab, transform.position + Position(2.8f, 0.5f, 0f), Quaternion.identity); yield return(new WaitForSeconds(shipFireActiveTime)); _shipFireTwo.SetActive(true); yield return(new WaitForSeconds(timeToWait)); Instantiate(_explosionPrefab, transform.position + Position(-2.6f, 0.1f, 0f), Quaternion.identity); yield return(new WaitForSeconds(shipFireActiveTime)); _shipFireThree.SetActive(true); yield return(new WaitForSeconds(timeToWait)); Instantiate(_explosionPrefab, transform.position + Position(6.6f, -1.52f, 0f), Quaternion.identity); yield return(new WaitForSeconds(shipFireActiveTime)); _shipFireFour.SetActive(true); yield return(new WaitForSeconds(2f)); Destroy(this.gameObject, 0.25f); Instantiate(_finalExplosionPrefab, transform.position, Quaternion.identity); Instantiate(_finalExplosionPrefab, transform.position + Position(-4.9f, -1f, 0f), Quaternion.identity); Instantiate(_finalExplosionPrefab, transform.position + Position(4.6f, -1f, 0f), Quaternion.identity); _isExploding = false; _uiManager.ButtonActivation(); _uiManager.RestartGameText(); _uiManager.WinningText(); _gameManager.GameWon(); _spawnManager.BossDefeated(); } }