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(); }
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); }
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(); }
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; }