WIP: main menu overhaul, introducing settings
This commit is contained in:
parent
a992558c77
commit
a666ab61c8
|
|
@ -22,7 +22,7 @@ bus/3/name = &"music"
|
|||
bus/3/solo = false
|
||||
bus/3/mute = false
|
||||
bus/3/bypass_fx = false
|
||||
bus/3/volume_db = -9.63278
|
||||
bus/3/volume_db = -7.9588
|
||||
bus/3/send = &"New Bus 3"
|
||||
bus/4/name = &"outside-rain"
|
||||
bus/4/solo = false
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bk5ja14r7r6i4"
|
||||
path="res://.godot/imported/empty_save_slot.png-32c1c54cf3151b5dba169b400fa6408f.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://import/interface-elements/empty_save_slot.png"
|
||||
dest_files=["res://.godot/imported/empty_save_slot.png-32c1c54cf3151b5dba169b400fa6408f.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
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
extends TabBar
|
||||
extends VBoxContainer
|
||||
|
||||
signal changed
|
||||
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ text = "mute Sound-Effects"
|
|||
|
||||
[node name="AdjustmentLabel" type="Label" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderMedium"
|
||||
text = "Volume Adjustment"
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="VBoxContainer"]
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
extends VBoxContainer
|
||||
|
||||
signal changed
|
||||
|
||||
var has_stage:bool = false:
|
||||
set(stage):
|
||||
has_stage = stage
|
||||
visible = has_stage
|
||||
|
||||
@export var is_in_beginning: bool = false
|
||||
var current_music_decay:float = 0
|
||||
|
||||
@onready var expand_button: Button = %ExpandButton
|
||||
@onready var content_note_box: CheckBox = %ContentNoteButton
|
||||
@onready var allow_skip_button: CheckBox = %AllowSkipButton
|
||||
|
||||
func _ready() -> void:
|
||||
if is_in_beginning:
|
||||
%SaveButton.text = "save and continue"
|
||||
else:
|
||||
%SaveButton.text = "save and exit"
|
||||
|
||||
update_ui_from_state()
|
||||
|
||||
content_note_box.pressed.connect(func(value): State.show_content_notes = value)
|
||||
allow_skip_button.pressed.connect(func(value): State.allow_skipping = value)
|
||||
|
||||
%SaveButton.pressed.connect(_on_exit_button_pressed)
|
||||
%ExpandButton.pressed.connect(
|
||||
func():
|
||||
%Reveal.play("reveal")
|
||||
%ExpandButton.disabled = true
|
||||
)
|
||||
|
||||
func update_ui_from_state():
|
||||
content_note_box.button_pressed = State.show_content_notes
|
||||
allow_skip_button.button_pressed = State.allow_skipping
|
||||
|
||||
func _on_exit_button_pressed() -> void:
|
||||
State.save_settings()
|
||||
State.leave_stage(self)
|
||||
|
|
@ -0,0 +1,225 @@
|
|||
[gd_scene load_steps=9 format=3 uid="uid://chal0ioagspx0"]
|
||||
|
||||
[ext_resource type="Script" path="res://logic-scenes/main menu/content_settings.gd" id="1_wnuvg"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_odolw"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:custom_minimum_size")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, 0)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".:scroll_vertical")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [50]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_wthlp"]
|
||||
resource_name = "reveal"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".:custom_minimum_size")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"transitions": PackedFloat32Array(0.392292, 2.63902),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, 0), Vector2(0, 400)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".:scroll_vertical")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.566667),
|
||||
"transitions": PackedFloat32Array(0.63728, 0.482968),
|
||||
"update": 0,
|
||||
"values": [200, 0]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_x5rp4"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_odolw"),
|
||||
"reveal": SubResource("Animation_wthlp")
|
||||
}
|
||||
|
||||
[sub_resource type="ButtonGroup" id="ButtonGroup_v7ly6"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_rhtho"]
|
||||
script/source = "extends Button
|
||||
|
||||
func _ready():
|
||||
self.connect(\"toggled\", Callable(self, \"_on_toggled\"))
|
||||
|
||||
func _on_toggled(was_button_pressed: bool):
|
||||
if get_parent().get_child(1).visible == false:
|
||||
get_parent().get_child(1).visible = was_button_pressed
|
||||
else:
|
||||
get_parent().get_child(1).visible = false
|
||||
"
|
||||
|
||||
[sub_resource type="InputEventAction" id="InputEventAction_gy6yb"]
|
||||
action = &"ui_cancel"
|
||||
pressed = true
|
||||
|
||||
[sub_resource type="Shortcut" id="Shortcut_df462"]
|
||||
events = [SubResource("InputEventAction_gy6yb")]
|
||||
|
||||
[node name="Content Notes" type="VBoxContainer"]
|
||||
custom_minimum_size = Vector2(512, 0)
|
||||
script = ExtResource("1_wnuvg")
|
||||
metadata/_tab_index = 1
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderLarge"
|
||||
text = "Content Notes"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Label2" type="Label" parent="."]
|
||||
layout_mode = 2
|
||||
text = "This Game deals with Heavy Topics."
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="ExpandButton" type="Button" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "I would like to know more."
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="."]
|
||||
layout_mode = 2
|
||||
follow_focus = true
|
||||
scroll_vertical = 50
|
||||
horizontal_scroll_mode = 0
|
||||
vertical_scroll_mode = 2
|
||||
|
||||
[node name="Reveal" type="AnimationPlayer" parent="ScrollContainer"]
|
||||
unique_name_in_owner = true
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_x5rp4")
|
||||
}
|
||||
|
||||
[node name="Content Notes" type="VBoxContainer" parent="ScrollContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="VBoxContainer1" type="VBoxContainer" parent="ScrollContainer/Content Notes"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Button" type="Button" parent="ScrollContainer/Content Notes/VBoxContainer1"]
|
||||
layout_mode = 2
|
||||
toggle_mode = true
|
||||
button_group = SubResource("ButtonGroup_v7ly6")
|
||||
text = "Is this game for or about me?"
|
||||
script = SubResource("GDScript_rhtho")
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer1"]
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(512, 0)
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "[ul]
|
||||
This game tells one story about one fictional character.
|
||||
This character was desiged to tell an honest and acsssible story about identity and trauma.
|
||||
This is not the game for you if you are looking for escapism.
|
||||
This is not therapy.
|
||||
You might feel understood if exeriences you've had are close to the characters.
|
||||
It might help you understand a friend.
|
||||
It will tell you things a group of peers, that reflected about their similar, but specific experiences, want more people to know about.
|
||||
This is made by betalars, who has many overlapping experiences with this character. They made sure to consult people, who can speak from their own exerpiences about subjects, where betalars could not.
|
||||
[/ul]"
|
||||
fit_content = true
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="ScrollContainer/Content Notes"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Button" type="Button" parent="ScrollContainer/Content Notes/VBoxContainer2"]
|
||||
layout_mode = 2
|
||||
toggle_mode = true
|
||||
button_group = SubResource("ButtonGroup_v7ly6")
|
||||
text = "What may be difficult about the premise?"
|
||||
script = SubResource("GDScript_rhtho")
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer2"]
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(512, 0)
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "In this game, you will encounter situations that are problematic and will have a negative impact on the Mental Health of the character you are playing as. This game will establish hurtful assumptions this character develops about themselves and you may not resolve all of them right away. You will have some agency, but it is limited by the games narrative and also chance. You are encouraged and will be able to resolve hurtful assumptions later in the game."
|
||||
fit_content = true
|
||||
|
||||
[node name="VBoxContainer3" type="VBoxContainer" parent="ScrollContainer/Content Notes"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Button" type="Button" parent="ScrollContainer/Content Notes/VBoxContainer3"]
|
||||
layout_mode = 2
|
||||
toggle_mode = true
|
||||
button_group = SubResource("ButtonGroup_v7ly6")
|
||||
text = "What are the game's topics? (Content Notes)"
|
||||
script = SubResource("GDScript_rhtho")
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer3"]
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(512, 0)
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "This game discusses Mental Health and Sex-Positivity. It also includes a character, who is trans but you will get to know them while they are unaware about their trans identity going by their birthname. Besides social Transistioning, this game also deals with topics including Mysoginy, Sanism, Body Issues, Eating Disorders, Bullying, Martial Arts, Relationships and Rape, but not trough physical violence. Comic violence is mentioned while talking about a fictional franchise in universe."
|
||||
fit_content = true
|
||||
|
||||
[node name="VBoxContainer4" type="VBoxContainer" parent="ScrollContainer/Content Notes"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Button" type="Button" parent="ScrollContainer/Content Notes/VBoxContainer4"]
|
||||
layout_mode = 2
|
||||
toggle_mode = true
|
||||
button_group = SubResource("ButtonGroup_v7ly6")
|
||||
text = "Mental Health Acessibility Options"
|
||||
script = SubResource("GDScript_rhtho")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer/Content Notes/VBoxContainer4"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="RichTextLabel2" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer4/VBoxContainer"]
|
||||
custom_minimum_size = Vector2(512, 0)
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "[ul]
|
||||
You can always Pause using Escape or Spacebar
|
||||
You can always choose to just get a neutral summary of scenes or skip them entirely
|
||||
[/ul]"
|
||||
fit_content = true
|
||||
|
||||
[node name="ContentNoteButton" type="CheckBox" parent="ScrollContainer/Content Notes/VBoxContainer4/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "show content notes during the game"
|
||||
|
||||
[node name="AllowSkipButton" type="CheckBox" parent="ScrollContainer/Content Notes/VBoxContainer4/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "allow me to skip scenes"
|
||||
|
||||
[node name="SaveButton" type="Button" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
shortcut = SubResource("Shortcut_df462")
|
||||
text = "save and exit"
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
extends VBoxContainer
|
||||
|
||||
signal changed
|
||||
|
||||
var has_stage:bool = false:
|
||||
set(stage):
|
||||
has_stage = stage
|
||||
visible = has_stage
|
||||
|
||||
var current_music_decay:float = 0
|
||||
|
||||
@onready var y_switch: CheckBox = %InvertY
|
||||
@onready var input_sensitivity_slider: HSlider = %InputSensitivitySlider
|
||||
@onready var stream_overlay_picker: OptionButton = %StreamOverlayPicker
|
||||
|
||||
func _ready() -> void:
|
||||
update_ui_from_state()
|
||||
|
||||
y_switch.toggled.connect(func(value): State.inverty_y_axis = value)
|
||||
input_sensitivity_slider.value_changed.connect(func(value): State.input_sensitivity = value)
|
||||
stream_overlay_picker.item_selected.connect(func(value): State.stream_overlay = value)
|
||||
|
||||
%SaveButton.pressed.connect(_on_exit_button_pressed)
|
||||
|
||||
func update_ui_from_state():
|
||||
y_switch.button_pressed = State.inverty_y_axis
|
||||
input_sensitivity_slider.value = State.input_sensitivity
|
||||
stream_overlay_picker.select(State.stream_overlay_position)
|
||||
|
||||
func _on_exit_button_pressed() -> void:
|
||||
State.save_settings()
|
||||
State.leave_stage(self)
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://dxwqkxq6qjk7i"]
|
||||
|
||||
[ext_resource type="Script" path="res://logic-scenes/main menu/gameplay_settings.gd" id="1_aurh1"]
|
||||
|
||||
[sub_resource type="InputEventAction" id="InputEventAction_gy6yb"]
|
||||
action = &"ui_cancel"
|
||||
pressed = true
|
||||
|
||||
[sub_resource type="Shortcut" id="Shortcut_0peu0"]
|
||||
events = [SubResource("InputEventAction_gy6yb")]
|
||||
|
||||
[node name="Gameplay Settings" type="VBoxContainer"]
|
||||
script = ExtResource("1_aurh1")
|
||||
metadata/_tab_index = 1
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderLarge"
|
||||
text = "Gameplay Settings"
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="InvertY" type="CheckBox" parent="VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
tooltip_text = "All Game Music is safe to stream."
|
||||
text = "invert Y (gamepad)"
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
columns = 2
|
||||
|
||||
[node name="Label" type="Label" parent="VBoxContainer/GridContainer"]
|
||||
layout_mode = 2
|
||||
text = "Input Sensitivity"
|
||||
|
||||
[node name="InputSensitivitySlider" type="HSlider" parent="VBoxContainer/GridContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 4
|
||||
max_value = 1.0
|
||||
step = 0.05
|
||||
value = 0.5
|
||||
ticks_on_borders = true
|
||||
|
||||
[node name="Label3" type="Label" parent="VBoxContainer/GridContainer"]
|
||||
layout_mode = 2
|
||||
text = "Stream Overlay"
|
||||
|
||||
[node name="StreamOverlayPicker" type="OptionButton" parent="VBoxContainer/GridContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
tooltip_text = "Displays content note and currently playing music at a corner of the screen."
|
||||
selected = 0
|
||||
item_count = 5
|
||||
popup/item_0/text = "none"
|
||||
popup/item_1/text = "Top Left"
|
||||
popup/item_1/id = 2
|
||||
popup/item_2/text = "Top Right"
|
||||
popup/item_2/id = 3
|
||||
popup/item_3/text = "Bottom Left"
|
||||
popup/item_3/id = 5
|
||||
popup/item_4/text = "Bottom Right"
|
||||
popup/item_4/id = 6
|
||||
|
||||
[node name="Audio Sliders" type="HBoxContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Labels" type="VBoxContainer" parent="VBoxContainer/Audio Sliders"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Sliders" type="VBoxContainer" parent="VBoxContainer/Audio Sliders"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="SaveButton" type="Button" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
shortcut = SubResource("Shortcut_0peu0")
|
||||
text = "save and exit"
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
extends Panel
|
||||
|
||||
signal load_scene(id: int)
|
||||
signal start_game(savegame: SaveGame)
|
||||
signal open_settings(new_game: bool)
|
||||
|
||||
@onready var new_game_button: Button = $PanelContainer/NewGameButton
|
||||
@onready var continue_button: Button = $PanelContainer/ContinueGameButton
|
||||
@onready var load_game_button: Button = $PanelContainer/LoadGameButton
|
||||
@onready var settings_button: Button = $PanelContainer/SettingsButton
|
||||
@onready var quit_button: Button = $PanelContainer/QuitButton
|
||||
@onready var save_game_handle: Control = %SaveGameHandle
|
||||
|
||||
@export var save_game_exists: bool = false:
|
||||
set(value):
|
||||
save_game_exists = value
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
new_game_button.pressed.connect(func():
|
||||
save_game_handle.show()
|
||||
)
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
pass
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
class_name SaveGameDisplay extends Button
|
||||
|
||||
func _init(save: SaveGame, id: int) -> void:
|
||||
var base_container:= HBoxContainer.new()
|
||||
base_container.alignment = BoxContainer.ALIGNMENT_CENTER
|
||||
add_child(base_container)
|
||||
|
||||
var texture:= TextureRect.new()
|
||||
texture.texture = save.thumbnail
|
||||
texture.size_flags_vertical = Control.SIZE_SHRINK_CENTER
|
||||
|
||||
base_container.add_child(texture)
|
||||
var heading_split:= HSplitContainer.new()
|
||||
var heading:= Label.new()
|
||||
|
||||
heading.text = "Slot %d" % id
|
||||
heading.theme_type_variation = "HeaderLarge"
|
||||
|
||||
var localised_date_time: String
|
||||
|
||||
var localised_weekday: PackedStringArray
|
||||
|
||||
match TranslationServer.get_locale():
|
||||
"de":
|
||||
localised_weekday = ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"]
|
||||
localised_date_time = "%s, %d.%d.%d um %d:%02d" % [localised_weekday[save.last_saved["weekday"]],
|
||||
save.last_saved["day"],
|
||||
save.last_saved["month"],
|
||||
save.last_saved["year"],
|
||||
save.last_saved["hour"],
|
||||
save.last_saved["minute"]
|
||||
]
|
||||
_:
|
||||
localised_weekday = ["Monday", "Tuseday", "Wensday", "Thursday", "Friday", "Saturday", "Sunday"]
|
||||
localised_date_time = "%s, %d/%d/%d - %d:%02d (%s)" % [localised_weekday[save.last_saved["weekday"]],
|
||||
save.last_saved["day"],
|
||||
save.last_saved["month"],
|
||||
save.last_saved["year"],
|
||||
save.last_saved["hour"] % 12 if save.last_saved["hour"] % 12 > 1 else 12 if save.last_saved["hour"] == 12 or save.last_saved["minute"] == 0 else 0,
|
||||
save.last_saved["minute"],
|
||||
"AM" if save.last_saved["hour"] < 12 else "PM"]
|
||||
|
||||
var time:= Label.new()
|
||||
time.text = localised_date_time if not save.current_room == 0 else "Start new game."
|
||||
|
||||
var info:= VBoxContainer.new()
|
||||
base_container.add_child(info)
|
||||
|
||||
info.add_child(heading_split)
|
||||
heading_split.add_child(heading)
|
||||
heading_split.add_child(time)
|
||||
|
||||
var room:= Label.new()
|
||||
room.theme_type_variation = "HeaderMedium"
|
||||
match save.current_room:
|
||||
State.rooms.MENU:
|
||||
room.text = "Empty Slot"
|
||||
State.rooms.DRAVEN:
|
||||
room.text = "Intro Sequence"
|
||||
State.rooms.YOUTH:
|
||||
room.text = "Inside youth room."
|
||||
State.rooms.TRANSITION_VOL:
|
||||
room.text = "Transitioning to voluntary year."
|
||||
State.rooms.VOLUNTARY:
|
||||
room.text = "Exploring social service year."
|
||||
State.rooms.TRANSITION_UNI:
|
||||
room.text = "Transitioning to university."
|
||||
State.rooms.UNIVERSITY:
|
||||
room.text = "Exploring dorm room."
|
||||
State.rooms.ENDING:
|
||||
room.text = "Ending"
|
||||
|
||||
var state: = Label.new()
|
||||
state.text = ("""
|
||||
Mementos collected: 1/4
|
||||
Connections found: 1/8
|
||||
Secrets found: 1/4
|
||||
""").strip_edges()
|
||||
|
||||
info.add_child(room)
|
||||
info.add_child(state)
|
||||
info.size_flags_vertical = Control.SIZE_SHRINK_CENTER
|
||||
|
||||
custom_minimum_size = base_container.get_combined_minimum_size() + Vector2(64, 32)
|
||||
|
||||
theme_type_variation = "SaveButton"
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
@tool
|
||||
extends CenterContainer
|
||||
|
||||
@export var new_game: bool = false:
|
||||
set(value):
|
||||
new_game = value
|
||||
|
||||
|
||||
@export var save_1: SaveGame = SaveGame.new()
|
||||
@export var save_2: SaveGame = SaveGame.new()
|
||||
@export var save_3: SaveGame = SaveGame.new()
|
||||
@export var update_display: bool:
|
||||
set(value):
|
||||
display()
|
||||
|
||||
func _ready() -> void:
|
||||
display()
|
||||
|
||||
func display():
|
||||
for child in get_children():
|
||||
child.free()
|
||||
|
||||
add_child(SaveGameDisplay.new(save_1, 1))
|
||||
add_child(SaveGameDisplay.new(save_2, 2))
|
||||
add_child(SaveGameDisplay.new(save_3, 3))
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
extends TabBar
|
||||
extends VBoxContainer
|
||||
|
||||
signal changed
|
||||
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ func _on_focus_exit():
|
|||
get_line_edit().remove_theme_stylebox_override(\"normal\")
|
||||
"
|
||||
|
||||
[node name="Video Settings" type="TabBar"]
|
||||
[node name="Video Settings" type="VBoxContainer"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
|
|
@ -85,58 +85,50 @@ grow_horizontal = 2
|
|||
grow_vertical = 2
|
||||
script = ExtResource("1_sii8g")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Label" type="Label" parent="VBoxContainer"]
|
||||
[node name="Label" type="Label" parent="."]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderLarge"
|
||||
text = "Video Settings"
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="VBoxContainer"]
|
||||
[node name="GridContainer" type="GridContainer" parent="."]
|
||||
layout_mode = 2
|
||||
columns = 2
|
||||
|
||||
[node name="General" type="Label" parent="VBoxContainer/GridContainer"]
|
||||
[node name="General" type="Label" parent="GridContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderMedium"
|
||||
text = "General"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="VBoxContainer/GridContainer"]
|
||||
[node name="HSeparator" type="HSeparator" parent="GridContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Preset" type="Label" parent="VBoxContainer/GridContainer"]
|
||||
[node name="Preset" type="Label" parent="GridContainer"]
|
||||
layout_mode = 2
|
||||
text = "apply preset"
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer/GridContainer"]
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="GridContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="PerformancePreset" type="Button" parent="VBoxContainer/GridContainer/HBoxContainer2"]
|
||||
[node name="PerformancePreset" type="Button" parent="GridContainer/HBoxContainer2"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Performance"
|
||||
|
||||
[node name="BalancedPreset" type="Button" parent="VBoxContainer/GridContainer/HBoxContainer2"]
|
||||
[node name="BalancedPreset" type="Button" parent="GridContainer/HBoxContainer2"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Balanced"
|
||||
|
||||
[node name="QualityPreset" type="Button" parent="VBoxContainer/GridContainer/HBoxContainer2"]
|
||||
[node name="QualityPreset" type="Button" parent="GridContainer/HBoxContainer2"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Quality"
|
||||
|
||||
[node name="Label" type="Label" parent="VBoxContainer/GridContainer"]
|
||||
[node name="Label" type="Label" parent="GridContainer"]
|
||||
layout_mode = 2
|
||||
text = "Fulscreen Mode"
|
||||
|
||||
[node name="FullscreenMode" type="OptionButton" parent="VBoxContainer/GridContainer"]
|
||||
[node name="FullscreenMode" type="OptionButton" parent="GridContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
selected = 1
|
||||
|
|
@ -147,18 +139,18 @@ popup/item_1/id = 1
|
|||
popup/item_2/text = "exclusive Fullscreen"
|
||||
popup/item_2/id = 2
|
||||
|
||||
[node name="Scale_Label" type="Label" parent="VBoxContainer/GridContainer"]
|
||||
[node name="Scale_Label" type="Label" parent="GridContainer"]
|
||||
layout_mode = 2
|
||||
text = "Rendering Scale"
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/GridContainer"]
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="GridContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Button" type="Button" parent="VBoxContainer/GridContainer/HBoxContainer"]
|
||||
[node name="Button" type="Button" parent="GridContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "reset"
|
||||
|
||||
[node name="RenderScale" type="SpinBox" parent="VBoxContainer/GridContainer/HBoxContainer"]
|
||||
[node name="RenderScale" type="SpinBox" parent="GridContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
focus_mode = 2
|
||||
|
|
@ -172,27 +164,27 @@ custom_arrow_step = 0.25
|
|||
select_all_on_focus = true
|
||||
script = SubResource("GDScript_24hb5")
|
||||
|
||||
[node name="Label3" type="Label" parent="VBoxContainer/GridContainer"]
|
||||
[node name="Label3" type="Label" parent="GridContainer"]
|
||||
layout_mode = 2
|
||||
text = "Super Resolution"
|
||||
|
||||
[node name="SuperResolution" type="OptionButton" parent="VBoxContainer/GridContainer"]
|
||||
[node name="SuperResolution" type="OptionButton" parent="GridContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
selected = 0
|
||||
item_count = 3
|
||||
popup/item_0/text = "disabled"
|
||||
popup/item_1/text = "FSR 1.0"
|
||||
popup/item_1/text = " "
|
||||
popup/item_1/id = 1
|
||||
popup/item_2/text = "FSR 2.2"
|
||||
popup/item_2/id = 2
|
||||
|
||||
[node name="EnableFps" type="CheckBox" parent="VBoxContainer/GridContainer"]
|
||||
[node name="EnableFps" type="CheckBox" parent="GridContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "limit FPS"
|
||||
|
||||
[node name="MaxFps" type="SpinBox" parent="VBoxContainer/GridContainer"]
|
||||
[node name="MaxFps" type="SpinBox" parent="GridContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
focus_mode = 2
|
||||
|
|
@ -204,36 +196,36 @@ suffix = " "
|
|||
script = SubResource("GDScript_24hb5")
|
||||
repeat_multiplier = 5
|
||||
|
||||
[node name="Rendering" type="Label" parent="VBoxContainer/GridContainer"]
|
||||
[node name="Rendering" type="Label" parent="GridContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderMedium"
|
||||
text = "Rendering"
|
||||
text = "Graphic Fidelity"
|
||||
|
||||
[node name="HSeparator2" type="HSeparator" parent="VBoxContainer/GridContainer"]
|
||||
[node name="HSeparator2" type="HSeparator" parent="GridContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label4" type="Label" parent="VBoxContainer/GridContainer"]
|
||||
[node name="Label4" type="Label" parent="GridContainer"]
|
||||
layout_mode = 2
|
||||
text = "Lighting Quality"
|
||||
|
||||
[node name="LightingQuality" type="OptionButton" parent="VBoxContainer/GridContainer"]
|
||||
[node name="LightingQuality" type="OptionButton" parent="GridContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
selected = 1
|
||||
item_count = 4
|
||||
popup/item_0/text = "minimum"
|
||||
popup/item_1/text = "low SDGI"
|
||||
popup/item_1/text = "low (SDF Global Illumination)"
|
||||
popup/item_1/id = 1
|
||||
popup/item_2/text = "medium SDGI and SI"
|
||||
popup/item_2/text = "medium (SDF and Screen Space Global Illumination)"
|
||||
popup/item_2/id = 2
|
||||
popup/item_3/text = "high SDGI and SI"
|
||||
popup/item_3/text = "high (SDF and Screen Space Global Illumination)"
|
||||
popup/item_3/id = 3
|
||||
|
||||
[node name="ShadowLabel" type="Label" parent="VBoxContainer/GridContainer"]
|
||||
[node name="ShadowLabel" type="Label" parent="GridContainer"]
|
||||
layout_mode = 2
|
||||
text = "Shadow Quality"
|
||||
|
||||
[node name="ShadowQuality" type="OptionButton" parent="VBoxContainer/GridContainer"]
|
||||
[node name="ShadowQuality" type="OptionButton" parent="GridContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
selected = 1
|
||||
|
|
@ -244,11 +236,11 @@ popup/item_1/id = 1
|
|||
popup/item_2/text = "quality"
|
||||
popup/item_2/id = 2
|
||||
|
||||
[node name="FilterLabel" type="Label" parent="VBoxContainer/GridContainer"]
|
||||
[node name="FilterLabel" type="Label" parent="GridContainer"]
|
||||
layout_mode = 2
|
||||
text = "Texture Filtering"
|
||||
|
||||
[node name="TextureFiltering" type="OptionButton" parent="VBoxContainer/GridContainer"]
|
||||
[node name="TextureFiltering" type="OptionButton" parent="GridContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
selected = 1
|
||||
|
|
@ -265,11 +257,11 @@ popup/item_4/id = 4
|
|||
popup/item_5/text = "16x (slowest)"
|
||||
popup/item_5/id = 5
|
||||
|
||||
[node name="AlaisingLabel" type="Label" parent="VBoxContainer/GridContainer"]
|
||||
[node name="AlaisingLabel" type="Label" parent="GridContainer"]
|
||||
layout_mode = 2
|
||||
text = "Anti Aliasing"
|
||||
|
||||
[node name="AntiAlaising" type="OptionButton" parent="VBoxContainer/GridContainer"]
|
||||
[node name="AntiAlaising" type="OptionButton" parent="GridContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
selected = 1
|
||||
|
|
@ -282,11 +274,11 @@ popup/item_2/id = 2
|
|||
popup/item_3/text = "8x MSAA"
|
||||
popup/item_3/id = 3
|
||||
|
||||
[node name="SyncLabel" type="Label" parent="VBoxContainer/GridContainer"]
|
||||
[node name="SyncLabel" type="Label" parent="GridContainer"]
|
||||
layout_mode = 2
|
||||
text = "v-Sync"
|
||||
|
||||
[node name="vSync" type="OptionButton" parent="VBoxContainer/GridContainer"]
|
||||
[node name="vSync" type="OptionButton" parent="GridContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
selected = 1
|
||||
|
|
@ -299,54 +291,48 @@ popup/item_2/id = 2
|
|||
popup/item_3/text = "Letterbox"
|
||||
popup/item_3/id = 3
|
||||
|
||||
[node name="ExitButton" type="Button" parent="VBoxContainer/GridContainer"]
|
||||
[node name="ExitButton" type="Button" parent="GridContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "close"
|
||||
|
||||
[node name="ConfirmButton" type="Button" parent="VBoxContainer/GridContainer"]
|
||||
[node name="ConfirmButton" type="Button" parent="GridContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "save and apply"
|
||||
|
||||
[node name="Popup" type="Popup" parent="."]
|
||||
scaling_3d_scale = 0.6
|
||||
[node name="Popup" type="Popup" parent="GridContainer/ConfirmButton"]
|
||||
initial_position = 2
|
||||
size = Vector2i(546, 123)
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="Popup"]
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="GridContainer/ConfirmButton/Popup"]
|
||||
offset_left = 113.0
|
||||
offset_right = 153.0
|
||||
offset_bottom = 40.0
|
||||
|
||||
[node name="Label" type="Label" parent="Popup/VBoxContainer"]
|
||||
[node name="Label" type="Label" parent="GridContainer/ConfirmButton/Popup/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Settings have been modified.
|
||||
Do you really want to leave without saving?"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Popup/VBoxContainer"]
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="GridContainer/ConfirmButton/Popup/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="ConfirmExit" type="Button" parent="Popup/VBoxContainer/HBoxContainer"]
|
||||
[node name="ConfirmExit" type="Button" parent="GridContainer/ConfirmButton/Popup/VBoxContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "leave"
|
||||
|
||||
[node name="ConfirmSave" type="Button" parent="Popup/VBoxContainer/HBoxContainer"]
|
||||
[node name="ConfirmSave" type="Button" parent="GridContainer/ConfirmButton/Popup/VBoxContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "save"
|
||||
|
||||
[node name="ConfirmAbort" type="Button" parent="Popup/VBoxContainer/HBoxContainer"]
|
||||
[node name="ConfirmAbort" type="Button" parent="GridContainer/ConfirmButton/Popup/VBoxContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "abort"
|
||||
|
||||
[connection signal="pressed" from="VBoxContainer/GridContainer/HBoxContainer2/PerformancePreset" to="." method="_on_performance_preset_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/GridContainer/HBoxContainer2/BalancedPreset" to="." method="_on_balanced_preset_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/GridContainer/HBoxContainer2/QualityPreset" to="." method="_on_quality_preset_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/GridContainer/HBoxContainer/Button" to="VBoxContainer/GridContainer/HBoxContainer/RenderScale" method="reset"]
|
||||
[connection signal="pressed" from="VBoxContainer/GridContainer/ExitButton" to="." method="_on_exit_button_pressed"]
|
||||
[connection signal="pressed" from="VBoxContainer/GridContainer/ConfirmButton" to="." method="_on_confirm_button_pressed"]
|
||||
[connection signal="pressed" from="GridContainer/HBoxContainer/Button" to="GridContainer/HBoxContainer/RenderScale" method="reset"]
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
[gd_scene load_steps=10 format=3 uid="uid://gldtxysavetf"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://gldtxysavetf"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="1_8giso"]
|
||||
[ext_resource type="Theme" uid="uid://dla4kae5kbwdh" path="res://logic-scenes/themes/system.theme" id="1_ot7jp"]
|
||||
[ext_resource type="PackedScene" uid="uid://chal0ioagspx0" path="res://logic-scenes/main menu/content_settings.tscn" id="3_fso6q"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_s5ssh"]
|
||||
[ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="5_7c77g"]
|
||||
|
||||
|
|
@ -169,21 +170,6 @@ func _ready():
|
|||
grab_focus()
|
||||
"
|
||||
|
||||
[sub_resource type="ButtonGroup" id="ButtonGroup_v7ly6"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_rhtho"]
|
||||
script/source = "extends Button
|
||||
|
||||
func _ready():
|
||||
self.connect(\"toggled\", Callable(self, \"_on_toggled\"))
|
||||
|
||||
func _on_toggled(was_button_pressed: bool):
|
||||
if get_parent().get_child(1).visible == false:
|
||||
get_parent().get_child(1).visible = was_button_pressed
|
||||
else:
|
||||
get_parent().get_child(1).visible = false
|
||||
"
|
||||
|
||||
[node name="Startup Menu" type="Panel"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
|
|
@ -237,12 +223,13 @@ layout_mode = 2
|
|||
|
||||
[node name="TabContainer" type="TabContainer" parent="CenterContainer/PanelContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
current_tab = 0
|
||||
current_tab = 2
|
||||
tabs_visible = false
|
||||
use_hidden_tabs_for_min_size = true
|
||||
script = SubResource("GDScript_ia432")
|
||||
|
||||
[node name="physical Accessibility" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 0
|
||||
|
||||
|
|
@ -369,141 +356,11 @@ layout_mode = 2
|
|||
disabled = true
|
||||
text = "go back"
|
||||
|
||||
[node name="Content Notes" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer"]
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(512, 0)
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 1
|
||||
|
||||
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes"]
|
||||
layout_mode = 2
|
||||
text = "This Game deals with Heavy Topics."
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="show content Notes" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes"]
|
||||
layout_mode = 2
|
||||
text = "I would like to know more."
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes"]
|
||||
custom_minimum_size = Vector2(0, 400)
|
||||
layout_mode = 2
|
||||
follow_focus = true
|
||||
horizontal_scroll_mode = 0
|
||||
|
||||
[node name="Content Notes" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer"]
|
||||
[node name="Content Notes" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer" instance=ExtResource("3_fso6q")]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Button" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer2"]
|
||||
layout_mode = 2
|
||||
toggle_mode = true
|
||||
button_group = SubResource("ButtonGroup_v7ly6")
|
||||
text = "Is this game for or about me?"
|
||||
script = SubResource("GDScript_rhtho")
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer2"]
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(512, 0)
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "[ul]
|
||||
This game tells one story about one fictional character.
|
||||
This character was desiged to tell an honest and acsssible story about identity and trauma.
|
||||
This is not the game for you if you are looking for escapism.
|
||||
This is not therapy.
|
||||
You might feel understood if exeriences you've had are close to the characters.
|
||||
It might help you understand a friend.
|
||||
It will tell you things a group of peers, that reflected about their similar, but specific experiences, want more people to know about.
|
||||
This is made by betalars, who has many overlapping experiences with this character. They made sure to consult people, who can speak from their own exerpiences about subjects, where betalars could not.
|
||||
[/ul]"
|
||||
fit_content = true
|
||||
|
||||
[node name="VBoxContainer3" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Button" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer3"]
|
||||
layout_mode = 2
|
||||
toggle_mode = true
|
||||
button_group = SubResource("ButtonGroup_v7ly6")
|
||||
text = "What may be difficult about the premise?"
|
||||
script = SubResource("GDScript_rhtho")
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer3"]
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(512, 0)
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "In this game, you will encounter situations that are problematic and will have a negative impact on the Mental Health of the character you are playing as. This game will establish hurtful assumptions this character develops about themselves and you may not resolve all of them right away. You will have some agency, but it is limited by the games narrative and also chance. You are encouraged and will be able to resolve hurtful assumptions later in the game."
|
||||
fit_content = true
|
||||
|
||||
[node name="VBoxContainer4" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Button" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer4"]
|
||||
layout_mode = 2
|
||||
toggle_mode = true
|
||||
button_group = SubResource("ButtonGroup_v7ly6")
|
||||
text = "What are the game's topics? (Content Notes)"
|
||||
script = SubResource("GDScript_rhtho")
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer4"]
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(512, 0)
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "This game discusses Mental Health and Sex-Positivity. It also includes a character, who is trans but you will get to know them while they are unaware about their trans identity going by their birthname. Besides social Transistioning, this game also deals with topics including Mysoginy, Sanism, Body Issues, Eating Disorders, Bullying, Martial Arts, Relationships and Rape, but not trough physical violence. Comic violence is mentioned while talking about a fictional franchise in universe."
|
||||
fit_content = true
|
||||
|
||||
[node name="VBoxContainer5" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Button" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5"]
|
||||
layout_mode = 2
|
||||
toggle_mode = true
|
||||
button_group = SubResource("ButtonGroup_v7ly6")
|
||||
text = "Mental Health Acessibility Options"
|
||||
script = SubResource("GDScript_rhtho")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="RichTextLabel2" type="RichTextLabel" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer"]
|
||||
custom_minimum_size = Vector2(512, 0)
|
||||
layout_mode = 2
|
||||
bbcode_enabled = true
|
||||
text = "[ul]
|
||||
You can always Pause using Escape or Spacebar
|
||||
You can always choose to just get a neutral summary of scenes or skip them entirely
|
||||
[/ul]"
|
||||
fit_content = true
|
||||
|
||||
[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 during the game"
|
||||
|
||||
[node name="allow_skipping" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "allow me to skip scenes"
|
||||
|
||||
[node name="navbuttons" type="VSplitContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 10
|
||||
|
||||
[node name="Next" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/navbuttons"]
|
||||
layout_mode = 2
|
||||
text = "okay"
|
||||
|
||||
[node name="previous" type="Button" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/navbuttons"]
|
||||
layout_mode = 2
|
||||
text = "go back"
|
||||
|
||||
[node name="Managing Expectations" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 2
|
||||
|
||||
|
|
@ -588,12 +445,6 @@ text = "I never put in much effort for Homework"
|
|||
[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/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/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="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="." 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"]
|
||||
|
|
|
|||
|
|
@ -1,11 +1,300 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://b51wdql4mby47"]
|
||||
[gd_scene load_steps=19 format=3 uid="uid://b51wdql4mby47"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/easy-handwriting.theme" id="1_2dg4n"]
|
||||
[ext_resource type="Script" path="res://logic-scenes/main menu/main_menu.gd" id="2_rm576"]
|
||||
[ext_resource type="PackedScene" uid="uid://gmxenhavh1lp" path="res://logic-scenes/main menu/video_settings.tscn" id="3_f0dcd"]
|
||||
[ext_resource type="Texture2D" uid="uid://d3ewjumh0b0g6" path="res://logic-scenes/main menu/logo.png" id="3_xb2np"]
|
||||
[ext_resource type="PackedScene" uid="uid://dfhkfocy8axb8" path="res://logic-scenes/main menu/audio_settings.tscn" id="4_o07mg"]
|
||||
[ext_resource type="PackedScene" uid="uid://dxwqkxq6qjk7i" path="res://logic-scenes/main menu/gameplay_settings.tscn" id="6_p7ypt"]
|
||||
[ext_resource type="PackedScene" uid="uid://chal0ioagspx0" path="res://logic-scenes/main menu/content_settings.tscn" id="7_pnd48"]
|
||||
[ext_resource type="Script" path="res://logic-scenes/main menu/save_game_list.gd" id="8_o0cpj"]
|
||||
[ext_resource type="Script" path="res://dev-util/savegame.gd" id="9_hb671"]
|
||||
[ext_resource type="Texture2D" uid="uid://bk5ja14r7r6i4" path="res://import/interface-elements/empty_save_slot.png" id="10_v8xkt"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_njt06"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_3pjwp"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("../../Control/decoration:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("../../Control/decoration:rotation")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [1.26885]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("..:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("../..:scale")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1, 0.57)]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("../..:self_modulate")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../..:visible")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_i4c5w"]
|
||||
resource_name = "reveal"
|
||||
length = 2.0
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("../../Control/decoration:modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0.4, 1.03333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("../../Control/decoration:rotation")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.0333333, 1.76667),
|
||||
"transitions": PackedFloat32Array(0.353554, 1),
|
||||
"update": 0,
|
||||
"values": [0.610865, 0.347321]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("..:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0.266667, 0.533333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("../..:scale")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.866667),
|
||||
"transitions": PackedFloat32Array(0.277392, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1, 0.57), Vector2(1, 1)]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("../..:self_modulate")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0, 1.03333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../..:visible")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_a3iyq"]
|
||||
resource_name = "vanish"
|
||||
length = 1.5
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("../..:self_modulate")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0.333333, 0.633333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("../..:scale")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1, 1)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("../../Control/decoration:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0.133333, 1.46667),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("../../Control/decoration:rotation")
|
||||
tracks/3/interp = 2
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.266667, 1.43333),
|
||||
"transitions": PackedFloat32Array(1, 2.21914, 1),
|
||||
"update": 0,
|
||||
"values": [0.347507, 0.174533, 1.03847]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("..:modulate")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0.1, 0.433333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../..:visible")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0, 1.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_lmxul"]
|
||||
_data = {
|
||||
"RESET": SubResource("Animation_3pjwp"),
|
||||
"reveal": SubResource("Animation_i4c5w"),
|
||||
"vanish": SubResource("Animation_a3iyq")
|
||||
}
|
||||
|
||||
[sub_resource type="Resource" id="Resource_7b5jk"]
|
||||
script = ExtResource("9_hb671")
|
||||
current_room = 0
|
||||
mementos_complete = 0
|
||||
thumbnail = ExtResource("10_v8xkt")
|
||||
last_saved = {
|
||||
"day": 30,
|
||||
"dst": true,
|
||||
"hour": 17,
|
||||
"minute": 17,
|
||||
"month": 9,
|
||||
"second": 48,
|
||||
"weekday": 1,
|
||||
"year": 2024
|
||||
}
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ew63c"]
|
||||
script = ExtResource("9_hb671")
|
||||
current_room = 0
|
||||
mementos_complete = 0
|
||||
thumbnail = ExtResource("10_v8xkt")
|
||||
last_saved = {
|
||||
"day": 30,
|
||||
"dst": true,
|
||||
"hour": 17,
|
||||
"minute": 17,
|
||||
"month": 9,
|
||||
"second": 48,
|
||||
"weekday": 1,
|
||||
"year": 2024
|
||||
}
|
||||
|
||||
[sub_resource type="Resource" id="Resource_nnc2y"]
|
||||
script = ExtResource("9_hb671")
|
||||
current_room = 0
|
||||
mementos_complete = 0
|
||||
thumbnail = ExtResource("10_v8xkt")
|
||||
last_saved = {
|
||||
"day": 30,
|
||||
"dst": true,
|
||||
"hour": 17,
|
||||
"minute": 17,
|
||||
"month": 9,
|
||||
"second": 48,
|
||||
"weekday": 1,
|
||||
"year": 2024
|
||||
}
|
||||
|
||||
[node name="Main Menu" type="Panel"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
|
|
@ -14,6 +303,7 @@ grow_horizontal = 2
|
|||
grow_vertical = 2
|
||||
theme = ExtResource("1_2dg4n")
|
||||
theme_override_styles/panel = SubResource("StyleBoxEmpty_njt06")
|
||||
script = ExtResource("2_rm576")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="."]
|
||||
layout_mode = 1
|
||||
|
|
@ -38,30 +328,38 @@ offset_top = 70.0
|
|||
offset_right = 319.0
|
||||
offset_bottom = 270.0
|
||||
|
||||
[node name="new_game" type="Button" parent="PanelContainer"]
|
||||
[node name="NewGameButton" type="Button" parent="PanelContainer"]
|
||||
layout_mode = 2
|
||||
text = "new Game"
|
||||
|
||||
[node name="continue" type="Button" parent="PanelContainer"]
|
||||
[node name="ContinueGameButton" type="Button" parent="PanelContainer"]
|
||||
layout_mode = 2
|
||||
text = "continue"
|
||||
|
||||
[node name="load" type="Button" parent="PanelContainer"]
|
||||
[node name="LoadGameButton" type="Button" parent="PanelContainer"]
|
||||
layout_mode = 2
|
||||
text = "load"
|
||||
|
||||
[node name="settings" type="MenuButton" parent="PanelContainer"]
|
||||
[node name="SettingsButton" type="MenuButton" parent="PanelContainer"]
|
||||
layout_mode = 2
|
||||
text = "Settings"
|
||||
text = "settings"
|
||||
flat = false
|
||||
item_count = 3
|
||||
item_count = 4
|
||||
popup/item_0/text = "Video"
|
||||
popup/item_1/text = "Accessibility"
|
||||
popup/item_1/id = 1
|
||||
popup/item_2/text = "Gameplay"
|
||||
popup/item_2/id = 2
|
||||
popup/item_3/text = "Content Notes"
|
||||
popup/item_3/id = 3
|
||||
|
||||
[node name="PanelContainer2" type="PanelContainer" parent="."]
|
||||
[node name="QuitButton" type="Button" parent="PanelContainer"]
|
||||
layout_mode = 2
|
||||
text = "quit"
|
||||
|
||||
[node name="SettingsPopup" type="PanelContainer" parent="."]
|
||||
visible = false
|
||||
self_modulate = Color(1, 1, 1, 0)
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
|
|
@ -69,19 +367,70 @@ anchor_top = 0.5
|
|||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -474.0
|
||||
offset_top = -420.0
|
||||
offset_right = 295.0
|
||||
offset_bottom = 316.0
|
||||
offset_top = -438.0
|
||||
offset_right = 293.0
|
||||
offset_bottom = 335.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
scale = Vector2(1, 0.57)
|
||||
|
||||
[node name="TabContainer" type="TabContainer" parent="PanelContainer2"]
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="SettingsPopup"]
|
||||
root_node = NodePath("../TabContainer/Video Settings")
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_lmxul")
|
||||
}
|
||||
autoplay = "RESET"
|
||||
|
||||
[node name="Control" type="Control" parent="SettingsPopup"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
|
||||
[node name="decoration" type="PanelContainer" parent="SettingsPopup/Control"]
|
||||
modulate = Color(1, 1, 1, 0)
|
||||
layout_mode = 2
|
||||
offset_left = -374.0
|
||||
offset_top = -378.5
|
||||
offset_right = 365.0
|
||||
offset_bottom = 374.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
rotation = 1.26885
|
||||
pivot_offset = Vector2(374, 378.5)
|
||||
|
||||
[node name="TabContainer" type="TabContainer" parent="SettingsPopup"]
|
||||
modulate = Color(1, 1, 1, 0)
|
||||
layout_mode = 2
|
||||
current_tab = 0
|
||||
use_hidden_tabs_for_min_size = true
|
||||
|
||||
[node name="Video Settings" parent="PanelContainer2/TabContainer" instance=ExtResource("3_f0dcd")]
|
||||
[node name="Video Settings" parent="SettingsPopup/TabContainer" instance=ExtResource("3_f0dcd")]
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 0
|
||||
|
||||
[connection signal="pressed" from="PanelContainer/new_game" to="." method="hide"]
|
||||
[node name="Audio Settings" parent="SettingsPopup/TabContainer" instance=ExtResource("4_o07mg")]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Gameplay Settings" parent="SettingsPopup/TabContainer" instance=ExtResource("6_p7ypt")]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 2
|
||||
|
||||
[node name="Content Notes" parent="SettingsPopup/TabContainer" instance=ExtResource("7_pnd48")]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
metadata/_tab_index = 3
|
||||
|
||||
[node name="SaveGameHandle" type="CenterContainer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("8_o0cpj")
|
||||
save_1 = SubResource("Resource_7b5jk")
|
||||
save_2 = SubResource("Resource_ew63c")
|
||||
save_3 = SubResource("Resource_nnc2y")
|
||||
|
|
|
|||
|
|
@ -1,17 +1,50 @@
|
|||
@tool
|
||||
extends Node
|
||||
# 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 # continue/CheckBox
|
||||
var show_content_notes: bool = false # ContentNotes/.../Checkbox
|
||||
var provide_summaries: bool = false # ContentNotes/.../Checkbox2
|
||||
var allow_skipping: bool = false
|
||||
|
||||
#region configuration
|
||||
@export_file var user_settings_path:String = "usr://user_settings.json"
|
||||
|
||||
@export_group("Acessability")
|
||||
@export var screen_reader_enabled:bool = false
|
||||
@export var rendering_disabled: bool = false
|
||||
@export var use_simplified_navigation:bool = false
|
||||
@export var show_navigation_buttons: bool = false
|
||||
@export_enum("disabled", "text", "cc") var subtitles: int = false
|
||||
@export var reduce_motion: bool = false
|
||||
@export var show_content_notes: bool = false
|
||||
@export var provide_summaries: bool = false
|
||||
@export var allow_skipping: bool = false
|
||||
|
||||
@export_group("AudioSettings")
|
||||
@export var main_volume:float = 1:
|
||||
set(volume):
|
||||
main_volume = volume
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("Master"), linear_to_db(volume))
|
||||
@export var sfx_muted:bool = false:
|
||||
set(mute):
|
||||
sfx_muted = mute
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("sfx"), linear_to_db(mute))
|
||||
@export var sfx_volume:float = 1:
|
||||
set(volume):
|
||||
sfx_volume = volume
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("sfx"), linear_to_db(volume/2))
|
||||
@export var music_muted:bool = false:
|
||||
set(mute):
|
||||
sfx_muted = mute
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("sfx"), linear_to_db(mute))
|
||||
@export var music_volume:float = 1:
|
||||
set(volume):
|
||||
music_volume = volume
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("music"), linear_to_db(volume/2.5))
|
||||
@export var speech_volume: float = 1:
|
||||
set(volume):
|
||||
speech_volume = volume
|
||||
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("text"), linear_to_db(volume))
|
||||
|
||||
@export_group("Gameplay Settings")
|
||||
@export var input_sensitivity: float
|
||||
@export var inverty_y_axis: bool
|
||||
@export_enum("off", "top_left", "top_right", "bottom_left", "bottom_right") var stream_overlay_position: int
|
||||
|
||||
var ssil_enable:bool = false:
|
||||
set(value):
|
||||
|
|
@ -33,12 +66,68 @@ var current_main_theme:Theme = preload("res://logic-scenes/themes/easy-handwriti
|
|||
current_main_theme = theme
|
||||
emit_signal("theme_changed", theme)
|
||||
|
||||
func load_user_settings():
|
||||
|
||||
if FileAccess.file_exists(user_settings_path):
|
||||
var file = FileAccess.open(user_settings_path, FileAccess.READ)
|
||||
var raw_json = FileAccess.get_file_as_string(user_settings_path)
|
||||
file.close()
|
||||
var parsed: Dictionary = JSON.parse_string(raw_json)
|
||||
|
||||
print(parsed)
|
||||
|
||||
for kategory in parsed.keys():
|
||||
for key in parsed[kategory].keys():
|
||||
set(key, parsed[key])
|
||||
|
||||
else:
|
||||
if OS.has_feature("macos"):
|
||||
var out: Array
|
||||
OS.execute("defaults", ["read", "/Users/$loggedInUser/Library/Preferences/com.apple.universalaccess.plist", "reduceMotion"], out)
|
||||
if out[0] == "reduce":
|
||||
reduce_motion = true
|
||||
|
||||
func save_settings():
|
||||
var out_dict = {
|
||||
"accessability": {
|
||||
"screen_reader_enabled": screen_reader_enabled,
|
||||
"rendering_disabled": rendering_disabled,
|
||||
"use_simplified_navigation": use_simplified_navigation,
|
||||
"show_navigation_buttons": show_navigation_buttons,
|
||||
"subtitles": subtitles,
|
||||
"reduce_motion:": reduce_motion,
|
||||
"show_content_notes:": show_content_notes,
|
||||
"provide_summaries:": provide_summaries,
|
||||
"allow_skipping:": allow_skipping
|
||||
},
|
||||
"audio": {
|
||||
"main_volume": main_volume,
|
||||
"sfx_muted": sfx_muted,
|
||||
"sfx_volume": sfx_volume,
|
||||
"music_muted": music_muted,
|
||||
"music_volume": music_volume,
|
||||
"speech_volume": speech_volume
|
||||
},
|
||||
"gameplay": {
|
||||
"input_sensitivity": input_sensitivity,
|
||||
"inverty_y_axis": inverty_y_axis,
|
||||
"stream_overlay_position": stream_overlay_position
|
||||
}
|
||||
}
|
||||
|
||||
var file = FileAccess.open(user_settings_path, FileAccess.WRITE)
|
||||
file.store_string(JSON.stringify(out_dict))
|
||||
file.close()
|
||||
|
||||
#endregion
|
||||
|
||||
func _ready():
|
||||
for child in get_parent().get_children():
|
||||
if "has_stage" in child:
|
||||
pass_stage_to(child)
|
||||
music_volume = music_volume
|
||||
|
||||
# Meta: due to conflicting names with the internal focus handling of godot, a "stage-based" Metaphor is being used to refer to focus handling.
|
||||
#region focus handling (called staging to avoid name colisions)
|
||||
|
||||
# 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:
|
||||
|
|
@ -109,10 +198,19 @@ func transition_stage_to(thief: Object, lock_focus = false):
|
|||
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, " / ")
|
||||
#endregion
|
||||
|
||||
#region play state
|
||||
|
||||
enum rooms {
|
||||
MENU,
|
||||
DRAVEN,
|
||||
YOUTH,
|
||||
TRANSITION_VOL,
|
||||
VOLUNTARY,
|
||||
TRANSITION_UNI,
|
||||
UNIVERSITY,
|
||||
ENDING
|
||||
}
|
||||
|
||||
var current_room = rooms.MENU
|
||||
|
|
|
|||
Loading…
Reference in New Issue