void WaveCompleted() { Debug.Log("wave completed"); state = SpawnManagerState.COUNTING; waveCountDown = timeBetweenWaves; }
IEnumerator SpawnWave(wave _wave) { state = SpawnManagerState.SPAWNING; if (_wave.count != 0) { //Finds a random spawner that is not occupied if (availableSpawnPoints.Count != 0 || enemyAliveList.Count >= maxEnemyAllowed) { int randomSpawnerNumber = ran.Next(0, availableSpawnPoints.Count - 1); int randomSpawnID = availableSpawnPoints[randomSpawnerNumber]; SpawnEnemy(_wave.enemy, spawnPoints[randomSpawnID].GetComponent <Enemy_Spawner>().SpawnVector2); _wave.count--; yield return(new WaitForSeconds(1f / _wave.rate)); } else { Debug.Log("No Available SpawnPoint"); yield return(new WaitUntil(() => availableSpawnPoints.Count != 0)); } } state = SpawnManagerState.WAITING; yield break; }