示例#1
0
    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);
    }
示例#2
0
    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;
        }
    }
示例#3
0
 public void GameWin()
 {
     CurrentPhase = EGameplayPhase.GameOver;
     UIManager.Instance.GameWin();
     //MusicManager.Instance.PlayGameOver();
 }