diff options
Diffstat (limited to 'Scripts/SpawnZone.gd')
-rw-r--r-- | Scripts/SpawnZone.gd | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Scripts/SpawnZone.gd b/Scripts/SpawnZone.gd new file mode 100644 index 0000000..fdcb10a --- /dev/null +++ b/Scripts/SpawnZone.gd @@ -0,0 +1,41 @@ +extends Area2D +class_name SpawnZone + +var spawned : bool = false + +@export var anim_to_play : Array[AnimationPlayer] +@export var spawn_to_enable : Array[Spawner] + +func _ready() -> void: + var timer = Timer.new() + add_child(timer) + timer.wait_time = .5 + timer.timeout.connect(_timeout) + timer.start() + +func _on_body_entered(body:Node2D) -> void: + if spawned: + return + + if body is Entity: + if body.is_player: + for anim in anim_to_play: + anim.play("close") + + for spawner in spawn_to_enable: + spawner.all_spawned_dead.connect(_a_spawner_finished) + spawner.start() + + spawned = true + +var finished_counter = 0 + +func _a_spawner_finished() -> void: + if finished_counter >= len(spawn_to_enable) - 1: + for anim in anim_to_play: + anim.play("open") + else: + finished_counter += 1 + +func _timeout() -> void: + monitoring = true |