private IEnumerator WaveSpawnCreepersRoutine() { currentPhase = WaveManagerPhase.SpawnCreepers; int creepersToSpawn = Waves [waveNumber].creeperCount; int creepersCount = 0; Debug.Log("Start wave: " + waveNumber.ToString()); timeBetweenCreepers = new WaitForSeconds(Waves [waveNumber].creeperSpawnTime); while (creepersCount < creepersToSpawn) { GameObject creeper = Instantiate(Waves[waveNumber].creeperPrefab, creeperSpawnPoint.position, creeperSpawnPoint.rotation); creeper.GetComponent <Creeper> ().Init( Waves[waveNumber].creeperHealth, Waves[waveNumber].creeperSpeed, Waves[waveNumber].creeperAccel, Waves[waveNumber].creeperAngularSpeed, Waves[waveNumber].coinPrefab, Waves[waveNumber].coinPValue, Waves[waveNumber].banishCost, creeperDestination ); creepersCount++; Debug.Log("Creeper spawned: " + creepersCount.ToString()); yield return(timeBetweenCreepers); } if (waveEndedEvent != null) { waveEndedEvent.Invoke(); } currentPhase = WaveManagerPhase.Rest; Debug.Log("Wave " + waveNumber.ToString() + " spawn end"); }
public void StartWaves() { waveNumber = 0; currentPhase = WaveManagerPhase.Rest; Debug.Log("Start waves"); if (gameStartEvent != null) { gameStartEvent.Invoke(Waves.Length); } FinanceManager.AddCoin(startMoney); StartCoroutine("WaveQueueRoutine"); }
private IEnumerator WaveQueueRoutine() { //FIXME Wave Event if (WaveQueued != null) { WaveQueued.Invoke(Waves [waveNumber].beforeWaveTime, waveNumber); } currentPhase = WaveManagerPhase.WaveQueue; timeBeforeWave = new WaitForSeconds(Waves [waveNumber].beforeWaveTime); yield return(timeBeforeWave); currentCreeperCount = Waves [waveNumber].creeperCount; //FIXME sfx wave start StartCoroutine("WaveSpawnCreepersRoutine"); }
void Awake() { instance = this; currentPhase = WaveManagerPhase.StopGame; }
public void StopSpawn() { StopCoroutine("WaveQueueRoutine"); StopCoroutine("WaveSpawnCreepersRoutine"); currentPhase = WaveManagerPhase.Rest; }