public IEnumerator SpawnEnemies(CombatRoomData data) { enemies = data.EnemiesPool; waveLength = enemies.Count; maxEnemiesOnScreenList = data.maxEnemiesOnScreen; cooldown = data.cooldown; waveCounter = waveLength; var maxEnemiesOnScreenCounter = 0; totalAmountOfEnemies = maxEnemiesOnScreenList[maxEnemiesOnScreenCounter]; for (int i = 0; i < waveLength; i++) { var maxEnemiesOnScreen = maxEnemiesOnScreenList[maxEnemiesOnScreenCounter]; if (totalAmountOfEnemies <= 0) { maxEnemiesOnScreenCounter++; totalAmountOfEnemies = maxEnemiesOnScreenList[maxEnemiesOnScreenCounter]; } while (enemiesAlive >= maxEnemiesOnScreen) { yield return(null); } yield return(new WaitForSeconds(cooldown)); Spawn(i); } }
public void StartSpawnEnemies(CombatRoomData data) { StartCoroutine(SpawnEnemies(data)); }