summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/wave_spawner.gd27
1 files changed, 16 insertions, 11 deletions
diff --git a/scripts/wave_spawner.gd b/scripts/wave_spawner.gd
index 725f3e1..4e6e973 100644
--- a/scripts/wave_spawner.gd
+++ b/scripts/wave_spawner.gd
@@ -8,15 +8,21 @@ extends Node2D
@onready var map = get_node("../Map")
@onready var _wave_timer = $Timer
-@onready var _wave_pool : Array[Array]
@onready var _path : Path2D
+@onready var _enemy_map : Dictionary[String, PackedScene]
+@onready var _wave_pool : Array[Array] = [
+ ["fodder", "soldier"],
+ ["fodder", "soldier", "gnome"],
+ ["soldier", "gnome"],
+]
+
func _ready() -> void:
- _wave_pool = [
- [fodder_enemy, soldier_enemy],
- [soldier_enemy, fodder_enemy, gnome_enemy],
- [gnome_enemy, gnome_enemy],
- ]
+ _enemy_map = {
+ "fodder": fodder_enemy,
+ "soldier": soldier_enemy,
+ "gnome": gnome_enemy,
+ }
_wave_timer.wait_time = game_stats_config.wave_time
var curve : Curve2D = Curve2D.new()
@@ -50,8 +56,7 @@ func spawn_wave(current_wave):
var crawler_type = _select_crawler(current_wave)
if crawler_type:
selected_crawlers.append(crawler_type)
- # FIXME
- total_worth += 2
+ total_worth += game_stats_config.crawlers[crawler_type]["worth"]
var spawn_interval: float = game_stats_config.wave_time / selected_crawlers.size()
@@ -59,7 +64,7 @@ func spawn_wave(current_wave):
await get_tree().create_timer(spawn_interval).timeout
_spawn_crawler(crawler)
-func _select_crawler(current_wave) -> PackedScene:
+func _select_crawler(current_wave) -> String:
var curr_wave_pool = _wave_pool[current_wave - 1]
if randi() % 100 < 80:
# spawn fodder
@@ -68,9 +73,9 @@ func _select_crawler(current_wave) -> PackedScene:
var non_fodder = curr_wave_pool.slice(1, curr_wave_pool.size())
return non_fodder[randi() % non_fodder.size()]
-func _spawn_crawler(crawler : PackedScene):
+func _spawn_crawler(crawler : String):
var follow_path : PathFollow2D = PathFollow2D.new()
follow_path.rotates = false
follow_path.loop = false
_path.add_child(follow_path)
- follow_path.add_child(crawler.instantiate())
+ follow_path.add_child(_enemy_map[crawler].instantiate())