IEnumerator SpawnWave(Wave wave) { state = SpawnState.SPAWNING; upgradeMenu.DisableUpgradeButton(); fade.FadeOut(); CalculateBuffs(); List <Transform> spawnPoints = new List <Transform>(); if ((wave.range * 2 + 1) > spawns.Count) { spawnPoints = spawns; } else { for (int i = 1; i <= wave.range; ++i) { spawnPoints.Add(spawns[spawns.Count - i]); } for (int i = 0; i <= wave.range; ++i) { spawnPoints.Add(spawns[i]); } } for (int i = 0; i < wave.count; i++) { SpawnEnemies(wave.enemy, spawnPoints); yield return(new WaitForSeconds(wave.delay)); } state = SpawnState.WAITING; yield break; }