From 38a2bb05949ab62bb79c4dff39dfd93660da4a9c Mon Sep 17 00:00:00 2001 From: Jakob Feldmann Date: Wed, 11 Oct 2023 17:25:01 +0200 Subject: [PATCH] feat: retry level completely, fix: timer hud pause --- src/Autoload/GlobalState.gd | 5 ++- src/Sounds/default_bus_layout.tres | 2 +- src/UserInterface/Buttons/RetryButton.gd | 4 +-- .../Buttons/RetryCompleteButton.gd | 8 +++++ .../Buttons/RetryCompleteButton.tscn | 12 +++++++ src/UserInterface/Screens/HUD.tscn | 2 +- .../Screens/InGameMenu/PauseScreen.tscn | 33 ++++++++++++------- .../InGameMenu/SavedCheckBackIngameButton.gd | 12 +++---- 8 files changed, 53 insertions(+), 25 deletions(-) create mode 100644 src/UserInterface/Buttons/RetryCompleteButton.gd create mode 100644 src/UserInterface/Buttons/RetryCompleteButton.tscn diff --git a/src/Autoload/GlobalState.gd b/src/Autoload/GlobalState.gd index 9939c2b..6febed0 100644 --- a/src/Autoload/GlobalState.gd +++ b/src/Autoload/GlobalState.gd @@ -93,12 +93,11 @@ func set_savepoint(levelName: String, position: Vector2) -> void: func remove_savepoint(levelName: String) -> void: if !gsr.progress_dict.has(levelName): return - gsr.progress_dict[levelName].erase(levelName) + gsr.progress_dict[levelName].erase("savepoint") + gsr.progress_dict[levelName].erase("uncompletedleveltime") SaveManager.save_default() - - func get_property_value(levelName: String, propertyName: String) -> int: if gsr.progress_dict.has(levelName) && gsr.progress_dict[levelName].has(propertyName): return gsr.progress_dict[levelName][propertyName] diff --git a/src/Sounds/default_bus_layout.tres b/src/Sounds/default_bus_layout.tres index 2ecad21..f299e52 100644 --- a/src/Sounds/default_bus_layout.tres +++ b/src/Sounds/default_bus_layout.tres @@ -41,7 +41,7 @@ resource_name = "LowPassFilter" cutoff_hz = 3000.0 [resource] -bus/0/volume_db = inf_neg +bus/0/volume_db = -12.3958 bus/1/name = "Music" bus/1/solo = false bus/1/mute = false diff --git a/src/UserInterface/Buttons/RetryButton.gd b/src/UserInterface/Buttons/RetryButton.gd index 7793a3c..2a37055 100644 --- a/src/UserInterface/Buttons/RetryButton.gd +++ b/src/UserInterface/Buttons/RetryButton.gd @@ -3,5 +3,5 @@ extends AudibleButton onready var level_state := get_tree().root.get_child(4).get_node("%LevelState") func _on_button_up() -> void: - get_tree().paused = false - get_tree().reload_current_scene() + get_tree().paused = false + get_tree().reload_current_scene() diff --git a/src/UserInterface/Buttons/RetryCompleteButton.gd b/src/UserInterface/Buttons/RetryCompleteButton.gd new file mode 100644 index 0000000..e252646 --- /dev/null +++ b/src/UserInterface/Buttons/RetryCompleteButton.gd @@ -0,0 +1,8 @@ +extends AudibleButton + +onready var level_state := get_tree().root.get_child(4).get_node("%LevelState") + +func _on_button_up() -> void: + GlobalState.remove_savepoint(level_state.levelName) + get_tree().paused = false + get_tree().reload_current_scene() diff --git a/src/UserInterface/Buttons/RetryCompleteButton.tscn b/src/UserInterface/Buttons/RetryCompleteButton.tscn new file mode 100644 index 0000000..29514a6 --- /dev/null +++ b/src/UserInterface/Buttons/RetryCompleteButton.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://src/UserInterface/Buttons/RetryCompleteButton.gd" type="Script" id=1] + +[node name="RetryCompleteButton" type="Button"] +margin_right = 139.0 +margin_bottom = 78.0 +size_flags_vertical = 3 +text = "Retry Level" +script = ExtResource( 1 ) + +[connection signal="button_up" from="." to="." method="_on_button_up"] diff --git a/src/UserInterface/Screens/HUD.tscn b/src/UserInterface/Screens/HUD.tscn index de91188..365869a 100644 --- a/src/UserInterface/Screens/HUD.tscn +++ b/src/UserInterface/Screens/HUD.tscn @@ -56,7 +56,7 @@ tracks/0/keys = { } [node name="HUD" type="Control"] -pause_mode = 2 +pause_mode = 1 anchor_right = 1.0 anchor_bottom = 1.0 mouse_filter = 1 diff --git a/src/UserInterface/Screens/InGameMenu/PauseScreen.tscn b/src/UserInterface/Screens/InGameMenu/PauseScreen.tscn index 4624ed0..2c915f1 100644 --- a/src/UserInterface/Screens/InGameMenu/PauseScreen.tscn +++ b/src/UserInterface/Screens/InGameMenu/PauseScreen.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=44 format=2] +[gd_scene load_steps=45 format=2] [ext_resource path="res://assets/meta/ui_theme.tres" type="Theme" id=1] [ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-theme.tres" type="Theme" id=2] @@ -29,6 +29,7 @@ [ext_resource path="res://addons/controller_icons/assets/key/arrow_down.png" type="Texture" id=27] [ext_resource path="res://src/UserInterface/Screens/MainMenu/AudioSlider.gd" type="Script" id=28] [ext_resource path="res://src/UserInterface/Buttons/MenuNavigationButton.gd" type="Script" id=29] +[ext_resource path="res://src/UserInterface/Buttons/RetryCompleteButton.tscn" type="PackedScene" id=30] [sub_resource type="Gradient" id=17] interpolation_mode = 2 @@ -865,7 +866,7 @@ focus_mode = 2 [node name="Continue" type="Button" parent="PauseOverlay/Panel/VBoxContainer"] unique_name_in_owner = true margin_right = 222.0 -margin_bottom = 46.0 +margin_bottom = 38.0 focus_neighbour_top = NodePath("../MainMenuButton") focus_neighbour_bottom = NodePath("../Controls") size_flags_vertical = 3 @@ -873,9 +874,9 @@ text = "Continue" script = ExtResource( 6 ) [node name="Controls" type="Button" parent="PauseOverlay/Panel/VBoxContainer"] -margin_top = 50.0 +margin_top = 42.0 margin_right = 222.0 -margin_bottom = 97.0 +margin_bottom = 80.0 focus_neighbour_top = NodePath("../Continue") focus_neighbour_bottom = NodePath("../Audio") size_flags_vertical = 3 @@ -883,27 +884,35 @@ text = "Controls" script = ExtResource( 23 ) [node name="Audio" type="Button" parent="PauseOverlay/Panel/VBoxContainer"] -margin_top = 101.0 +margin_top = 84.0 margin_right = 222.0 -margin_bottom = 148.0 +margin_bottom = 122.0 focus_neighbour_top = NodePath("../Controls") -focus_neighbour_bottom = NodePath("../RetryButton") +focus_neighbour_bottom = NodePath("../RetryCheckpoint") size_flags_vertical = 3 text = "Audio" script = ExtResource( 23 ) -[node name="RetryButton" parent="PauseOverlay/Panel/VBoxContainer" instance=ExtResource( 4 )] -margin_top = 152.0 +[node name="RetryCheckpoint" parent="PauseOverlay/Panel/VBoxContainer" instance=ExtResource( 4 )] +margin_top = 126.0 margin_right = 222.0 -margin_bottom = 199.0 +margin_bottom = 165.0 focus_neighbour_top = NodePath("../Audio") +focus_neighbour_bottom = NodePath("../RetryLevel") +text = "Retry Checkpoint" + +[node name="RetryLevel" parent="PauseOverlay/Panel/VBoxContainer" instance=ExtResource( 30 )] +margin_top = 169.0 +margin_right = 222.0 +margin_bottom = 207.0 +focus_neighbour_top = NodePath("../RetryCheckpoint") focus_neighbour_bottom = NodePath("../MainMenuButton") [node name="MainMenuButton" parent="PauseOverlay/Panel/VBoxContainer" instance=ExtResource( 3 )] -margin_top = 203.0 +margin_top = 211.0 margin_right = 222.0 margin_bottom = 250.0 -focus_neighbour_top = NodePath("../RetryButton") +focus_neighbour_top = NodePath("../RetryLevel") focus_neighbour_bottom = NodePath("../Continue") text = "Main Menu" script = ExtResource( 29 ) diff --git a/src/UserInterface/Screens/InGameMenu/SavedCheckBackIngameButton.gd b/src/UserInterface/Screens/InGameMenu/SavedCheckBackIngameButton.gd index 32e45cc..20de2ca 100644 --- a/src/UserInterface/Screens/InGameMenu/SavedCheckBackIngameButton.gd +++ b/src/UserInterface/Screens/InGameMenu/SavedCheckBackIngameButton.gd @@ -1,9 +1,9 @@ extends AudibleButton func _on_button_up() -> void: - if(!$"../..".changes_made || $"../..".changes_saved): - $"%ControlsMenu".close() - get_tree().set_input_as_handled() - else: - set_process_input(false) - $"%ReallyQuitMenu".open() + if(!$"../..".changes_made || $"../..".changes_saved): + $"%ControlsMenu".close() + get_tree().set_input_as_handled() + else: + set_process_input(false) + $"%ReallyQuitMenu".open()