From 2ab816dda52de7c436fb97057140f3b9a3b13eed Mon Sep 17 00:00:00 2001 From: Adrian Schmid Date: Mon, 17 Jul 2023 19:00:17 +0200 Subject: [PATCH 01/34] accessibility menu: added function for screenreader toggle --- src/logic-scenes/startup/startup.tscn | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/logic-scenes/startup/startup.tscn b/src/logic-scenes/startup/startup.tscn index 5228fed7..91c77b0a 100644 --- a/src/logic-scenes/startup/startup.tscn +++ b/src/logic-scenes/startup/startup.tscn @@ -50,6 +50,10 @@ func previous(): focus_list[current_tab].grab_focus() else: current_tab -= 1 + +func _on_screenreader_toggled(button_pressed): + State.screen_reader = button_pressed # this is how you reach the global state + print_debug(State.screen_reader) " [sub_resource type="GDScript" id="GDScript_v567h"] @@ -524,6 +528,7 @@ grow_horizontal = 2 grow_vertical = 2 text = "I stream this game, please show content notes." +[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/Screenreader" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="_on_screenreader_toggled"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/navbuttons/Next" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="next"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/navbuttons/Next" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="next"] From 51026dcbdbe0387abfc57bf18853fbdae7414a7e Mon Sep 17 00:00:00 2001 From: Adrian Schmid Date: Tue, 18 Jul 2023 20:59:00 +0200 Subject: [PATCH 02/34] some notes for me + debug function for printing settings --- src/singletons/global_state.gd | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/singletons/global_state.gd b/src/singletons/global_state.gd index 298009fc..29c4248d 100644 --- a/src/singletons/global_state.gd +++ b/src/singletons/global_state.gd @@ -1,11 +1,11 @@ extends Node - -var screen_reader:bool = false -var disable_rendering: bool = false -var simplified_navigation:bool = false -var show_navigation_buttons: bool = false -var enable_subtitles: bool = false -var enable_closed_caption: bool = false + # For Startup Scene: +var screen_reader:bool = false # Screenreader +var disable_rendering: bool = false # show nav button +var simplified_navigation:bool = false # simplified controls +var show_navigation_buttons: bool = false # show nav ui +var enable_subtitles: bool = false # ItemList2 +var enable_closed_caption: bool = false # ItemList2 var reduce_motion: bool = false var streaming_content_notes: bool = false var show_content_notes: bool = false @@ -87,3 +87,17 @@ func transition_stage_to(thief: Object): func queue_for_stage(target: Object, index: int = 1): stage_list.insert(index, target) + +func print_settings(): + print_debug("Screenreader: ", screen_reader, " / ", + "Disable rendering: ", disable_rendering, " / ", + "Simplified controls: ", simplified_navigation, " / ", + "Show navigation buttons: ", show_navigation_buttons, " / ", + "Enable subtitles: ", enable_subtitles, " / ", + "Enable CC: ", enable_closed_caption, " / ") + + + + + + From 559d60eeefed91a304fbd130cd04a9e3a8b9b033 Mon Sep 17 00:00:00 2001 From: Adrian Schmid Date: Tue, 18 Jul 2023 21:00:21 +0200 Subject: [PATCH 03/34] 1st page accessibility settings (almost working except for fonts and ui scale) --- src/logic-scenes/startup/startup.tscn | 82 +++++++++++++++++++++++++-- 1 file changed, 78 insertions(+), 4 deletions(-) diff --git a/src/logic-scenes/startup/startup.tscn b/src/logic-scenes/startup/startup.tscn index 56d7b304..b6b7300a 100644 --- a/src/logic-scenes/startup/startup.tscn +++ b/src/logic-scenes/startup/startup.tscn @@ -8,9 +8,61 @@ [sub_resource type="GDScript" id="GDScript_a78qq"] script/source = "extends Panel +@onready var show_navigation_buttons = $\"CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/margin/show nav ui\" func starting(): $\"CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/navbuttons/Next\".grab_focus() + +# toggle for disable rendering +func _on_disable_rendering_toggled(button_pressed): + State.disable_rendering = button_pressed + +# toggle for simplified controls +func _on_simplified_controls_toggled(button_pressed): + State.simplified_navigation = button_pressed # this is how you reach the global state + show_navigation_buttons.disabled = not button_pressed # if simpl. controls was toggled - disabled = false + +# toggle for show nav buttons +func _on_show_nav_ui_toggled(button_pressed): + State.show_navigation_buttons = button_pressed + +# select font +# still needs handling to change the style +func _on_font_style_selected(index): + match index: + 0: + print_debug(\"messy handwriting selected\") + #self.theme.set_font(\"NanumBrushScript.ttf\") + return + 1: + print_debug(\"easy handwriting selected\") + #owner.theme.set_font(\"NanumPenScript.ttf\") + return + 2: + print_debug(\"legible serif selected\") + #owner.theme.set_font(\"Eczar-VariableFont_wght.ttf\") + return + 3: + print_debug(\"hyperlegible sans selected\") + #owner.theme.set_font(\"AtkinsonHyperlegible.ttf\") + return + 4: + print_debug(\"system front selected\") + #owner.theme.set_font(SystemFont.fallbacks[0]) + return + +func _on_subtitle_option_selected(index): + match index: + 0: + State.enable_subtitles = false + State.enable_closed_caption = false + 1: + State.enable_subtitles = true + State.enable_closed_caption = false + 2: + State.enable_subtitles = true + State.enable_closed_caption = true + print_debug(State.print_settings()) " [sub_resource type="GDScript" id="GDScript_ia432"] @@ -18,6 +70,9 @@ script/source = "extends TabContainer var focus_list: Array +@onready var disable_rendering = $\"physical Accessibility/Container2/margin2/show nav buttons\" +@onready var simplified_controls = $\"physical Accessibility/Container2/simplified controls\" + func _ready(): for child in get_children(): focus_list.append(_find_selectable_in(child)) @@ -61,7 +116,11 @@ func previous(): func _on_screenreader_toggled(button_pressed): State.screen_reader = button_pressed # this is how you reach the global state - print_debug(State.screen_reader) + disable_rendering.disabled = not button_pressed # if screenreader was toggled - disabled = false + simplified_controls.button_pressed = button_pressed + State.simplified_navigation = button_pressed + + " [sub_resource type="GDScript" id="GDScript_v567h"] @@ -152,7 +211,6 @@ layout_mode = 2 [node name="Screenreader" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"] layout_mode = 2 -button_pressed = true text = "activate Screenreader" script = SubResource("GDScript_v567h") @@ -174,7 +232,6 @@ layout_mode = 2 [node name="show nav ui" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/margin"] layout_mode = 2 disabled = true -button_pressed = true text = "show Navigation Buttons" [node name="GridContainer" type="GridContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"] @@ -210,7 +267,7 @@ layout_mode = 2 text = "Subtitles:" [node name="VSeparator2" type="VSeparator" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"] -custom_minimum_size = Vector2(30, 0) +custom_minimum_size = Vector2(30, 60) layout_mode = 2 [node name="ItemList2" type="OptionButton" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"] @@ -225,6 +282,18 @@ popup/item_1/id = 1 popup/item_2/text = "text and audio" popup/item_2/id = 2 +[node name="Label3" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"] +layout_mode = 2 +text = "UI scale:" + +[node name="VSeparator3" type="VSeparator" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"] +custom_minimum_size = Vector2(30, 60) +layout_mode = 2 + +[node name="HSlider" type="HSlider" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"] +custom_minimum_size = Vector2(0, 60) +layout_mode = 2 + [node name="navbuttons" type="VSplitContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility"] layout_mode = 2 size_flags_horizontal = 4 @@ -538,6 +607,11 @@ grow_vertical = 2 text = "I stream this game, please show content notes." [connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/Screenreader" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="_on_screenreader_toggled"] +[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/margin2/show nav buttons" to="." method="_on_disable_rendering_toggled"] +[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/simplified controls" to="." method="_on_simplified_controls_toggled"] +[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/margin/show nav ui" to="." method="_on_show_nav_ui_toggled"] +[connection signal="item_selected" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer/ItemList" to="." method="_on_font_style_selected"] +[connection signal="item_selected" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer/ItemList2" to="." method="_on_subtitle_option_selected"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/navbuttons/Next" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="next"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/navbuttons/Next" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="next"] From d76242d7d0cbb8a8d160f89b3b5467268bead3c9 Mon Sep 17 00:00:00 2001 From: Adrian Schmid Date: Tue, 18 Jul 2023 21:37:04 +0200 Subject: [PATCH 04/34] added code for audio settings --- src/logic-scenes/startup/startup.tscn | 57 ++++++++++++++++++++++++--- 1 file changed, 51 insertions(+), 6 deletions(-) diff --git a/src/logic-scenes/startup/startup.tscn b/src/logic-scenes/startup/startup.tscn index b6b7300a..f6048dee 100644 --- a/src/logic-scenes/startup/startup.tscn +++ b/src/logic-scenes/startup/startup.tscn @@ -62,7 +62,33 @@ func _on_subtitle_option_selected(index): 2: State.enable_subtitles = true State.enable_closed_caption = true + print_debug(State.print_settings()) + + +func _on_mute_soundtrack_toggled(button_pressed): + AudioServer.set_bus_mute(AudioServer.get_bus_index(\"music\"),button_pressed) + + +func _on_mute_sfx_toggled(button_pressed): + AudioServer.set_bus_mute(AudioServer.get_bus_index(\"sfx\"),button_pressed) + + +func _on_music_volume_changed(value): + AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"music\"), linear_to_db(value)) + + +func _on_sfx_volume_changed(value): + AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"sfx\"), linear_to_db(value)) + + +func _on_text_volume_changed(value): + AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"text\"), linear_to_db(value)) + + +func _on_master_volume_changed(value): + AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"Master\"), linear_to_db(value)) + " [sub_resource type="GDScript" id="GDScript_ia432"] @@ -343,9 +369,9 @@ text = "Music" layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 4 -max_value = 2.0 +max_value = 1.0 step = 0.05 -value = 1.0 +value = 0.5 ticks_on_borders = true script = ExtResource("3_q2gbh") @@ -357,9 +383,9 @@ text = "Sounds" layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 4 -max_value = 2.0 +max_value = 1.0 step = 0.05 -value = 1.0 +value = 0.5 [node name="Label4" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/VBoxContainer/GridContainer"] layout_mode = 2 @@ -370,9 +396,22 @@ text = "Speech layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 4 -max_value = 2.0 +max_value = 1.0 step = 0.05 -value = 1.0 +value = 0.5 + +[node name="Label5" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/VBoxContainer/GridContainer"] +layout_mode = 2 +text = "Sum +" + +[node name="Sum" type="HSlider" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/VBoxContainer/GridContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +max_value = 1.0 +step = 0.05 +value = 0.5 [node name="Audio Sliders" type="HBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/VBoxContainer"] layout_mode = 2 @@ -614,6 +653,12 @@ text = "I stream this game, please show content notes." [connection signal="item_selected" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer/ItemList2" to="." method="_on_subtitle_option_selected"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/navbuttons/Next" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="next"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"] +[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/VBoxContainer/CheckBox" to="." method="_on_mute_soundtrack_toggled"] +[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/VBoxContainer/CheckBox2" to="." method="_on_mute_sfx_toggled"] +[connection signal="value_changed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/VBoxContainer/GridContainer/Music" to="." method="_on_music_volume_changed"] +[connection signal="value_changed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/VBoxContainer/GridContainer/Sounds" to="." method="_on_sfx_volume_changed"] +[connection signal="value_changed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/VBoxContainer/GridContainer/Speech" to="." method="_on_text_volume_changed"] +[connection signal="value_changed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/VBoxContainer/GridContainer/Sum" to="." method="_on_master_volume_changed"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/navbuttons/Next" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="next"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/show content Notes" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes" method="show"] From 9365ea9fb191ba0c42e23d87ea867f26db6febe7 Mon Sep 17 00:00:00 2001 From: Adrian Schmid Date: Tue, 18 Jul 2023 22:02:35 +0200 Subject: [PATCH 05/34] Added settings for final page (+ some notes on the global state) --- src/logic-scenes/startup/startup.tscn | 30 ++++++++++++++++++++++++++- src/singletons/global_state.gd | 8 +++---- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/logic-scenes/startup/startup.tscn b/src/logic-scenes/startup/startup.tscn index f6048dee..863f2839 100644 --- a/src/logic-scenes/startup/startup.tscn +++ b/src/logic-scenes/startup/startup.tscn @@ -26,6 +26,11 @@ func _on_simplified_controls_toggled(button_pressed): func _on_show_nav_ui_toggled(button_pressed): State.show_navigation_buttons = button_pressed +# toggle streaming notes +func _on_streaming_notes_toggled(button_pressed): + State.streaming_content_notes = button_pressed + + # select font # still needs handling to change the style func _on_font_style_selected(index): @@ -66,6 +71,8 @@ func _on_subtitle_option_selected(index): print_debug(State.print_settings()) +# Volume Settings + func _on_mute_soundtrack_toggled(button_pressed): AudioServer.set_bus_mute(AudioServer.get_bus_index(\"music\"),button_pressed) @@ -89,6 +96,19 @@ func _on_text_volume_changed(value): func _on_master_volume_changed(value): AudioServer.set_bus_volume_db(AudioServer.get_bus_index(\"Master\"), linear_to_db(value)) + +# Final Page + +func _on_content_notes_toggled(button_pressed): + State.show_content_notes = button_pressed + + +func _on_provide_summaries_toggled(button_pressed): + State.provide_summaries = button_pressed + + +func _on_allow_skipping_toggled(button_pressed): + State.allow_skipping = button_pressed " [sub_resource type="GDScript" id="GDScript_ia432"] @@ -371,7 +391,7 @@ size_flags_horizontal = 3 size_flags_vertical = 4 max_value = 1.0 step = 0.05 -value = 0.5 +value = 1.0 ticks_on_borders = true script = ExtResource("3_q2gbh") @@ -561,6 +581,10 @@ text = "show content notes relevant to the current context" layout_mode = 2 text = "prompt me with content notes before playing a scene" +[node name="CheckBox3" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer"] +layout_mode = 2 +text = "I would like to be able to skip scenes and get a summary." + [node name="navbuttons" type="VSplitContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes"] layout_mode = 2 size_flags_horizontal = 4 @@ -663,7 +687,11 @@ text = "I stream this game, please show content notes." [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/show content Notes" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes" method="show"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/show content Notes" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/show content Notes" method="set_disabled" binds= [true]] +[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer/CheckBox" to="." method="_on_content_notes_toggled"] +[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer/CheckBox2" to="." method="_on_provide_summaries_toggled"] +[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer/CheckBox3" to="." method="_on_allow_skipping_toggled"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/navbuttons/Next" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="next"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons/Next" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="next"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"] +[connection signal="toggled" from="continue/CheckBox" to="." method="_on_streaming_notes_toggled"] diff --git a/src/singletons/global_state.gd b/src/singletons/global_state.gd index 29c4248d..b1c8a230 100644 --- a/src/singletons/global_state.gd +++ b/src/singletons/global_state.gd @@ -6,10 +6,10 @@ var simplified_navigation:bool = false # simplified controls var show_navigation_buttons: bool = false # show nav ui var enable_subtitles: bool = false # ItemList2 var enable_closed_caption: bool = false # ItemList2 -var reduce_motion: bool = false -var streaming_content_notes: bool = false -var show_content_notes: bool = false -var provide_summaries: bool = false +var reduce_motion: bool = false # ? +var streaming_content_notes: bool = false # continue/CheckBox +var show_content_notes: bool = false # ContentNotes/.../Checkbox +var provide_summaries: bool = false # ContentNotes/.../Checkbox2 var allow_skipping: bool = false var stage_list:Array = [] From 03c03812427de97061d1edb923edf261e083ec63 Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 13:49:09 +0200 Subject: [PATCH 06/34] finalising disclaimers and thank you --- src/disclaimer.tscn | 11 +++++++---- src/thank-you.tscn | 24 ++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/disclaimer.tscn b/src/disclaimer.tscn index 4ffdb482..99618a41 100644 --- a/src/disclaimer.tscn +++ b/src/disclaimer.tscn @@ -83,10 +83,13 @@ text = "Welcome to the frame of mind alpha" [node name="Label2" type="Label" parent="childhood/PanelContainer/VBoxContainer"] layout_mode = 2 size_flags_horizontal = 3 -text = "Thank you for participating in our public alpha. The goal is to see if the premise of our game works, if the mechanics are interesting and, if the game makes sense. +text = "Thank you for participating in our public alpha. The goal is to see if the core of +our game works, if the mechanics are interesting and, if the game makes sense. -We would like to inform you: especially the acessibility settings right now are not functional. This will be our main focus while we wait for the first batch of alpha feedback. -There are also no save-games yet. +Right now, controller support is very limited and acessibility settings are spotty. +Both will be worked on while the alpha is running. +You will also not be able to help Lisa find a better frame of mind, as the second chapter is not yet implemented. Please know that many disruptive thoughts Lisa has in the first chapter were designed to be resolved later in the game. +The game also does not support save games yet. Frame of Mind uses a Creative Commons Non Commercial Share Alike 4.0 license. You can use the game and it's assets freely, as long as you also contribute back to the creative Commons Community. Feel free to reach out if you need a commercial License. Twokinds is created by Thomas J. Fischbach, who granted us permission to use it in a Creative Commons Project." @@ -98,7 +101,7 @@ layout_mode = 2 size_flags_horizontal = 4 theme_override_fonts/font = ExtResource("2_rmsdo") theme_override_font_sizes/font_size = 50 -text = "Start the alpha!" +text = "I understand, please start the alpha" [node name="Label3" type="Label" parent="childhood/PanelContainer/VBoxContainer"] layout_mode = 2 diff --git a/src/thank-you.tscn b/src/thank-you.tscn index 763b15f0..47b43aeb 100644 --- a/src/thank-you.tscn +++ b/src/thank-you.tscn @@ -1,8 +1,10 @@ -[gd_scene load_steps=6 format=3 uid="uid://citwb7f4dl3l1"] +[gd_scene load_steps=8 format=3 uid="uid://citwb7f4dl3l1"] [ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="1_picwm"] [ext_resource type="FontFile" uid="uid://cb66e4mqysgf8" path="res://import/fonts/title_handwriting.tres" id="2_jb5y5"] [ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_oob40"] +[ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="4_48hwg"] +[ext_resource type="PackedScene" uid="uid://vkcdj8c3ytbq" path="res://logic-scenes/board/post-it.tscn" id="5_sfuv4"] [sub_resource type="GDScript" id="GDScript_d32iw"] script/source = "extends Button @@ -33,6 +35,7 @@ layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +offset_right = -478.0 grow_horizontal = 2 grow_vertical = 2 @@ -74,7 +77,8 @@ horizontal_alignment = 1 [node name="Label2" type="Label" parent="childhood/PanelContainer/VBoxContainer"] layout_mode = 2 size_flags_horizontal = 3 -text = "By testing the alpha, you help us make the game as good as it can get. +text = "We are sorry, that you did not yet have the ability to resolve Lisas thoughts. +By testing the alpha, you help us make the game as good as it can get. Frame of mind is made by betalars @@ -124,3 +128,19 @@ size_flags_vertical = 8 texture = ExtResource("3_oob40") expand_mode = 2 stretch_mode = 4 + +[node name="card" parent="." instance=ExtResource("4_48hwg")] +position = Vector2(1195, 329) +text = "Lukas did not ask for consent, he didn't explain a thing, I didn’t even move! Yet he dared to assume, that " + +[node name="post-it" parent="card" instance=ExtResource("5_sfuv4")] +position = Vector2(-61, 110) +text = "I was wet so I must have been into it" + +[node name="card2" parent="." instance=ExtResource("4_48hwg")] +position = Vector2(1201, 617) +text = "Lukas jumped me, he didn't even explain a thing or ask consent. I was confused and paralised, so " + +[node name="post-it" parent="card2" instance=ExtResource("5_sfuv4")] +position = Vector2(-61, 110) +text = "I didn't say stop" From bc7a81eece49615b94a8670cc221f7eed5528f21 Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 13:49:48 +0200 Subject: [PATCH 07/34] adding bilboard toggle --- src/dev-util/click-trough-area.gd | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/dev-util/click-trough-area.gd b/src/dev-util/click-trough-area.gd index 378b8068..4533fcb0 100644 --- a/src/dev-util/click-trough-area.gd +++ b/src/dev-util/click-trough-area.gd @@ -1,15 +1,17 @@ extends Area3D +@export var billboard = true @onready var sprite: Sprite3D = $UiSprite @onready var viewport: SubViewport = $UiSprite/SubViewport func _process(_delta): - var camera = get_viewport().get_camera_3d() - - var up = (camera.global_position - global_position) - up = up.cross(Vector3.UP).cross(up) - - look_at(global_position - (camera.global_position - global_position), up) + if billboard: + var camera = get_viewport().get_camera_3d() + + var up = (camera.global_position - global_position) + up = up.cross(Vector3.UP).cross(up) + + look_at(global_position - (camera.global_position - global_position), up) func _unhandled_input(event): viewport.push_input(event) From aef423ad55ec6f1c3cfbbc74d8e1a87568df8ac7 Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 13:50:19 +0200 Subject: [PATCH 08/34] making sure card picker can be reset --- src/logic-scenes/card_picker/card_picker.gd | 44 ++++++++++++------- src/logic-scenes/card_picker/card_picker.tscn | 36 +++++++++++++++ 2 files changed, 65 insertions(+), 15 deletions(-) diff --git a/src/logic-scenes/card_picker/card_picker.gd b/src/logic-scenes/card_picker/card_picker.gd index d953c170..00216d7b 100644 --- a/src/logic-scenes/card_picker/card_picker.gd +++ b/src/logic-scenes/card_picker/card_picker.gd @@ -7,6 +7,7 @@ enum { CARDS_SELECTED, TRANSITION, POSTS, + POSTS_SELECTED, DONE } @@ -30,8 +31,11 @@ var selection_state = INI: set(state): selection_state = state _input_locked = !(state == CARDS or state == POSTS) + + if state == DONE: + reset() -var anim_players:Array +var anim_players:Array = [] var curr_selection_id: int = -1: set(new_id): if selection_state == CARDS or selection_state == POSTS: @@ -47,8 +51,8 @@ var curr_selection_id: int = -1: print(curr_selection_id) -var output:Array -var options:Array +var output:Array = [] +var options:Array = [] signal cards_picked(Array) @@ -56,12 +60,17 @@ signal cards_picked(Array) func _ready(): if get_parent() == get_tree().root: selection_state = CARDS + reset() + +func reset(): + output = [] + options = [] + anim_players = [] + curr_selection_id = -1 var card_controls = $cards.get_children() for control in card_controls: options.append(control.get_child(1)) anim_players.append(control.get_child(0)) - - fill_card_slots(0) func fill_card_slots(id: int): for i in range($cards.get_child_count()): @@ -80,7 +89,10 @@ func fill_post_slots(): options[i].replace_with(post_its[i]) options[i].owner = self -func _unhandled_input(event): +func _input(event): + if event.is_action_pressed("ui_end"): + scene_finished(1, false) + if has_stage and not _input_locked: if event.is_action_pressed("ui_up") or event.is_action_pressed("ui_left") or event.is_action_pressed("ui_focus_next"): curr_selection_id -= 1 @@ -88,8 +100,6 @@ func _unhandled_input(event): curr_selection_id += 1 if event.is_action_pressed("ui_accept"): pick(curr_selection_id) - if event.is_action_pressed("ui_end"): - scene_finished(1) func pick(id: int): if id == -1: @@ -99,7 +109,7 @@ func pick(id: int): if selection_state == CARDS: selection_state = CARDS_SELECTED elif selection_state == POSTS: - selection_state = DONE + selection_state = POSTS_SELECTED anim_players[id].play("pick") var yield_to = anim_players[id].animation_finished @@ -145,11 +155,13 @@ func pick(id: int): await anim_players[0].animation_finished selection_state = POSTS - elif selection_state == DONE: + elif selection_state == POSTS_SELECTED: var out_str:Array[String] = [] for card in output: out_str.append(card.name) emit_signal("cards_picked", out_str) + print(out_str) + selection_state = DONE State.leave_stage(self) func handle_hover(new_highlight): @@ -161,10 +173,12 @@ func handle_mouse_button(new_selection: Node, button_event: InputEventMouseButto if button_event.button_index == MOUSE_BUTTON_LEFT and button_event.pressed: pick(options.find(new_selection)) -func scene_finished(id: int): - fill_card_slots(id) - State.transition_stage_to(self) - selection_state = CARDS +func scene_finished(id: int, repeat): + print(name, id, repeat) + if not repeat: + fill_card_slots(id) + State.transition_stage_to(self) + selection_state = CARDS -func play_scene(_id): +func play_scene(_id, _repeat): pass diff --git a/src/logic-scenes/card_picker/card_picker.tscn b/src/logic-scenes/card_picker/card_picker.tscn index 0a3a238b..81e55022 100644 --- a/src/logic-scenes/card_picker/card_picker.tscn +++ b/src/logic-scenes/card_picker/card_picker.tscn @@ -139,6 +139,18 @@ tracks/1/keys = { "update": 0, "values": [0.174533, -0.109599] } +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath(".:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0.5), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} [sub_resource type="Animation" id="Animation_ldr2c"] resource_name = "select" @@ -369,6 +381,18 @@ tracks/1/keys = { "update": 0, "values": [0.349066, 0.0] } +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath(".:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0.5), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} [sub_resource type="Animation" id="Animation_2c94q"] resource_name = "select" @@ -599,6 +623,18 @@ tracks/1/keys = { "update": 0, "values": [0.349066, 0.10472] } +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath(".:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0.5), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} [sub_resource type="Animation" id="Animation_pcu23"] resource_name = "select" From 5b7fb7d1f528440c7c35f42c220766330ba98581 Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 13:51:26 +0200 Subject: [PATCH 09/34] implement skipping functionality --- .../collectable/collectable_ui.gd | 36 ++++++++++++++----- .../collectable/collectable_ui.tscn | 4 +++ 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/logic-scenes/collectable/collectable_ui.gd b/src/logic-scenes/collectable/collectable_ui.gd index 07da6c92..a102a24b 100644 --- a/src/logic-scenes/collectable/collectable_ui.gd +++ b/src/logic-scenes/collectable/collectable_ui.gd @@ -21,7 +21,11 @@ class_name Collectable_Ui if collapse and has_stage: State.leave_stage(self) -@export var is_story: bool = false +@export var is_story: bool = false: + set(story): + is_story = story + if not story: + $Panel/Content/Buttons/VBoxContainer/collect_or_listen.text = "Order Thoughts" @export var has_stage: bool = false: set(focused): print("set focus of card to ", focused) @@ -29,14 +33,11 @@ class_name Collectable_Ui if has_stage == focused: return if focused: + owner.reveal() has_stage = true - print(visible) - if not visible: show() collapsed = false - if collected: - $Panel/Content/Buttons/VBoxContainer/put_back.grab_focus() - else: - $Panel/Content/Buttons/VBoxContainer/collect_or_listen.grab_focus() + if not visible: show() + $Panel/Content/Buttons/VBoxContainer/collect_or_listen.grab_focus() elif has_stage: has_stage = false get_viewport().gui_release_focus() @@ -72,6 +73,8 @@ class_name Collectable_Ui $Panel/Content/ContentNotes.text = new_notes signal card_collected +signal open_board +signal scene_skipped(i: int) # Called when the node enters the scene tree for the first time. func _ready(): @@ -82,6 +85,7 @@ func _ready(): item_name = item_name content_notes = content_notes + is_story = is_story func _hide_buttons(): if is_inside_tree(): @@ -108,6 +112,8 @@ func hide(): func show(): if !visible: + $Panel/Content/ContentNotes.visible = State.show_content_notes + $Panel/Content/Buttons/VBoxContainer/skip.visible = State.allow_skipping and is_story and not skipped if not collapsed: _show_buttons() modulate = Color() @@ -122,8 +128,22 @@ func _yoink_focus(): func _on_pick_button_pressed(): print("card collected!") if scene != null: - get_tree().call_group("animation_player", "play_scene", scene) + get_tree().call_group("animation_player", "play_scene", scene, collected) + if skipped: emit_signal("scene_skipped", -1) + collected = true + else: + emit_signal("open_board") State.leave_stage(self) func _on_pick_button_released(): hide() + + +func _on_skip_pressed(): + print("Scene skipped!") + if scene != null: + emit_signal("scene_skipped", 1) + skipped = true + $Panel/Content/Buttons/VBoxContainer/collect_or_listen.text = "collect (un-skip)" + + State.leave_stage(self) diff --git a/src/logic-scenes/collectable/collectable_ui.tscn b/src/logic-scenes/collectable/collectable_ui.tscn index 09070c16..57b30e7e 100644 --- a/src/logic-scenes/collectable/collectable_ui.tscn +++ b/src/logic-scenes/collectable/collectable_ui.tscn @@ -137,18 +137,21 @@ text = "Collect" script = SubResource("GDScript_g0qhf") [node name="Summary" type="Button" parent="Panel/Content/Buttons/VBoxContainer"] +visible = false layout_mode = 2 tooltip_text = "Take this with you, but get a neutral description of it's story." text = "get neutral summary" script = SubResource("GDScript_g0qhf") [node name="skip" type="Button" parent="Panel/Content/Buttons/VBoxContainer"] +visible = false layout_mode = 2 tooltip_text = "Choose this to entirely skip this Item without being unable to progress in the story. Skipped Segments can still be interacted with via the Pause Screen, if you decide to change your mind." text = "skip" script = SubResource("GDScript_g0qhf") [node name="put_back" type="Button" parent="Panel/Content/Buttons/VBoxContainer"] +visible = false layout_mode = 2 text = "put back" script = SubResource("GDScript_g0qhf") @@ -172,4 +175,5 @@ libraries = { [connection signal="pressed" from="Panel/Content/Buttons/VBoxContainer/collect_or_listen" to="." method="_on_pick_button_pressed"] [connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/Summary" to="." method="_yoink_focus"] [connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/skip" to="." method="_yoink_focus"] +[connection signal="pressed" from="Panel/Content/Buttons/VBoxContainer/skip" to="." method="_on_skip_pressed"] [connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/put_back" to="." method="_yoink_focus"] From 0cbf306ba869c66ec8749aaf5492dd5058b1cbea Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 13:52:01 +0200 Subject: [PATCH 10/34] workaround for card board not being able to repopulate --- src/logic-scenes/board/card-board.gd | 27 +++++++++++++++++++---- src/logic-scenes/board/physics-board.tscn | 2 +- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/logic-scenes/board/card-board.gd b/src/logic-scenes/board/card-board.gd index d10424c5..93f1f3b0 100644 --- a/src/logic-scenes/board/card-board.gd +++ b/src/logic-scenes/board/card-board.gd @@ -22,6 +22,7 @@ var has_stage = false: child.process_mode = Node.PROCESS_MODE_INHERIT else: child.process_mode = Node.PROCESS_MODE_DISABLED + visible = has_stage @onready var dropzone = $HBoxContainer/dropzone @onready var postit_container = $HBoxContainer/ScrollContainer/VBoxContainer @@ -52,6 +53,10 @@ var selected_dropzone_element: int = -1 var selected_postit_list_element: int = 0 var selected_card_for_assignment +var cache: Array = [] + +signal board_completed + # Called when the node enters the scene tree for the first time. func _ready(): @@ -73,15 +78,15 @@ func _process(delta): is_area_dragged = false currently_dragged_area = null - # we should maybe consider moving this to _input() for consistency - if Input.is_action_just_pressed("ui_cancel"): - populate_board(["c_Joy","p_effort","c_backlash","c_body","c_void","p_reward","p_worried_mother","p_cross_friend"]) - # Will be used later to spawn Cards and Post-Its and remember them in the dictionary func populate_board(card_names: Array): mementos_collected += 1 + cache.append(card_names) + + if mementos_collected < 4: return + else: card_names = cache var all_cards = Array() var all_postits = Array() @@ -229,6 +234,13 @@ func attach_postit_to_card(postit: Area2D, card: Area2D, update_dict = false): reorder_areas("dropzone_content") reorder_areas("cards") reorder_areas("post_its_in_list") + + if mementos_collected == 4: + for fluff in area_dict["dropzone_content"]: + if fluff is Card: + if not fluff.has_postit_attached(): + return + emit_signal("board_completed") # Mark area that was hovered over as currently selected @@ -264,6 +276,9 @@ func reorder_areas(reorder: String): # Takes the inputs for control inputs func _input(event): + + if event.is_action_pressed("ui_cancel"): + State.leave_stage(self) # Return, if the input is a mouse event (mouse events are handled separately) if event is InputEventMouse or !has_stage or not is_instance_valid(currently_selected_node): return @@ -390,4 +405,8 @@ func _return_postit_to_panels(post_it: Area2D): reorder_areas("post_its_in_list") break +func on_scene_skipped(i: int): + mementos_collected += i +func claim_focus(): + State.pass_stage_to(self) diff --git a/src/logic-scenes/board/physics-board.tscn b/src/logic-scenes/board/physics-board.tscn index c98f8c11..ed617c19 100644 --- a/src/logic-scenes/board/physics-board.tscn +++ b/src/logic-scenes/board/physics-board.tscn @@ -144,7 +144,7 @@ layout_mode = 2 [node name="cards_remaining" type="Label" parent="instructions_panel/HBoxContainer"] layout_mode = 2 size_flags_vertical = 0 -text = "Collect Mementos to fill the mind-board." +text = "Collect all four Mementos to fill the mind-board. " horizontal_alignment = 1 vertical_alignment = 1 From 2e50009aee71faa0fcaee795cd96553f039bd727 Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 13:53:24 +0200 Subject: [PATCH 11/34] resolving some remaining group assignments --- src/dev-util/board of devs.tscn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dev-util/board of devs.tscn b/src/dev-util/board of devs.tscn index 2ae10527..fee367e1 100644 --- a/src/dev-util/board of devs.tscn +++ b/src/dev-util/board of devs.tscn @@ -158,11 +158,11 @@ text = "I am thankful for the few friends that get me" position = Vector2(0, 300) text = "I fear being rejected" -[node name="p_friends" parent="draeven/c_rejection" groups=["c_Joy", "c_boy_stuff", "c_comic_heroes", "c_fighting", "c_homework", "c_out-of-world", "c_teachers"] instance=ExtResource("2_ucudl")] +[node name="p_friends" parent="draeven/c_rejection" groups=["c_Joy", "c_boy_stuff", "c_comic_heroes", "c_fighting", "c_homework", "c_out-of-world", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 50) text = "that makes it hard to find friends" -[node name="p_laughed" parent="draeven/c_rejection" groups=["c_Joy", "c_boy_stuff", "c_comic_heroes", "c_confusion", "c_homework", "c_teachers"] instance=ExtResource("2_ucudl")] +[node name="p_laughed" parent="draeven/c_rejection" groups=["c_Joy", "c_boy_stuff", "c_comic_heroes", "c_confusion", "c_homework", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 140) text = "I'm afraid I will just get laughed at" From 5ede0fbe8625cab78fc04548f27f7865ff3cea5e Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 13:54:36 +0200 Subject: [PATCH 12/34] reclaiming focus when scene is repeated --- src/logic-scenes/player_controller/player_controller.gd | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/logic-scenes/player_controller/player_controller.gd b/src/logic-scenes/player_controller/player_controller.gd index 76a721ce..3df52640 100644 --- a/src/logic-scenes/player_controller/player_controller.gd +++ b/src/logic-scenes/player_controller/player_controller.gd @@ -164,10 +164,14 @@ func _input(event:InputEvent): State.take_stage(self, true) get_tree().call_group("interactables", "collapse") -func play_scene(id: int): +func play_scene(id: int, _repeat): if id == Scenes.id.YOUTH_DRAEVEN: var rotation_tween = create_tween() +func scene_finished(_id, repeat: bool): + if repeat: + State.take_stage(self, true) + func _on_bed_enter(_body): if not (crouched or on_crouch_cooldown): $PlayerAnimationPlayer.queue("crouch") From b05cbe6b29ca09555c27dd5d20f2a65bb0a34556 Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 13:55:04 +0200 Subject: [PATCH 13/34] final youth room changes --- .../youth_room/youth_room.tscn | 132 ++++++++++++++---- 1 file changed, 101 insertions(+), 31 deletions(-) diff --git a/src/base-environments/youth_room/youth_room.tscn b/src/base-environments/youth_room/youth_room.tscn index d74657bb..a4851d5a 100644 --- a/src/base-environments/youth_room/youth_room.tscn +++ b/src/base-environments/youth_room/youth_room.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=105 format=3 uid="uid://b3b0gyvklqn50"] +[gd_scene load_steps=108 format=3 uid="uid://b3b0gyvklqn50"] [ext_resource type="Script" path="res://base-environments/youth_room/room_handle.gd" id="1_aitp0"] [ext_resource type="PackedScene" uid="uid://c0i4ydmxtxfho" path="res://base-environments/youth_room/import/youth_room.glb" id="1_jf3oi"] @@ -9,6 +9,7 @@ [ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_xqd4w"] [ext_resource type="PackedScene" uid="uid://bnskiyx1sksww" path="res://logic-scenes/board/physics-board.tscn" id="4_gyjxx"] [ext_resource type="AudioStream" uid="uid://1tvopjmo6dp2" path="res://base-environments/youth_room/audio/Azure Studios - mgd-723687677.mp3" id="5_fe1yj"] +[ext_resource type="PackedScene" uid="uid://citwb7f4dl3l1" path="res://thank-you.tscn" id="5_kts6y"] [ext_resource type="ArrayMesh" uid="uid://wuxbl6u3s8yo" path="res://base-environments/youth_room/shaders/starlight-mesh.res" id="6_gy6jv"] [ext_resource type="AudioStream" uid="uid://d1r1tvb1paup4" path="res://base-environments/youth_room/audio/draeven.ogg" id="7_125rh"] [ext_resource type="AudioStream" uid="uid://cudna8k7fw06t" path="res://base-environments/youth_room/audio/Moving Loop.wav" id="8_egnow"] @@ -31,9 +32,6 @@ [ext_resource type="PackedScene" uid="uid://bpjympn3ps3wo" path="res://logic-scenes/luna/luna_imported.tscn" id="27_pb1jl"] [ext_resource type="Material" uid="uid://ct7uc5i5yp5qf" path="res://base-environments/youth_room/import/materials/wall.tres" id="28_oiweb"] -[sub_resource type="BoxShape3D" id="BoxShape3D_0eexn"] -size = Vector3(0.0600758, 0.423278, 0.723589) - [sub_resource type="BoxShape3D" id="BoxShape3D_j3mqx"] size = Vector3(0.711297, 2.53136, 1.74815) @@ -785,7 +783,7 @@ tracks/11/path = NodePath("ScenePlayer") tracks/11/interp = 1 tracks/11/loop_wrap = true tracks/11/keys = { -"times": PackedFloat32Array(9.7), +"times": PackedFloat32Array(5.1), "transitions": PackedFloat32Array(1), "values": [{ "args": [], @@ -1037,7 +1035,7 @@ tracks/19/path = NodePath("ScenePlayer") tracks/19/interp = 1 tracks/19/loop_wrap = true tracks/19/keys = { -"times": PackedFloat32Array(138.4), +"times": PackedFloat32Array(8.4), "transitions": PackedFloat32Array(1), "values": [{ "args": [], @@ -1517,13 +1515,16 @@ _data = { script/source = "extends AnimationPlayer var has_stage +var is_repeating = false func start_soundtrack(): $Moving.play(70) $Childhood.play(70) $VoiceTraining.play(70) -func play_scene(id: int): +func play_scene(id: int, repeat = false): + get_tree().call_group(\"interactables\", \"collapse\") + is_repeating = repeat State.queue_for_stage(self) match id: Scenes.id.YOUTH_CHILDHOOD: @@ -1532,21 +1533,23 @@ func play_scene(id: int): play(\"voice training\") Scenes.id.YOUTH_JUI_JUTSU: play(\"jui_jutsu\") + Scenes.id.YOUTH_DRAEVEN: + play(\"draeven\") func _on_ini_room(): play(\"intro\") func on_childhood_done(): - get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_CHILDHOOD) + get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_CHILDHOOD, is_repeating) func on_voice_training_done(): - get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_VOICE_TRAINING) + get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_VOICE_TRAINING, is_repeating) func on_jui_jutsu_done(): - get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_JUI_JUTSU) + get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_JUI_JUTSU, is_repeating) func on_draeven_done(): - get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_DRAEVEN) + get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_DRAEVEN, is_repeating) func scene_finished(_id): play(\"RESET\") @@ -1743,6 +1746,15 @@ viewport_path = NodePath("logic/clothes_interaction/UiWrapper/UiSprite/SubViewpo [sub_resource type="ViewportTexture" id="ViewportTexture_nn6wl"] viewport_path = NodePath("logic/Comic-interaction/UiWrapper/UiSprite/SubViewport") +[sub_resource type="ViewportTexture" id="ViewportTexture_8rywf"] +viewport_path = NodePath("logic/Draeven-interaction/UiWrapper/UiSprite/SubViewport") + +[sub_resource type="SphereShape3D" id="SphereShape3D_c7buh"] +radius = 0.469631 + +[sub_resource type="ViewportTexture" id="ViewportTexture_hdmps"] +viewport_path = NodePath("logic/Mind Board/UiWrapper/UiSprite/SubViewport") + [sub_resource type="GDScript" id="GDScript_35dmj"] script/source = "extends SpotLight3D @@ -1879,10 +1891,10 @@ script/source = "extends AnimationPlayer func _on_ini_room(): play(\"light_up\") -func play_scene(_id: int): +func play_scene(_id: int, _repeat): queue(\"lights_out\") -func scene_finished(_id: int): +func scene_finished(_id: int, _repeat): queue(\"light_up\") " @@ -1973,11 +1985,11 @@ func focus_object(): var dof_strength_tween: Tween = create_tween() dof_strength_tween.tween_property(camera_attributes, \"dof_blur_amount\", 0.4, 1) -func play_scene(_id: int): +func play_scene(_id: int, _repeat): focus_object() -func scene_finished(_id: int): - pass +func _on_picker_cards_picked(_cards): + focus_env() " [sub_resource type="QuadMesh" id="QuadMesh_n875y"] @@ -2009,13 +2021,6 @@ script = ExtResource("1_aitp0") [node name="logic" type="Node3D" parent="."] -[node name="Area3D" type="Area3D" parent="logic"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.896754, 0.847242, 1.36975) - -[node name="CollisionShape3D" type="CollisionShape3D" parent="logic/Area3D"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.346071, 0.364297) -shape = SubResource("BoxShape3D_0eexn") - [node name="PlayerController" parent="logic" groups=["camera_owner"] instance=ExtResource("3_foj4y")] transform = Transform3D(0.686123, 0, 0.727485, 0, 1, 0, -0.727485, 0, 0.686123, 0.63, 0, 0.925) @@ -2189,6 +2194,24 @@ layout_mode = 1 visible = false layout_mode = 1 +[node name="Button" type="Button" parent="logic/UI"] +visible = false +layout_mode = 0 +offset_left = 16.0 +offset_top = 12.0 +offset_right = 202.0 +offset_bottom = 55.0 +text = " finish the alpha " + +[node name="ending" parent="logic/UI" instance=ExtResource("5_kts6y")] +visible = false +layout_mode = 0 +anchors_preset = 0 +anchor_right = 0.0 +anchor_bottom = 0.0 +grow_horizontal = 1 +grow_vertical = 1 + [node name="ScenePlayer" type="AnimationPlayer" parent="logic" groups=["animation_player"]] autoplay = "RESET" libraries = { @@ -2433,7 +2456,6 @@ bus = &"music" [node name="jui_jutsu" type="CenterContainer" parent="logic/ScenePlayer"] visible = false -modulate = Color(1, 1, 1, 0) self_modulate = Color(1, 1, 1, 0.923078) anchors_preset = 15 anchor_right = 1.0 @@ -2485,7 +2507,7 @@ vertical_scroll_mode = 3 layout_mode = 2 size_flags_horizontal = 3 text = "Why do i still have this junk lying around? It’s not like I want to do ju jutsu ever again. I just fucked it. -I mean I did enjoy it while it lasted. Being able to properly hit people was great. It gave me the confidence to intimidate students, that were begging to get folded and - as I only once actually golt to do that - it also was a great vent for anger. I mean my tits just about killed me during warmup and the changing room really didn’t need mirrors - thank you I know my hips are fat and disgusting - but at least there was Lukas. +I mean I did enjoy it while it lasted. Being able to properly hit people was great. It gave me the confidence to intimidate students, that were begging to get folded and - as I only once actually got to do that - it also was a great vent for anger. I mean my tits just about killed me during warmup and the changing room really didn’t need mirrors - thank you I know my hips are fat and disgusting - but at least there was Lukas. He was such a huge nerd. He studied math in his third semester and could talk for hours about his passion. Also: my math grades pretty much leaped for my final year in high shool thanks to him. He also helped me so much with jui jitsu, as he properly floored me when I slipped up. Also - unlike everyone else - he understood that I didn’t want people to mind my chest. So Fighting for wins with him was actually rewarding even tho more often than not I ended up having to tap out. @@ -2517,7 +2539,7 @@ That was good. He was a sweet angel. Why must he be so bad at comforting? autowrap_mode = 3 visible_characters = 43 visible_characters_behavior = 1 -visible_ratio = 0.0169225 +visible_ratio = 0.0169291 [node name="StartBottom" type="TextureRect" parent="logic/ScenePlayer/jui_jutsu/PanelContainer/VBoxContainer"] custom_minimum_size = Vector2(0, 64) @@ -2802,7 +2824,7 @@ render_target_update_mode = 4 visible = false scene = 1 is_story = true -item_name = "my secret comic stash" +item_name = "comic stash" content_notes = "internalised mysoginy, genitals, bullying, fictional guns" [node name="HoverDetect" type="CollisionShape3D" parent="logic/Comic-interaction"] @@ -2810,7 +2832,7 @@ transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.23 shape = SubResource("CapsuleShape3D_72g2i") [node name="Draeven-interaction" type="Area3D" parent="logic" groups=["interactables"]] -transform = Transform3D(0.86043, 0, -0.509567, 0, 1, 0, 0.509567, 0, 0.86043, 3.5364, 0.447547, -0.697444) +transform = Transform3D(0.86043, 0, -0.509567, 0, 1, 0, 0.509567, 0, 0.86043, 0.122875, 2.03863, -0.132712) collision_layer = 16 script = ExtResource("11_6fwv8") @@ -2830,7 +2852,7 @@ shape = SubResource("BoxShape3D_cb3g8") transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758) pixel_size = 0.015 no_depth_test = true -texture = SubResource("ViewportTexture_nn6wl") +texture = SubResource("ViewportTexture_8rywf") [node name="SubViewport" type="SubViewport" parent="logic/Draeven-interaction/UiWrapper/UiSprite"] transparent_bg = true @@ -2839,10 +2861,50 @@ render_target_update_mode = 4 [node name="Collectable_ui" parent="logic/Draeven-interaction/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")] visible = false -item_name = "Mind Board" +scene = 3 +is_story = true +item_name = "Starlight" +content_notes = "Alienation" [node name="HoverDetect" type="CollisionShape3D" parent="logic/Draeven-interaction"] transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0) +shape = SubResource("SphereShape3D_c7buh") + +[node name="Mind Board" type="Area3D" parent="logic" groups=["interactables"]] +transform = Transform3D(-4.37114e-08, 0, 0.999999, 0, 1, 0, -0.999999, 0, -4.37114e-08, -0.907206, 1.17661, 1.74337) +collision_layer = 16 +script = ExtResource("11_6fwv8") + +[node name="collectable_particles" parent="logic/Mind Board" instance=ExtResource("12_qxx2k")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755) +visible = false + +[node name="UiWrapper" type="Area3D" parent="logic/Mind Board"] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0) +script = ExtResource("11_7uxd8") +billboard = false + +[node name="UI_click_collider" type="CollisionShape3D" parent="logic/Mind Board/UiWrapper"] +transform = Transform3D(2.56, -5.96046e-08, 4.76837e-07, 1.78814e-07, 2.56, -4.17233e-07, -2.38419e-07, -5.96046e-08, 2.56, 0, 1.90735e-06, 0.238397) +shape = SubResource("BoxShape3D_cb3g8") + +[node name="UiSprite" type="Sprite3D" parent="logic/Mind Board/UiWrapper"] +transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758) +pixel_size = 0.015 +no_depth_test = true +texture = SubResource("ViewportTexture_hdmps") + +[node name="SubViewport" type="SubViewport" parent="logic/Mind Board/UiWrapper/UiSprite"] +transparent_bg = true +size = Vector2i(300, 350) +render_target_update_mode = 4 + +[node name="Collectable_ui" parent="logic/Mind Board/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")] +visible = false +item_name = "Mind Board" + +[node name="HoverDetect" type="CollisionShape3D" parent="logic/Mind Board"] +transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0) shape = SubResource("CapsuleShape3D_72g2i") [node name="sfx" type="Node3D" parent="."] @@ -3066,7 +3128,6 @@ draw_pass_1 = SubResource("QuadMesh_rb6dt") [connection signal="ini_room" from="." to="logic/PlayerController" method="_on_ini_room"] [connection signal="ini_room" from="." to="logic/ScenePlayer" method="_on_ini_room"] [connection signal="ini_room" from="." to="visuals/lights/light_animation" method="_on_ini_room"] -[connection signal="mouse_entered" from="logic/Area3D" to="." method="_on_area_3d_mouse_entered"] [connection signal="ui_entered" from="logic/PlayerController" to="SceneUI" method="show"] [connection signal="ui_exited" from="logic/PlayerController" to="SceneUI" method="hide"] [connection signal="body_entered" from="logic/Bed and Ladders/ladder_trigger" to="logic/PlayerController" method="_on_bed_enter"] @@ -3077,10 +3138,19 @@ draw_pass_1 = SubResource("QuadMesh_rb6dt") [connection signal="body_exited" from="logic/Bed and Ladders/bed_reset" to="logic/PlayerController" method="_on_bed_exit"] [connection signal="body_exited" from="logic/Bed and Ladders/reset_failover" to="logic/PlayerController" method="_on_bed_exit"] [connection signal="cards_picked" from="logic/UI/picker" to="logic/UI/board" method="populate_board"] +[connection signal="cards_picked" from="logic/UI/picker" to="WorldEnvironment" method="_on_picker_cards_picked"] +[connection signal="board_completed" from="logic/UI/board" to="logic/UI/Button" method="show"] +[connection signal="pressed" from="logic/UI/Button" to="logic/UI/ending" method="show"] [connection signal="input_event" from="logic/ScenePlayer/jui_jutsu/PanelContainer/card" to="logic/ScenePlayer/jui_jutsu/PanelContainer/card" method="_on_input_event" flags=18] [connection signal="mouse_entered" from="logic/ScenePlayer/jui_jutsu/PanelContainer/card" to="logic/ScenePlayer/jui_jutsu/PanelContainer/card" method="_on_mouse_entered" flags=18] [connection signal="mouse_exited" from="logic/ScenePlayer/jui_jutsu/PanelContainer/card" to="logic/ScenePlayer/jui_jutsu/PanelContainer/card" method="_on_mouse_exited" flags=18] [connection signal="input_event" from="logic/Mask-interaction/UiWrapper" to="logic/Mask-interaction/UiWrapper" method="_on_input_event" flags=18] +[connection signal="scene_skipped" from="logic/Mask-interaction/UiWrapper/UiSprite/SubViewport/Collectable_ui" to="logic/UI/board" method="on_scene_skipped"] [connection signal="input_event" from="logic/clothes_interaction/UiWrapper" to="logic/clothes_interaction/UiWrapper" method="_on_input_event" flags=18] +[connection signal="scene_skipped" from="logic/clothes_interaction/UiWrapper/UiSprite/SubViewport/Collectable_ui" to="logic/UI/board" method="on_scene_skipped"] [connection signal="input_event" from="logic/Comic-interaction/UiWrapper" to="logic/Comic-interaction/UiWrapper" method="_on_input_event" flags=18] +[connection signal="scene_skipped" from="logic/Comic-interaction/UiWrapper/UiSprite/SubViewport/Collectable_ui" to="logic/UI/board" method="on_scene_skipped"] [connection signal="input_event" from="logic/Draeven-interaction/UiWrapper" to="logic/Draeven-interaction/UiWrapper" method="_on_input_event" flags=18] +[connection signal="scene_skipped" from="logic/Draeven-interaction/UiWrapper/UiSprite/SubViewport/Collectable_ui" to="logic/UI/board" method="on_scene_skipped"] +[connection signal="input_event" from="logic/Mind Board/UiWrapper" to="logic/Mind Board/UiWrapper" method="_on_input_event" flags=18] +[connection signal="open_board" from="logic/Mind Board/UiWrapper/UiSprite/SubViewport/Collectable_ui" to="logic/UI/board" method="claim_focus"] From 88c26caa5b1e68aeaf079f6c83b64a46b2de5cad Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 22:38:16 +0200 Subject: [PATCH 14/34] fix: cards are reset when no longer void --- src/logic-scenes/board/card.gd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/logic-scenes/board/card.gd b/src/logic-scenes/board/card.gd index f3c8a064..8910b542 100644 --- a/src/logic-scenes/board/card.gd +++ b/src/logic-scenes/board/card.gd @@ -19,8 +19,8 @@ var scale_tween if !Engine.is_editor_hint(): wiggle_pos = float(text.hash() % 100) _handle_wiggle(0) - if get_children() != [] and !Engine.is_editor_hint() and text == "": - $BackgroundSprite.void_active = true + if get_children() != [] and !Engine.is_editor_hint(): + $BackgroundSprite.void_active = text == "" @export var wiggle_strength: float = 0.2 @export var wiggle_speed: float = 5 @export_range(1, 2) var scale_bump: float = 1.05 From 69d74adaf20f43d1fdacad6822e32bd8c8833b02 Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 22:40:49 +0200 Subject: [PATCH 15/34] update steam graphics --- design/steam-assets.svg | 2597 ++++++++++++++++++++++---- design/steam-assets/Main_Capsule.png | 4 +- 2 files changed, 2206 insertions(+), 395 deletions(-) diff --git a/design/steam-assets.svg b/design/steam-assets.svg index ad222e1d..cc05eb06 100644 --- a/design/steam-assets.svg +++ b/design/steam-assets.svg @@ -90,7 +90,925 @@ inkscape:export-filename="steam-assets/itch-banner.png" inkscape:export-xdpi="96" inkscape:export-ydpi="96" />meof mindframemecomic heroesare my rolemodelsmaybe I want tobecome a teacherI like boystuffthat has mymother worriedI want to belike Agent Qthat makesme giftedwhy didn't I say stop?I will protectmy friendsmy peers were mad at thatmad at thatmad at that?A game of thoughts.of thoughts.A game + sodipodi:nodetypes="csccc" />of mindfraof thoughts.A gameme diff --git a/design/steam-assets/Main_Capsule.png b/design/steam-assets/Main_Capsule.png index c616351c..e21bdb18 100644 --- a/design/steam-assets/Main_Capsule.png +++ b/design/steam-assets/Main_Capsule.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4286f3f5b317f0aeb2c70eb3c92f85d0c32294bfd9762e605eee144385baf294 -size 284560 +oid sha256:20d0e4d2db3dd91baa233608d3d5208c9da974d2f8a69a0e56b0ed754f1a3357 +size 262203 From 7a43e8e9028dfccfeb8287c8f9a9c98ef8faf657 Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 22:41:29 +0200 Subject: [PATCH 16/34] finalise menus --- src/logic-scenes/startup/startup.tscn | 42 ++++++++++++++++++++------- src/main.tscn | 13 +-------- src/thank-you.tscn | 6 ++-- 3 files changed, 36 insertions(+), 25 deletions(-) diff --git a/src/logic-scenes/startup/startup.tscn b/src/logic-scenes/startup/startup.tscn index 863f2839..b686f5d8 100644 --- a/src/logic-scenes/startup/startup.tscn +++ b/src/logic-scenes/startup/startup.tscn @@ -109,6 +109,16 @@ func _on_provide_summaries_toggled(button_pressed): func _on_allow_skipping_toggled(button_pressed): State.allow_skipping = button_pressed + +func hide(): + get_parent().get_child(0).get_ready() + var child_tween = create_tween() + child_tween.tween_property($CenterContainer, \"modulate\", Color(1, 1, 1, 0), .5) + await child_tween.finished + var self_tween = create_tween() + self_tween.tween_property(self, \"modulate\", Color(1, 1, 1, 0), .5) + await self_tween.finished + self.visible = false " [sub_resource type="GDScript" id="GDScript_ia432"] @@ -252,11 +262,16 @@ layout_mode = 2 theme_type_variation = &"HeaderLarge" text = "physical Accessibility" +[node name="Label4" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility"] +layout_mode = 2 +text = "sorry none of these work yet :c" + [node name="Container2" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility"] layout_mode = 2 [node name="Screenreader" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"] layout_mode = 2 +disabled = true text = "activate Screenreader" script = SubResource("GDScript_v567h") @@ -270,6 +285,7 @@ text = "disable rendering" [node name="simplified controls" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"] layout_mode = 2 +disabled = true text = "simplified Controls" [node name="margin" type="MarginContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"] @@ -295,6 +311,7 @@ layout_mode = 2 [node name="ItemList" type="OptionButton" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"] layout_mode = 2 size_flags_vertical = 4 +disabled = true item_count = 5 selected = 1 popup/item_0/text = "messy handwriting" @@ -319,6 +336,7 @@ layout_mode = 2 [node name="ItemList2" type="OptionButton" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"] layout_mode = 2 size_flags_vertical = 4 +disabled = true item_count = 3 selected = 1 popup/item_0/text = "none" @@ -339,6 +357,7 @@ layout_mode = 2 [node name="HSlider" type="HSlider" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"] custom_minimum_size = Vector2(0, 60) layout_mode = 2 +editable = false [node name="navbuttons" type="VSplitContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility"] layout_mode = 2 @@ -573,17 +592,18 @@ You can always choose to just get a neutral summary of scenes or skip them entir [/ul]" fit_content = true -[node name="CheckBox" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer"] +[node name="content_notes" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer"] layout_mode = 2 -text = "show content notes relevant to the current context" +text = "show content notes during the game" -[node name="CheckBox2" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer"] +[node name="allow_skipping" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer"] layout_mode = 2 -text = "prompt me with content notes before playing a scene" +text = "allow me to skip scenes" -[node name="CheckBox3" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer"] +[node name="provide_summary" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer"] layout_mode = 2 -text = "I would like to be able to skip scenes and get a summary." +disabled = true +text = "Provide me with an optional neutral summary when skipping a scene." [node name="navbuttons" type="VSplitContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes"] layout_mode = 2 @@ -655,6 +675,7 @@ size_flags_vertical = 8 text = "skip all" [node name="CheckBox" type="CheckBox" parent="continue"] +visible = false layout_mode = 1 anchors_preset = 8 anchor_left = 0.5 @@ -687,11 +708,12 @@ text = "I stream this game, please show content notes." [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/show content Notes" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes" method="show"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/show content Notes" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/show content Notes" method="set_disabled" binds= [true]] -[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer/CheckBox" to="." method="_on_content_notes_toggled"] -[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer/CheckBox2" to="." method="_on_provide_summaries_toggled"] -[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer/CheckBox3" to="." method="_on_allow_skipping_toggled"] +[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer/content_notes" to="." method="_on_content_notes_toggled"] +[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer/allow_skipping" to="." method="_on_provide_summaries_toggled"] +[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer/provide_summary" to="." method="_on_allow_skipping_toggled"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/navbuttons/Next" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="next"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"] -[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons/Next" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="next"] +[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons/Next" to="." method="hide"] [connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"] +[connection signal="pressed" from="continue" to="." method="hide"] [connection signal="toggled" from="continue/CheckBox" to="." method="_on_streaming_notes_toggled"] diff --git a/src/main.tscn b/src/main.tscn index 95119428..876c12ee 100644 --- a/src/main.tscn +++ b/src/main.tscn @@ -1,6 +1,5 @@ -[gd_scene load_steps=10 format=3 uid="uid://befxf8uruwnrl"] +[gd_scene load_steps=9 format=3 uid="uid://befxf8uruwnrl"] -[ext_resource type="Texture2D" uid="uid://balmcptv73l2j" path="res://dev-util/menu_background.png" id="1_0oiki"] [ext_resource type="PackedScene" uid="uid://gldtxysavetf" path="res://logic-scenes/startup/startup.tscn" id="1_v5rpm"] [ext_resource type="PackedScene" uid="uid://b3b0gyvklqn50" path="res://base-environments/youth_room/youth_room.tscn" id="2_23ia3"] [ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/messy.theme" id="3_8hrj7"] @@ -19,15 +18,6 @@ func _process(delta): [node name="root" type="Node3D"] -[node name="MenuBackground" type="TextureRect" parent="."] -visible = false -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -texture = ExtResource("1_0oiki") - [node name="youth room" parent="." instance=ExtResource("2_23ia3")] [node name="Main Menu" type="Panel" parent="."] @@ -76,7 +66,6 @@ offset_bottom = 35.0 script = SubResource("GDScript_8sq0u") [node name="Startup Menu" parent="." instance=ExtResource("1_v5rpm")] -visible = false [node name="Disclaimer" parent="." instance=ExtResource("7_t45fc")] diff --git a/src/thank-you.tscn b/src/thank-you.tscn index 47b43aeb..9818173d 100644 --- a/src/thank-you.tscn +++ b/src/thank-you.tscn @@ -6,12 +6,12 @@ [ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="4_48hwg"] [ext_resource type="PackedScene" uid="uid://vkcdj8c3ytbq" path="res://logic-scenes/board/post-it.tscn" id="5_sfuv4"] -[sub_resource type="GDScript" id="GDScript_d32iw"] +[sub_resource type="GDScript" id="GDScript_ugp0t"] script/source = "extends Button func _pressed(): - OS.shell_open(\"https://gitlab.com/betalars/frame-of-mind/-/wikis/home\") + OS.shell_open(\"https://cryptpad.fr/form/#/2/form/view/T9XKMBPfCz85HoGGnt8nwl1OMyU18dMi7ubZZUJlBTM/\") " [sub_resource type="GDScript" id="GDScript_m3ofj"] @@ -105,7 +105,7 @@ size_flags_horizontal = 4 theme_override_fonts/font = ExtResource("2_jb5y5") theme_override_font_sizes/font_size = 50 text = "Quit and fill out the Survey" -script = SubResource("GDScript_d32iw") +script = SubResource("GDScript_ugp0t") [node name="Label3" type="Label" parent="childhood/PanelContainer/VBoxContainer"] layout_mode = 2 From 02ec893a2ce888fbfa2f6873516d48eec77ca9eb Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 22:42:05 +0200 Subject: [PATCH 17/34] finalise cards --- src/dev-util/board of devs.tscn | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/dev-util/board of devs.tscn b/src/dev-util/board of devs.tscn index fee367e1..0686c105 100644 --- a/src/dev-util/board of devs.tscn +++ b/src/dev-util/board of devs.tscn @@ -75,11 +75,11 @@ text = "and I want to be like agent q!" position = Vector2(0, 300) text = "I like boy stuff " -[node name="p_pretending" parent="voice_training/c_boy_stuff" groups=["c_Joy", "c_body", "c_hit", "c_homework", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] +[node name="p_pretending" parent="voice_training/c_boy_stuff" groups=["c_Joy", "c_body", "c_boy_stuff", "c_hit", "c_homework", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 50) text = "yet they think I'm just pretending" -[node name="p_girls" parent="voice_training/c_boy_stuff" groups=["c_Joy", "c_body", "c_comic_heroes", "c_hit", "c_homework", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] +[node name="p_girls" parent="voice_training/c_boy_stuff" groups=["c_Joy", "c_body", "c_boy_stuff", "c_comic_heroes", "c_hit", "c_homework", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 140) text = "and girls don't get that." @@ -113,6 +113,17 @@ text = "My body just didn't feel right" position = Vector2(-32, 140) text = "I just hate being treated like a girl" +[node name="c_void" parent="juijutsu" instance=ExtResource("1_xrckx")] +position = Vector2(0, 600) + +[node name="p_wet" parent="juijutsu/c_void" groups=["c_void"] instance=ExtResource("2_ucudl")] +position = Vector2(-32, 50) +text = "I was wet, so I must have been into it." + +[node name="p_stop" parent="juijutsu/c_void" groups=["c_void"] instance=ExtResource("2_ucudl")] +position = Vector2(-32, 140) +text = "I didn’t say stop." + [node name="c_hit" parent="juijutsu" instance=ExtResource("1_xrckx")] position = Vector2(0, 300) text = "I know how to properly hit people " @@ -125,17 +136,6 @@ text = "..., that gives me a lot of confidence." position = Vector2(-32, 140) text = "and that’s a great vent." -[node name="c_void" parent="juijutsu" instance=ExtResource("1_xrckx")] -position = Vector2(0, 600) - -[node name="p_wet" parent="juijutsu/c_void" groups=["c_void"] instance=ExtResource("2_ucudl")] -position = Vector2(-32, 50) -text = "I was wet, so I must have been into it." - -[node name="p_stop" parent="juijutsu/c_void" groups=["c_void"] instance=ExtResource("2_ucudl")] -position = Vector2(-32, 140) -text = "I didn’t say stop." - [node name="draeven" type="Control" parent="."] anchors_preset = 0 offset_left = 1234.0 From a8a3e9f054b8551ee83507d28be43e7a47add76a Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 22:43:00 +0200 Subject: [PATCH 18/34] adding provisionary init function, wip --- .../youth_room/room_handle.gd | 7 ++++ .../youth_room/youth_room.tscn | 33 +++++++++---------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/base-environments/youth_room/room_handle.gd b/src/base-environments/youth_room/room_handle.gd index ecb44c2c..19405abf 100644 --- a/src/base-environments/youth_room/room_handle.gd +++ b/src/base-environments/youth_room/room_handle.gd @@ -30,3 +30,10 @@ func _update_scene(new_mode) -> int: emit_signal("freeze") return new_mode + +func get_ready(): + self.show() + $sfx/distant_rain.play() + $"sfx/rain on window".play() + await get_tree().create_timer(0.1).timeout + $logic/UI/board.hide() diff --git a/src/base-environments/youth_room/youth_room.tscn b/src/base-environments/youth_room/youth_room.tscn index a4851d5a..34f66001 100644 --- a/src/base-environments/youth_room/youth_room.tscn +++ b/src/base-environments/youth_room/youth_room.tscn @@ -1035,7 +1035,7 @@ tracks/19/path = NodePath("ScenePlayer") tracks/19/interp = 1 tracks/19/loop_wrap = true tracks/19/keys = { -"times": PackedFloat32Array(8.4), +"times": PackedFloat32Array(2.9), "transitions": PackedFloat32Array(1), "values": [{ "args": [], @@ -1347,7 +1347,7 @@ tracks/19/path = NodePath("ScenePlayer") tracks/19/interp = 1 tracks/19/loop_wrap = true tracks/19/keys = { -"times": PackedFloat32Array(205.6), +"times": PackedFloat32Array(5.3), "transitions": PackedFloat32Array(1), "values": [{ "args": [], @@ -1464,7 +1464,7 @@ tracks/8/path = NodePath("ScenePlayer") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/keys = { -"times": PackedFloat32Array(95.2), +"times": PackedFloat32Array(2.9), "transitions": PackedFloat32Array(1), "values": [{ "args": [], @@ -1525,7 +1525,8 @@ func start_soundtrack(): func play_scene(id: int, repeat = false): get_tree().call_group(\"interactables\", \"collapse\") is_repeating = repeat - State.queue_for_stage(self) + State.pass_stage_to(self) + Input.mouse_mode = Input.MOUSE_MODE_HIDDEN match id: Scenes.id.YOUTH_CHILDHOOD: play(\"childhood\") @@ -1541,15 +1542,19 @@ func _on_ini_room(): func on_childhood_done(): get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_CHILDHOOD, is_repeating) + $childhood.hide() func on_voice_training_done(): get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_VOICE_TRAINING, is_repeating) + $\"Voice Training\".hide() func on_jui_jutsu_done(): get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_JUI_JUTSU, is_repeating) + $jui_jutsu.hide() func on_draeven_done(): get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_DRAEVEN, is_repeating) + $draeven.hide() func scene_finished(_id): play(\"RESET\") @@ -2191,26 +2196,19 @@ visible = false layout_mode = 1 [node name="board" parent="logic/UI" instance=ExtResource("4_gyjxx")] +layout_mode = 1 + +[node name="ending" parent="logic/UI" instance=ExtResource("5_kts6y")] visible = false layout_mode = 1 [node name="Button" type="Button" parent="logic/UI"] -visible = false layout_mode = 0 offset_left = 16.0 offset_top = 12.0 -offset_right = 202.0 +offset_right = 342.0 offset_bottom = 55.0 -text = " finish the alpha " - -[node name="ending" parent="logic/UI" instance=ExtResource("5_kts6y")] -visible = false -layout_mode = 0 -anchors_preset = 0 -anchor_right = 0.0 -anchor_bottom = 0.0 -grow_horizontal = 1 -grow_vertical = 1 +text = " click here to finish the alpha " [node name="ScenePlayer" type="AnimationPlayer" parent="logic" groups=["animation_player"]] autoplay = "RESET" @@ -2456,6 +2454,7 @@ bus = &"music" [node name="jui_jutsu" type="CenterContainer" parent="logic/ScenePlayer"] visible = false +modulate = Color(1, 1, 1, 0) self_modulate = Color(1, 1, 1, 0.923078) anchors_preset = 15 anchor_right = 1.0 @@ -2914,7 +2913,6 @@ transform = Transform3D(-0.410985, -0.460061, 0.787042, -0.904759, 0.311726, -0. stream = ExtResource("2_3haaq") attenuation_model = 1 volume_db = -15.367 -autoplay = true panning_strength = 0.5 bus = &"sfx" emission_angle_enabled = true @@ -2930,7 +2928,6 @@ bus = &"sfx" stream = ExtResource("22_xrkbj") attenuation_model = 3 pitch_scale = 0.8 -autoplay = true panning_strength = 0.2 bus = &"outside-rain" From 132d9cd118c9e4a8867d219bcae13cfdc696889f Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 22:43:44 +0200 Subject: [PATCH 19/34] fix: card board now stores an array, instead of an array of arrays --- src/logic-scenes/board/card-board.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/logic-scenes/board/card-board.gd b/src/logic-scenes/board/card-board.gd index 93f1f3b0..54a4ab90 100644 --- a/src/logic-scenes/board/card-board.gd +++ b/src/logic-scenes/board/card-board.gd @@ -83,7 +83,7 @@ func _process(delta): func populate_board(card_names: Array): mementos_collected += 1 - cache.append(card_names) + cache.append_array(card_names) if mementos_collected < 4: return else: card_names = cache From 2c9837d6b6a05ee439f42e51ac9534f746e48f9a Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 22:44:07 +0200 Subject: [PATCH 20/34] card picker is always picking void card --- src/logic-scenes/card_picker/card_picker.gd | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/logic-scenes/card_picker/card_picker.gd b/src/logic-scenes/card_picker/card_picker.gd index 00216d7b..b17e170b 100644 --- a/src/logic-scenes/card_picker/card_picker.gd +++ b/src/logic-scenes/card_picker/card_picker.gd @@ -125,13 +125,19 @@ func pick(id: int): options.remove_at(id) anim_players.remove_at(id) - randomize() - var winning_id = randi() % options.size() - - print("Winning ID ", id) - - if winning_id == sibling_id: - winning_id = (winning_id + 1) % options.size() + var winning_id + if options[1].text == "" and not id == 1: + randomize() + winning_id = randi() % options.size() + + print("Winning ID ", id) + + if winning_id == sibling_id: + winning_id = (winning_id + 1) % options.size() + elif options[0].text == "": + winning_id = 0 + else: + winning_id = 1 output.append(options.pop_at(winning_id)) anim_players.pop_at(winning_id).play("shuffle") @@ -176,6 +182,7 @@ func handle_mouse_button(new_selection: Node, button_event: InputEventMouseButto func scene_finished(id: int, repeat): print(name, id, repeat) if not repeat: + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE fill_card_slots(id) State.transition_stage_to(self) selection_state = CARDS From 86fe7e59a6a8e2c77f8fde696b98aabb10d25ce9 Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 22:44:29 +0200 Subject: [PATCH 21/34] preventing focus drops --- src/logic-scenes/collectable/collectable_ui.gd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/logic-scenes/collectable/collectable_ui.gd b/src/logic-scenes/collectable/collectable_ui.gd index a102a24b..7529a820 100644 --- a/src/logic-scenes/collectable/collectable_ui.gd +++ b/src/logic-scenes/collectable/collectable_ui.gd @@ -33,7 +33,6 @@ class_name Collectable_Ui if has_stage == focused: return if focused: - owner.reveal() has_stage = true collapsed = false if not visible: show() @@ -128,12 +127,13 @@ func _yoink_focus(): func _on_pick_button_pressed(): print("card collected!") if scene != null: + State.leave_stage(self) get_tree().call_group("animation_player", "play_scene", scene, collected) if skipped: emit_signal("scene_skipped", -1) collected = true else: emit_signal("open_board") - State.leave_stage(self) + func _on_pick_button_released(): hide() From e531c00b479c0b869ec1d8a444a417cc268c5717 Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 22:44:43 +0200 Subject: [PATCH 22/34] export version bump --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 7c5aaf96..646fc0af 100644 --- a/flake.lock +++ b/flake.lock @@ -35,11 +35,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1689078114, - "narHash": "sha256-osG8BrX5RpKJ7wH+vI6auOU+ctvNOblT4XXCgknK47c=", + "lastModified": 1689631193, + "narHash": "sha256-AGSkBZaiTODQc8eT1rZDrQIjtb8JtFwJ0wVPzArlrnM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b6cc7ff8fee93789bc871a267ab876c3fca042cb", + "rev": "57695599bdc4f7bfe5d28cfa23f14b3d8bdf8a5f", "type": "github" }, "original": { From 82927c339828e4c5cec20c9ec29d40db3a9fb6e2 Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 19 Jul 2023 22:45:57 +0200 Subject: [PATCH 23/34] the least specacular version bumpo of all times --- src/project.godot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/project.godot b/src/project.godot index 458fd43d..670f7660 100644 --- a/src/project.godot +++ b/src/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="Frame of Mind" run/main_scene="res://main.tscn" -config/features=PackedStringArray("4.0", "Forward Plus") +config/features=PackedStringArray("4.1", "Forward Plus") run/max_fps=60 config/icon="res://icon.png" @@ -77,7 +77,7 @@ player_backwards={ } mouse_left={ "deadzone": 0.5, -"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) ] } look_right={ From 2876418aad6b90b1e43d011db3f498bebc270cc0 Mon Sep 17 00:00:00 2001 From: betalars Date: Tue, 1 Aug 2023 10:47:05 +0200 Subject: [PATCH 24/34] adding missing music attribution --- design/contributions.md | 1 + 1 file changed, 1 insertion(+) diff --git a/design/contributions.md b/design/contributions.md index 6fb95b09..0891b7f4 100644 --- a/design/contributions.md +++ b/design/contributions.md @@ -29,6 +29,7 @@ ## Music - [Foundations I by Azure Studios](https://azurestudios.bandcamp.com/album/foundations-i-24bit), CC-BY 3.0 + - [10 Ambient RPG Tracks](https://alkakrab.itch.io/free-10-rpg-game-ambient-tracks-music-pack-no-copyright) by [alkakrab](https://alkakrab.itch.io/) *"Absolutely Free For Commercial use."* ## Sounds Effects - [Rain on Windows, Interior](https://freesound.org/people/InspectorJ/sounds/346641/) by [InspectorJ](https://freesound.org/people/InspectorJ/) CC-BY 3.0 From c9b75f2db414ed59d33067ce7960dd5fc541c61b Mon Sep 17 00:00:00 2001 From: betalars Date: Tue, 1 Aug 2023 10:48:52 +0200 Subject: [PATCH 25/34] adding splash screen --- design/godot_logo.svg | 1 + design/splash-screen.svg | 4717 ++++++++++++++++++++++++++++++++++++++ src/splash.png | 3 + src/splash.png.import | 34 + 4 files changed, 4755 insertions(+) create mode 100644 design/godot_logo.svg create mode 100644 design/splash-screen.svg create mode 100644 src/splash.png create mode 100644 src/splash.png.import diff --git a/design/godot_logo.svg b/design/godot_logo.svg new file mode 100644 index 00000000..2fbc0f78 --- /dev/null +++ b/design/godot_logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/design/splash-screen.svg b/design/splash-screen.svg new file mode 100644 index 00000000..6f656dd3 --- /dev/null +++ b/design/splash-screen.svg @@ -0,0 +1,4717 @@ + + + +made by betalarsby-sa-nccc diff --git a/src/splash.png b/src/splash.png new file mode 100644 index 00000000..77e3f0bc --- /dev/null +++ b/src/splash.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2e84c9590fe74852eb765d16fb86ecd332620b6a5e8196c8e658cfaead32515 +size 72449 diff --git a/src/splash.png.import b/src/splash.png.import new file mode 100644 index 00000000..16a286b9 --- /dev/null +++ b/src/splash.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cnv7ggin2e0nk" +path="res://.godot/imported/splash.png-929ed8a00b89ba36c51789452f874c77.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://splash.png" +dest_files=["res://.godot/imported/splash.png-929ed8a00b89ba36c51789452f874c77.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 From a252ab0dfd0062d939133400bf944c60e9acbfbb Mon Sep 17 00:00:00 2001 From: betalars Date: Tue, 1 Aug 2023 10:49:42 +0200 Subject: [PATCH 26/34] fixing up handling of locked focus in global state --- src/singletons/global_state.gd | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/singletons/global_state.gd b/src/singletons/global_state.gd index b1c8a230..9042afb9 100644 --- a/src/singletons/global_state.gd +++ b/src/singletons/global_state.gd @@ -24,6 +24,7 @@ func _ready(): # Intented for use when an actor wants focus for itself, can reclaim focus, thus dropping the stack that focused. func take_stage(actor: Object, reclaim: bool = false) -> bool: + if lock_focus: return false if reclaim: stage_list.front().has_stage = false if stage_list.has(actor): @@ -36,11 +37,11 @@ func take_stage(actor: Object, reclaim: bool = false) -> bool: # Element no longer wants focus, if Element itself is also dropped, this option can be chosen aswell. func leave_stage(actor:Object, dropObject: bool = false) -> bool: - if lock_focus or get_tree().paused: - push_error(actor, " wanted to drop focus while it was locked or tree is paused.") + if get_tree().paused: + push_error(actor, " wanted to drop focus while tree is paused.") if not dropObject: actor.has_stage = false - + lock_focus = false stage_list.erase(actor) if stage_list != []: @@ -53,10 +54,10 @@ func leave_stage(actor:Object, dropObject: bool = false) -> bool: func get_current_actor(): return stage_list.front() # Used to put a new target on top of the Focus Stack. -func pass_stage_to(target:Object) -> bool: +func pass_stage_to(target:Object, force = false) -> bool: if "pass_to_actor" in target: pass_stage_to(target.pass_to_actor) - if lock_focus or get_tree().paused: + if (lock_focus or get_tree().paused) and not force: push_error(target, " requested focus while it was locked or tree is paused.") elif !is_instance_valid(target): push_error("Focus instance not valid") @@ -77,13 +78,14 @@ func pass_stage_to(target:Object) -> bool: # Currently focused element loses focus, but remains in stack. func free_focus(): + if lock_focus: return false if stage_list.size() > 0: stage_list.front().has_stage = false func transition_stage_to(thief: Object): if stage_list.size() > 0: if stage_list.front().has_stage: stage_list.pop_front().has_stage = false - return pass_stage_to(thief) + return pass_stage_to(thief, true) func queue_for_stage(target: Object, index: int = 1): stage_list.insert(index, target) From 4f1f1e5ffcea2612e1ca415672871ac954d309e7 Mon Sep 17 00:00:00 2001 From: betalars Date: Tue, 1 Aug 2023 10:50:24 +0200 Subject: [PATCH 27/34] updating disclaimer and thank you note --- src/disclaimer.tscn | 4 ++-- src/thank-you.tscn | 40 +++++++++++++++++++++++++++++++++------- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/disclaimer.tscn b/src/disclaimer.tscn index 99618a41..64a15dd0 100644 --- a/src/disclaimer.tscn +++ b/src/disclaimer.tscn @@ -86,8 +86,8 @@ size_flags_horizontal = 3 text = "Thank you for participating in our public alpha. The goal is to see if the core of our game works, if the mechanics are interesting and, if the game makes sense. -Right now, controller support is very limited and acessibility settings are spotty. -Both will be worked on while the alpha is running. +Right now and acessibility settings are spotty. +They will be worked on while the alpha is running. You will also not be able to help Lisa find a better frame of mind, as the second chapter is not yet implemented. Please know that many disruptive thoughts Lisa has in the first chapter were designed to be resolved later in the game. The game also does not support save games yet. diff --git a/src/thank-you.tscn b/src/thank-you.tscn index 9818173d..8a47d3a7 100644 --- a/src/thank-you.tscn +++ b/src/thank-you.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=8 format=3 uid="uid://citwb7f4dl3l1"] +[gd_scene load_steps=9 format=3 uid="uid://citwb7f4dl3l1"] [ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="1_picwm"] [ext_resource type="FontFile" uid="uid://cb66e4mqysgf8" path="res://import/fonts/title_handwriting.tres" id="2_jb5y5"] @@ -12,6 +12,7 @@ script/source = "extends Button func _pressed(): OS.shell_open(\"https://cryptpad.fr/form/#/2/form/view/T9XKMBPfCz85HoGGnt8nwl1OMyU18dMi7ubZZUJlBTM/\") + get_tree().quit() " [sub_resource type="GDScript" id="GDScript_m3ofj"] @@ -22,6 +23,14 @@ func _pressed(): OS.shell_open(\"https://gitlab.com/betalars/frame-of-mind/-/blob/main/design/contributions.md\") " +[sub_resource type="GDScript" id="GDScript_unahj"] +script/source = "extends Button + + +func _on_pressed(): + get_tree().quit() +" + [node name="ending" type="Panel"] anchors_preset = 15 anchor_right = 1.0 @@ -129,18 +138,35 @@ texture = ExtResource("3_oob40") expand_mode = 2 stretch_mode = 4 -[node name="card" parent="." instance=ExtResource("4_48hwg")] -position = Vector2(1195, 329) +[node name="card" parent="childhood/PanelContainer" instance=ExtResource("4_48hwg")] +process_mode = 4 +position = Vector2(1164, 301) text = "Lukas did not ask for consent, he didn't explain a thing, I didn’t even move! Yet he dared to assume, that " -[node name="post-it" parent="card" instance=ExtResource("5_sfuv4")] +[node name="post-it" parent="childhood/PanelContainer/card" instance=ExtResource("5_sfuv4")] position = Vector2(-61, 110) text = "I was wet so I must have been into it" -[node name="card2" parent="." instance=ExtResource("4_48hwg")] -position = Vector2(1201, 617) +[node name="card2" parent="childhood/PanelContainer" instance=ExtResource("4_48hwg")] +process_mode = 4 +position = Vector2(1170, 589) text = "Lukas jumped me, he didn't even explain a thing or ask consent. I was confused and paralised, so " -[node name="post-it" parent="card2" instance=ExtResource("5_sfuv4")] +[node name="post-it" parent="childhood/PanelContainer/card2" instance=ExtResource("5_sfuv4")] position = Vector2(-61, 110) text = "I didn't say stop" + +[node name="Button" type="Button" parent="."] +layout_mode = 1 +anchors_preset = 1 +anchor_left = 1.0 +anchor_right = 1.0 +offset_left = -75.0 +offset_top = 17.0 +offset_right = -24.0 +offset_bottom = 60.0 +grow_horizontal = 0 +text = "quit" +script = SubResource("GDScript_unahj") + +[connection signal="pressed" from="Button" to="Button" method="_on_pressed"] From 83f73ce5da0273f9b40e949194bf8e441fe4853f Mon Sep 17 00:00:00 2001 From: betalars Date: Tue, 1 Aug 2023 10:52:08 +0200 Subject: [PATCH 28/34] adding skipping logic --- src/logic-scenes/misc/skip_control.gd | 46 +++++++++++++++++++++++++ src/logic-scenes/misc/skip_control.tscn | 43 +++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 src/logic-scenes/misc/skip_control.gd create mode 100644 src/logic-scenes/misc/skip_control.tscn diff --git a/src/logic-scenes/misc/skip_control.gd b/src/logic-scenes/misc/skip_control.gd new file mode 100644 index 00000000..ccf74b22 --- /dev/null +++ b/src/logic-scenes/misc/skip_control.gd @@ -0,0 +1,46 @@ +extends Control + +signal skip +@export var skip_delay: float = 0.5 +@export var costum_owner: NodePath +var time_pressed: float = 0 +@onready var button: Button = $"Skip Button" +@onready var progress: ProgressBar = $ProgressBar +var pressed: bool + +func _ready(): + owner = get_node(costum_owner) + + if owner == null: + owner = get_parent().get_parent() + + owner.connect("visibility_changed", Callable(self, "owner_visibility_changed")) + visible = owner.visible + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + if pressed and visible: + time_pressed += delta + progress.value = time_pressed / skip_delay + if time_pressed >= skip_delay: + emit_signal("skip") + pressed = false + time_pressed = 0 + +func _input(event): + if visible: + if event.is_action_pressed("skip"): + pressed = true + elif event.is_action_released("skip"): + pressed = false + time_pressed = 0 + +func owner_visibility_changed(): + visible = owner.visible + +func _on_skip_button_toggled(button_pressed): + if button_pressed: + pressed = true + else: + pressed = false + time_pressed = 0 diff --git a/src/logic-scenes/misc/skip_control.tscn b/src/logic-scenes/misc/skip_control.tscn new file mode 100644 index 00000000..7f575ea9 --- /dev/null +++ b/src/logic-scenes/misc/skip_control.tscn @@ -0,0 +1,43 @@ +[gd_scene load_steps=2 format=3 uid="uid://dvwuhobhka78d"] + +[ext_resource type="Script" path="res://logic-scenes/misc/skip_control.gd" id="1_s6riu"] + +[node name="skip_control" type="Control"] +layout_mode = 3 +anchors_preset = 0 +size_flags_horizontal = 4 +size_flags_vertical = 8 +script = ExtResource("1_s6riu") + +[node name="ProgressBar" type="ProgressBar" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -160.0 +offset_top = -19.5 +offset_right = 160.0 +offset_bottom = 19.5 +grow_horizontal = 2 +grow_vertical = 2 +max_value = 1.0 +show_percentage = false + +[node name="Skip Button" type="Button" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -108.0 +offset_top = -21.5 +offset_right = 108.0 +offset_bottom = 21.5 +grow_horizontal = 2 +grow_vertical = 2 +text = "hold x or [ ] to skip" + +[connection signal="toggled" from="Skip Button" to="." method="_on_skip_button_toggled"] From cdfabe42af8ce10b28604cbf03211020e11622e4 Mon Sep 17 00:00:00 2001 From: betalars Date: Tue, 1 Aug 2023 10:56:48 +0200 Subject: [PATCH 29/34] fixing missing groups --- src/dev-util/board of devs.tscn | 46 +++++++++++++++++---------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/src/dev-util/board of devs.tscn b/src/dev-util/board of devs.tscn index 0686c105..0b857c31 100644 --- a/src/dev-util/board of devs.tscn +++ b/src/dev-util/board of devs.tscn @@ -1,5 +1,6 @@ -[gd_scene load_steps=3 format=3 uid="uid://bvowj4l8dtceu"] +[gd_scene load_steps=4 format=3 uid="uid://bvowj4l8dtceu"] +[ext_resource type="Script" path="res://dev-util/devs_board.gd" id="1_ols6o"] [ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="1_xrckx"] [ext_resource type="PackedScene" uid="uid://vkcdj8c3ytbq" path="res://logic-scenes/board/post-it.tscn" id="2_ucudl"] @@ -10,6 +11,7 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +script = ExtResource("1_ols6o") [node name="childhood" type="Control" parent="."] anchors_preset = 0 @@ -25,7 +27,7 @@ text = "I never put in much effort for homework " position = Vector2(-32, 50) text = "but at least I get good grades." -[node name="p_upset_peers" parent="childhood/c_homework" groups=["c_Joy", "c_boy_stuff", "c_comic_heroes", "c_homework", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] +[node name="p_upset_peers" parent="childhood/c_homework" groups=["c_boy_stuff", "c_comic_heroes", "c_homework", "c_joy", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 140) text = "my peers were upset about that." @@ -33,23 +35,23 @@ text = "my peers were upset about that." position = Vector2(0, 300) text = "I like my teachers more than my classmates " -[node name="p_volunteering" parent="childhood/c_teachers" groups=["c_Joy", "c_boy_stuff", "c_teachers"] instance=ExtResource("2_ucudl")] +[node name="p_volunteering" parent="childhood/c_teachers" groups=["c_boy_stuff", "c_comic_heroes", "c_joy", "c_teachers"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 50) text = "doing voluntary social service at my school would be great." -[node name="p_becoming_teacher" parent="childhood/c_teachers" groups=["c_Joy", "c_homework", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] +[node name="p_becoming_teacher" parent="childhood/c_teachers" groups=["c_homework", "c_joy", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 140) text = "maybe I want to become a teacher." -[node name="c_Joy" parent="childhood" instance=ExtResource("1_xrckx")] +[node name="c_joy" parent="childhood" instance=ExtResource("1_xrckx")] position = Vector2(0, 600) text = "I can put ages into things I enjoy " -[node name="p_worried_mother" parent="childhood/c_Joy" groups=["c_Joy", "c_body", "c_boy_stuff", "c_comic_heroes", "c_fighting", "c_homework", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] +[node name="p_worried_mother" parent="childhood/c_joy" groups=["c_body", "c_boy_stuff", "c_comic_heroes", "c_fighting", "c_homework", "c_joy", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 50) text = "my mother would be worried about that" -[node name="p_thomas" parent="childhood/c_Joy" groups=["c_Joy", "c_comic_heroes", "c_confusion", "c_hit", "c_homework", "c_out-of-world", "c_teachers"] instance=ExtResource("2_ucudl")] +[node name="p_thomas" parent="childhood/c_joy" groups=["c_comic_heroes", "c_confusion", "c_hit", "c_homework", "c_joy", "c_out-of-world", "c_teachers"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 140) text = "Mr Thomas thinks that makes me gifted." @@ -63,11 +65,11 @@ offset_bottom = 141.0 [node name="c_comic_heroes" parent="voice_training" instance=ExtResource("1_xrckx")] text = "Comic heroes are my role models " -[node name="p_effort" parent="voice_training/c_comic_heroes" groups=["c_Joy", "c_hit", "c_homework", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] +[node name="p_effort" parent="voice_training/c_comic_heroes" groups=["c_comic_heroes", "c_hit", "c_homework", "c_joy", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 50) text = "when I put in the effort, I can make the world a better place" -[node name="p_agent_q" parent="voice_training/c_comic_heroes" groups=["c_Joy", "c_body", "c_boy_stuff", "c_hit", "c_homework"] instance=ExtResource("2_ucudl")] +[node name="p_agent_q" parent="voice_training/c_comic_heroes" groups=["c_body", "c_boy_stuff", "c_comic_heroes", "c_hit", "c_homework", "c_joy"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 140) text = "and I want to be like agent q!" @@ -75,19 +77,19 @@ text = "and I want to be like agent q!" position = Vector2(0, 300) text = "I like boy stuff " -[node name="p_pretending" parent="voice_training/c_boy_stuff" groups=["c_Joy", "c_body", "c_boy_stuff", "c_hit", "c_homework", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] +[node name="p_pretending" parent="voice_training/c_boy_stuff" groups=["c_body", "c_boy_stuff", "c_hit", "c_homework", "c_joy", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 50) text = "yet they think I'm just pretending" -[node name="p_girls" parent="voice_training/c_boy_stuff" groups=["c_Joy", "c_body", "c_boy_stuff", "c_comic_heroes", "c_hit", "c_homework", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] +[node name="p_girls" parent="voice_training/c_boy_stuff" groups=["c_body", "c_boy_stuff", "c_comic_heroes", "c_hit", "c_homework", "c_joy", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 140) text = "and girls don't get that." [node name="c_teasing" parent="voice_training" instance=ExtResource("1_xrckx")] position = Vector2(0, 600) -text = "When Jojo got tased for trying, I pretty much exploded" +text = "When Jojo got teased for trying, I pretty much exploded" -[node name="p_stubborn" parent="voice_training/c_teasing" groups=["c_Joy", "c_boy_stuff", "c_comic_heroes", "c_confusion", "c_fighting", "c_hit", "c_homework", "c_out-of-world", "c_teasing"] instance=ExtResource("2_ucudl")] +[node name="p_stubborn" parent="voice_training/c_teasing" groups=["c_boy_stuff", "c_comic_heroes", "c_confusion", "c_fighting", "c_hit", "c_homework", "c_joy", "c_out-of-world", "c_teasing"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 50) text = "I wouldn't have it any other way, even if it was for my own good" @@ -128,11 +130,11 @@ text = "I didn’t say stop." position = Vector2(0, 300) text = "I know how to properly hit people " -[node name="p_confidence" parent="juijutsu/c_hit" groups=["c_Joy", "c_boy_stuff", "c_comic_heroes", "c_hit", "c_homework", "c_teasing"] instance=ExtResource("2_ucudl")] +[node name="p_confidence" parent="juijutsu/c_hit" groups=["c_boy_stuff", "c_comic_heroes", "c_hit", "c_homework", "c_joy", "c_teasing"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 50) text = "..., that gives me a lot of confidence." -[node name="p_vent" parent="juijutsu/c_hit" groups=["c_Joy", "c_boy_stuff", "c_comic_heroes", "c_hit", "c_homework", "c_teachers"] instance=ExtResource("2_ucudl")] +[node name="p_vent" parent="juijutsu/c_hit" groups=["c_boy_stuff", "c_comic_heroes", "c_hit", "c_homework", "c_joy", "c_teachers"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 140) text = "and that’s a great vent." @@ -146,11 +148,11 @@ offset_bottom = 181.0 [node name="c_out-of-world" parent="draeven" instance=ExtResource("1_xrckx")] text = "I feel like I am not from of this world" -[node name="p_unique" parent="draeven/c_out-of-world" groups=["c_Joy", "c_comic_heroes", "c_confusion", "c_hit", "c_homework", "c_out-of-world", "c_teachers"] instance=ExtResource("2_ucudl")] +[node name="p_unique" parent="draeven/c_out-of-world" groups=["c_comic_heroes", "c_confusion", "c_hit", "c_homework", "c_joy", "c_out-of-world", "c_teachers"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 50) text = "I like being unique like that" -[node name="p_few_friends" parent="draeven/c_out-of-world" groups=["c_Joy", "c_comic_heroes", "c_fighting", "c_out-of-world", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] +[node name="p_few_friends" parent="draeven/c_out-of-world" groups=["c_comic_heroes", "c_fighting", "c_joy", "c_out-of-world", "c_rejection", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 140) text = "I am thankful for the few friends that get me" @@ -158,11 +160,11 @@ text = "I am thankful for the few friends that get me" position = Vector2(0, 300) text = "I fear being rejected" -[node name="p_friends" parent="draeven/c_rejection" groups=["c_Joy", "c_boy_stuff", "c_comic_heroes", "c_fighting", "c_homework", "c_out-of-world", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")] +[node name="p_friends" parent="draeven/c_rejection" groups=["c_boy_stuff", "c_comic_heroes", "c_fighting", "c_homework", "c_joy", "c_out-of-world", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 50) text = "that makes it hard to find friends" -[node name="p_laughed" parent="draeven/c_rejection" groups=["c_Joy", "c_boy_stuff", "c_comic_heroes", "c_confusion", "c_homework", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")] +[node name="p_laughed" parent="draeven/c_rejection" groups=["c_boy_stuff", "c_comic_heroes", "c_confusion", "c_homework", "c_joy", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 140) text = "I'm afraid I will just get laughed at" @@ -174,7 +176,7 @@ text = "I am just too many things at once" position = Vector2(-32, 50) text = "it is just so overwhealming for me" -[node name="p_outer_conflict" parent="draeven/c_confusion" groups=["c_Joy", "c_boy_stuff", "c_confusion", "c_fighting", "c_hit", "c_homework", "c_out-of-world", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")] +[node name="p_outer_conflict" parent="draeven/c_confusion" groups=["c_boy_stuff", "c_confusion", "c_fighting", "c_hit", "c_homework", "c_joy", "c_out-of-world", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 140) text = "this is just too much for others" @@ -198,11 +200,11 @@ text = "random 1" [node name="c_pick" parent="test2" instance=ExtResource("1_xrckx")] position = Vector2(0, 300) -[node name="p_pick" parent="test2/c_pick" groups=["c_Joy", "c_boy_stuff", "c_comic_heroes", "c_homework"] instance=ExtResource("2_ucudl")] +[node name="p_pick" parent="test2/c_pick" groups=["c_boy_stuff", "c_comic_heroes", "c_homework", "c_joy"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 50) text = "pick me 2" -[node name="p_goof" parent="test2/c_pick" groups=["c_Joy", "c_boy_stuff", "c_comic_heroes", "c_homework", "c_teachers"] instance=ExtResource("2_ucudl")] +[node name="p_goof" parent="test2/c_pick" groups=["c_boy_stuff", "c_comic_heroes", "c_homework", "c_joy", "c_teachers"] instance=ExtResource("2_ucudl")] position = Vector2(-32, 140) text = "you done goofed" From d9977d3108dd5ceb204f17406c0838b48ff0e363 Mon Sep 17 00:00:00 2001 From: betalars Date: Tue, 1 Aug 2023 10:59:24 +0200 Subject: [PATCH 30/34] updating card handling --- src/dev-util/devs_board.gd | 40 +++++++ src/logic-scenes/board/card-board.gd | 102 ++++++------------ src/logic-scenes/board/card.gd | 5 +- .../board/empty_postIt_panel.tscn | 9 ++ src/logic-scenes/board/physics-board.tscn | 13 +-- src/logic-scenes/card_picker/card_picker.gd | 60 ++++++----- .../collectable/collectable_ui.gd | 3 - 7 files changed, 127 insertions(+), 105 deletions(-) create mode 100644 src/dev-util/devs_board.gd create mode 100644 src/logic-scenes/board/empty_postIt_panel.tscn diff --git a/src/dev-util/devs_board.gd b/src/dev-util/devs_board.gd new file mode 100644 index 00000000..b1f00f02 --- /dev/null +++ b/src/dev-util/devs_board.gd @@ -0,0 +1,40 @@ +extends Control + +func get_cards_by_scene_id(id: int) -> Array: + var output:Array + + var scene = get_child(id) + + for i in range(scene.get_child_count()): + output.append(scene.get_child(i)) + for post in output[i].get_children(): + if post is PostIt: + output[i].remove_child(post) + + for card in output: + card.transform = Transform3D() + for postIt in card.own_postits: + postIt.transform = Transform3D() + + return output + +func get_cards_by_name_array(names: Array) -> Dictionary: + var output:Dictionary = { + "cards": [], + "postIts": [] + } + + for scene in get_children(): + for card in scene.get_children(): + for postIt in card.get_children(): + if names.has(postIt.name): + postIt.transform = Transform3D() + output['postIts'].append(postIt) + + if names.has(card.name): + card.transform = Transform3D() + output['cards'].append(card) + for child in card.get_children(): + if child is PostIt: + card.remove_child(child) + return output diff --git a/src/logic-scenes/board/card-board.gd b/src/logic-scenes/board/card-board.gd index 54a4ab90..91eb5645 100644 --- a/src/logic-scenes/board/card-board.gd +++ b/src/logic-scenes/board/card-board.gd @@ -13,6 +13,7 @@ var has_stage = false: if focus: has_stage = true self.mouse_filter = Control.MOUSE_FILTER_PASS + get_tree().call_group("interactables", "collapse") else: has_stage = false self.mouse_filter = Control.MOUSE_FILTER_IGNORE @@ -25,9 +26,11 @@ var has_stage = false: visible = has_stage @onready var dropzone = $HBoxContainer/dropzone +var dropzone_size: Vector2 +@export var dropzone_padding = 100 @onready var postit_container = $HBoxContainer/ScrollContainer/VBoxContainer @onready var board_of_devs = $"board of devs" -@onready var base_postit_panel = $HBoxContainer/ScrollContainer/VBoxContainer/Panel +var base_postit_panel: Panel @onready var active_context = ui_context.DROPZONE # 0 = dropzone, 1 = post it list @onready var instructions = $instructions_panel/HBoxContainer/cards_remaining @@ -59,12 +62,15 @@ signal board_completed # Called when the node enters the scene tree for the first time. func _ready(): + base_postit_panel = $HBoxContainer/ScrollContainer/VBoxContainer/Panel + postit_container.remove_child(base_postit_panel) - #var test_arr = ["c_Joy","p_effort","c_backlash","c_body","c_hit","p_slut","p_worried_mother","p_cross_friend"] - #var test_arr = ["c_Joy","c_body","c_hit"] + dropzone_size = get_viewport_rect().size - Vector2(dropzone_padding + base_postit_panel.custom_minimum_size.x, dropzone_padding) + + if get_parent() == get_tree().root: + populate_board(["c_void", 'c_joy', "p_wet", "p_thomas"]) + populate_board(["c_fighting", 'c_hit', "p_girly", "p_vent"]) - #populate_board(test_arr) - #reorder_areas("dropzone_content") active_context = ui_context.DROPZONE has_stage = has_stage @@ -81,63 +87,31 @@ func _process(delta): # Will be used later to spawn Cards and Post-Its and remember them in the dictionary func populate_board(card_names: Array): - mementos_collected += 1 - cache.append_array(card_names) - if mementos_collected < 4: return - else: card_names = cache + var all_new:Dictionary = board_of_devs.get_cards_by_name_array(card_names) - var all_cards = Array() - var all_postits = Array() + var new_cards:Array = all_new["cards"] + var new_postits:Array = all_new["postIts"] - # to remember panel positions - area_dict["post_it_panels"] = [base_postit_panel] - - # check how many post-it panels we need - var amount = -1 # starting with -1 to compensate for the base panel - for card_name in card_names: - if "p_" in card_name: - amount += 1 - while amount > 0: # creating panels up to the number of post-its + # spawning the cards and adding them to the dictionary + for new_card in all_new["cards"]: + new_card.position = Vector2(randi_range(dropzone_padding, dropzone_size.x), randi_range(dropzone_padding, dropzone_size.y)) + new_card.reparent(dropzone, false) + new_card.set_owner(self) + area_dict["dropzone_content"].push_back(new_card) + area_dict["cards"].push_back(new_card) + new_card.is_dragable = true + for new_postit in all_new["postIts"]: # spawning a post-it var new_panel = base_postit_panel.duplicate() postit_container.add_child(new_panel) new_panel.set_owner(self) - area_dict["post_it_panels"].push_back(new_panel) - amount -= 1 - - # get all the cards and post-its from the board of devs - for child in board_of_devs.get_children(): - for child_2 in child.get_children(): # put all cards in all_cards array - all_cards.push_back(child_2) - for child_3 in child_2.get_children(): # put all post-its in all_postits array - if "p_" in child_3.name: # post-its are currently children of cards. - all_postits.push_back(child_3) # If this changes, this logic needs to be adjusted. - - # spawning the cards and adding them to the dictionary - for card_name in card_names: - if "c_" in card_name: # spawning a card - var new_card = _find_area_by_string(all_cards, card_name).duplicate() - for child in new_card.get_children(): # We need to clear all the post-its from the cards on the dev-board - if "p_" in child.name: - new_card.remove_child(child) # dev-board has post-its attached to the cards, which need to be removed - new_card.position = Vector2(randi_range(0, dropzone.size.x), randi_range(0, dropzone.size.y)) - dropzone.add_child(new_card) - new_card.set_owner(self) - area_dict["dropzone_content"].push_back(new_card) - area_dict["cards"].push_back(new_card) - #new_card.position = Vector2(randf_range(new_card.diameter, dropzone.size.x), randf_range(new_card.diameter, dropzone.size.y)) - Vector2(new_card.diameter/2, new_card.diameter/2) - new_card.is_dragable = true - if "p_" in card_name: # spawning a post-it - var new_postit = _find_area_by_string(all_postits, card_name).duplicate() - for panel in area_dict["post_it_panels"]: # still mad I can't use the return_postit-func for this... - if panel.get_child_count() == 1: - panel.add_child(new_postit) - new_postit.set_owner(self) - area_dict["post_its_in_list"].push_back(new_postit) - new_postit.position = panel.get_child(0).position - new_postit.is_dragable = true - break + area_dict["post_it_panels"].append(new_panel) + new_panel.add_child(new_postit) + new_postit.set_owner(self) + area_dict["post_its_in_list"].push_back(new_postit) + new_postit.position = new_panel.get_child(0).position + new_postit.is_dragable = true currently_selected_node = area_dict["dropzone_content"][0] # set first Card as currently selected node by default @@ -145,15 +119,6 @@ func populate_board(card_names: Array): reorder_areas("cards") reorder_areas("post_its_in_list") - -# Handy function to filter an array of areas by the name of a card -func _find_area_by_string(area_arr: Array, name: String) -> Area2D: - for area in area_arr: - if area.name == name: - return area - return null - - # Checks if a Node is currently inside the dropzone func is_in_dropzone(to_check: Node) -> bool: if (dropzone.size.x < to_check.global_position.x or dropzone.size.y < to_check.global_position.y): @@ -241,8 +206,7 @@ func attach_postit_to_card(postit: Area2D, card: Area2D, update_dict = false): if not fluff.has_postit_attached(): return emit_signal("board_completed") - - + # Mark area that was hovered over as currently selected func handle_hover(to_handle: Area2D): if to_handle != currently_selected_node: @@ -392,14 +356,14 @@ func _leave_assignment_context(): # handles everything to return a post it to the panels func _return_postit_to_panels(post_it: Area2D): for panel in area_dict["post_it_panels"]: + print(area_dict["post_it_panels"]) if panel.get_child_count() == 1: area_dict["dropzone_content"].erase(post_it) post_it.on_board = false area_dict["post_its_in_list"].push_back(post_it) - post_it.tween_transform_to(panel.get_child(0).position) - post_it.rotation = post_it.base_rotation - post_it.scale = post_it.base_scale + #post_it.tween_transform_to(panel.get_child(0).position) post_it.reparent(panel) + post_it.transform = panel.get_child(0).transform post_it.set_owner(self) reorder_areas("dropzone_content") reorder_areas("post_its_in_list") diff --git a/src/logic-scenes/board/card.gd b/src/logic-scenes/board/card.gd index 8910b542..1ca95708 100644 --- a/src/logic-scenes/board/card.gd +++ b/src/logic-scenes/board/card.gd @@ -96,12 +96,15 @@ func _process(delta: float) -> void: if area is Card or area is CardCollider: if area is CardCollider: position += area.direction * delta - elif not area.highlighted or self.highlighted: + elif not (area.highlighted or self.highlighted) and area.is_dragable: var diff:Vector2 = position - area.position position -= diff.normalized() * ((diff.length()-diameter)/diameter) * bounce_speed * (delta/(1.0/60)) _move_card() +func get_text() -> String: + return $Label.text + func _handle_wiggle(delta): wiggle_pos += delta * wiggle_speed * wiggle_intensity diff --git a/src/logic-scenes/board/empty_postIt_panel.tscn b/src/logic-scenes/board/empty_postIt_panel.tscn new file mode 100644 index 00000000..cb479625 --- /dev/null +++ b/src/logic-scenes/board/empty_postIt_panel.tscn @@ -0,0 +1,9 @@ +[gd_scene format=3 uid="uid://chwf61qpn2sqw"] + +[node name="Panel" type="Panel"] +self_modulate = Color(1, 1, 1, 0) +custom_minimum_size = Vector2(400, 120) +mouse_filter = 1 + +[node name="post-it_anchor1" type="Node2D" parent="."] +position = Vector2(105, 57) diff --git a/src/logic-scenes/board/physics-board.tscn b/src/logic-scenes/board/physics-board.tscn index ed617c19..6935433c 100644 --- a/src/logic-scenes/board/physics-board.tscn +++ b/src/logic-scenes/board/physics-board.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=10 format=3 uid="uid://bnskiyx1sksww"] +[gd_scene load_steps=11 format=3 uid="uid://bnskiyx1sksww"] [ext_resource type="Texture2D" uid="uid://bi3xqdknw5tpe" path="res://logic-scenes/board/board-texture/Cork002_2K_Color.png" id="1_8brxc"] [ext_resource type="Shader" path="res://logic-scenes/board/physics-board.gdshader" id="1_ggnth"] [ext_resource type="Script" path="res://logic-scenes/board/card-board.gd" id="3_8v4c4"] [ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="3_mg053"] [ext_resource type="PackedScene" uid="uid://bvowj4l8dtceu" path="res://dev-util/board of devs.tscn" id="4_sskx2"] +[ext_resource type="PackedScene" uid="uid://chwf61qpn2sqw" path="res://logic-scenes/board/empty_postIt_panel.tscn" id="5_dr0qs"] [ext_resource type="Script" path="res://logic-scenes/board/card collider.gd" id="6_wpxls"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_ttqei"] @@ -61,14 +62,8 @@ horizontal_scroll_mode = 0 [node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer/ScrollContainer"] layout_mode = 2 -[node name="Panel" type="Panel" parent="HBoxContainer/ScrollContainer/VBoxContainer"] -self_modulate = Color(1, 1, 1, 0) -custom_minimum_size = Vector2(400, 120) +[node name="Panel" parent="HBoxContainer/ScrollContainer/VBoxContainer" instance=ExtResource("5_dr0qs")] layout_mode = 2 -mouse_filter = 1 - -[node name="post-it_anchor1" type="Node2D" parent="HBoxContainer/ScrollContainer/VBoxContainer/Panel"] -position = Vector2(105, 57) [node name="board of devs" parent="." instance=ExtResource("4_sskx2")] process_mode = 4 @@ -133,9 +128,11 @@ shape = SubResource("RectangleShape2D_ivo5o") layout_mode = 2 size_flags_horizontal = 4 size_flags_vertical = 0 +mouse_filter = 2 [node name="HBoxContainer" type="HBoxContainer" parent="instructions_panel"] layout_mode = 2 +mouse_filter = 2 [node name="VSeparator2" type="VSeparator" parent="instructions_panel/HBoxContainer"] custom_minimum_size = Vector2(15, 0) diff --git a/src/logic-scenes/card_picker/card_picker.gd b/src/logic-scenes/card_picker/card_picker.gd index b17e170b..aadca157 100644 --- a/src/logic-scenes/card_picker/card_picker.gd +++ b/src/logic-scenes/card_picker/card_picker.gd @@ -11,19 +11,19 @@ enum { DONE } -@onready var debug_board:Control = $"board of devs" +@onready var source_board:Control = $"board of devs" var has_stage = false: set(focus): if not focus == has_stage: if focus: - if selection_state == INI or CARDS: - for player in anim_players: player.play("reveal") + process_mode = Node.PROCESS_MODE_INHERIT self.show() self.mouse_filter = Control.MOUSE_FILTER_IGNORE else: self.mouse_filter = Control.MOUSE_FILTER_STOP self.hide() + process_mode = Node.PROCESS_MODE_DISABLED has_stage = focus var _input_locked = true @@ -58,40 +58,51 @@ signal cards_picked(Array) # Called when the node enters the scene tree for the first time. func _ready(): - if get_parent() == get_tree().root: selection_state = CARDS - reset() func reset(): output = [] options = [] anim_players = [] - curr_selection_id = -1 var card_controls = $cards.get_children() for control in card_controls: options.append(control.get_child(1)) anim_players.append(control.get_child(0)) + curr_selection_id = 0 + for player in anim_players: player.play("reveal") func fill_card_slots(id: int): - for i in range($cards.get_child_count()): - var card:Card = $cards.get_child(i).get_child(1) - card.replace_with(debug_board.get_child(id).get_child(i) as Card) - card.connect("mouse_entered", Callable(self, "get_highlight")) - card.owner = self + var new_cards = source_board.get_cards_by_scene_id(id) + + for i in range(new_cards.size()): + $cards.get_child(i).remove_child($cards.get_child(i).get_child(1)) + var new_card = new_cards[i] + new_card.reparent($cards.get_child(i), false) + new_card.owner = self + new_card.connect("mouse_entered", Callable(self, "get_highlight")) + options.append(new_card) + anim_players.append($cards.get_child(i).get_child(0)) + reset() func fill_post_slots(): var post_its: Array[PostIt] = [] for card in output: post_its.append_array(card.own_postits) - print(card.own_postits) + + post_its.shuffle() + options = [] + for ancor in $postIts.get_children(): + ancor.remove_child(ancor.get_child(1)) for i in range(post_its.size()): - options[i].replace_with(post_its[i]) + options.append(post_its[i]) + $postIts.get_child(i).add_child(options[i], false) options[i].owner = self func _input(event): if event.is_action_pressed("ui_end"): - scene_finished(1, false) + fill_card_slots(3) + selection_state = CARDS if has_stage and not _input_locked: if event.is_action_pressed("ui_up") or event.is_action_pressed("ui_left") or event.is_action_pressed("ui_focus_next"): @@ -102,6 +113,7 @@ func _input(event): pick(curr_selection_id) func pick(id: int): + print("PICK") if id == -1: curr_selection_id = 0 return @@ -115,25 +127,25 @@ func pick(id: int): var yield_to = anim_players[id].animation_finished output.append(options[id]) - var sibling_id = -1 - if selection_state == POSTS: - - sibling_id = options.find(options[id].sibling) - - print("yeet sibling ", sibling_id) - options.remove_at(id) anim_players.remove_at(id) + var sibling_id = -1 + if selection_state == POSTS_SELECTED: + sibling_id = options.find(output.back().sibling) + options.remove_at(sibling_id) + anim_players[sibling_id].play("unshuffle") + anim_players.remove_at(sibling_id) + print("yeet sibling ", sibling_id) + var winning_id - if options[1].text == "" and not id == 1: + print(options[1].text) + if !(options[1].text == "" and not id == 1): randomize() winning_id = randi() % options.size() print("Winning ID ", id) - if winning_id == sibling_id: - winning_id = (winning_id + 1) % options.size() elif options[0].text == "": winning_id = 0 else: diff --git a/src/logic-scenes/collectable/collectable_ui.gd b/src/logic-scenes/collectable/collectable_ui.gd index 7529a820..973cc858 100644 --- a/src/logic-scenes/collectable/collectable_ui.gd +++ b/src/logic-scenes/collectable/collectable_ui.gd @@ -133,9 +133,6 @@ func _on_pick_button_pressed(): collected = true else: emit_signal("open_board") - - -func _on_pick_button_released(): hide() From b7968fc9899bffa24acaae225ceb73882cc4cc80 Mon Sep 17 00:00:00 2001 From: betalars Date: Tue, 1 Aug 2023 10:59:46 +0200 Subject: [PATCH 31/34] export version bump --- flake.lock | 6 ++-- src/export_presets.cfg | 67 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 67 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 646fc0af..309f8a5a 100644 --- a/flake.lock +++ b/flake.lock @@ -35,11 +35,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1689631193, - "narHash": "sha256-AGSkBZaiTODQc8eT1rZDrQIjtb8JtFwJ0wVPzArlrnM=", + "lastModified": 1689752456, + "narHash": "sha256-VOChdECcEI8ixz8QY+YC4JaNEFwQd1V8bA0G4B28Ki0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "57695599bdc4f7bfe5d28cfa23f14b3d8bdf8a5f", + "rev": "7f256d7da238cb627ef189d56ed590739f42f13b", "type": "github" }, "original": { diff --git a/src/export_presets.cfg b/src/export_presets.cfg index 4f4197c0..49519a50 100644 --- a/src/export_presets.cfg +++ b/src/export_presets.cfg @@ -8,18 +8,17 @@ custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" -export_path="../build/linux/frame-of-mind.x86_64" +export_path="../../export-testing/frame-of-mind.x86_64" encryption_include_filters="" encryption_exclude_filters="" encrypt_pck=false encrypt_directory=false -script_encryption_key="" [preset.0.options] custom_template/debug="" custom_template/release="" -debug/export_console_script=1 +debug/export_console_wrapper=1 binary_format/embed_pck=false texture_format/bptc=true texture_format/s3tc=true @@ -38,3 +37,65 @@ unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") rm -rf \"{temp_dir}\"" + +[preset.1] + +name="Windows Desktop" +platform="Windows Desktop" +runnable=true +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../../export-testing/frame-of-mind.exe" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false + +[preset.1.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=false +texture_format/bptc=true +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false +binary_format/architecture="x86_64" +codesign/enable=false +codesign/timestamp=true +codesign/timestamp_server_url="" +codesign/digest_algorithm=1 +codesign/description="" +codesign/custom_options=PackedStringArray() +application/modify_resources=true +application/icon="" +application/console_wrapper_icon="" +application/icon_interpolation=4 +application/file_version="" +application/product_version="" +application/company_name="" +application/product_name="" +application/file_description="" +application/copyright="" +application/trademarks="" +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}' +$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}' +$trigger = New-ScheduledTaskTrigger -Once -At 00:00 +$settings = New-ScheduledTaskSettingsSet +$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings +Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true +Start-ScheduledTask -TaskName godot_remote_debug +while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 } +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue" +ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue +Remove-Item -Recurse -Force '{temp_dir}'" From 9897fa2b336db93c03157764256dcfe8f8606565 Mon Sep 17 00:00:00 2001 From: betalars Date: Tue, 1 Aug 2023 11:01:52 +0200 Subject: [PATCH 32/34] celaning up error sources --- .../youth_room/youth_room.tscn | 118 ++++++++++++++---- src/logic-scenes/card_picker/card_picker.tscn | 1 - .../collectable/collectable_ui.tscn | 4 +- src/logic-scenes/luna/luna_imported.tscn | 1 + src/main.tscn | 2 +- src/project.godot | 9 ++ 6 files changed, 106 insertions(+), 29 deletions(-) diff --git a/src/base-environments/youth_room/youth_room.tscn b/src/base-environments/youth_room/youth_room.tscn index 34f66001..657dd549 100644 --- a/src/base-environments/youth_room/youth_room.tscn +++ b/src/base-environments/youth_room/youth_room.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=108 format=3 uid="uid://b3b0gyvklqn50"] +[gd_scene load_steps=113 format=3 uid="uid://b3b0gyvklqn50"] [ext_resource type="Script" path="res://base-environments/youth_room/room_handle.gd" id="1_aitp0"] [ext_resource type="PackedScene" uid="uid://c0i4ydmxtxfho" path="res://base-environments/youth_room/import/youth_room.glb" id="1_jf3oi"] @@ -25,6 +25,7 @@ [ext_resource type="PackedScene" uid="uid://bdnesuqroi7ss" path="res://vfx/collectable_particles.tscn" id="12_qxx2k"] [ext_resource type="Texture2D" uid="uid://bqilajx05t0eb" path="res://logic-scenes/board/particle_textures/void_nomotion.png" id="12_xnele"] [ext_resource type="Texture2D" uid="uid://d005qvnbnishb" path="res://import/interface-elements/cursor_grab.png" id="13_lqj71"] +[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="15_7nc4e"] [ext_resource type="PackedScene" uid="uid://brk4hjdf2x81a" path="res://logic-scenes/card_picker/card_picker.tscn" id="19_a4n1o"] [ext_resource type="ArrayMesh" uid="uid://bfc3d4g40n0wy" path="res://logic-scenes/collectable/import/old-mask.res" id="19_jr2bb"] [ext_resource type="PackedScene" uid="uid://dwtxjvprjyx8p" path="res://base-environments/youth_room/lava-lamp.tscn" id="21_0k2gr"] @@ -119,6 +120,27 @@ size = Vector3(1.63347, 0.305693, 0.775269) [sub_resource type="BoxShape3D" id="BoxShape3D_bq15k"] size = Vector3(0.244565, 1, 0.245859) +[sub_resource type="InputEventKey" id="InputEventKey_p2hyr"] +device = -1 +keycode = 88 +unicode = 120 + +[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_e2vy5"] +button_index = 2 +pressed = true + +[sub_resource type="Shortcut" id="Shortcut_b3maf"] +events = [SubResource("InputEventKey_p2hyr"), SubResource("InputEventJoypadButton_e2vy5")] + +[sub_resource type="GDScript" id="GDScript_uy50s"] +script/source = "extends Panel + + +func show(): + mouse_filter = MOUSE_FILTER_STOP + visible = true +" + [sub_resource type="Animation" id="Animation_nwry8"] length = 0.001 tracks/0/type = "value" @@ -143,7 +165,7 @@ tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": [-80.0] +"values": [0.0] } tracks/2/type = "value" tracks/2/imported = false @@ -155,7 +177,7 @@ tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": [0.0] +"values": [-80.0] } tracks/3/type = "value" tracks/3/imported = false @@ -167,7 +189,7 @@ tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": [0.0] +"values": [-80.0] } tracks/4/type = "value" tracks/4/imported = false @@ -637,6 +659,18 @@ tracks/42/keys = { "update": 0, "values": [Color(1, 1, 1, 1)] } +tracks/43/type = "value" +tracks/43/imported = false +tracks/43/enabled = true +tracks/43/path = NodePath("ScenePlayer/Jui_Jutsu:volume_db") +tracks/43/interp = 1 +tracks/43/loop_wrap = true +tracks/43/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} [sub_resource type="Animation" id="Animation_g5l1m"] resource_name = "childhood" @@ -783,7 +817,7 @@ tracks/11/path = NodePath("ScenePlayer") tracks/11/interp = 1 tracks/11/loop_wrap = true tracks/11/keys = { -"times": PackedFloat32Array(5.1), +"times": PackedFloat32Array(93.7), "transitions": PackedFloat32Array(1), "values": [{ "args": [], @@ -1035,7 +1069,7 @@ tracks/19/path = NodePath("ScenePlayer") tracks/19/interp = 1 tracks/19/loop_wrap = true tracks/19/keys = { -"times": PackedFloat32Array(2.9), +"times": PackedFloat32Array(140.5), "transitions": PackedFloat32Array(1), "values": [{ "args": [], @@ -1347,7 +1381,7 @@ tracks/19/path = NodePath("ScenePlayer") tracks/19/interp = 1 tracks/19/loop_wrap = true tracks/19/keys = { -"times": PackedFloat32Array(5.3), +"times": PackedFloat32Array(204.5), "transitions": PackedFloat32Array(1), "values": [{ "args": [], @@ -1464,7 +1498,7 @@ tracks/8/path = NodePath("ScenePlayer") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/keys = { -"times": PackedFloat32Array(2.9), +"times": PackedFloat32Array(95.1), "transitions": PackedFloat32Array(1), "values": [{ "args": [], @@ -1524,8 +1558,9 @@ func start_soundtrack(): func play_scene(id: int, repeat = false): get_tree().call_group(\"interactables\", \"collapse\") - is_repeating = repeat State.pass_stage_to(self) + State.lock_focus = true + is_repeating = repeat Input.mouse_mode = Input.MOUSE_MODE_HIDDEN match id: Scenes.id.YOUTH_CHILDHOOD: @@ -1543,21 +1578,25 @@ func _on_ini_room(): func on_childhood_done(): get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_CHILDHOOD, is_repeating) $childhood.hide() + State.lock_focus = is_repeating func on_voice_training_done(): get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_VOICE_TRAINING, is_repeating) $\"Voice Training\".hide() + State.lock_focus = is_repeating func on_jui_jutsu_done(): get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_JUI_JUTSU, is_repeating) $jui_jutsu.hide() + State.lock_focus = is_repeating func on_draeven_done(): get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_DRAEVEN, is_repeating) $draeven.hide() + State.lock_focus = is_repeating func scene_finished(_id): - play(\"RESET\") + queue(\"RESET\") " [sub_resource type="ViewportTexture" id="ViewportTexture_2cudi"] @@ -2190,25 +2229,34 @@ grow_horizontal = 2 grow_vertical = 2 mouse_filter = 1 +[node name="ending_button" type="Button" parent="logic/UI"] +visible = false +top_level = true +layout_mode = 0 +offset_left = 16.0 +offset_top = 12.0 +offset_right = 400.0 +offset_bottom = 100.0 +shortcut = SubResource("Shortcut_b3maf") +text = "You have completed +ordering your thoughts. +This is as far as the alpha goes. +Press x or [ ] to wrap up." + [node name="picker" parent="logic/UI" groups=["animation_player"] instance=ExtResource("19_a4n1o")] unique_name_in_owner = true visible = false layout_mode = 1 [node name="board" parent="logic/UI" instance=ExtResource("4_gyjxx")] +visible = false layout_mode = 1 [node name="ending" parent="logic/UI" instance=ExtResource("5_kts6y")] visible = false layout_mode = 1 - -[node name="Button" type="Button" parent="logic/UI"] -layout_mode = 0 -offset_left = 16.0 -offset_top = 12.0 -offset_right = 342.0 -offset_bottom = 55.0 -text = " click here to finish the alpha " +mouse_filter = 2 +script = SubResource("GDScript_uy50s") [node name="ScenePlayer" type="AnimationPlayer" parent="logic" groups=["animation_player"]] autoplay = "RESET" @@ -2222,11 +2270,11 @@ bus = &"text" [node name="Moving" type="AudioStreamPlayer" parent="logic/ScenePlayer"] stream = ExtResource("8_egnow") -volume_db = -80.0 bus = &"music" [node name="Childhood" type="AudioStreamPlayer" parent="logic/ScenePlayer"] stream = ExtResource("9_i8mqk") +volume_db = -80.0 bus = &"music" [node name="childhood" type="CenterContainer" parent="logic/ScenePlayer"] @@ -2363,8 +2411,12 @@ texture = ExtResource("3_xqd4w") expand_mode = 2 stretch_mode = 4 +[node name="skip_control" parent="logic/ScenePlayer/childhood/PanelContainer" instance=ExtResource("15_7nc4e")] +layout_mode = 2 + [node name="VoiceTraining" type="AudioStreamPlayer" parent="logic/ScenePlayer"] stream = ExtResource("10_wwwdq") +volume_db = -80.0 bus = &"music" [node name="Voice Training" type="CenterContainer" parent="logic/ScenePlayer"] @@ -2448,13 +2500,14 @@ texture = ExtResource("3_xqd4w") expand_mode = 2 stretch_mode = 4 +[node name="skip_control2" parent="logic/ScenePlayer/Voice Training/PanelContainer" instance=ExtResource("15_7nc4e")] +layout_mode = 2 + [node name="Jui_Jutsu" type="AudioStreamPlayer" parent="logic/ScenePlayer"] -volume_db = -10.0 bus = &"music" [node name="jui_jutsu" type="CenterContainer" parent="logic/ScenePlayer"] visible = false -modulate = Color(1, 1, 1, 0) self_modulate = Color(1, 1, 1, 0.923078) anchors_preset = 15 anchor_right = 1.0 @@ -2582,6 +2635,9 @@ visible = false scale = Vector2(0.4, 0.4) texture = ExtResource("12_xnele") +[node name="skip_control3" parent="logic/ScenePlayer/jui_jutsu/PanelContainer" instance=ExtResource("15_7nc4e")] +layout_mode = 2 + [node name="draeven" type="CenterContainer" parent="logic/ScenePlayer"] visible = false modulate = Color(1, 1, 1, 0) @@ -2655,6 +2711,9 @@ texture = ExtResource("3_xqd4w") expand_mode = 2 stretch_mode = 4 +[node name="skip_control4" parent="logic/ScenePlayer/draeven/PanelContainer" instance=ExtResource("15_7nc4e")] +layout_mode = 2 + [node name="starlight_mesh" type="MeshInstance3D" parent="logic/ScenePlayer/draeven"] transform = Transform3D(0.999, 0, 0, 0, 0.999, 0, 0, 0, 0.999, 0, 0, 0) layers = 2 @@ -3118,10 +3177,12 @@ surface_material_override/0 = SubResource("StandardMaterial3D_5u6i4") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.57896, 0) material_override = SubResource("StandardMaterial3D_qifbj") amount = 1000 -visibility_aabb = AABB(-2.68266, -0.69998, -0.431825, 5.36533, 1.39996, 0.86365) +visibility_aabb = AABB(-2.68266, -2.50574, -0.431825, 5.36533, 5.01148, 0.86365) process_material = SubResource("ParticleProcessMaterial_g3ayx") draw_pass_1 = SubResource("QuadMesh_rb6dt") +[node name="VoxelGI" type="VoxelGI" parent="."] + [connection signal="ini_room" from="." to="logic/PlayerController" method="_on_ini_room"] [connection signal="ini_room" from="." to="logic/ScenePlayer" method="_on_ini_room"] [connection signal="ini_room" from="." to="visuals/lights/light_animation" method="_on_ini_room"] @@ -3134,13 +3195,22 @@ draw_pass_1 = SubResource("QuadMesh_rb6dt") [connection signal="body_entered" from="logic/Bed and Ladders/bed_enter" to="logic/PlayerController" method="_on_bed_enter"] [connection signal="body_exited" from="logic/Bed and Ladders/bed_reset" to="logic/PlayerController" method="_on_bed_exit"] [connection signal="body_exited" from="logic/Bed and Ladders/reset_failover" to="logic/PlayerController" method="_on_bed_exit"] +[connection signal="pressed" from="logic/UI/ending_button" to="logic/UI/ending_button" method="hide"] +[connection signal="pressed" from="logic/UI/ending_button" to="logic/UI/ending" method="show"] [connection signal="cards_picked" from="logic/UI/picker" to="logic/UI/board" method="populate_board"] [connection signal="cards_picked" from="logic/UI/picker" to="WorldEnvironment" method="_on_picker_cards_picked"] -[connection signal="board_completed" from="logic/UI/board" to="logic/UI/Button" method="show"] -[connection signal="pressed" from="logic/UI/Button" to="logic/UI/ending" method="show"] +[connection signal="board_completed" from="logic/UI/board" to="logic/UI/ending_button" method="show"] +[connection signal="skip" from="logic/ScenePlayer/childhood/PanelContainer/skip_control" to="logic/ScenePlayer" method="on_childhood_done"] +[connection signal="skip" from="logic/ScenePlayer/childhood/PanelContainer/skip_control" to="logic/ScenePlayer" method="play" binds= ["RESET"]] +[connection signal="skip" from="logic/ScenePlayer/Voice Training/PanelContainer/skip_control2" to="logic/ScenePlayer" method="on_voice_training_done"] +[connection signal="skip" from="logic/ScenePlayer/Voice Training/PanelContainer/skip_control2" to="logic/ScenePlayer" method="play" binds= ["RESET"]] [connection signal="input_event" from="logic/ScenePlayer/jui_jutsu/PanelContainer/card" to="logic/ScenePlayer/jui_jutsu/PanelContainer/card" method="_on_input_event" flags=18] [connection signal="mouse_entered" from="logic/ScenePlayer/jui_jutsu/PanelContainer/card" to="logic/ScenePlayer/jui_jutsu/PanelContainer/card" method="_on_mouse_entered" flags=18] [connection signal="mouse_exited" from="logic/ScenePlayer/jui_jutsu/PanelContainer/card" to="logic/ScenePlayer/jui_jutsu/PanelContainer/card" method="_on_mouse_exited" flags=18] +[connection signal="skip" from="logic/ScenePlayer/jui_jutsu/PanelContainer/skip_control3" to="logic/ScenePlayer" method="on_jui_jutsu_done"] +[connection signal="skip" from="logic/ScenePlayer/jui_jutsu/PanelContainer/skip_control3" to="logic/ScenePlayer" method="play" binds= ["RESET"]] +[connection signal="skip" from="logic/ScenePlayer/draeven/PanelContainer/skip_control4" to="logic/ScenePlayer" method="on_draeven_done"] +[connection signal="skip" from="logic/ScenePlayer/draeven/PanelContainer/skip_control4" to="logic/ScenePlayer" method="play" binds= ["RESET"]] [connection signal="input_event" from="logic/Mask-interaction/UiWrapper" to="logic/Mask-interaction/UiWrapper" method="_on_input_event" flags=18] [connection signal="scene_skipped" from="logic/Mask-interaction/UiWrapper/UiSprite/SubViewport/Collectable_ui" to="logic/UI/board" method="on_scene_skipped"] [connection signal="input_event" from="logic/clothes_interaction/UiWrapper" to="logic/clothes_interaction/UiWrapper" method="_on_input_event" flags=18] diff --git a/src/logic-scenes/card_picker/card_picker.tscn b/src/logic-scenes/card_picker/card_picker.tscn index 81e55022..b361fc7f 100644 --- a/src/logic-scenes/card_picker/card_picker.tscn +++ b/src/logic-scenes/card_picker/card_picker.tscn @@ -1625,6 +1625,5 @@ libraries = { text = "Post 4" [node name="board of devs" parent="." instance=ExtResource("4_1kvte")] -process_mode = 4 visible = false layout_mode = 2 diff --git a/src/logic-scenes/collectable/collectable_ui.tscn b/src/logic-scenes/collectable/collectable_ui.tscn index 57b30e7e..69029f10 100644 --- a/src/logic-scenes/collectable/collectable_ui.tscn +++ b/src/logic-scenes/collectable/collectable_ui.tscn @@ -133,7 +133,7 @@ size_flags_vertical = 3 [node name="collect_or_listen" type="Button" parent="Panel/Content/Buttons/VBoxContainer"] layout_mode = 2 tooltip_text = "Take this with you, and listen to it's story." -text = "Collect" +text = "Order Thoughts" script = SubResource("GDScript_g0qhf") [node name="Summary" type="Button" parent="Panel/Content/Buttons/VBoxContainer"] @@ -169,8 +169,6 @@ libraries = { "": SubResource("AnimationLibrary_jad23") } -[connection signal="resized" from="Panel/Content/Buttons/VBoxContainer" to="Panel/Content/Buttons" method="_on_v_box_container_resized"] -[connection signal="button_up" from="Panel/Content/Buttons/VBoxContainer/collect_or_listen" to="." method="_on_pick_button_released"] [connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/collect_or_listen" to="." method="_yoink_focus"] [connection signal="pressed" from="Panel/Content/Buttons/VBoxContainer/collect_or_listen" to="." method="_on_pick_button_pressed"] [connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/Summary" to="." method="_yoink_focus"] diff --git a/src/logic-scenes/luna/luna_imported.tscn b/src/logic-scenes/luna/luna_imported.tscn index d1352e93..002ad08e 100644 --- a/src/logic-scenes/luna/luna_imported.tscn +++ b/src/logic-scenes/luna/luna_imported.tscn @@ -89,6 +89,7 @@ bones/61/rotation = Quaternion(-0.0756927, -0.222034, 0.0605057, 0.970211) bones/62/rotation = Quaternion(-0.139385, -0.0586047, 0.0728769, 0.985813) [node name="Loona_main" parent="Armature/Skeleton3D" index="0"] +gi_mode = 2 surface_material_override/0 = SubResource("StandardMaterial3D_jdvnl") [node name="wings" parent="Armature/Skeleton3D" index="1"] diff --git a/src/main.tscn b/src/main.tscn index 876c12ee..47bd02a0 100644 --- a/src/main.tscn +++ b/src/main.tscn @@ -12,7 +12,7 @@ [sub_resource type="GDScript" id="GDScript_8sq0u"] script/source = "extends Label -func _process(delta): +func _process(_delta): text = str(Engine.get_frames_per_second()) " diff --git a/src/project.godot b/src/project.godot index 670f7660..ace50e8f 100644 --- a/src/project.godot +++ b/src/project.godot @@ -14,6 +14,9 @@ config/name="Frame of Mind" run/main_scene="res://main.tscn" config/features=PackedStringArray("4.1", "Forward Plus") run/max_fps=60 +boot_splash/bg_color=Color(0.0313726, 0.0117647, 0.129412, 1) +boot_splash/image="res://splash.png" +boot_splash/fullsize=false config/icon="res://icon.png" [autoload] @@ -100,6 +103,12 @@ look_down={ "events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":3,"axis_value":1.0,"script":null) ] } +skip={ +"deadzone": 0.5, +"events": [null, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":88,"key_label":0,"unicode":120,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":true,"script":null) +] +} [layer_names] From 42357484127dcc59f0d7f6d157f363fbb503bd6d Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 2 Aug 2023 12:43:16 +0200 Subject: [PATCH 33/34] reverting void card handling to cut down unneded performance overhead --- src/logic-scenes/board/card.gd | 3 - src/logic-scenes/board/card.tscn | 122 +------------------------- src/logic-scenes/board/void_card.tscn | 66 ++++++-------- 3 files changed, 28 insertions(+), 163 deletions(-) diff --git a/src/logic-scenes/board/card.gd b/src/logic-scenes/board/card.gd index 1ca95708..2ecbc438 100644 --- a/src/logic-scenes/board/card.gd +++ b/src/logic-scenes/board/card.gd @@ -19,8 +19,6 @@ var scale_tween if !Engine.is_editor_hint(): wiggle_pos = float(text.hash() % 100) _handle_wiggle(0) - if get_children() != [] and !Engine.is_editor_hint(): - $BackgroundSprite.void_active = text == "" @export var wiggle_strength: float = 0.2 @export var wiggle_speed: float = 5 @export_range(1, 2) var scale_bump: float = 1.05 @@ -81,7 +79,6 @@ func _ready(): $BackgroundSprite.frame = text.hash() % $BackgroundSprite.sprite_frames.get_frame_count($BackgroundSprite.animation) $Label.text = self.text - if not Engine.is_editor_hint(): $BackgroundSprite.void_active = text == "" wiggle_pos = float(text.hash() % 100) if not Engine.is_editor_hint(): diff --git a/src/logic-scenes/board/card.tscn b/src/logic-scenes/board/card.tscn index 16fece1a..75733c68 100644 --- a/src/logic-scenes/board/card.tscn +++ b/src/logic-scenes/board/card.tscn @@ -1,10 +1,8 @@ -[gd_scene load_steps=21 format=3 uid="uid://dy5rd437h5hsw"] +[gd_scene load_steps=11 format=3 uid="uid://dy5rd437h5hsw"] [ext_resource type="Script" path="res://logic-scenes/board/card.gd" id="1_emip0"] [ext_resource type="Texture2D" uid="uid://sv0nhkkur1tt" path="res://logic-scenes/board/card-textures/cardsheet.png" id="2_ioijn"] -[ext_resource type="Texture2D" uid="uid://kpmk21d8rlso" path="res://logic-scenes/board/particle_textures/star.png" id="3_bwtbh"] [ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/messy.theme" id="3_rktsa"] -[ext_resource type="Texture2D" uid="uid://bqilajx05t0eb" path="res://logic-scenes/board/particle_textures/void_nomotion.png" id="4_fwm1k"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_foovg"] radius = 110.0 @@ -53,105 +51,6 @@ animations = [{ "speed": 5.0 }] -[sub_resource type="GDScript" id="GDScript_8bs16"] -script/source = "extends AnimatedSprite2D - -@onready var particles = $GPUParticles2D -@onready var initial_position = position -var noise_position = randf() -var noise: Noise = FastNoiseLite.new() -var void_active: - set(become_void): - if not (void_active == become_void): - if is_inside_tree(): - $GPUParticles2D.is_void = become_void - $GPUParticles2D.emitting = become_void - $Sprite2D.is_void = become_void - void_active = become_void - -func _process(delta): - - if void_active != $GPUParticles2D.is_void: - $GPUParticles2D.is_void = void_active - $GPUParticles2D.emitting = void_active - $Sprite2D.is_void = void_active - - if void_active and not State.reduce_motion: - - noise_position += delta * 10 - - var random_position = Vector2(noise.get_noise_1d(noise_position*2), noise.get_noise_1d(-noise_position)) - - random_position = random_position.normalized() * pow(random_position.length()*2, 3) * 5 - - position = initial_position - random_position - - rotation = noise.get_noise_1d(noise_position*10) * random_position.length() * 0.01 - - particles.position = random_position - - else: position = initial_position -" - -[sub_resource type="Gradient" id="Gradient_v70nd"] -interpolation_mode = 2 -offsets = PackedFloat32Array(0, 0.0529197, 0.191606, 1) -colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0.491329, 1, 1, 1, 0) - -[sub_resource type="GradientTexture1D" id="GradientTexture1D_xxq8p"] -gradient = SubResource("Gradient_v70nd") - -[sub_resource type="Curve" id="Curve_q6cmf"] -_data = [Vector2(0, 0), 0.0, 3.16529, 0, 0, Vector2(0.241056, 0.191336), 0.132446, 0.132446, 0, 0, Vector2(1, 1), 3.94797, 0.0, 0, 0] -point_count = 3 - -[sub_resource type="CurveTexture" id="CurveTexture_cg0w1"] -curve = SubResource("Curve_q6cmf") - -[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_by44l"] -emission_shape = 6 -emission_ring_axis = Vector3(0, 0, 1) -emission_ring_height = 0.0 -emission_ring_radius = 180.0 -emission_ring_inner_radius = 185.0 -particle_flag_disable_z = true -spread = 180.0 -gravity = Vector3(0, 0, 0) -initial_velocity_min = -10.0 -initial_velocity_max = 10.0 -angular_velocity_min = -150.0 -angular_velocity_max = -150.0 -orbit_velocity_min = 0.0 -orbit_velocity_max = 0.0 -radial_accel_min = -20.0 -radial_accel_max = -5.0 -tangential_accel_min = 20.0 -tangential_accel_max = 30.0 -scale_min = 3.0 -scale_max = 5.0 -scale_curve = SubResource("CurveTexture_cg0w1") -color_ramp = SubResource("GradientTexture1D_xxq8p") -turbulence_noise_strength = 0.1 -attractor_interaction_enabled = false - -[sub_resource type="GDScript" id="GDScript_vjwk7"] -script/source = "extends GPUParticles2D - -var is_void:bool = false - -func _process(_delta): - self.visible = !State.reduce_motion and is_void -" - -[sub_resource type="GDScript" id="GDScript_tgc0b"] -script/source = "extends Sprite2D - -var is_void:bool = false - -func _process(_delta): - self.visible = State.reduce_motion and is_void -" - [node name="card" type="Area2D"] script = ExtResource("1_emip0") metadata/type = "card" @@ -166,25 +65,6 @@ clip_children = 2 scale = Vector2(0.6, 0.6) sprite_frames = SubResource("SpriteFrames_ckivt") frame = 1 -script = SubResource("GDScript_8bs16") - -[node name="GPUParticles2D" type="GPUParticles2D" parent="BackgroundSprite"] -visible = false -amount = 500 -process_material = SubResource("ParticleProcessMaterial_by44l") -texture = ExtResource("3_bwtbh") -lifetime = 2.5 -speed_scale = 1.3 -explosiveness = 0.2 -randomness = 0.14 -local_coords = true -script = SubResource("GDScript_vjwk7") - -[node name="Sprite2D" type="Sprite2D" parent="BackgroundSprite"] -visible = false -scale = Vector2(0.4, 0.4) -texture = ExtResource("4_fwm1k") -script = SubResource("GDScript_tgc0b") [node name="Label" type="Label" parent="."] anchors_preset = 8 diff --git a/src/logic-scenes/board/void_card.tscn b/src/logic-scenes/board/void_card.tscn index 6480c943..7b0c425e 100644 --- a/src/logic-scenes/board/void_card.tscn +++ b/src/logic-scenes/board/void_card.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=20 format=3 uid="uid://dp4eps03igd3w"] +[gd_scene load_steps=21 format=3 uid="uid://dp4eps03igd3w"] [ext_resource type="Script" path="res://logic-scenes/board/card.gd" id="1_6ceun"] [ext_resource type="Texture2D" uid="uid://sv0nhkkur1tt" path="res://logic-scenes/board/card-textures/cardsheet.png" id="2_buevv"] @@ -6,6 +6,10 @@ [ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/messy.theme" id="3_mi4ah"] [ext_resource type="Texture2D" uid="uid://bqilajx05t0eb" path="res://logic-scenes/board/particle_textures/void_nomotion.png" id="4_jam8u"] +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_foovg"] +radius = 110.0 +height = 336.0 + [sub_resource type="AtlasTexture" id="AtlasTexture_ykk13"] atlas = ExtResource("2_buevv") region = Rect2(0, 0, 600, 440) @@ -56,17 +60,11 @@ script/source = "extends AnimatedSprite2D @onready var initial_position = position var noise_position = randf() var noise: Noise = FastNoiseLite.new() -var void_active: - set(become_void): - if not (void_active == become_void): - if is_inside_tree(): - $GPUParticles2D.is_void = become_void - $GPUParticles2D.emitting = become_void - $Sprite2D.is_void = become_void - void_active = become_void - + func _process(delta): - if void_active and not State.reduce_motion: + + if not State.reduce_motion: + noise_position += delta * 10 var random_position = Vector2(noise.get_noise_1d(noise_position*2), noise.get_noise_1d(-noise_position)) @@ -116,8 +114,8 @@ radial_accel_min = -20.0 radial_accel_max = -5.0 tangential_accel_min = 20.0 tangential_accel_max = 30.0 -scale_min = 1.5 -scale_max = 3.0 +scale_min = 3.0 +scale_max = 5.0 scale_curve = SubResource("CurveTexture_cg0w1") color_ramp = SubResource("GradientTexture1D_xxq8p") turbulence_noise_strength = 0.1 @@ -126,37 +124,31 @@ attractor_interaction_enabled = false [sub_resource type="GDScript" id="GDScript_vjwk7"] script/source = "extends GPUParticles2D -var is_void:bool = false - func _process(_delta): - self.visible = !State.reduce_motion and is_void + self.visible = !State.reduce_motion " [sub_resource type="GDScript" id="GDScript_tgc0b"] script/source = "extends Sprite2D -var is_void:bool = false - func _process(_delta): - self.visible = State.reduce_motion and is_void + self.visible = State.reduce_motion " -[node name="card" type="Control"] -layout_mode = 3 -anchors_preset = 0 -offset_left = -150.0 -offset_top = -110.0 -offset_right = 150.0 -offset_bottom = 110.0 -focus_mode = 2 +[node name="card" type="Area2D"] script = ExtResource("1_6ceun") +metadata/type = "card" + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(-0.0713516, 0.997451) +rotation = 1.5708 +shape = SubResource("CapsuleShape2D_foovg") [node name="BackgroundSprite" type="AnimatedSprite2D" parent="."] clip_children = 2 -position = Vector2(150, 110) scale = Vector2(0.6, 0.6) sprite_frames = SubResource("SpriteFrames_ckivt") -frame = 2 +frame = 1 script = SubResource("GDScript_8bs16") [node name="GPUParticles2D" type="GPUParticles2D" parent="BackgroundSprite"] @@ -167,6 +159,7 @@ lifetime = 2.5 speed_scale = 1.3 explosiveness = 0.2 randomness = 0.14 +local_coords = true script = SubResource("GDScript_vjwk7") [node name="Sprite2D" type="Sprite2D" parent="BackgroundSprite"] @@ -176,7 +169,6 @@ texture = ExtResource("4_jam8u") script = SubResource("GDScript_tgc0b") [node name="Label" type="Label" parent="."] -layout_mode = 1 anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 @@ -192,13 +184,9 @@ theme = ExtResource("3_mi4ah") theme_type_variation = &"card_text" autowrap_mode = 3 -[node name="postit anchor" type="Control" parent="."] -anchors_preset = 0 -offset_left = 100.0 -offset_top = 148.0 -offset_right = 140.0 -offset_bottom = 188.0 +[node name="postit anchor" type="Node2D" parent="."] +position = Vector2(-65.6478, 60.3852) -[connection signal="focus_entered" from="." to="." method="_on_focus_entered"] -[connection signal="focus_exited" from="." to="." method="_on_focus_exited"] -[connection signal="focus_entered" from="postit anchor" to="." method="_on_postit_anchor_focus_entered"] +[connection signal="input_event" from="." to="." method="_on_input_event"] +[connection signal="mouse_entered" from="." to="." method="_on_mouse_entered"] +[connection signal="mouse_exited" from="." to="." method="_on_mouse_exited"] From 03e6ba5e614d1fb1d33b3a30ede39b6b632efa7b Mon Sep 17 00:00:00 2001 From: betalars Date: Sun, 6 Aug 2023 00:02:17 +0200 Subject: [PATCH 34/34] resetting music slider in startup --- src/logic-scenes/startup/startup.tscn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/logic-scenes/startup/startup.tscn b/src/logic-scenes/startup/startup.tscn index b686f5d8..2f071bb6 100644 --- a/src/logic-scenes/startup/startup.tscn +++ b/src/logic-scenes/startup/startup.tscn @@ -410,7 +410,7 @@ size_flags_horizontal = 3 size_flags_vertical = 4 max_value = 1.0 step = 0.05 -value = 1.0 +value = 0.5 ticks_on_borders = true script = ExtResource("3_q2gbh")