예제 #1
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;
        }
    }
예제 #2
0
    private void CompleteWave()
    {
        Debug.Log("Iniciando próximo turno");

        if (actualWave >= maxWaves)
        {
            Debug.Log("Nível Completo. Restart ... ");
        }

        countDown   = timeCountDown;
        actualState = WaveStates.COUNTING;
    }
예제 #3
0
    private void StartWave()
    {
        ActualState     = WaveStates.RUNNING;
        isTurnTrasition = false;
        ActualWave++;

        if (ActualWave >= maxWaves)
        {
            finalWaveStartEvent.Raise();
        }
        else
        {
            waveStartEvent.Raise();
        }
    }
예제 #4
0
    private void StartWave()
    {
        actualState = WaveStates.RUNNING;
        actualWave++;

        foreach (Spawner spawnPoint in spawners)
        {
            // reseta o spawner para o estado que pode spawnar
            spawnPoint.countSpawnedEnemys = 0;
            spawnPoint.actualState        = SpawnerStates.SPAWNING;

            // Iniciar o ciclo de ciração dos spawners
            StartCoroutine(spawnPoint.SpawnCicle());
        }

        Debug.Log("Turno iniciado");
    }
예제 #5
0
    private void Update()
    {
        if (ActualState != WaveStates.RUNNING)
        {
            if (waveStartEvent.ListenersCount > 1)
            {
                if (countDown <= 0)
                {
                    StartWave();
                }
                else
                {
                    ActualState = WaveStates.COUNTING;
                    countDown  -= Time.deltaTime;

                    if (countDown <= 10)
                    {
                        startCountDownEvent.Raise();
                    }
                }
            }
        }
    }
예제 #6
0
 private void HandleWaveEnd()
 {
     countDown   = startTimeCountDown;
     ActualState = WaveStates.COUNTING;
 }