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);
    }
Beispiel #2
0
    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)
    {
        GameTowerInstance gti = killer as GameTowerInstance;

        SwarmController.getInstance().notifySoldierKilled(_spawnZoneSource, gti.getSpawn());
        LevelManager.getInstance().notifyEnemyKilled(getEnemyTemplate());

        World.getInstance().unregisterEnemy(this);

        _gameInstance.GetComponent <EnemyController> ().enabled = false;
        _gameInstance.GetComponent <HealthBarController> ().destroy();

        _gameInstance.AddComponent <AudioSource> ().loop = false;
        SoundTable.getInstance().getAudioPlayer(_gameInstance.GetComponent <AudioSource> (), "sound_enemy_death");
        _gameInstance.GetComponent <AudioSource> ().Play();
        _gameInstance.GetComponent <Animator> ().SetBool("Death", true);
        _gameInstance.AddComponent <EnemyDeathController> ();

        //GameObject.Destroy (_gameInstance);
    }
Beispiel #4
0
 public void endLevelCleanup()
 {
     SoundTable.getInstance().onMatchEnd();
 }