all spawners available can be used on first wave tick
This commit is contained in:
@@ -57,14 +57,14 @@ public partial class WaveManager : Node
|
|||||||
{
|
{
|
||||||
var randomizedSpawners = Spawners.ToArray();
|
var randomizedSpawners = Spawners.ToArray();
|
||||||
randomizedSpawners.Shuffle();
|
randomizedSpawners.Shuffle();
|
||||||
|
|
||||||
foreach (var (enemyDescription, numberRemaining) in CurrentWave)
|
foreach (var spawner in randomizedSpawners)
|
||||||
{
|
{
|
||||||
if (numberRemaining <= 0) continue;
|
if (SpawnersInUse.Contains(spawner)) continue;
|
||||||
foreach (var spawner in randomizedSpawners)
|
foreach (var (enemyDescription, numberRemaining) in CurrentWave)
|
||||||
{
|
{
|
||||||
|
if (numberRemaining <= 0) continue;
|
||||||
if (!spawner.SupportedEnemyTypes.Contains(enemyDescription.Type)) continue;
|
if (!spawner.SupportedEnemyTypes.Contains(enemyDescription.Type)) continue;
|
||||||
if (SpawnersInUse.Contains(spawner)) continue;
|
|
||||||
|
|
||||||
var spawnedEnemy = spawner.SpawnEnemy(enemyDescription);
|
var spawnedEnemy = spawner.SpawnEnemy(enemyDescription);
|
||||||
if (spawnedEnemy == null) continue;
|
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();
|
var remainingEnemiesToSpawn = CurrentWave.Values.Sum();
|
||||||
if (remainingEnemiesToSpawn <= 0) return; // Wave is fully spawned
|
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
|
GetTree().CreateTimer(1.0f).Timeout += SpawnEnemiesAsAvailable; // Call back the same function later to try and spawn the rest
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ item_0/text = "1 - ExampleLevel"
|
|||||||
|
|
||||||
[node name="SceneLister" type="Node" parent="." unique_id=149935027]
|
[node name="SceneLister" type="Node" parent="." unique_id=149935027]
|
||||||
script = ExtResource("3_stdqw")
|
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"
|
directory = "res://maps"
|
||||||
|
|
||||||
[connection signal="item_activated" from="Control/LevelButtonsContainer" to="." method="_on_level_buttons_container_item_activated"]
|
[connection signal="item_activated" from="Control/LevelButtonsContainer" to="." method="_on_level_buttons_container_item_activated"]
|
||||||
|
|||||||
Reference in New Issue
Block a user