void NextPhase() { switch (CurrentPhase) { case EGameplayPhase.Intro: case EGameplayPhase.Wave: CurrentWave = (EWaveType)UnityEngine.Random.Range(0, (int)EWaveType.COUNT); CurrentPhase = EGameplayPhase.Preparation; DOVirtual.DelayedCall(PREPARATION_DURATION, () => { NextPhase(); }).SetId("NextPhase"); DOTween.To(() => PREPARATION_DURATION, (value) => { UIManager.Instance.ChangeTimerLabel(value); }, 0f, PREPARATION_DURATION); MusicManager.Instance.PlayAction(false); DOVirtual.DelayedCall(PREPARATION_DURATION - 10f, () => { MusicManager.Instance.Siren(); }); DOVirtual.DelayedCall(PREPARATION_DURATION - 5f, () => { MusicManager.Instance.Siren(); }); DOVirtual.DelayedCall(PREPARATION_DURATION - 4f, () => { MusicManager.Instance.Siren(); }); DOVirtual.DelayedCall(PREPARATION_DURATION - 3f, () => { MusicManager.Instance.Siren(); }); DOVirtual.DelayedCall(PREPARATION_DURATION - 2f, () => { MusicManager.Instance.Siren(); }); DOVirtual.DelayedCall(PREPARATION_DURATION - 1f, () => { MusicManager.Instance.Siren(); }); break; case EGameplayPhase.Preparation: CurrentPhase = EGameplayPhase.Wave; DOVirtual.DelayedCall(INFLOW_DURATION + OUTFLOW_DURATION, () => { NextPhase(); }).SetId("NextPhase");; //DOTween.To(() => 30f, (value) => { UIManager.Instance.ChangeTimerLabel(value); }, 0f, 30f); Waves.StartInflow(); MusicManager.Instance.PlayAction(true); break; } UIManager.Instance.ChangePhaseLabel(CurrentWave, CurrentPhase); }
public void ChangePhaseLabel(EWaveType type, EGameplayPhase phase) { switch (type) { case EWaveType.Flood: phaseLabel.text = phase == EGameplayPhase.Wave ? "Flood in progress!" : "Flood incoming!"; break; case EWaveType.SewerDrop: phaseLabel.text = phase == EGameplayPhase.Wave ? "Sewer drop in progress!" : "Sewer drop incoming!"; break; case EWaveType.Radiation: phaseLabel.text = phase == EGameplayPhase.Wave ? "Radiation in progress!" : "Radiation incoming!"; break; case EWaveType.Swarm: phaseLabel.text = phase == EGameplayPhase.Wave ? "Swarm in progress!" : "Swarm incoming!"; break; case EWaveType.ToxicGas: phaseLabel.text = phase == EGameplayPhase.Wave ? "Toxic gas in progress!" : "Toxic gas incoming!"; break; } }
public void GameWin() { CurrentPhase = EGameplayPhase.GameOver; UIManager.Instance.GameWin(); //MusicManager.Instance.PlayGameOver(); }