diff --git a/managers/Wave/WaveManager.cs b/managers/Wave/WaveManager.cs index 64a41ac2..e5997e03 100644 --- a/managers/Wave/WaveManager.cs +++ b/managers/Wave/WaveManager.cs @@ -57,14 +57,14 @@ public partial class WaveManager : Node { var randomizedSpawners = Spawners.ToArray(); randomizedSpawners.Shuffle(); - - foreach (var (enemyDescription, numberRemaining) in CurrentWave) + + foreach (var spawner in randomizedSpawners) { - if (numberRemaining <= 0) continue; - foreach (var spawner in randomizedSpawners) + if (SpawnersInUse.Contains(spawner)) continue; + foreach (var (enemyDescription, numberRemaining) in CurrentWave) { + if (numberRemaining <= 0) continue; if (!spawner.SupportedEnemyTypes.Contains(enemyDescription.Type)) continue; - if (SpawnersInUse.Contains(spawner)) continue; var spawnedEnemy = spawner.SpawnEnemy(enemyDescription); if (spawnedEnemy == null) continue; @@ -79,6 +79,27 @@ public partial class WaveManager : Node } } + // foreach (var (enemyDescription, numberRemaining) in CurrentWave) + // { + // if (numberRemaining <= 0) continue; + // foreach (var spawner in randomizedSpawners) + // { + // if (!spawner.SupportedEnemyTypes.Contains(enemyDescription.Type)) continue; + // if (SpawnersInUse.Contains(spawner)) continue; + // + // var spawnedEnemy = spawner.SpawnEnemy(enemyDescription); + // if (spawnedEnemy == null) continue; + // + // CurrentSpawnedEnemies[spawnedEnemy.GetInstanceId()] = spawnedEnemy; + // SpawnersInUse.Add(spawner); + // + // spawnedEnemy.OnKilled += instanceId=> SpawnedEnemyDied(instanceId, spawner); + // + // CurrentWave[enemyDescription]--; + // break; + // } + // } + var remainingEnemiesToSpawn = CurrentWave.Values.Sum(); if (remainingEnemiesToSpawn <= 0) return; // Wave is fully spawned GetTree().CreateTimer(1.0f).Timeout += SpawnEnemiesAsAvailable; // Call back the same function later to try and spawn the rest diff --git a/menus/scenes/menus/level_select_menu/level_select_menu.tscn b/menus/scenes/menus/level_select_menu/level_select_menu.tscn index 4008fd8b..b98135ce 100644 --- a/menus/scenes/menus/level_select_menu/level_select_menu.tscn +++ b/menus/scenes/menus/level_select_menu/level_select_menu.tscn @@ -43,7 +43,7 @@ item_0/text = "1 - ExampleLevel" [node name="SceneLister" type="Node" parent="." unique_id=149935027] script = ExtResource("3_stdqw") -files = Array[String](["res://maps/levels/1 - tuto_movement.tscn", "res://maps/levels/2 - tuto_sword.tscn", "res://maps/levels/3 - tuto_enemies.tscn", "res://maps/zoos/grounded_flying_ennemies.tscn", "res://maps/gyms/metrics.tscn"]) +files = Array[String](["res://maps/levels/1 - tuto_movement.tscn", "res://maps/levels/2 - tuto_sword.tscn", "res://maps/levels/3 - tuto_enemies.tscn", "res://maps/levels/4 - tuto_waves.tscn"]) directory = "res://maps" [connection signal="item_activated" from="Control/LevelButtonsContainer" to="." method="_on_level_buttons_container_item_activated"]