netmasked/scripts/wave_node.gd

27 lines
524 B
GDScript

class_name WaveNode extends Node2D
@export var spawn_interval := 0.2
signal finished;
var entities := 0;
var started_wave = false
func _ready() -> void:
entities = get_child_count()
func spawn_wave():
if started_wave: return
started_wave = true
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()