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; } }
private void CompleteWave() { Debug.Log("Iniciando próximo turno"); if (actualWave >= maxWaves) { Debug.Log("Nível Completo. Restart ... "); } countDown = timeCountDown; actualState = WaveStates.COUNTING; }
private void StartWave() { ActualState = WaveStates.RUNNING; isTurnTrasition = false; ActualWave++; if (ActualWave >= maxWaves) { finalWaveStartEvent.Raise(); } else { waveStartEvent.Raise(); } }
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"); }
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(); } } } } }
private void HandleWaveEnd() { countDown = startTimeCountDown; ActualState = WaveStates.COUNTING; }