public override void doDie(Creature killer) { SwarmController.getInstance().notifyTargetDestroyed(); Vector3 originalPos = _gameInstance.transform.position; GameObject.Destroy(_gameInstance); GameObject fractured = GameObject.Instantiate( Resources.Load("Models/Target_Castle/Fractured/target_castle_fractured"), World.getInstance().getTerrainTransform()) as GameObject; fractured.transform.position = originalPos; fractured.AddComponent <TowerCollapse> ().setFlags(true, true); GameObject ps = ParticleSystemTable.getInstance().instantiateParticleSystem("PS_Collapse"); ps.transform.position = originalPos; ps.AddComponent <ParticleSystemCollector> (); ps.GetComponent <ParticleSystem> ().Play(); ps.AddComponent <AudioSource> ().loop = false; SoundTable.getInstance().getAudioPlayer(ps.GetComponent <AudioSource> (), "sound_collapse"); ps.GetComponent <AudioSource> ().Play(); CameraShake.INSTANCE.prepareShake(); LevelManager.getInstance().notifyTargetDestroyed(); }
public override void doDie(Creature killer) { World.getInstance().unregisterTower(this); World.getInstance().unregisterTowerBySpawn(_spawn); _gameInstance.GetComponent <HealthBarController> ().destroy(); Vector3 originalPos = getGameInstance().transform.position; GameObject.Destroy(getGameInstance()); GameObject fracturedInstance = GameObject.Instantiate( getTower().getFracturedAsset(), World.getInstance().getTerrainTransform()) as GameObject; fracturedInstance.transform.position = originalPos; fracturedInstance.AddComponent <TowerCollapse> ().Propagate = true; GameObject ps = ParticleSystemTable.getInstance().instantiateParticleSystem("PS_Collapse"); ps.transform.position = originalPos; ps.AddComponent <ParticleSystemCollector> (); ps.GetComponent <ParticleSystem> ().Play(); ps.AddComponent <AudioSource> ().loop = false; SoundTable.getInstance().getAudioPlayer(ps.GetComponent <AudioSource> (), "sound_collapse"); ps.GetComponent <AudioSource> ().Play(); CameraShake.INSTANCE.prepareShake(); PlatfromSpawnTable.getInstance().enablePlatform(_spawn); SpawnTable.getInstance().releaseSpawn(_spawn); }