aboutsummaryrefslogtreecommitdiff
path: root/scripts/spawner.gd
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/spawner.gd')
-rw-r--r--scripts/spawner.gd24
1 files changed, 24 insertions, 0 deletions
diff --git a/scripts/spawner.gd b/scripts/spawner.gd
new file mode 100644
index 0000000..9866168
--- /dev/null
+++ b/scripts/spawner.gd
@@ -0,0 +1,24 @@
+extends Timer
+
+var enemy_holder : Node
+var queue : Array
+
+func fetch ():
+ var root = get_tree().root.get_node("world")
+ enemy_holder = root.get_node("enemies")
+
+func next ():
+ if queue.size() == 0: return null
+ var n = queue[0]
+ queue.remove(0)
+ return n
+
+func _on_timer_batch_timeout():
+ # fetch called by wave
+ var n = next()
+ if n == null:
+ queue_free()
+ return
+
+ enemy_holder.spawn(n.enemy)
+ start(n.cooldown)