diff --git a/src/ui/menus/debug_menu/debug_menu.gd b/src/ui/menus/debug_menu/debug_menu.gd index aee0d62..b4f3d31 100644 --- a/src/ui/menus/debug_menu/debug_menu.gd +++ b/src/ui/menus/debug_menu/debug_menu.gd @@ -11,6 +11,8 @@ var _track_list_dirty := false @onready var toothbrush: CheckButton = %Toothbrush @onready var stickers: CheckButton = %Stickers +@onready var alert_level_label: Label = %AlertLevelLabel + @onready var tracks_collected_list: VBoxContainer = %TracksCollectedList @onready var append_target: Panel = %AppendTarget @@ -26,6 +28,7 @@ func _ready() -> void: toothbrush.set_pressed_no_signal(World.instance.manager.toothbrush_unlocked) stickers.set_pressed_no_signal(World.instance.manager.stickers_unlocked) _build_track_list() + _update_alert_level() func _build_track_list() -> void: @@ -107,7 +110,31 @@ func _update_track_list() -> void: World.instance.manager.mp3_collection = track_list +func _update_alert_level() -> void: + if World.instance and World.instance.manager: + alert_level_label.text = str(World.instance.manager.alert_level) + + func unlock_doors() -> void: for node: Node in get_tree().get_nodes_in_group("Bulkheads"): if node.has_method("open"): node.call("open") + + +func trigger_alarm() -> void: + World.instance.manager.raise_alert(1) + _update_alert_level.call_deferred() + + +func reset_alert_level() -> void: + World.instance.manager.clear_alert() + _update_alert_level.call_deferred() + + +func spawn_beast() -> void: + World.instance.spook_manager.spawn_beast_near_player() + + +func kill_beasts() -> void: + for c: Node in get_tree().get_nodes_in_group(GrunkBeast.GROUP): + c.queue_free() diff --git a/src/ui/menus/debug_menu/debug_menu.tscn b/src/ui/menus/debug_menu/debug_menu.tscn index c201059..025ca1b 100644 --- a/src/ui/menus/debug_menu/debug_menu.tscn +++ b/src/ui/menus/debug_menu/debug_menu.tscn @@ -172,6 +172,39 @@ alignment = 2 layout_mode = 2 text = "Advance to next milestone" +[node name="HBoxContainer7" type="HBoxContainer" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 +alignment = 2 + +[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer7"] +layout_mode = 2 +text = "Current alert level: " + +[node name="AlertLevelLabel" type="Label" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer7"] +unique_name_in_owner = true +layout_mode = 2 +text = "0" + +[node name="TriggerAlarm" type="Button" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer7"] +layout_mode = 2 +text = "Trigger alarm" + +[node name="ResetAlertLevel" type="Button" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer7"] +layout_mode = 2 +text = "Reset alert level" + +[node name="HBoxContainer8" type="HBoxContainer" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 +alignment = 2 + +[node name="SpawnBeast" type="Button" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer8"] +layout_mode = 2 +text = "Spawn grunkbeast" + +[node name="KillBeasts" type="Button" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer8"] +layout_mode = 2 +text = "Despawn all grunkbeasts" + [node name="HBoxContainer6" type="HBoxContainer" parent="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer"] layout_mode = 2 theme_override_constants/separation = 16 @@ -342,6 +375,10 @@ preserve_on_drag = true [connection signal="toggled" from="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer4/Toothbrush" to="." method="set_toothbrush_unlocked"] [connection signal="toggled" from="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer4/Stickers" to="." method="set_stickers_unlocked"] [connection signal="pressed" from="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer5/UnlockNextMilestone" to="." method="unlock_next_milestone"] +[connection signal="pressed" from="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer7/TriggerAlarm" to="." method="trigger_alarm"] +[connection signal="pressed" from="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer7/ResetAlertLevel" to="." method="reset_alert_level"] +[connection signal="pressed" from="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer8/SpawnBeast" to="." method="spawn_beast"] +[connection signal="pressed" from="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer8/KillBeasts" to="." method="kill_beasts"] [connection signal="child_entered_tree" from="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6/TracksCollectedColumn/TracksCollected/MarginContainer/ScrollContainer/MarginContainer/TracksCollectedList" to="." method="_on_track_list_changed" unbinds=1] [connection signal="child_exiting_tree" from="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6/TracksCollectedColumn/TracksCollected/MarginContainer/ScrollContainer/MarginContainer/TracksCollectedList" to="." method="_on_track_list_changed" unbinds=1] [connection signal="child_order_changed" from="MarginContainer/VBoxContainer/ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer6/TracksCollectedColumn/TracksCollected/MarginContainer/ScrollContainer/MarginContainer/TracksCollectedList" to="." method="_on_track_list_changed"]