From 56278de1d73a836f3243794d67c352d267778d4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torjus=20H=C3=A5kestad?= Date: Wed, 20 Aug 2025 19:41:13 +0200 Subject: [PATCH] game: add spawn rate to debug ui --- global_const.gd | 2 ++ scenes/main.gd | 1 - scenes/managers/enemy_manager.gd | 7 +++++-- scenes/managers/enemy_manager.tscn | 2 +- scenes/managers/ui/debug_ui.gd | 4 ++++ scenes/managers/ui/main_ui.tscn | 22 ++++++++++++++++++++++ 6 files changed, 34 insertions(+), 4 deletions(-) diff --git a/global_const.gd b/global_const.gd index 0b27129..4040af5 100644 --- a/global_const.gd +++ b/global_const.gd @@ -10,6 +10,8 @@ signal sig_debug_enemy_god_mode(value: bool) signal sig_debug_stats_set(key: String, value: String) @warning_ignore("unused_signal") signal sig_stop_spawning(value: bool) +@warning_ignore("unused_signal") +signal sig_set_spawn_rate(value: float) const GROUP_ENEMY = "enemy" const GROUP_DAMAGEABLE = "damagable" diff --git a/scenes/main.gd b/scenes/main.gd index 8e7151a..66e3316 100644 --- a/scenes/main.gd +++ b/scenes/main.gd @@ -14,7 +14,6 @@ func _process(delta: float) -> void: elapsed_time += delta main_ui.player_ui.set_elapsed_time(elapsed_time) - func _unhandled_input(event: InputEvent) -> void: if event.is_action_pressed("ui_cancel"): main_ui.pause_ui.toggle_pause_ui() diff --git a/scenes/managers/enemy_manager.gd b/scenes/managers/enemy_manager.gd index 15f15db..4a65011 100644 --- a/scenes/managers/enemy_manager.gd +++ b/scenes/managers/enemy_manager.gd @@ -11,9 +11,10 @@ const ENEMY_RAT = preload("res://scenes/enemies/enemy_rat.tscn") func _ready() -> void: - timer.wait_time = spawn_rate / 1 + timer.wait_time = 1 / spawn_rate timer.start() GlobalConst.sig_stop_spawning.connect(_on_stop_spawning) + GlobalConst.sig_set_spawn_rate.connect(_on_set_spawn_rate) func _on_timer_timeout() -> void: @@ -25,9 +26,11 @@ func _on_timer_timeout() -> void: new_enemy.target = target add_child(new_enemy) - func _on_stop_spawning(val: bool): if val: timer.stop() elif timer.is_stopped(): timer.start() + +func _on_set_spawn_rate(val: float): + timer.wait_time = 1 / val diff --git a/scenes/managers/enemy_manager.tscn b/scenes/managers/enemy_manager.tscn index a38e2ed..66699bd 100644 --- a/scenes/managers/enemy_manager.tscn +++ b/scenes/managers/enemy_manager.tscn @@ -4,7 +4,7 @@ [node name="EnemyManager" type="Node2D"] script = ExtResource("1_tfsap") -max_enemies = 50 +max_enemies = 500 spawn_rate = 1.0 [node name="Timer" type="Timer" parent="."] diff --git a/scenes/managers/ui/debug_ui.gd b/scenes/managers/ui/debug_ui.gd index 57c17ab..5ee54db 100644 --- a/scenes/managers/ui/debug_ui.gd +++ b/scenes/managers/ui/debug_ui.gd @@ -75,3 +75,7 @@ func update_debug_stats() -> void: func _on_time_scale_slider_value_changed(value: float) -> void: Engine.time_scale = value + + +func _on_spawn_rate_value_changed(value: float) -> void: + GlobalConst.sig_set_spawn_rate.emit(value) diff --git a/scenes/managers/ui/main_ui.tscn b/scenes/managers/ui/main_ui.tscn index 041f973..a396a82 100644 --- a/scenes/managers/ui/main_ui.tscn +++ b/scenes/managers/ui/main_ui.tscn @@ -154,6 +154,27 @@ max_value = 1.0 step = 0.1 value = 1.0 +[node name="MarginContainer2" type="MarginContainer" parent="CanvasLayer/DebugUI/PanelContainer/VBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_constants/margin_left = 6 +theme_override_constants/margin_right = 6 + +[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/DebugUI/PanelContainer/VBoxContainer/MarginContainer2"] +layout_mode = 2 + +[node name="Label" type="Label" parent="CanvasLayer/DebugUI/PanelContainer/VBoxContainer/MarginContainer2/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Spawn rate" + +[node name="SpawnRate" type="HSlider" parent="CanvasLayer/DebugUI/PanelContainer/VBoxContainer/MarginContainer2/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +max_value = 10.0 +step = 0.1 +value = 1.0 + [node name="StatsContainer" type="PanelContainer" parent="CanvasLayer/DebugUI"] layout_mode = 0 offset_left = 938.0 @@ -176,3 +197,4 @@ layout_mode = 2 [connection signal="toggled" from="CanvasLayer/DebugUI/PanelContainer/VBoxContainer/EnemyGodModeCheck" to="CanvasLayer/DebugUI" method="_on_enemy_god_mode_check_toggled"] [connection signal="toggled" from="CanvasLayer/DebugUI/PanelContainer/VBoxContainer/StatsCheck" to="CanvasLayer/DebugUI" method="_on_stats_check_toggled"] [connection signal="value_changed" from="CanvasLayer/DebugUI/PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/TimeScaleSlider" to="CanvasLayer/DebugUI" method="_on_time_scale_slider_value_changed"] +[connection signal="value_changed" from="CanvasLayer/DebugUI/PanelContainer/VBoxContainer/MarginContainer2/HBoxContainer/SpawnRate" to="CanvasLayer/DebugUI" method="_on_spawn_rate_value_changed"]