//Spawns all enemies in the given waveConfig based on its parameters IEnumerator SpawnEnemiesInStruct(GameObject enemyPrefab, int numEnemies, WaveConfig waveConfig) { Debug.Log("Running structs"); _spawning = true; _activeWaves++; if (_activeWaves > 1) { yield return(new WaitForSeconds(waveConfig.GetDelayBetweenSpawns() * _activeWaves * 2)); } for (int numSpawned = 0; numSpawned < numEnemies; numSpawned++) { var enemy = Instantiate(enemyPrefab, _spawnpoints[FindRandomSpawnpointIndex()].transform.position, Quaternion.identity); enemy.transform.parent = gameObject.transform; yield return(new WaitForSeconds(waveConfig.GetDelayBetweenSpawns() + Random.Range(-waveConfig.GetRandomSpawnOffset(), waveConfig.GetRandomSpawnOffset()))); } _activeWaves--; if (_activeWaves == 0) { _spawning = false; shopCounter++; } }