summaryrefslogtreecommitdiff
path: root/Scripts/SpawnZone.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Scripts/SpawnZone.gd')
-rw-r--r--Scripts/SpawnZone.gd41
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