예제 #1
0
    public void RegisterSpawnerAsListener(Spawner spawner)
    {
        waveStartEvent.RegisterListener(spawner.StartSpawnCicle);
        waveEndEvent.RegisterListener(spawner.StopSpawnCicle);
        finalWaveStartEvent.RegisterListener(spawner.StartSpawnCicle);
        finalWaveEndEvent.RegisterListener(spawner.StopSpawnCicle);

        if (ActualState.Equals(WaveStates.RUNNING))
        {
            spawner.StartSpawnCicle();
        }
    }
예제 #2
0
    private void Update()
    {
        // Se a onda estiver ocorrendo
        // Devemos checar pelas condições de fim de turno
        if (actualState == WaveStates.RUNNING)
        {
            // Se não hover nenhum inimigo, devemos iniciar próximo turno
            if (!StillHaveEnemys())
            {
                CompleteWave();
            }

            // se aida houverem inimigos, devemos esperar eles morrerem
            return;
        }

        // Checa se já está na hora de iniciar a onda
        // Checa se ela já não está no estado de spawn
        if (countDown <= 0 && !actualState.Equals(WaveStates.RUNNING))
        {
            StartWave();
        }
        else
        {
            actualState = WaveStates.COUNTING;
            countDown  -= Time.deltaTime;
        }
    }