private IEnumerator SpawnAllEnemiesInWave(WaveConfig waveConfig) { for (int enemyCount = 0; enemyCount < waveConfig.GetNumberOfEnemies(); enemyCount++) { var newEnemy = Instantiate( waveConfig.GetEnemyPrefab(), waveConfig.GetWayPoints()[0].transform.position, Quaternion.identity); gameSessionScript.AddEnemies(); newEnemy.GetComponent <EnemyPathing>().SetWaveConfig(waveConfig); yield return(new WaitForSeconds(waveConfig.GetTimeBetweenSpawns())); if ((enemyCount == waveConfig.GetNumberOfEnemies() - 1) && (delayCoroutineUntilAllEnemiesSpawned)) { yield return(new WaitUntil(() => gameSessionScript.ReturnEnemies() <= gameSessionScript.ReturnDestroyedEnemies())); } } }