protected virtual void StartWave() { WaveStartedEvent?.Invoke(waveIndex); Debug.Log($"# Wave # Wave {waveIndex} started"); float mobsDelay = 0f, wizardsDelay = 0f; float overallDelay = 0f; for (int i = 0; i < CurrentWave.Mobs.Count; i++) { mobsDelay += CurrentWave.Mobs[i].Interval * CurrentWave.Mobs[i].MobCount; var i1 = i; LeanTween.delayedCall(CurrentWave.Mobs[i].Delay, () => SpawnMobs(CurrentWave.Mobs[i1])); } for (int i = 0; i < CurrentWave.Wizards.Count; i++) { wizardsDelay += CurrentWave.Wizards[i].Delay; var i1 = i; LeanTween.delayedCall(CurrentWave.Wizards[i].Delay, () => SpawnWizard(CurrentWave.Wizards[i1])); } overallDelay = mobsDelay > wizardsDelay ? mobsDelay : wizardsDelay; Invoke("EndWave", Waves[waveIndex].AfterWaveDelay + overallDelay); }
private void OnWaveStarted(WaveStartedEvent obj) { betweenWaves = false; timeBetweenWaves = baseTimeBetweenWaves; inGameplay = true; }
private void OnWaveStart(WaveStartedEvent obj) { lastEnemySpawned = false; }
private void OnWaveStarted(WaveStartedEvent obj) { timeBetweenWaves.gameObject.SetActive(false); countdown.gameObject.SetActive(false); }
private void OnWaveStarted(WaveStartedEvent obj) { ToggleTowersFiring(true); }