Ejemplo n.º 1
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();
    }
Ejemplo n.º 2
0
    private void recomputeStrategy(int spawnZone)
    {
        recomputeAggro(spawnZone);
        Queue <byte> targets = computeTargets(spawnZone);

        SwarmController.getInstance().setTargetsToAttack(spawnZone, targets);
    }
Ejemplo n.º 3
0
    public void countDownFinished()
    {
        LevelData data = _levels [_currentLevel];

        _gameActive = true;
        SwarmController.getInstance().beginWave(data._spawnPace, data._wavesData [_currentWave]._enemiesPerSubWave);
        UIBuilder.INSTANCE.setEnemyArmyText(SwarmController.getInstance().getCurrentArmySize());
        UIBuilder.INSTANCE.setWaveText(_currentWave + 1, data._waveCount);
    }
Ejemplo n.º 4
0
    public Pathfinder(SpawnPoint spawnArea, Vector3 mainTarget)
    {
        _swarm      = SwarmController.getInstance();
        _spawnArea  = spawnArea;
        _grid       = _swarm._obstacleGrid;
        _mainTarget = mainTarget;

        _towerPositions = new Dictionary <byte, int> ();
    }
Ejemplo n.º 5
0
    public void setMainPath(Stack <int> reversePath)
    {
        SwarmController swarmInstance = SwarmController.getInstance();

        while (reversePath.Count > 0)
        {
            int     index = reversePath.Pop();
            Vector3 pos   = swarmInstance._positions [index];
            _pathToTarget.Enqueue(pos);
        }
    }
Ejemplo n.º 6
0
    public void setTowerPath(byte towerSpawnId, Stack <int> reversePath)
    {
        SwarmController swarmInstance = SwarmController.getInstance();
        Queue <Vector3> solution      = new Queue <Vector3> ();

        while (reversePath.Count > 0)
        {
            int     index = reversePath.Pop();
            Vector3 pos   = swarmInstance._positions [index];
            solution.Enqueue(pos);
        }

        _pathsToTowers.Add(towerSpawnId, solution);
    }
Ejemplo n.º 7
0
    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);
    }