diff options
Diffstat (limited to 'scripts/wave_spawner.gd')
-rw-r--r-- | scripts/wave_spawner.gd | 27 |
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()) |