Пример #1
0
    public void hit()
    {
        // JA JA JA I let's make some fire
        GameObject explosion = PoolManager.instance.explotionPool.GetObject();

        explosion.transform.position = transform.position;
        explosion.SetActive(true);
        // Die Ship die
        gameObject.SetActive(false);
        ExplotionController explosionController = explosion.GetComponent <ExplotionController> ();

        explosionController.ShipExplosion();
        SoundManager.instance.thrustOff();

        if (playerDebris != null)
        {
            playerDebris.transform.position = transform.position;
            playerDebris.transform.rotation = transform.rotation;
            playerDebris.gameObject.SetActive(true);
            playerDebris.Explode();
        }
        GameManager.instance.OnPlayerDeath();
        SoundManager.instance.explode();
        SoundManager.instance.thrustOff();
    }
Пример #2
0
    public void Damage(int damage)
    {
        SoundManager.instance.explode();
        int finalHealth = health - damage;

        for (int i = 0; i < spawnAmount; i++)
        {
            GameObject explosion = PoolManager.instance.explotionPool.GetObject();
            explosion.transform.position = transform.position;
            explosion.SetActive(true);
            ExplotionController explosionController = explosion.GetComponent <ExplotionController> ();
            explosionController.SmallExplosion();
            // If the asteroid wasn't fully destroyed, split it
            if (finalHealth > 0)
            {
                GameObject clone = PoolManager.instance.asteroidPool.GetObject();
                if (clone != null)
                {
                    AsteroidController asteroidController = clone.GetComponent <AsteroidController>();
                    if (asteroidController != null)
                    {
                        clone.transform.position = transform.position;
                        clone.SetActive(true);

                        if (finalHealth == 1)
                        {
                            asteroidController.MakeSmallAsteroid();
                        }
                        else if (finalHealth == 2)
                        {
                            asteroidController.MakeMediumAsteroid();
                        }
                        else if (finalHealth == 3)
                        {
                            asteroidController.MakeLargeAsteroid();
                        }
                    }
                    else
                    {
                        Debug.LogWarning("Asteroid pool not returning asteroids");
                    }
                }
                else
                {
                    Debug.Log("Empty asteroid pool");
                }
            }
        }

        GameManager.instance.OnDestroyAsteroid(finalHealth);
        gameObject.SetActive(false);
    }
Пример #3
0
    public void Destroy()
    {
        GameManager.instance.ResetEnemySpawnTime();
        GameObject explosion = PoolManager.instance.explotionPool.GetObject();

        explosion.transform.position = transform.position;
        explosion.SetActive(true);
        gameObject.SetActive(false);
        ExplotionController explosionController = explosion.GetComponent <ExplotionController> ();

        explosionController.ShipExplosion();
        SoundManager.instance.explode();
    }
Пример #4
0
    public void Destroy()
    {
        GameObject explosion = PoolManager.instance.explotionPool.GetObject();

        if (explosion != null)
        {
            ExplotionController explosionController = explosion.GetComponent <ExplotionController> ();
            if (explosionController != null)
            {
                explosion.transform.position = transform.position;
                explosion.SetActive(true);
                explosionController.BulletExplosion();
            }
        }

        gameObject.SetActive(false);
        lifeTime = 0;
    }