Example #1
0
    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();
        }
    }