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(); }
private void recomputeStrategy(int spawnZone) { recomputeAggro(spawnZone); Queue <byte> targets = computeTargets(spawnZone); SwarmController.getInstance().setTargetsToAttack(spawnZone, targets); }
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); }
public Pathfinder(SpawnPoint spawnArea, Vector3 mainTarget) { _swarm = SwarmController.getInstance(); _spawnArea = spawnArea; _grid = _swarm._obstacleGrid; _mainTarget = mainTarget; _towerPositions = new Dictionary <byte, int> (); }
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); } }
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); }
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); }