23 lines
452 B
GDScript
23 lines
452 B
GDScript
class_name WaveNode extends Node2D
|
|
|
|
@export var spawn_interval := 0.2
|
|
signal finished;
|
|
var entities := 0;
|
|
|
|
func _ready() -> void:
|
|
entities = get_child_count()
|
|
|
|
func spawn_wave():
|
|
if get_child_count() == 0:
|
|
finished.emit()
|
|
return;
|
|
|
|
for c : Spawner in get_children():
|
|
c.spawn();
|
|
c.finished.connect(entity_left)
|
|
await get_tree().create_timer(spawn_interval).timeout
|
|
|
|
func entity_left():
|
|
entities -= 1
|
|
if entities <= 0:
|
|
finished.emit()
|