Beispiel #1
0
        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);
        }
Beispiel #2
0
 private void OnWaveStarted(WaveStartedEvent obj)
 {
     betweenWaves     = false;
     timeBetweenWaves = baseTimeBetweenWaves;
     inGameplay       = true;
 }
Beispiel #3
0
 private void OnWaveStart(WaveStartedEvent obj)
 {
     lastEnemySpawned = false;
 }
Beispiel #4
0
 private void OnWaveStarted(WaveStartedEvent obj)
 {
     timeBetweenWaves.gameObject.SetActive(false);
     countdown.gameObject.SetActive(false);
 }
 private void OnWaveStarted(WaveStartedEvent obj)
 {
     ToggleTowersFiring(true);
 }