private IEnumerator CreateEnemies(Wave wave, Node[] spawns)
{
if (wave != null || spawns != null || spawns.Length != 0)
{
float lastTime = Time.time;
int spawnIndex = 0;
while (wave.numberOfEnemies > 0)
{
float localDeltaTime = Time.time - lastTime;
lastTime = Time.time;
if (this.objectManager.gameState.GameSpeed == GameSpeed.Paused)
{
wave.nextEnemySpawnEvent += localDeltaTime;
}
else
{
wave.nextEnemySpawnEvent -= (localDeltaTime * ((float)this.objectManager.gameState.GameSpeed - 1f));
}
if (Time.time >= wave.nextEnemySpawnEvent)
{
GameObject enemy = this.enemyPrefabs[(int)wave.waveId];
GameObject madeEnemy = enemy.GetObjectFromPool(
enemy.gameObject.name,
spawns[spawnIndex].UnityPosition,
Quaternion.Euler(new Vector3(90, 0, 0)));
madeEnemy.name = enemy.name;
wave.nextEnemySpawnEvent = Time.time + wave.spawnDelay;
wave.numberOfEnemies--;
spawnIndex++;
if (spawnIndex >= spawns.Length)
{
spawnIndex = 0;
}
}
yield return new WaitForSeconds(wave.spawnDelay / ((float)GameSpeed.X3));
}
}
}