diff options
| author | altaf-creator <dev@altafcreator.com> | 2025-10-20 01:43:48 +0800 |
|---|---|---|
| committer | altaf-creator <dev@altafcreator.com> | 2025-10-20 01:43:48 +0800 |
| commit | 466bec0b724632f6dd2e1555a7bd58ffc1dd0458 (patch) | |
| tree | d6645ea11914edeec645299fa497a9e542dbaec7 /Scripts/SpawnZone.gd | |
Jam version.
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 |
