コード例 #1
0
    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);
    }
コード例 #2
0
    public GameTowerInstance(int objectId, GameTower tower, byte spawn)
        : base(objectId, tower)
    {
        _spawn = spawn;
        PlatfromSpawnTable.getInstance().disablePlatform(_spawn);
        World.getInstance().registerTowerInSpawn(_spawn, this);

        _gameInstance.AddComponent <TowerController> ().setTowerInstance(this);
        _gameInstance.AddComponent <HealthBarController> ()._creature = this;

        setUpgradeLevel(0);
    }