summaryrefslogtreecommitdiff
path: root/Stages/Spawn/spawn.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Stages/Spawn/spawn.gd')
-rw-r--r--Stages/Spawn/spawn.gd32
1 files changed, 32 insertions, 0 deletions
diff --git a/Stages/Spawn/spawn.gd b/Stages/Spawn/spawn.gd
new file mode 100644
index 0000000..fd7309a
--- /dev/null
+++ b/Stages/Spawn/spawn.gd
@@ -0,0 +1,32 @@
+extends Node2D
+
+
+@export var spawn_count := 10
+@export var spawn_frequency := 2.0
+
+var spawned_count := 0
+
+
+func _ready() -> void:
+ $SpawnTimer.wait_time = spawn_frequency / Game.speed
+ Game.speed_changed.connect(func():
+ $SpawnTimer.wait_time = spawn_frequency / Game.speed
+ # calculate remaining time and set fraction accordingly
+ )
+
+ $AnimatedSprite.play("default")
+ $AnimatedSprite.animation_finished.connect(func():
+ _on_spawn_timer_timeout()
+ $SpawnTimer.start()
+ )
+
+
+
+func _on_spawn_timer_timeout() -> void:
+ var unit: Unit = preload("res://Units/Default.tscn").instantiate()
+ unit.position = $SpawnPosition.global_position
+ get_tree().current_scene.add_child(unit)
+
+ spawned_count += 1
+ if spawned_count == spawn_count:
+ $SpawnTimer.stop()