Code reorganizing

This commit is contained in:
Maurane
2026-02-24 18:01:23 +01:00
parent 450d372775
commit a9698155fa
52 changed files with 1458 additions and 679 deletions
+4 -4
View File
@@ -102,9 +102,9 @@ do Globals.console_message.emit("[color=dark_orange]ALLOTED ASSESSMENT TIME ELAP
if Patient.abnormal == true
Samia Al-Adouani: [#terrified] There's too much noise please make it stop too much TOO MUCH TOO MUCH TOO M-
Samia Al-Adouani: [#abnormal1] I COVER MY EARS AND YET THEY [color=orange]SCREAM[/color]. I COVER MY EARS AND YET I [color=orange_red]LISTEN[/color].
Samia Al-Adouani: [#abnormal1] I COVER MY EARS AND YET THEY [color=orange]SCREAM[/color]. I COVER MY EARS AND YET WE [color=orange_red]LISTEN[/color].
do Globals.color_change.emit("red")
Samia Al-Adouani: [#abnormal2] WHY CAN I STILL [color=orange]HEAR[/color] ? WHY CAN I STILL [color=orange_red]HEAR[/color] ? WHY CAN I STILL [color=red]HEAR[/color] ?
Samia Al-Adouani: [#abnormal2] WHY DO WE [color=orange]LISTEN[/color] ? WHY DO WE [color=orange_red]LISTEN[/color] ? WHY DO WE [color=red]LISTEN[/color] ?
else
Samia Al-Adouani: [#panicked] W-What's happening ?? Please don't hurt me !
do Globals.color_change.emit("red")
@@ -118,9 +118,9 @@ do Globals.clear_patient.emit("terminate")
if Patient.abnormal == true
Samia Al-Adouani: [#terrified] There's too much noise please make it stop too much TOO MUCH TOO MUCH TOO M-
Samia Al-Adouani: [#abnormal1] I COVER MY EARS AND YET THEY [color=orange]SCREAM[/color]. I COVER MY EARS AND YET I [color=orange_red]LISTEN[/color].
Samia Al-Adouani: [#abnormal1] I COVER MY EARS AND YET THEY [color=orange]SCREAM[/color]. I COVER MY EARS AND YET WE [color=orange_red]LISTEN[/color].
do Globals.color_change.emit("green")
Samia Al-Adouani: [#abnormal2] WHY CAN I STILL [color=orange]HEAR[/color] ? WHY CAN I STILL [color=orange_red]HEAR[/color] ? WHY CAN I STILL [color=red]HEAR[/color] ?
Samia Al-Adouani: [#abnormal2] WHY DO WE [color=orange]LISTEN[/color] ? WHY DO WE [color=orange_red]LISTEN[/color] ? WHY DO WE [color=red]LISTEN[/color] ?
else
Samia Al-Adouani: [#worried] A-are you helping me ?
do Globals.color_change.emit("green")
+2 -2
View File
@@ -166,7 +166,7 @@ do Globals.console_message.emit("[color=dark_orange]ALLOTED ASSESSMENT TIME ELAP
~ terminate
if Patient.abnormal == true
Gwendoline Gorbado: [#abnormal1] I am [color=orange]uSeLeSs[/color]. There is nothing inside me but [color=black]EMPTINESS[/color].
Gwendoline Gorbado: [#abnormal1] I am [color=orange]uSeLeSs[/color]. There is nothing inside me but [color=web_gray]EMPTINESS[/color].
do Globals.color_change.emit("red")
Gwendoline Gorbado: [#abnormal2] I deserve to disappear, like the [color=orange_red]WORTHLESS[/color] piece of [color=orange_red]TRASH[/color] I am. I am [color=red]NOTHING[/color]. I return to [color=red]NOTHING[/color].
else
@@ -181,7 +181,7 @@ do Globals.clear_patient.emit("terminate")
~ release
if Patient.abnormal == true
Gwendoline Gorbado: [#abnormal1] I am [color=orange]uSeLeSs[/color]. There is nothing inside me but [color=black]VOID[/color].
Gwendoline Gorbado: [#abnormal1] I am [color=orange]uSeLeSs[/color]. There is nothing inside me but [color=web_gray]VOID[/color].
do Globals.color_change.emit("green")
Gwendoline Gorbado: [#abnormal2] I deserve to disappear, like the [color=orange_red]WORTHLESS[/color] piece of [color=orange_red]TRASH[/color] I am. I am [color=red]NOTHING[/color]. I return to [color=red]NOTHING[/color].
else
@@ -3,6 +3,10 @@
do Patient.marker.fill(0)
set Patient.dialog_tree = Patient.build_dialog_tree([11,12,13,14,15,21,22,23,24])
do Globals.release_display.emit("[color=orange_red]ERROR[/color]")
do Globals.terminate_display.emit("[color=orange_red]ERROR[/color]")
set Globals.buttons_activated = false
[#neutral] It remains silent. You discern no visible movement. It does not seem to be breathing.
[#neutral] It is smiling.
@@ -75,6 +79,11 @@ It That Smiles: [#angry] ...... [color=red] I... WANT... YOU. [/color]
~ part_end
do Globals.release_display.emit("[color=dark_green]RELEASE[/color]")
do Globals.terminate_display.emit("[color=dark_red]TERMINATE[/color]")
set Globals.buttons_activated = true
do Globals.console_message.emit("[color=dark_orange]ALLOTED ASSESSMENT TIME ELAPSED[/color]\n\n[color=orange_red]PLEASE MAKE A DECISION[/color]")
=> END
-26
View File
@@ -1,26 +0,0 @@
[gd_scene load_steps=7 format=3 uid="uid://buoev4bra11fe"]
[ext_resource type="Script" uid="uid://c6kqjqj6cs4wa" path="res://main_hub.gd" id="1_rvfpd"]
[ext_resource type="PackedScene" uid="uid://cahspuhi43bx7" path="res://title_screen.tscn" id="2_3wmv1"]
[ext_resource type="PackedScene" uid="uid://chytk2cctjk3x" path="res://screening_desk.tscn" id="3_whctb"]
[ext_resource type="PackedScene" uid="uid://igkl2384rxt1" path="res://text_screens.tscn" id="5_85o5j"]
[sub_resource type="Resource" id="Resource_ucuk0"]
metadata/__load_path__ = "res://bedroom.tscn"
[sub_resource type="Resource" id="Resource_h7sfr"]
metadata/__load_path__ = "res://dialogue_screens.tscn"
[node name="MainHub" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_rvfpd")
TitleScreen = ExtResource("2_3wmv1")
ScreeningDesk = ExtResource("3_whctb")
Bedroom = SubResource("Resource_ucuk0")
TextScreens = ExtResource("5_85o5j")
DialogueScreens = SubResource("Resource_h7sfr")
+1 -32
View File
@@ -2,8 +2,6 @@ extends CanvasLayer
@onready var next = $UI/SkipContainer/NextButton
@onready var confirmation_mask = $ConfirmationMask
@onready var journal_layer = $JournalLayer
@onready var journal_symptoms = $JournalLayer/JournalOpen/JournalMargin/PageArea/RightPage/Symptoms
#Signals for progressing through slides
signal next_request
@@ -17,7 +15,7 @@ signal load_slot_pressed(load_slot_number: int)
signal main_menu_pressed
#Preloading Confirmation dialog
var confirmation_dialog = preload("res://confirmation_dialog.tscn")
var confirmation_dialog = preload("res://Scenes/UI/confirmation_dialog.tscn")
#Text settings UI nodes
@export var text_slider: Node
@@ -50,26 +48,6 @@ var resolution_list: Dictionary = {
7: Vector2i(1920,1080)
}
#Journal Settings
var symptoms_detailed: Array[Array] = [
["SUICIDAL IDEATIONS\nPersistent thoughts about ending one's own life",
"PERSECUTORY DELUSIONS\nFalse conviction of being targeted or harmed",
"UNNATURAL BEHAVIOUR\nSigns or marks of non-human nature",
"AUDITORY HALLUCINATIONS\nFalse perceptions of external sound"],
["MEGALOMANIAC DELUSIONS\nFalse exaggeration of self-importance or power",
"SOMATIC HALLUCINATIONS\nFalse sensations, from inside the body or on the skin"],
["MYSTICAL DELUSIONS\nFalse certainty of spiritual, divine connection",
"MANIA\nExcessively elevated mood and increased energy"],
["CHEMOSENSORY HALLUCINATIONS\nFalse perceptions of smell or taste",
"SELF-MUTILATION\nDeliberate self-injury"],
["HETERO-AGRESSIVE BEHAVIOUR\nExcessive hostility, verbal agression, threats",
"VISUAL HALLUCINATIONS\nFalse perceptions of visual stimuli"]
]
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
@@ -344,12 +322,3 @@ func _on_resolution_selected(index: int):
DisplayServer.window_set_size(resolution_size)
await get_tree().process_frame #Waits process_frame to avoid bugs
DisplayServer.window_set_position(top_left)
func update_journal(floor_count:int):
var symptoms_page : String = ""
for i in range(-floor_count):
for symptom in symptoms_detailed[i]:
symptoms_page += "\n\n" + symptom
journal_symptoms.text = symptoms_page
View File
+2 -196
View File
@@ -1,46 +1,8 @@
[gd_scene load_steps=14 format=3 uid="uid://dy40jygog8t3k"]
[gd_scene load_steps=7 format=3 uid="uid://dy40jygog8t3k"]
[ext_resource type="Script" uid="uid://c0q67t6m1i4dl" path="res://ui.gd" id="1_mg12k"]
[ext_resource type="Script" uid="uid://c0q67t6m1i4dl" path="res://Scenes/UI/ui.gd" id="1_mg12k"]
[ext_resource type="FontFile" uid="uid://dv8ppra5tgn1t" path="res://Art/Fonts/PixelatedEleganceRegular-ovyAA.ttf" id="2_vb7na"]
[ext_resource type="Texture2D" uid="uid://l7786mlmvet8" path="res://Art/UI/menu_gear.png" id="3_ibj64"]
[ext_resource type="Texture2D" uid="uid://c3je4gir1qlot" path="res://Art/BlackScreen.png" id="3_ibotj"]
[ext_resource type="Texture2D" uid="uid://diln53wxa3oep" path="res://Art/Rooms/screening_room/journal_open.png" id="4_n5ude"]
[sub_resource type="Theme" id="Theme_y4yjw"]
default_font = ExtResource("2_vb7na")
RichTextLabel/colors/default_color = Color(0, 0, 0, 1)
RichTextLabel/fonts/normal_font = ExtResource("2_vb7na")
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3lob0"]
bg_color = Color(0.843137, 0.843137, 0.843137, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0, 0, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wj8aa"]
bg_color = Color(0.784314, 0.784314, 0.784314, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0, 0, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5jbc5"]
bg_color = Color(0.901961, 0.901961, 0.901961, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0, 0, 0, 1)
[sub_resource type="Theme" id="Theme_waa4j"]
Button/colors/font_color = Color(0, 0, 0, 1)
Button/fonts/font = ExtResource("2_vb7na")
Button/styles/hover = SubResource("StyleBoxFlat_3lob0")
Button/styles/normal = SubResource("StyleBoxFlat_wj8aa")
Button/styles/pressed = SubResource("StyleBoxFlat_5jbc5")
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fo2i3"]
border_width_left = 2
@@ -69,162 +31,6 @@ auto_mask = NodePath("UI/Settings/MarginContainer/VBoxContainer/GridContainer/Di
display_button = NodePath("UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer/VBoxContainer2/ScreenSettings/VBoxContainer/Display/DisplayButton")
resolution_button = NodePath("UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer/VBoxContainer2/ScreenSettings/VBoxContainer/Resolution/ResolutionButton")
[node name="JournalLayer" type="CanvasLayer" parent="."]
layer = 110
[node name="JournalOpen" type="Control" parent="JournalLayer"]
z_index = 8
layout_mode = 3
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -825.0
offset_top = -450.0
offset_right = 825.0
offset_bottom = 450.0
grow_horizontal = 2
grow_vertical = 2
theme = SubResource("Theme_y4yjw")
[node name="Shader" type="TextureRect" parent="JournalLayer/JournalOpen"]
modulate = Color(1, 1, 1, 0.52549)
z_index = 2
custom_minimum_size = Vector2(2000, 2000)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("3_ibotj")
expand_mode = 1
[node name="JournalOpenTexture" type="TextureRect" parent="JournalLayer/JournalOpen"]
z_index = 2
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -750.0
offset_top = -420.0
offset_right = 750.0
offset_bottom = 420.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("4_n5ude")
stretch_mode = 3
[node name="JournalMargin" type="MarginContainer" parent="JournalLayer/JournalOpen"]
z_index = 2
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 70
theme_override_constants/margin_top = 30
theme_override_constants/margin_right = 70
theme_override_constants/margin_bottom = 50
[node name="PageArea" type="HBoxContainer" parent="JournalLayer/JournalOpen/JournalMargin"]
layout_mode = 2
theme_override_constants/separation = 90
[node name="LeftPage" type="VBoxContainer" parent="JournalLayer/JournalOpen/JournalMargin/PageArea"]
layout_mode = 2
size_flags_horizontal = 3
[node name="PageTitle" type="RichTextLabel" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"]
custom_minimum_size = Vector2(0, 200)
layout_mode = 2
size_flags_stretch_ratio = 0.1
theme_override_font_sizes/normal_font_size = 28
bbcode_enabled = true
text = "
[center]EMPLOYEES' MANUAL[/center]"
[node name="Instructions" type="RichTextLabel" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"]
custom_minimum_size = Vector2(0, 200)
layout_mode = 2
size_flags_vertical = 4
theme_override_constants/line_separation = 20
theme_override_font_sizes/normal_font_size = 20
bbcode_enabled = true
text = "THE FOLLOWING [color=dark_orange]SYMPTOMS[/color] HAVE BEEN IDENTIFIED AS MARKERS OF ABNORMALITY CONVERSION.
IF YOU DETECT ONE THAT WAS NOT ASSESSED IN PRE-SCREENING, [color=red]TERMINATE[/color] THE SUBJECT."
[node name="Slogan" type="RichTextLabel" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"]
custom_minimum_size = Vector2(0, 100)
layout_mode = 2
size_flags_vertical = 6
theme_override_constants/line_separation = 20
theme_override_font_sizes/normal_font_size = 28
bbcode_enabled = true
text = "[color=dark_blue]THE REPUBLIC SHELTERS[/color]"
horizontal_alignment = 1
vertical_alignment = 1
[node name="CloseManual" type="Button" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"]
custom_minimum_size = Vector2(200, 60)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
theme = SubResource("Theme_waa4j")
text = "Close manual"
[node name="RightPage" type="VBoxContainer" parent="JournalLayer/JournalOpen/JournalMargin/PageArea"]
layout_mode = 2
size_flags_horizontal = 3
[node name="Symptoms" type="RichTextLabel" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/RightPage"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/paragraph_separation = 1
theme_override_font_sizes/normal_font_size = 20
bbcode_enabled = true
text = "SUICIDAL IDEATIONS
Persistent thoughts about ending one's own life
PANIC ATTACKS
Acute episodes of severe anxiety
PERSECUTORY DELUSIONS
False conviction of being targeted or harmed
MEGALOMANIAC DELUSIONS
False exaggeration of self-importance or power
MYSTICAL DELUSIONS
False certainty of spiritual, divine connection
MANIA
Excessively elevated mood and increased energy
AUDITORY HALLUCINATIONS
False perceptions of external sound
VISUAL HALLUCINATIONS
False perceptions of visual stimuli
HAPTIC HALLUCINATIONS
False perceptions of touch
CENESTHETIC HALLUCINATIONS
False internal bodily sensations
SELF-MUTILATION
Deliberate injury to one's own body
HETERO-AGRESSIVE BEHAVIOUR
Hostility, verbal agression, threats"
[node name="UI" type="Control" parent="."]
z_index = 12
layout_mode = 3
+691
View File
@@ -0,0 +1,691 @@
[gd_scene load_steps=7 format=3 uid="uid://dy40jygog8t3k"]
[ext_resource type="Script" uid="uid://c0q67t6m1i4dl" path="res://Scenes/UI/ui.gd" id="1_mg12k"]
[ext_resource type="FontFile" uid="uid://dv8ppra5tgn1t" path="res://Art/Fonts/PixelatedEleganceRegular-ovyAA.ttf" id="2_vb7na"]
[ext_resource type="Texture2D" uid="uid://l7786mlmvet8" path="res://Art/UI/menu_gear.png" id="3_ibj64"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fo2i3"]
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
[sub_resource type="Theme" id="Theme_27bfm"]
default_font_size = 18
OptionButton/fonts/font = null
[sub_resource type="Theme" id="Theme_k8uqd"]
default_font = ExtResource("2_vb7na")
default_font_size = 16
OptionButton/fonts/font = ExtResource("2_vb7na")
[node name="UILayer" type="CanvasLayer" node_paths=PackedStringArray("text_slider", "auto_slider", "text_counter", "auto_counter", "autoplay", "auto_mask", "display_button", "resolution_button")]
layer = 127
script = ExtResource("1_mg12k")
text_slider = NodePath("UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/TextSpeed/TextSlider")
auto_slider = NodePath("UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/Control/AutoSpeed/AutoSlider")
text_counter = NodePath("UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/TextSpeed/TextCounter")
auto_counter = NodePath("UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/Control/AutoSpeed/AutoCounter")
autoplay = NodePath("UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/AutoPlay/AutoPlayCheckBox")
auto_mask = NodePath("UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/Control/AutoMask")
display_button = NodePath("UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer/VBoxContainer2/ScreenSettings/VBoxContainer/Display/DisplayButton")
resolution_button = NodePath("UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer/VBoxContainer2/ScreenSettings/VBoxContainer/Resolution/ResolutionButton")
[node name="UI" type="Control" parent="."]
z_index = 12
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="Menu" type="PanelContainer" parent="UI"]
visible = false
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -125.0
offset_top = -200.0
offset_right = 125.0
offset_bottom = 200.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_fo2i3")
[node name="Background" type="ColorRect" parent="UI/Menu"]
layout_mode = 2
color = Color(0, 0, 0, 1)
[node name="MarginContainer" type="MarginContainer" parent="UI/Menu"]
layout_mode = 2
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="VBoxContainer" type="VBoxContainer" parent="UI/Menu/MarginContainer"]
layout_mode = 2
[node name="Resume" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 27
text = "RESUME"
[node name="Save" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 27
text = "SAVE"
[node name="Load" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 27
text = "LOAD"
[node name="Settings" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 27
text = "SETTINGS"
[node name="MainMenu" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 27
text = "MAIN MENU"
[node name="Quit" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 27
text = "QUIT GAME"
[node name="Save" type="PanelContainer" parent="UI"]
visible = false
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -200.0
offset_top = -300.0
offset_right = 200.0
offset_bottom = 300.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_fo2i3")
[node name="Background" type="ColorRect" parent="UI/Save"]
layout_mode = 2
color = Color(0, 0, 0, 1)
[node name="MarginContainer" type="MarginContainer" parent="UI/Save"]
layout_mode = 2
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 0
[node name="VBoxContainer" type="VBoxContainer" parent="UI/Save/MarginContainer"]
layout_mode = 2
[node name="RichTextLabel" type="RichTextLabel" parent="UI/Save/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/normal_font = ExtResource("2_vb7na")
theme_override_font_sizes/normal_font_size = 30
bbcode_enabled = true
text = "
[center]SAVE GAME[/center]"
[node name="SaveSlot1" type="Button" parent="UI/Save/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 27
text = "EMPTY"
[node name="SaveSlot2" type="Button" parent="UI/Save/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 27
text = "EMPTY"
[node name="SaveSlot3" type="Button" parent="UI/Save/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 27
text = "EMPTY"
[node name="SaveSlot4" type="Button" parent="UI/Save/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 27
text = "EMPTY"
[node name="Back" type="Button" parent="UI/Save/MarginContainer/VBoxContainer"]
custom_minimum_size = Vector2(80, 40)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 20
text = "BACK"
[node name="Load" type="PanelContainer" parent="UI"]
visible = false
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -200.0
offset_top = -300.0
offset_right = 200.0
offset_bottom = 300.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_fo2i3")
[node name="Background" type="ColorRect" parent="UI/Load"]
layout_mode = 2
color = Color(0, 0, 0, 1)
[node name="MarginContainer" type="MarginContainer" parent="UI/Load"]
layout_mode = 2
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 0
[node name="VBoxContainer" type="VBoxContainer" parent="UI/Load/MarginContainer"]
layout_mode = 2
[node name="RichTextLabel" type="RichTextLabel" parent="UI/Load/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/normal_font = ExtResource("2_vb7na")
theme_override_font_sizes/normal_font_size = 30
bbcode_enabled = true
text = "
[center]LOAD GAME[/center]"
[node name="LoadSlot1" type="Button" parent="UI/Load/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 27
text = "EMPTY"
[node name="LoadSlot2" type="Button" parent="UI/Load/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 27
text = "EMPTY"
[node name="LoadSlot3" type="Button" parent="UI/Load/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 27
text = "EMPTY"
[node name="LoadSlot4" type="Button" parent="UI/Load/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 27
text = "EMPTY"
[node name="Control" type="Control" parent="UI/Load/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
size_flags_stretch_ratio = 0.7
[node name="Back" type="Button" parent="UI/Load/MarginContainer/VBoxContainer/Control"]
custom_minimum_size = Vector2(80, 40)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -40.0
offset_top = -20.0
offset_right = 40.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 4
size_flags_vertical = 6
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 20
text = "BACK"
[node name="BackTitle" type="Button" parent="UI/Load/MarginContainer/VBoxContainer/Control"]
custom_minimum_size = Vector2(80, 40)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -40.0
offset_top = -20.0
offset_right = 40.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 4
size_flags_vertical = 6
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 20
text = "BACK"
[node name="Settings" type="PanelContainer" parent="UI"]
visible = false
custom_minimum_size = Vector2(1600, 600)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -200.0
offset_top = -300.0
offset_right = 200.0
offset_bottom = 300.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_fo2i3")
[node name="Background" type="ColorRect" parent="UI/Settings"]
layout_mode = 2
color = Color(0, 0, 0, 1)
[node name="MarginContainer" type="MarginContainer" parent="UI/Settings"]
layout_mode = 2
theme_override_constants/margin_left = 20
theme_override_constants/margin_top = 50
theme_override_constants/margin_right = 20
theme_override_constants/margin_bottom = 50
[node name="VBoxContainer" type="VBoxContainer" parent="UI/Settings/MarginContainer"]
layout_mode = 2
theme_override_constants/separation = 40
[node name="Settings" type="RichTextLabel" parent="UI/Settings/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/normal_font = ExtResource("2_vb7na")
theme_override_font_sizes/normal_font_size = 35
bbcode_enabled = true
text = "[center]SETTINGS[/center]"
[node name="GridContainer" type="GridContainer" parent="UI/Settings/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
size_flags_stretch_ratio = 5.0
columns = 3
[node name="DialogueContainer" type="MarginContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
[node name="VBoxContainer2" type="VBoxContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer"]
layout_mode = 2
[node name="DialogueOptions" type="MarginContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2"]
layout_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions"]
layout_mode = 2
[node name="RichTextLabel" type="RichTextLabel" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer"]
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
theme_override_fonts/normal_font = ExtResource("2_vb7na")
theme_override_font_sizes/normal_font_size = 25
bbcode_enabled = true
text = "[center]DIALOGUE[/center]"
[node name="TextSpeed" type="HBoxContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer"]
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
[node name="RichTextLabel" type="RichTextLabel" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/TextSpeed"]
custom_minimum_size = Vector2(160, 28)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4
theme_override_fonts/normal_font = ExtResource("2_vb7na")
theme_override_font_sizes/normal_font_size = 16
bbcode_enabled = true
text = "TYPING SPEED"
[node name="TextSlider" type="HSlider" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/TextSpeed"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 1
size_flags_stretch_ratio = 4.0
min_value = 1.0
max_value = 10.0
value = 5.0
tick_count = 10
ticks_on_borders = true
[node name="TextCounter" type="RichTextLabel" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/TextSpeed"]
custom_minimum_size = Vector2(150, 25)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4
theme_override_fonts/normal_font = ExtResource("2_vb7na")
theme_override_font_sizes/normal_font_size = 16
bbcode_enabled = true
[node name="Control" type="Control" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer"]
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
[node name="AutoSpeed" type="HBoxContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/Control"]
custom_minimum_size = Vector2(0, 50)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="RichTextLabel" type="RichTextLabel" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/Control/AutoSpeed"]
custom_minimum_size = Vector2(160, 25)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4
theme_override_fonts/normal_font = ExtResource("2_vb7na")
theme_override_font_sizes/normal_font_size = 16
bbcode_enabled = true
text = "AUTO DELAY"
[node name="AutoSlider" type="HSlider" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/Control/AutoSpeed"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 1
size_flags_stretch_ratio = 4.0
min_value = 1.0
max_value = 10.0
value = 5.0
tick_count = 10
ticks_on_borders = true
[node name="AutoCounter" type="RichTextLabel" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/Control/AutoSpeed"]
custom_minimum_size = Vector2(150, 25)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4
theme_override_fonts/normal_font = ExtResource("2_vb7na")
theme_override_font_sizes/normal_font_size = 16
bbcode_enabled = true
[node name="AutoMask" type="ColorRect" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/Control"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.784314)
[node name="AutoPlay" type="HBoxContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer"]
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
theme_override_constants/separation = 10
[node name="RichTextLabel" type="RichTextLabel" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/AutoPlay"]
custom_minimum_size = Vector2(160, 25)
layout_mode = 2
size_flags_vertical = 4
theme_override_fonts/normal_font = ExtResource("2_vb7na")
theme_override_font_sizes/normal_font_size = 16
bbcode_enabled = true
text = "AUTOPLAY"
[node name="AutoPlayCheckBox" type="CheckBox" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/DialogueContainer/VBoxContainer2/DialogueOptions/VBoxContainer/AutoPlay"]
layout_mode = 2
size_flags_vertical = 4
[node name="ScreenContainer" type="MarginContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
[node name="VBoxContainer2" type="VBoxContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer"]
layout_mode = 2
[node name="ScreenSettings" type="MarginContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer/VBoxContainer2"]
layout_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer/VBoxContainer2/ScreenSettings"]
layout_mode = 2
theme_override_constants/separation = 20
[node name="RichTextLabel" type="RichTextLabel" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer/VBoxContainer2/ScreenSettings/VBoxContainer"]
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
theme_override_fonts/normal_font = ExtResource("2_vb7na")
theme_override_font_sizes/normal_font_size = 25
bbcode_enabled = true
text = "[center]SCREEN[/center]"
[node name="Display" type="HBoxContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer/VBoxContainer2/ScreenSettings/VBoxContainer"]
layout_mode = 2
theme_override_constants/separation = 20
[node name="RichTextLabel" type="RichTextLabel" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer/VBoxContainer2/ScreenSettings/VBoxContainer/Display"]
custom_minimum_size = Vector2(140, 28)
layout_mode = 2
size_flags_vertical = 4
theme_override_fonts/normal_font = ExtResource("2_vb7na")
theme_override_font_sizes/normal_font_size = 16
bbcode_enabled = true
text = "DISPLAY"
[node name="DisplayButton" type="OptionButton" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer/VBoxContainer2/ScreenSettings/VBoxContainer/Display"]
custom_minimum_size = Vector2(250, 0)
layout_mode = 2
theme = SubResource("Theme_27bfm")
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 16
selected = 2
item_count = 3
popup/item_0/text = "WINDOWED"
popup/item_0/id = 0
popup/item_1/text = "WINDOWED FULLSCREEN"
popup/item_1/id = 1
popup/item_2/text = "FULLSCREEN"
popup/item_2/id = 2
[node name="Resolution" type="HBoxContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer/VBoxContainer2/ScreenSettings/VBoxContainer"]
layout_mode = 2
theme_override_constants/separation = 20
[node name="RichTextLabel" type="RichTextLabel" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer/VBoxContainer2/ScreenSettings/VBoxContainer/Resolution"]
custom_minimum_size = Vector2(140, 28)
layout_mode = 2
size_flags_vertical = 4
theme_override_fonts/normal_font = ExtResource("2_vb7na")
theme_override_font_sizes/normal_font_size = 16
bbcode_enabled = true
text = "RESOLUTION"
[node name="ResolutionButton" type="OptionButton" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer/VBoxContainer2/ScreenSettings/VBoxContainer/Resolution"]
custom_minimum_size = Vector2(250, 0)
layout_mode = 2
theme = SubResource("Theme_k8uqd")
[node name="SoundContainer" type="MarginContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
[node name="VBoxContainer2" type="VBoxContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/SoundContainer"]
layout_mode = 2
[node name="DialogueOptions" type="MarginContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/SoundContainer/VBoxContainer2"]
layout_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/SoundContainer/VBoxContainer2/DialogueOptions"]
layout_mode = 2
[node name="RichTextLabel" type="RichTextLabel" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/SoundContainer/VBoxContainer2/DialogueOptions/VBoxContainer"]
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
theme_override_fonts/normal_font = ExtResource("2_vb7na")
theme_override_font_sizes/normal_font_size = 25
bbcode_enabled = true
text = "[center]AUDIO[/center]"
[node name="TextSpeed" type="HBoxContainer" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/SoundContainer/VBoxContainer2/DialogueOptions/VBoxContainer"]
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
[node name="RichTextLabel" type="RichTextLabel" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/SoundContainer/VBoxContainer2/DialogueOptions/VBoxContainer/TextSpeed"]
custom_minimum_size = Vector2(140, 28)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4
theme_override_fonts/normal_font = ExtResource("2_vb7na")
theme_override_font_sizes/normal_font_size = 16
bbcode_enabled = true
text = "MASTER"
[node name="MasterVolume" type="HSlider" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/SoundContainer/VBoxContainer2/DialogueOptions/VBoxContainer/TextSpeed"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 1
size_flags_stretch_ratio = 4.0
min_value = 1.0
max_value = 10.0
value = 5.0
tick_count = 10
ticks_on_borders = true
[node name="MasterCounter" type="RichTextLabel" parent="UI/Settings/MarginContainer/VBoxContainer/GridContainer/SoundContainer/VBoxContainer2/DialogueOptions/VBoxContainer/TextSpeed"]
custom_minimum_size = Vector2(150, 25)
layout_mode = 2
size_flags_vertical = 4
theme_override_fonts/normal_font = ExtResource("2_vb7na")
theme_override_font_sizes/normal_font_size = 16
bbcode_enabled = true
[node name="Control" type="Control" parent="UI/Settings/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
size_flags_stretch_ratio = 0.7
[node name="Back" type="Button" parent="UI/Settings/MarginContainer/VBoxContainer/Control"]
custom_minimum_size = Vector2(80, 40)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -40.0
offset_top = -20.0
offset_right = 40.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 4
size_flags_vertical = 6
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 20
text = "BACK"
[node name="BackTitle" type="Button" parent="UI/Settings/MarginContainer/VBoxContainer/Control"]
custom_minimum_size = Vector2(80, 40)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -40.0
offset_top = -20.0
offset_right = 40.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 4
size_flags_vertical = 6
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 20
text = "BACK"
[node name="UpperContainer" type="HBoxContainer" parent="UI"]
layout_mode = 0
offset_right = 1849.0
offset_bottom = 85.0
[node name="Menu" type="Button" parent="UI/UpperContainer"]
custom_minimum_size = Vector2(0, 80)
layout_mode = 2
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 30
theme_override_icons/icon = ExtResource("3_ibj64")
[node name="SkipContainer" type="HBoxContainer" parent="UI"]
visible = false
layout_mode = 0
offset_left = 1565.0
offset_top = 997.0
offset_right = 1895.0
offset_bottom = 1059.0
[node name="NextButton" type="Button" parent="UI/SkipContainer"]
layout_mode = 2
theme_override_fonts/font = ExtResource("2_vb7na")
theme_override_font_sizes/font_size = 20
text = " Press Space to Next "
[node name="ConfirmationMask" type="ColorRect" parent="."]
visible = false
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_force_pass_scroll_events = false
color = Color(0, 0, 0, 0.784314)
+18
View File
@@ -0,0 +1,18 @@
[gd_scene load_steps=5 format=3 uid="uid://buoev4bra11fe"]
[ext_resource type="Script" uid="uid://c6kqjqj6cs4wa" path="res://Scenes/main/main.gd" id="1_xvxb3"]
[ext_resource type="PackedScene" uid="uid://cahspuhi43bx7" path="res://Scenes/title_screen/title_screen.tscn" id="2_uea07"]
[ext_resource type="PackedScene" uid="uid://chytk2cctjk3x" path="res://Scenes/screening_desk/screening_desk.tscn" id="3_2vfcy"]
[ext_resource type="PackedScene" uid="uid://igkl2384rxt1" path="res://Scenes/text_screen/text_screens.tscn" id="4_vno88"]
[node name="MainHub" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_xvxb3")
TitleScreen = ExtResource("2_uea07")
ScreeningDesk = ExtResource("3_2vfcy")
TextScreens = ExtResource("4_vno88")
+3 -1
View File
@@ -19,7 +19,7 @@ var directives = "\n[center][font_size=22]INSTRUCTIONS[/font_size][/center]
\nTO GET TO THE NEXT FLOOR[/font_size]"
var release_messages: Array[String]
var terminate_messages: Array[String]
var buttons_activated: bool = true
#Signals for screening desk
signal console_message
@@ -28,6 +28,8 @@ signal clear_patient
signal color_change
signal character_label_color_change
signal start_balloon
signal release_display
signal terminate_display
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
+7 -10
View File
@@ -2,9 +2,7 @@ extends Control
@export var TitleScreen: PackedScene
@export var ScreeningDesk: PackedScene
@export var Bedroom: PackedScene
@export var TextScreens: PackedScene
@export var DialogueScreens: PackedScene
var balloon: Node
@@ -55,12 +53,11 @@ func _on_new_game_pressed():
#Setting/Resetting game parameters
Globals.day_count = 1
Globals.floor_count = -1
Globals.patient_count = 1
Globals.patient_count = 0
Globals.diagnoses_quota = 1
Globals.daily_patient_limit = 3
Globals.patient_list = ["44", "45", "46", "47", "48", "49", "50", "51"]
Globals.daily_patient_limit = 6
Globals.patients_seen.clear()
UI.update_journal(-1)
$ScreeningDesk.journal_layer.update_journal(-1)
# DISABLED FOR NOW SINCE THERE'S NO INTRO ANYMORE
#Offering to skip the introduction
#var choice_text = "Do you wish to skip the introduction ?"
@@ -97,7 +94,7 @@ func start_day():
#Setting up new patient
$ScreeningDesk.accurate_diagnoses = 0 #Resetting accurate_diagnoses value at the day's beginning
$ScreeningDesk.update_middle_screen(Globals.day_count, Globals.floor_count, $ScreeningDesk.accurate_diagnoses, Globals.diagnoses_quota)
$ScreeningDesk.middle_screen.update(Globals.day_count, Globals.floor_count, $ScreeningDesk.accurate_diagnoses, Globals.diagnoses_quota)
#Transitioning to the screening desk
scenes_to_hide = scenes_to_show
@@ -109,7 +106,7 @@ func start_day():
$ScreeningDesk.supervisor.dialogue("interfloor_" + str(-Globals.floor_count-1))
await $ScreeningDesk.supervisor.dialogue_finished
$ScreeningDesk.console_display(Globals.directives)
$ScreeningDesk.console_screen.display(Globals.directives)
$ScreeningDesk.new_patient()
@@ -267,7 +264,7 @@ func start_balloon(balloon_type:String, patient_type:String, dialogue_resource:
match patient_type:
"patient":
DialogueManager.got_dialogue.connect($ScreeningDesk.patient._change_emotion)
DialogueManager.got_dialogue.connect($ScreeningDesk._recording_text)
DialogueManager.got_dialogue.connect($ScreeningDesk.computer._recording_text)
"supervisor":
DialogueManager.got_dialogue.connect($ScreeningDesk.supervisor._change_emotion)
@@ -288,7 +285,7 @@ func clear_balloon():
#Disconnecting emotion signals
for function in [$ScreeningDesk.patient._change_emotion,
$ScreeningDesk._recording_text,
$ScreeningDesk.computer._recording_text,
$ScreeningDesk.supervisor._change_emotion]:
if DialogueManager.is_connected("got_dialogue", function):
DialogueManager.disconnect("got_dialogue", function)
+79
View File
@@ -0,0 +1,79 @@
extends Control
@onready var tab_patient_file = $Margin/ComputerScreen/Tabs/PatientFile
@onready var tab_rules = $Margin/ComputerScreen/Tabs/Rules
@onready var tab_recording = $Margin/ComputerScreen/Tabs/Recording
@onready var patient_file = $Margin/ComputerScreen/ComputerTabs/FileContainer/PatientFile
@onready var rules = $Margin/ComputerScreen/ComputerTabs/Rules
@onready var recording = $Margin/ComputerScreen/ComputerTabs/Recording
@onready var screen = $Margin/ComputerScreen2
@onready var next_patient_button = $Margin/NextPatient/CallNextPatient
var tab_list
var screen_list
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
tab_list = [tab_patient_file, tab_rules, tab_recording]
screen_list = [patient_file, rules, recording]
#Connecting signals
tab_patient_file.pressed.connect(self._on_tab_patient_file_pressed)
tab_rules.pressed.connect(self._on_tab_rules_pressed)
tab_recording.pressed.connect(self._on_tab_recording_pressed)
Globals.response_chosen.connect(self._on_response_chosen)
#Hiding everything
for node in tab_list + screen_list + [screen, next_patient_button]:
node.hide()
#Displays a message on the computer screen
func display(message):
var text = message.replace("\\n", "\n") #Replaces litteral backslashes by actual newlines (necessary because of Dialogue Manager)
screen.text = text
screen.show()
#Shows the patient file tab
func _on_tab_patient_file_pressed():
tab_switch(tab_patient_file, patient_file)
#Shows the rules tab
func _on_tab_rules_pressed():
tab_switch(tab_rules, rules)
#Shows the recording tab
func _on_tab_recording_pressed():
tab_switch(tab_recording, recording)
#Shows the correct screen according to the pressed tab
func tab_switch(pressed_tab, tab_screen):
#Highlights pressed tab and unpress the others
for tab in tab_list:
tab.set_pressed(false)
tab.set_mouse_filter(Control.MOUSE_FILTER_STOP)
pressed_tab.set_pressed(true)
pressed_tab.set_mouse_filter(Control.MOUSE_FILTER_IGNORE)
#Showing desired screen and hiding the others
for node in screen_list:
node.hide()
tab_screen.show()
func _recording_text(dialogue_line): #Records the dialogues
recording.append_text("\n\n")
recording.append_text("[color=red]" + dialogue_line.character + "[/color]" + "\n")
recording.append_text(dialogue_line.text)
func _on_response_chosen(response): #Adds protagonist responses to the recording tab
recording.append_text("\n\n")
recording.append_text("[color=green]You[/color]" + "\n")
recording.append_text(response.text)
+1
View File
@@ -0,0 +1 @@
uid://chhh7v5iwiqw2
+15
View File
@@ -0,0 +1,15 @@
extends RichTextLabel
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
Globals.console_message.connect(self.display)
hide()
#Displays a message on the console screen
func display(message):
var text_to_display = message
text_to_display = text_to_display.replace("\\n", "\n") #Replaces litteral backslashes by actual newlines (necessary because of Dialogue Manager)
text = text_to_display
show()
@@ -0,0 +1 @@
uid://cyennu12fufbt
+14
View File
@@ -0,0 +1,14 @@
extends TextureButton
signal decision_made
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
self.pressed.connect(self._on_green_button_pressed)
set_disabled(true)
func _on_green_button_pressed():
if Globals.buttons_activated:
decision_made.emit("release")
set_toggle_mode(true)
set_pressed_no_signal(true)
@@ -0,0 +1 @@
uid://nj1oo2nh44dh
+44
View File
@@ -0,0 +1,44 @@
extends CanvasLayer
@onready var journal_symptoms = $JournalOpen/JournalMargin/PageArea/RightPage/Symptoms
#Journal Settings
var symptoms_detailed: Array[Array] = [
["SUICIDAL IDEATIONS\nPersistent thoughts about ending one's own life",
"PERSECUTORY DELUSIONS\nFalse conviction of being targeted or harmed",
"UNNATURAL BEHAVIOUR\nSigns or marks of non-human nature",
"AUDITORY HALLUCINATIONS\nFalse perceptions of external sound"],
["MEGALOMANIAC DELUSIONS\nFalse exaggeration of self-importance or power",
"SOMATIC HALLUCINATIONS\nFalse sensations, from inside the body or on the skin"],
["MYSTICAL DELUSIONS\nFalse certainty of spiritual, divine connection",
"MANIA\nExcessively elevated mood and increased energy"],
["CHEMOSENSORY HALLUCINATIONS\nFalse perceptions of smell or taste",
"SELF-MUTILATION\nDeliberate self-injury"],
["HETERO-AGRESSIVE BEHAVIOUR\nExcessive hostility, verbal agression, threats",
"VISUAL HALLUCINATIONS\nFalse perceptions of visual stimuli"]
]
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
$JournalOpen/JournalMargin/PageArea/LeftPage/CloseManual.pressed.connect(self._on_close_manual_pressed)
hide()
func _on_close_manual_pressed():
hide()
func _on_journal_pressed():
show()
func update_journal(floor_count:int):
var symptoms_page : String = ""
for i in range(-floor_count):
for symptom in symptoms_detailed[i]:
symptoms_page += "\n\n" + symptom
journal_symptoms.text = symptoms_page
@@ -0,0 +1 @@
uid://dcax2vggaexnr
+15
View File
@@ -0,0 +1,15 @@
extends RichTextLabel
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
#Updates Middle Screen Info
func update(day_count, floor_count, diagnoses_count, diagnoses_quota):
var day = Globals.colorize(str(day_count), "dark_orange")
var floor = Globals.colorize(str(floor_count), "dark_orange")
var diagnoses = Globals.colorize(str(diagnoses_count) + "/" + str(diagnoses_quota), "dark_orange")
text = "DAY: " + day + "\n\nFLOOR: " + floor + "\n\nACCURATE DIAGNOSES: " + diagnoses
@@ -0,0 +1 @@
uid://p3a2y1dqk63c
@@ -2,7 +2,9 @@ extends TextureRect
func _ready() -> void:
pass
#Hiding
hide()
#Change emotions following dialogue tags
@@ -14,7 +14,6 @@ var abnormal: bool
#Patient file
var file_text : String
var file_title: String
#Patient symptoms ordered from floor to floor
var symptoms_arrays: Array[Array] = [
@@ -71,7 +70,6 @@ func new_patient(patient_id):
var psychiatric_assessment = config.get_value("", "psychiatric_assessment")
file_text = "NAME: " + patient_name + "\nAGE: " + age + "\n\nPROFESSION: " + profession + "\n\nPRE-SCREENING PSYCHIATRIC ASSESSMENT:\n\n" + "[color=orange_red]" + psychiatric_assessment + "[/color]"
file_title = "[center]PATIENT FILE #" + patient_id
file_path = "res://Art/Patients/patient_" + patient_id + "/patient_" + patient_id + "_"
load_emotions(config, file_path)
@@ -129,6 +127,8 @@ func sort_patients():
var symptom_list: Array
for patient_id in Globals.patient_list:
#Loads symptoms for each patient
patient_symptoms.clear()
file_path = "res://Dialogues/Patients/patient_" + patient_id + "_file.cfg"
config.load(file_path)
@@ -137,6 +137,7 @@ func sort_patients():
symptom_list = config.get_value("", "abnormal_symptoms").split("\n", false)
patient_symptoms.append_array(symptom_list)
print("Patient #" + patient_id + " symptom list: " + str(patient_symptoms))
#Goes through the symptoms_arrays from the last to the first,
#If a symptom matches with the patient symptoms,
#Add that patient to the floors from that floor to the last one
@@ -190,9 +191,23 @@ func generate_patient_id() -> String: #Generates a patient ID
patient_list[j].erase(patient_id) #Removes picked patient from unseen patients list
print("Updated Floor " + str(j) + " list: " + str(patient_list[j]))
#Updates global variables
Globals.patient_id = patient_id
Globals.patients_seen.append(patient_id)
return patient_id
func next_patient() -> String: #Decides next patient ID
var next_patient_id: String
match Globals.floor_count:
-2:
if Globals.patient_count == 0:
next_patient_id = "it_that_smiles"
else:
next_patient_id = generate_patient_id()
_:
next_patient_id = generate_patient_id()
return next_patient_id
+14
View File
@@ -0,0 +1,14 @@
extends TextureButton
signal decision_made
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
self.pressed.connect(self._on_green_button_pressed)
set_disabled(true)
func _on_green_button_pressed():
if Globals.buttons_activated:
decision_made.emit("terminate")
set_toggle_mode(true)
set_pressed_no_signal(true)
+1
View File
@@ -0,0 +1 @@
uid://cmbmtqoh5iytr
+11
View File
@@ -0,0 +1,11 @@
extends RichTextLabel
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
Globals.release_display.connect(self._on_release_display)
text = Globals.colorize("RELEASE", "web_gray")
func _on_release_display(message:String):
text = message
+1
View File
@@ -0,0 +1 @@
uid://bvi3qtmbubkck
+249
View File
@@ -0,0 +1,249 @@
extends Control
#DeskAssets
@onready var patient = $UpperHalf/ControlGlass/Patient
@onready var supervisor = $UpperHalf/ControlGlass/Supervisor
@onready var green_button = $LowerHalf/GreenButton
@onready var red_button = $LowerHalf/RedButton
@onready var journal = $LowerHalf/Journal/JournalButton
@onready var journal_layer = $JournalLayer
@onready var release = $LowerHalf/DecisionScreen/MarginContainer/HBoxContainer/Release
@onready var terminate = $LowerHalf/DecisionScreen/MarginContainer/HBoxContainer/Terminate
@onready var patient_color: Color
@onready var computer = $LowerHalf/Computer
@onready var middle_screen = $LowerHalf/MiddleScreen/MarginContainer/MiddleScreen
@onready var console_screen = $LowerHalf/Console/Margin/ConsoleScreen
#RoomAssets
@onready var cell_top = $RoomAssets/CellTop
@onready var cell_bot = $RoomAssets/CellBot
@onready var cell_animation = $RoomAssets/CellAnimation
@onready var cell_wall = $RoomAssets/CellWall
@onready var backwall_animation = $RoomAssets/Backwall/BackwallAnimation
#DialogueAssets
@onready var patient_dialogue_resource: Resource
@onready var balloon: Node
@onready var patient_emotions : Dictionary
@onready var message_array: Array[String]
var main: Node
var accurate_diagnoses = 0
func _ready() -> void:
#Referencing main node
main = get_parent()
#Connecting signals
computer.next_patient_button.pressed.connect(self._on_call_next_patient_pressed)
red_button.decision_made.connect(self._on_decision_made)
green_button.decision_made.connect(self._on_decision_made)
journal.pressed.connect(journal_layer._on_journal_pressed)
Globals.clear_patient.connect(self._on_clear_patient)
Globals.color_change.connect(self._on_color_change)
#Hiding and showing appropriate RoomAssets
for room_asset in [cell_top, cell_bot, cell_wall]:
room_asset.hide()
for room_asset in [$RoomAssets/Glass, $RoomAssets/Room, $RoomAssets/Backwall]:
room_asset.show()
#$RoomAssets/Backwall.position = Vector2(0, -2700)
hide() #Hiding ScreeningDesk
message_array.resize(3) #Setting up message array
func new_patient():
var new_id = Patient.next_patient()
#Patient.new_patient("it_that_smiles") #Line for testing purposes
Patient.new_patient(new_id) #Line for generating new patient
computer.patient_file.text = Patient.file_text
computer.recording.text = ""
patient.texture = Patient.image
#Setting up UI
computer.next_patient_button.show()
console_screen.display(Globals.directives)
func _on_call_next_patient_pressed(): #Brings in next patient and sets up the desk controls
#Hiding the next_patient button
var scenes_to_hide = [computer.next_patient_button, supervisor]
for scenes in scenes_to_hide:
scenes.hide()
# Shows transition messages on computer and console
var message : String
message = Globals.colorize("COMPUTING CELL TRANSLATION...", "orange_red")
computer.display(message)
message = Globals.colorize("- BRINGING IN NEXT PATIENT -", "dark_orange")
console_screen.display(message)
#Shutters entry animation
cell_animation.play("incoming")
cell_top.show()
cell_bot.show()
await cell_animation.animation_finished
#Showing the Patient and the Backroom
var scenes_to_show = [patient, cell_wall]
for scene in scenes_to_show:
scene.show()
#Opening Shutters
cell_animation.play("open")
await cell_animation.animation_finished
#Activating Buttons
green_button.set_disabled(false)
red_button.set_disabled(false)
#Coloring Release and Terminate
release.text = Globals.colorize("RELEASE", "dark_green")
terminate.text = Globals.colorize("TERMINATE", "dark_red")
#Starting Dialogue and hiding console screen
computer.screen.hide()
console_screen.hide()
main.start_balloon("screening", "patient", Patient.dialogue_resource, "start")
#Showing Computer Tabs and showing Patient File Screen by default
for tab in computer.tab_list:
tab.show()
tab.set_mouse_filter(Control.MOUSE_FILTER_STOP)
computer.patient_file.show()
#Updating patient_count
Globals.patient_count += 1
#Starts release or termination protocols when the corresponding button is pressed
func _on_decision_made(choice: String):
#Hiding computer tabs screen
for node in computer.tab_list + computer.screen_list:
node.hide()
#Setting up console and computer displays
if choice == "release":
release.text = Globals.colorize("RELEASE", "green") #Highlighting the decision
message_array = Globals.release_messages
elif choice == "terminate":
terminate.text = Globals.colorize("TERMINATE", "red") #Highlighting the decision
message_array = Globals.terminate_messages
console_screen.display(message_array[0])
computer.display(message_array[2])
#Disabling Buttons
green_button.set_mouse_filter(Control.MOUSE_FILTER_IGNORE)
red_button.set_mouse_filter(Control.MOUSE_FILTER_IGNORE)
#Final Patient Dialogue
main.start_balloon("screening", "patient", Patient.dialogue_resource, choice)
#Clears patient and transitions towards next patient or end of day
func _on_clear_patient(choice:String):
# Updating middle screen info and accurate_diagnoses value
if (Patient.abnormal == true and choice == "terminate") or (Patient.abnormal == false and choice == "release"):
accurate_diagnoses += 1
else:
accurate_diagnoses = 0 # Resetting to 0 if the player makes a wrong diagnosis
middle_screen.update(Globals.day_count, Globals.floor_count, accurate_diagnoses, Globals.diagnoses_quota)
#Showing second console message
console_screen.display(message_array[1])
#Closing Shutters
cell_animation.play("close")
await cell_animation.animation_finished
#Hiding the cell and restoring the backroom and patient's original colors
for scene in [patient, cell_wall]:
scene.hide()
patient.modulate = Patient.original_color
cell_wall.modulate = Patient.original_color
#Hiding Computer screen and resetting Console screen once the animation is done
cell_animation.play(choice)
await cell_animation.animation_finished
computer.screen.hide()
console_screen.hide()
#Reenabling mouse filter and resetting buttons
for button in [green_button, red_button]:
button.set_mouse_filter(Control.MOUSE_FILTER_STOP)
button.set_pressed(false)
button.set_toggle_mode(false)
button.set_disabled(true)
#Resetting decision screen
release.text = Globals.colorize("RELEASE", "web_gray")
terminate.text = Globals.colorize("TERMINATE", "web_gray")
#Descending Floor if diagnoses_quota reached
if accurate_diagnoses == Globals.diagnoses_quota:
descend_floor()
else:
new_patient()
func _on_color_change(color: String): #Modulating backroom and patient colors
var new_color: Color
match color:
"red":
new_color = Color(1,0.1,0.1,1)
"green":
new_color = Color(0.5,1,0.5,1)
patient.modulate = new_color
cell_wall.modulate = new_color
print("Color changed to: " + str(new_color))
func descend_floor(): #Descends to next floor
#Displaying information on screens
var message : String
message = Globals.colorize("DIAGNOSES QUOTA REACHED", "green_yellow") + "\n\n" + "SECURITY CLEARANCE UPDATED" + "\n\n" + Globals.colorize("ACCESS TO NEXT FLOOR AUTHORIZED", "green")
computer.display(message)
message = Globals.colorize("- DESCENT PROTOCOL INITIATED -\n\n- TRANSLATING TO NEXT FLOOR -", "dark_orange")
console_screen.display(message)
#Descending animation
backwall_animation.play("going_down_1")
await backwall_animation.animation_finished
backwall_animation.play("going_down_2")
await backwall_animation.animation_finished
#Updating middle screen info
Globals.floor_count -= 1
accurate_diagnoses = 0
Globals.diagnoses_quota += 1
middle_screen.update(Globals.day_count, Globals.floor_count, accurate_diagnoses, Globals.diagnoses_quota)
#Resetting patient_count
Globals.patient_count = 0
#Updating journal symptoms
journal_layer.update_journal(Globals.floor_count)
#Hiding screen messages
computer.screen.hide()
console_screen.hide()
#Interfloor dialogue
supervisor.dialogue("interfloor_" + str(-Globals.floor_count-1))
await supervisor.dialogue_finished
#Setting up new patient
new_patient()
@@ -1,10 +1,13 @@
[gd_scene load_steps=43 format=3 uid="uid://chytk2cctjk3x"]
[gd_scene load_steps=59 format=3 uid="uid://chytk2cctjk3x"]
[ext_resource type="Script" uid="uid://b3ms0imu0umn8" path="res://screening_desk.gd" id="1_1s7k3"]
[ext_resource type="Script" uid="uid://b3ms0imu0umn8" path="res://Scenes/screening_desk/screening_desk.gd" id="1_1s7k3"]
[ext_resource type="Script" uid="uid://dcax2vggaexnr" path="res://Scenes/screening_desk/journal_layer.gd" id="3_8gteb"]
[ext_resource type="Texture2D" uid="uid://gnvb226r1xv0" path="res://Art/Patients/patient_42/patient_42_neutral.png" id="3_qsin6"]
[ext_resource type="Script" uid="uid://vjvnh47s4akq" path="res://patient.gd" id="4_43vqp"]
[ext_resource type="Shader" uid="uid://dwepb0lm1veje" path="res://supervisor.gdshader" id="4_qsin6"]
[ext_resource type="Script" uid="uid://cdkbyikbjqlsh" path="res://supervisor.gd" id="5_43vqp"]
[ext_resource type="Script" uid="uid://vjvnh47s4akq" path="res://Scenes/screening_desk/patient.gd" id="4_43vqp"]
[ext_resource type="Shader" uid="uid://dwepb0lm1veje" path="res://Scenes/screening_desk/supervisor.gdshader" id="4_qsin6"]
[ext_resource type="Texture2D" uid="uid://c3je4gir1qlot" path="res://Art/BlackScreen.png" id="4_ysguw"]
[ext_resource type="Texture2D" uid="uid://diln53wxa3oep" path="res://Art/Rooms/screening_room/journal_open.png" id="5_31hpe"]
[ext_resource type="Script" uid="uid://cdkbyikbjqlsh" path="res://Scenes/screening_desk/supervisor.gd" id="5_43vqp"]
[ext_resource type="Texture2D" uid="uid://cci0pb12chlps" path="res://Art/Rooms/screening_room/computer.png" id="6_6a8ar"]
[ext_resource type="Texture2D" uid="uid://jychpkygmjib" path="res://Art/Rooms/screening_room/desk.png" id="7_dp545"]
[ext_resource type="Theme" uid="uid://3k7sqw211ncl" path="res://Art/UI/button_theme.tres" id="8_hxrv4"]
@@ -12,15 +15,22 @@
[ext_resource type="BitMap" uid="uid://b1y07k0opbyju" path="res://Art/Rooms/screening_room/button_bitmap.png" id="10_hxph5"]
[ext_resource type="Texture2D" uid="uid://bhqx2kjgn1irf" path="res://Art/Rooms/screening_room/green_button.png" id="10_tmo4o"]
[ext_resource type="Texture2D" uid="uid://bagw75cp302xk" path="res://Art/Rooms/screening_room/green_button_pressed.png" id="11_weq72"]
[ext_resource type="Script" uid="uid://chhh7v5iwiqw2" path="res://Scenes/screening_desk/computer.gd" id="11_ysguw"]
[ext_resource type="Texture2D" uid="uid://cqn1o6cff1g4k" path="res://Art/Rooms/screening_room/red_button.png" id="12_7mvev"]
[ext_resource type="Texture2D" uid="uid://dja217ihoi5rb" path="res://Art/Rooms/screening_room/green_button_hover.png" id="12_rpmuh"]
[ext_resource type="Script" uid="uid://cyennu12fufbt" path="res://Scenes/screening_desk/console_screen.gd" id="12_ylm1s"]
[ext_resource type="Texture2D" uid="uid://kfq5b58sicqf" path="res://Art/Rooms/screening_room/red_button_pressed.png" id="13_lq4cy"]
[ext_resource type="FontFile" uid="uid://dv8ppra5tgn1t" path="res://Art/Fonts/PixelatedEleganceRegular-ovyAA.ttf" id="14_0pvwy"]
[ext_resource type="Script" uid="uid://nj1oo2nh44dh" path="res://Scenes/screening_desk/green_button.gd" id="15_6lou7"]
[ext_resource type="Texture2D" uid="uid://c35f0aquvroje" path="res://Art/Rooms/screening_room/red_button_hover.png" id="15_pbvyq"]
[ext_resource type="Texture2D" uid="uid://4tgfgi4earv1" path="res://Art/Rooms/screening_room/journal_unpressed.png" id="17_7o31y"]
[ext_resource type="Texture2D" uid="uid://1djtmkdqtplt" path="res://Art/Rooms/screening_room/journal_pressed.png" id="18_gv516"]
[ext_resource type="Script" uid="uid://cmbmtqoh5iytr" path="res://Scenes/screening_desk/red_button.gd" id="19_63o5x"]
[ext_resource type="Texture2D" uid="uid://b7tbgcyxjj516" path="res://Art/Rooms/screening_room/journal_hover.png" id="19_ar3nk"]
[ext_resource type="BitMap" uid="uid://byqmvpivmvsnl" path="res://Art/Rooms/screening_room/journal_bitmap.png" id="20_5vhu5"]
[ext_resource type="Script" uid="uid://bvi3qtmbubkck" path="res://Scenes/screening_desk/release.gd" id="20_43vqp"]
[ext_resource type="Script" uid="uid://dcjfpyxp3hqg8" path="res://Scenes/screening_desk/terminate.gd" id="21_w70jd"]
[ext_resource type="Script" uid="uid://p3a2y1dqk63c" path="res://Scenes/screening_desk/middle_screen.gd" id="23_68gp8"]
[ext_resource type="Texture2D" uid="uid://b21h7s3820sc8" path="res://Art/Rooms/screening_room/middle_screen.png" id="24_d8gyq"]
[ext_resource type="Texture2D" uid="uid://d2k6h1dqg0uox" path="res://Art/Rooms/screening_room/room_glass.png" id="24_qsin6"]
[ext_resource type="Texture2D" uid="uid://twd5atevu4i3" path="res://Art/Rooms/screening_room/cell_wall.png" id="25_qsin6"]
@@ -33,11 +43,49 @@
[sub_resource type="Theme" id="Theme_63o5x"]
RichTextLabel/fonts/normal_font = ExtResource("14_0pvwy")
[sub_resource type="Theme" id="Theme_074om"]
default_font = ExtResource("14_0pvwy")
RichTextLabel/colors/default_color = Color(0, 0, 0, 1)
RichTextLabel/fonts/normal_font = ExtResource("14_0pvwy")
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3lob0"]
bg_color = Color(0.843137, 0.843137, 0.843137, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0, 0, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wj8aa"]
bg_color = Color(0.784314, 0.784314, 0.784314, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0, 0, 0, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5jbc5"]
bg_color = Color(0.901961, 0.901961, 0.901961, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0, 0, 0, 1)
[sub_resource type="Theme" id="Theme_cjapy"]
Button/colors/font_color = Color(0, 0, 0, 1)
Button/fonts/font = ExtResource("14_0pvwy")
Button/styles/hover = SubResource("StyleBoxFlat_3lob0")
Button/styles/normal = SubResource("StyleBoxFlat_wj8aa")
Button/styles/pressed = SubResource("StyleBoxFlat_5jbc5")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_w70jd"]
shader = ExtResource("4_qsin6")
shader_parameter/progress = 0.0
shader_parameter/softness = 0.05
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ysguw"]
[sub_resource type="Animation" id="Animation_ub1ft"]
length = 0.001
tracks/0/type = "value"
@@ -280,6 +328,164 @@ mouse_filter = 2
theme = SubResource("Theme_63o5x")
script = ExtResource("1_1s7k3")
[node name="JournalLayer" type="CanvasLayer" parent="."]
layer = 110
visible = false
script = ExtResource("3_8gteb")
[node name="JournalOpen" type="Control" parent="JournalLayer"]
z_index = 8
layout_mode = 3
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -825.0
offset_top = -450.0
offset_right = 825.0
offset_bottom = 450.0
grow_horizontal = 2
grow_vertical = 2
theme = SubResource("Theme_074om")
[node name="Shader" type="TextureRect" parent="JournalLayer/JournalOpen"]
modulate = Color(1, 1, 1, 0.52549)
z_index = 2
custom_minimum_size = Vector2(2000, 2000)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("4_ysguw")
expand_mode = 1
[node name="JournalOpenTexture" type="TextureRect" parent="JournalLayer/JournalOpen"]
z_index = 2
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -750.0
offset_top = -420.0
offset_right = 750.0
offset_bottom = 420.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("5_31hpe")
stretch_mode = 3
[node name="JournalMargin" type="MarginContainer" parent="JournalLayer/JournalOpen"]
z_index = 2
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 70
theme_override_constants/margin_top = 30
theme_override_constants/margin_right = 70
theme_override_constants/margin_bottom = 50
[node name="PageArea" type="HBoxContainer" parent="JournalLayer/JournalOpen/JournalMargin"]
layout_mode = 2
theme_override_constants/separation = 90
[node name="LeftPage" type="VBoxContainer" parent="JournalLayer/JournalOpen/JournalMargin/PageArea"]
layout_mode = 2
size_flags_horizontal = 3
[node name="PageTitle" type="RichTextLabel" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"]
custom_minimum_size = Vector2(0, 200)
layout_mode = 2
size_flags_stretch_ratio = 0.1
theme_override_font_sizes/normal_font_size = 28
bbcode_enabled = true
text = "
[center]EMPLOYEES' MANUAL[/center]"
[node name="Instructions" type="RichTextLabel" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"]
custom_minimum_size = Vector2(0, 200)
layout_mode = 2
size_flags_vertical = 4
theme_override_constants/line_separation = 20
theme_override_font_sizes/normal_font_size = 20
bbcode_enabled = true
text = "THE FOLLOWING [color=dark_orange]SYMPTOMS[/color] HAVE BEEN IDENTIFIED AS MARKERS OF ABNORMALITY CONVERSION.
IF YOU DETECT ONE THAT WAS NOT ASSESSED IN PRE-SCREENING, [color=red]TERMINATE[/color] THE SUBJECT."
[node name="Slogan" type="RichTextLabel" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"]
custom_minimum_size = Vector2(0, 100)
layout_mode = 2
size_flags_vertical = 6
theme_override_constants/line_separation = 20
theme_override_font_sizes/normal_font_size = 28
bbcode_enabled = true
text = "[color=dark_blue]THE REPUBLIC SHELTERS[/color]"
horizontal_alignment = 1
vertical_alignment = 1
[node name="CloseManual" type="Button" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"]
custom_minimum_size = Vector2(200, 60)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 6
theme = SubResource("Theme_cjapy")
text = "Close manual"
[node name="RightPage" type="VBoxContainer" parent="JournalLayer/JournalOpen/JournalMargin/PageArea"]
layout_mode = 2
size_flags_horizontal = 3
[node name="Symptoms" type="RichTextLabel" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/RightPage"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/paragraph_separation = 1
theme_override_font_sizes/normal_font_size = 20
bbcode_enabled = true
text = "SUICIDAL IDEATIONS
Persistent thoughts about ending one's own life
PANIC ATTACKS
Acute episodes of severe anxiety
PERSECUTORY DELUSIONS
False conviction of being targeted or harmed
MEGALOMANIAC DELUSIONS
False exaggeration of self-importance or power
MYSTICAL DELUSIONS
False certainty of spiritual, divine connection
MANIA
Excessively elevated mood and increased energy
AUDITORY HALLUCINATIONS
False perceptions of external sound
VISUAL HALLUCINATIONS
False perceptions of visual stimuli
HAPTIC HALLUCINATIONS
False perceptions of touch
CENESTHETIC HALLUCINATIONS
False internal bodily sensations
SELF-MUTILATION
Deliberate injury to one's own body
HETERO-AGRESSIVE BEHAVIOUR
Hostility, verbal agression, threats"
[node name="UpperHalf" type="Control" parent="."]
layout_mode = 1
anchors_preset = 15
@@ -362,6 +568,7 @@ offset_left = 6.0
offset_top = 13.0
offset_right = 734.0
offset_bottom = 313.0
script = ExtResource("11_ysguw")
[node name="ComputerTexture" type="TextureRect" parent="LowerHalf/Computer"]
layout_mode = 1
@@ -429,22 +636,9 @@ theme_override_constants/margin_right = 4
theme_override_constants/margin_bottom = 4
[node name="FileContainer" type="VBoxContainer" parent="LowerHalf/Computer/Margin/ComputerScreen/ComputerTabs"]
visible = false
layout_mode = 2
theme_override_constants/separation = -4
[node name="PatientFileTitle" type="RichTextLabel" parent="LowerHalf/Computer/Margin/ComputerScreen/ComputerTabs/FileContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
size_flags_stretch_ratio = 0.9
theme_override_fonts/normal_font = ExtResource("14_0pvwy")
theme_override_font_sizes/normal_font_size = 16
bbcode_enabled = true
text = "PATIENT #564"
horizontal_alignment = 1
vertical_alignment = 1
[node name="PatientFile" type="RichTextLabel" parent="LowerHalf/Computer/Margin/ComputerScreen/ComputerTabs/FileContainer"]
layout_mode = 2
size_flags_vertical = 3
@@ -466,6 +660,7 @@ ANXIETY[/color]
vertical_alignment = 1
[node name="Rules" type="RichTextLabel" parent="LowerHalf/Computer/Margin/ComputerScreen/ComputerTabs"]
visible = false
z_index = 1
layout_mode = 2
theme_override_constants/line_separation = 5
@@ -493,13 +688,14 @@ bbcode_enabled = true
vertical_alignment = 1
[node name="NextPatient" type="PanelContainer" parent="LowerHalf/Computer/Margin"]
visible = false
custom_minimum_size = Vector2(400, 100)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
theme_override_styles/panel = SubResource("StyleBoxEmpty_ysguw")
[node name="CallNextPatient" type="Button" parent="LowerHalf/Computer/Margin/NextPatient"]
visible = false
z_index = 1
layout_mode = 2
size_flags_horizontal = 3
@@ -536,7 +732,7 @@ ASSESSMENT: [color=red]ABNORMAL[/color]
horizontal_alignment = 1
vertical_alignment = 1
[node name="ConsoleScreen" type="Control" parent="LowerHalf"]
[node name="Console" type="Control" parent="LowerHalf"]
z_index = 1
anchors_preset = 0
offset_left = 1194.0
@@ -544,14 +740,14 @@ offset_top = 12.0
offset_right = 1914.0
offset_bottom = 392.0
[node name="ConsoleScreen" type="TextureRect" parent="LowerHalf/ConsoleScreen"]
[node name="ConsoleTextureRect" type="TextureRect" parent="LowerHalf/Console"]
layout_mode = 0
offset_right = 676.0
offset_bottom = 376.0
texture = ExtResource("9_68gp8")
stretch_mode = 2
[node name="Margin" type="MarginContainer" parent="LowerHalf/ConsoleScreen"]
[node name="Margin" type="MarginContainer" parent="LowerHalf/Console"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -563,7 +759,7 @@ theme_override_constants/margin_top = 28
theme_override_constants/margin_right = 36
theme_override_constants/margin_bottom = 28
[node name="ConsoleText" type="RichTextLabel" parent="LowerHalf/ConsoleScreen/Margin"]
[node name="ConsoleScreen" type="RichTextLabel" parent="LowerHalf/Console/Margin"]
custom_minimum_size = Vector2(600, 200)
layout_mode = 2
theme_override_fonts/normal_font = ExtResource("14_0pvwy")
@@ -588,6 +784,7 @@ MAKE ENOUGH [color=green_yellow]ACCURATE DIAGNOSES[/color] IN A ROW
TO GET TO THE NEXT FLOOR"
horizontal_alignment = 1
vertical_alignment = 1
script = ExtResource("12_ylm1s")
[node name="GreenButton" type="TextureButton" parent="LowerHalf"]
z_index = 1
@@ -601,13 +798,13 @@ offset_right = -1003.0
offset_bottom = -4.0
grow_horizontal = 2
grow_vertical = 2
toggle_mode = true
texture_normal = ExtResource("10_tmo4o")
texture_pressed = ExtResource("11_weq72")
texture_hover = ExtResource("12_rpmuh")
texture_disabled = ExtResource("11_weq72")
texture_click_mask = ExtResource("10_hxph5")
stretch_mode = 3
script = ExtResource("15_6lou7")
[node name="RedButton" type="TextureButton" parent="LowerHalf"]
z_index = 1
@@ -616,12 +813,12 @@ offset_left = 1003.0
offset_top = 328.0
offset_right = 1103.0
offset_bottom = 392.0
toggle_mode = true
texture_normal = ExtResource("12_7mvev")
texture_pressed = ExtResource("13_lq4cy")
texture_hover = ExtResource("15_pbvyq")
texture_disabled = ExtResource("13_lq4cy")
stretch_mode = 3
script = ExtResource("19_63o5x")
[node name="MiddleScreen" type="Control" parent="LowerHalf"]
z_index = 1
@@ -653,7 +850,7 @@ theme_override_constants/margin_top = 28
theme_override_constants/margin_right = 36
theme_override_constants/margin_bottom = 28
[node name="MiddleInfo" type="RichTextLabel" parent="LowerHalf/MiddleScreen/MarginContainer"]
[node name="MiddleScreen" type="RichTextLabel" parent="LowerHalf/MiddleScreen/MarginContainer"]
layout_mode = 2
theme_override_font_sizes/normal_font_size = 21
bbcode_enabled = true
@@ -666,6 +863,7 @@ ACCURATE DIAGNOSES: [color=dark_orange]0/4[/color]
"
horizontal_alignment = 1
vertical_alignment = 1
script = ExtResource("23_68gp8")
[node name="DecisionScreen" type="Control" parent="LowerHalf"]
z_index = 1
@@ -713,6 +911,7 @@ bbcode_enabled = true
text = "[color=dark_green]RELEASE[/color]"
horizontal_alignment = 1
vertical_alignment = 1
script = ExtResource("20_43vqp")
[node name="Terminate" type="RichTextLabel" parent="LowerHalf/DecisionScreen/MarginContainer/HBoxContainer"]
layout_mode = 2
@@ -723,6 +922,7 @@ bbcode_enabled = true
text = "[color=dark_red]TERMINATE[/color]"
horizontal_alignment = 1
vertical_alignment = 1
script = ExtResource("21_w70jd")
[node name="Journal" type="Control" parent="LowerHalf"]
anchors_preset = 0
@@ -9,6 +9,10 @@ signal dialogue_finished
func _ready():
#Hiding
hide()
#Setting up shader
randomize()
#Noise setup
var noise := FastNoiseLite.new()
+11
View File
@@ -0,0 +1,11 @@
extends RichTextLabel
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
Globals.terminate_display.connect(self._on_terminate_display)
text = Globals.colorize("TERMINATE", "web_gray")
func _on_terminate_display(message:String):
text = message
+1
View File
@@ -0,0 +1 @@
uid://dcjfpyxp3hqg8
@@ -1,6 +1,6 @@
[gd_scene load_steps=3 format=3 uid="uid://igkl2384rxt1"]
[ext_resource type="Script" uid="uid://t5hihricayvb" path="res://text_screens.gd" id="1_16laq"]
[ext_resource type="Script" uid="uid://t5hihricayvb" path="res://Scenes/text_screen/text_screens.gd" id="1_16laq"]
[ext_resource type="FontFile" uid="uid://dv8ppra5tgn1t" path="res://Art/Fonts/PixelatedEleganceRegular-ovyAA.ttf" id="4_fhc1y"]
[node name="TextScreens" type="CanvasLayer"]
@@ -1,7 +1,7 @@
[gd_scene load_steps=4 format=3 uid="uid://cahspuhi43bx7"]
[ext_resource type="Texture2D" uid="uid://c3je4gir1qlot" path="res://Art/BlackScreen.png" id="1_3k8ub"]
[ext_resource type="Script" uid="uid://bkd300wbk2f8a" path="res://title_screen.gd" id="1_ejdst"]
[ext_resource type="Script" uid="uid://bkd300wbk2f8a" path="res://Scenes/title_screen/title_screen.gd" id="1_ejdst"]
[ext_resource type="FontFile" uid="uid://dv8ppra5tgn1t" path="res://Art/Fonts/PixelatedEleganceRegular-ovyAA.ttf" id="3_vprse"]
[node name="TitleScreenLayer" type="CanvasLayer"]
@@ -1,6 +1,6 @@
[gd_scene load_steps=10 format=3 uid="uid://drk1l7ijo4xq5"]
[ext_resource type="Script" uid="uid://dywfa5vbgtrkb" path="res://transition_screen.gd" id="1_hbjtk"]
[ext_resource type="Script" uid="uid://dywfa5vbgtrkb" path="res://Scenes/transition_screen/transition_screen.gd" id="1_hbjtk"]
[sub_resource type="Animation" id="Animation_n85x3"]
length = 0.001
+5 -5
View File
@@ -11,15 +11,15 @@ config_version=5
[application]
config/name="im_not_sick"
run/main_scene="res://MainHub.tscn"
run/main_scene="res://Scenes/main/Main.tscn"
config/features=PackedStringArray("4.5", "Forward Plus")
[autoload]
Globals="*res://globals.gd"
TransitionScreen="*res://transition_screen.tscn"
UI="*res://ui.tscn"
Patient="*res://patient_global.gd"
Globals="*res://Scenes/main/globals.gd"
TransitionScreen="*res://Scenes/transition_screen/transition_screen.tscn"
UI="*res://Scenes/UI/ui.tscn"
Patient="*res://Scenes/screening_desk/patient_global.gd"
DialogueManager="*res://addons/dialogue_manager/dialogue_manager.gd"
[dialogue_manager]
-368
View File
@@ -1,368 +0,0 @@
extends Control
#DeskAssets
@onready var patient_file = $LowerHalf/Computer/Margin/ComputerScreen/ComputerTabs/FileContainer/PatientFile
@onready var patient_file_title = $LowerHalf/Computer/Margin/ComputerScreen/ComputerTabs/FileContainer/PatientFileTitle
@onready var patient_recording = $LowerHalf/Computer/Margin/ComputerScreen/ComputerTabs/Recording
@onready var patient = $UpperHalf/ControlGlass/Patient
@onready var supervisor = $UpperHalf/ControlGlass/Supervisor
@onready var next_patient = $LowerHalf/Computer/Margin/NextPatient
@onready var end_day = $LowerHalf/Computer/Margin/EndDay
@onready var green_button = $LowerHalf/GreenButton
@onready var red_button = $LowerHalf/RedButton
@onready var journal = $LowerHalf/Journal/JournalButton
@onready var journal_layer = UI.journal_layer
@onready var release = $LowerHalf/DecisionScreen/MarginContainer/HBoxContainer/Release
@onready var terminate = $LowerHalf/DecisionScreen/MarginContainer/HBoxContainer/Terminate
@onready var patient_color: Color
@onready var computer_tabs = $LowerHalf/Computer/Margin/ComputerScreen/ComputerTabs
@onready var computer_screen = $LowerHalf/Computer/Margin/ComputerScreen2
@onready var tab_patient_file = $LowerHalf/Computer/Margin/ComputerScreen/Tabs/PatientFile
@onready var tab_rules = $LowerHalf/Computer/Margin/ComputerScreen/Tabs/Rules
@onready var tab_recording = $LowerHalf/Computer/Margin/ComputerScreen/Tabs/Recording
@onready var middle_screen = $LowerHalf/MiddleScreen/MarginContainer/MiddleInfo
@onready var console_screen = $LowerHalf/ConsoleScreen/Margin/ConsoleText
#RoomAssets
@onready var cell_top = $RoomAssets/CellTop
@onready var cell_bot = $RoomAssets/CellBot
@onready var cell_animation = $RoomAssets/CellAnimation
@onready var cell_wall = $RoomAssets/CellWall
@onready var backwall_animation = $RoomAssets/Backwall/BackwallAnimation
#DialogueAssets
@onready var patient_dialogue_resource: Resource
@onready var balloon: Node
@onready var patient_emotions : Dictionary
@onready var message_array: Array[String]
var main: Node
var accurate_diagnoses = 0
func _ready() -> void:
#Referencing main node
main = get_parent()
#Connecting signals
next_patient.get_node("CallNextPatient").pressed.connect(self._on_call_next_patient_pressed)
green_button.pressed.connect(self._on_green_button_pressed)
red_button.pressed.connect(self._on_red_button_pressed)
journal.pressed.connect(self._on_journal_pressed)
journal_layer.get_node("JournalOpen/JournalMargin/PageArea/LeftPage/CloseManual").pressed.connect(self._on_close_manual_pressed)
tab_patient_file.pressed.connect(self._on_tab_patient_file_pressed)
tab_rules.pressed.connect(self._on_tab_rules_pressed)
tab_recording.pressed.connect(self._on_tab_recording_pressed)
Globals.console_message.connect(self.console_display)
Globals.response_chosen.connect(self._on_response_chosen)
Globals.clear_patient.connect(self._on_clear_patient)
Globals.color_change.connect(self._on_color_change)
#Hiding and showing appropriate RoomAssets
for room_asset in [cell_top, cell_bot, cell_wall]:
room_asset.hide()
for room_asset in [$RoomAssets/Glass, $RoomAssets/Room, $RoomAssets/Backwall]:
room_asset.show()
$RoomAssets/Backwall.position = Vector2(0, -2700)
#Hiding ComputerScreen, DialogueText and JournalOpen
var nodes_to_hide = [next_patient, end_day, computer_screen, console_screen, journal_layer] + computer_tabs.get_children()
for node in nodes_to_hide:
node.hide()
#Setting up Decision screen
release.text = Globals.colorize("RELEASE", "web_gray")
terminate.text = Globals.colorize("TERMINATE", "web_gray")
for tab_button in [tab_patient_file, tab_rules, tab_recording]: #Hiding Tabs
tab_button.hide()
for button in [green_button, red_button]: #Disabling Buttons
button.set_disabled(true)
patient.hide() #Hiding Patient
self.hide() #Hiding ScreeningDesk
message_array.resize(3) #Setting up message array
func new_patient():
var new_id = Patient.generate_patient_id()
#Patient.new_patient("it_that_smiles") #Line for testing purposes
Patient.new_patient(new_id) #Line for generating new patient
patient_file.text = Patient.file_text
patient_file_title.text = Patient.file_title
patient_recording.text = ""
patient.texture = Patient.image
#Setting up UI
next_patient.show()
console_display(Globals.directives)
func _on_call_next_patient_pressed(): #Brings in next patient and sets up the desk controls
#Hiding the next_patient button and shows transition messages on computer and console
var scenes_to_hide = [next_patient, supervisor]
for scenes in scenes_to_hide:
scenes.hide()
var message : String
message = "TARGET ID : " + Globals.colorize("#" + Globals.patient_id, "orange_red") + "\n\n" + "COMPUTING CELL TRANSLATION..."
computer_display(message)
message = Globals.colorize("- BRINGING IN NEXT PATIENT -", "dark_orange")
console_display(message)
#ShuttersIncoming
cell_animation.play("incoming")
cell_top.show()
cell_bot.show()
await cell_animation.animation_finished
#Showing the Patient and the Backroom
var scenes_to_show = [patient, cell_wall]
for scene in scenes_to_show:
scene.show()
#Opening Shutters
cell_animation.play("open")
await cell_animation.animation_finished
#Activating Buttons
green_button.set_disabled(false)
red_button.set_disabled(false)
#Coloring Release and Terminate
release.text = Globals.colorize("RELEASE", "dark_green")
terminate.text = Globals.colorize("TERMINATE", "dark_red")
#Starting Dialogue and hiding console screen
computer_screen.hide()
console_screen.hide()
main.start_balloon("screening", "patient", Patient.dialogue_resource, "start")
#Showing Computer Tabs and showing Patient File by default
for node in [tab_patient_file, tab_rules, tab_recording]:
node.show()
node.set_mouse_filter(Control.MOUSE_FILTER_STOP)
computer_tabs.get_node("FileContainer").show()
func _recording_text(dialogue_line): #Records the dialogues
var line = dialogue_line.text
var character = dialogue_line.character
patient_recording.append_text("\n\n")
patient_recording.append_text("[color=red]" + character + "[/color]" + "\n")
patient_recording.append_text(line)
func _on_response_chosen(response): #Adds protagonist responses to the recording tab
patient_recording.append_text("\n\n")
patient_recording.append_text("[color=green]You[/color]" + "\n")
patient_recording.append_text(response.text)
func _on_tab_patient_file_pressed(): #Shows the patient file tab
#Highlighting pressed tab button and unpressing the others
tab_patient_file.set_pressed(true)
tab_patient_file.set_mouse_filter(Control.MOUSE_FILTER_IGNORE)
for tab_button in [tab_rules, tab_recording]:
tab_button.set_pressed(false)
tab_button.set_mouse_filter(Control.MOUSE_FILTER_STOP)
#Showing desired tab and hiding the others
for node in computer_tabs.get_children():
node.hide()
computer_tabs.get_node("FileContainer").show()
func _on_tab_rules_pressed(): #Shows the rules tab
#Highlighting pressed tab button and unpressing the others
tab_rules.set_pressed(true)
tab_rules.set_mouse_filter(Control.MOUSE_FILTER_IGNORE)
for tab_button in [tab_patient_file, tab_recording]:
tab_button.set_pressed(false)
tab_button.set_mouse_filter(Control.MOUSE_FILTER_STOP)
#Showing desired tab and hiding the others
for node in computer_tabs.get_children():
node.hide()
computer_tabs.get_node("Rules").show()
func _on_tab_recording_pressed(): #Shows the recording tab
#Highlighting pressed tab button and unpressing the others
tab_recording.set_pressed(true)
tab_recording.set_mouse_filter(Control.MOUSE_FILTER_IGNORE)
for tab_button in [tab_patient_file, tab_rules]:
tab_button.set_pressed(false)
tab_button.set_mouse_filter(Control.MOUSE_FILTER_STOP)
#Showing desired tab and hiding the others
for node in computer_tabs.get_children():
node.hide()
computer_tabs.get_node("Recording").show()
func _on_green_button_pressed(): #Releases the patient
decision_made("release")
func _on_red_button_pressed(): #Terminates the patient
decision_made("terminate")
func decision_made(choice: String):
#Hiding computer tabs screen
for node in [tab_patient_file, tab_rules, tab_recording] + computer_tabs.get_children():
node.hide()
#Setting up console and computer displays
if choice == "release":
release.text = Globals.colorize("RELEASE", "green") #Highlighting the decision
message_array = Globals.release_messages
elif choice == "terminate":
terminate.text = Globals.colorize("TERMINATE", "red") #Highlighting the decision
message_array = Globals.terminate_messages
console_display(message_array[0])
computer_display(message_array[2])
#Disabling Buttons
green_button.set_mouse_filter(Control.MOUSE_FILTER_IGNORE)
red_button.set_mouse_filter(Control.MOUSE_FILTER_IGNORE)
#Final Patient Dialogue
main.start_balloon("screening", "patient", Patient.dialogue_resource, choice)
func _on_journal_pressed(): #Shows the journal
journal_layer.show()
func _on_close_manual_pressed(): #Hides the journal
journal_layer.hide()
func _on_clear_patient(choice:String): #Clears patient and transitions towards next patient or end of day
# Updating middle screen info and accurate_diagnoses value
if (Patient.abnormal == true and choice == "terminate") or (Patient.abnormal == false and choice == "release"):
accurate_diagnoses += 1
else:
accurate_diagnoses = 0 # Resetting to 0 if the player makes a wrong diagnosis
update_middle_screen(Globals.day_count, Globals.floor_count, accurate_diagnoses, Globals.diagnoses_quota)
#Showing second console message
console_display(message_array[1])
#Closing Shutters
cell_animation.play("close")
await cell_animation.animation_finished
#Hiding the cell and restoring the backroom and patient's original colors
for scene in [patient, cell_wall]:
scene.hide()
patient.modulate = Patient.original_color
cell_wall.modulate = Patient.original_color
#Hiding Computer screen and resetting Console screen once the animation is done
cell_animation.play(choice)
await cell_animation.animation_finished
computer_screen.hide()
console_screen.hide()
#Reenabling mouse filter and resetting buttons
for button in [green_button, red_button]:
button.set_mouse_filter(Control.MOUSE_FILTER_STOP)
button.set_pressed(false)
button.set_disabled(true)
#Resetting decision screen
release.text = Globals.colorize("RELEASE", "web_gray")
terminate.text = Globals.colorize("TERMINATE", "web_gray")
#Descending Floor if diagnoses_quota reached
if accurate_diagnoses == Globals.diagnoses_quota:
descend_floor()
else:
new_patient()
func _on_color_change(color: String): #Modulating backroom and patient colors
var new_color: Color
match color:
"red":
new_color = Color(1,0.1,0.1,1)
"green":
new_color = Color(0.5,1,0.5,1)
patient.modulate = new_color
cell_wall.modulate = new_color
print("Color changed to: " + str(new_color))
func console_display(message): #Displays a message on the console screen
var text = message
text = text.replace("\\n", "\n") #Replaces litteral backslashes by actual newlines (necessary because of Dialogue Manager)
console_screen.text = text
console_screen.show()
func computer_display(message): #Displays a message on the computer screen
var text = message
text = text.replace("\\n", "\n") #Replaces litteral backslashes by actual newlines (necessary because of Dialogue Manager)
computer_screen.text = text
computer_screen.show()
func update_middle_screen(day_count, floor_count, diagnoses_count, diagnoses_quota): #Updates Middle Screen Info
var day = Globals.colorize(str(day_count), "dark_orange")
var floor = Globals.colorize(str(floor_count), "dark_orange")
var diagnoses = Globals.colorize(str(diagnoses_count) + "/" + str(diagnoses_quota), "dark_orange")
var text = "DAY: " + day + "\n\nFLOOR: " + floor + "\n\nACCURATE DIAGNOSES: " + diagnoses
middle_screen.text = text
func descend_floor(): #Descends to next floor
#Displaying information on screens
var message : String
message = Globals.colorize("DIAGNOSES QUOTA REACHED", "green_yellow") + "\n\n" + "SECURITY CLEARANCE UPDATED" + "\n\n" + Globals.colorize("ACCESS TO NEXT FLOOR AUTHORIZED", "green")
computer_display(message)
message = Globals.colorize("- DESCENT PROTOCOL INITIATED -\n\n- TRANSLATING TO NEXT FLOOR -", "dark_orange")
console_display(message)
#Descending animation
backwall_animation.play("going_down_1")
await backwall_animation.animation_finished
backwall_animation.play("going_down_2")
await backwall_animation.animation_finished
#Updating middle screen info
Globals.floor_count -= 1
accurate_diagnoses = 0
Globals.diagnoses_quota += 1
update_middle_screen(Globals.day_count, Globals.floor_count, accurate_diagnoses, Globals.diagnoses_quota)
#Updating journal symptoms
UI.update_journal(Globals.floor_count)
#Hiding screen messages
computer_screen.hide()
console_screen.hide()
#Interfloor dialogue
supervisor.dialogue("interfloor_" + str(-Globals.floor_count-1))
await supervisor.dialogue_finished
#Setting up new patient
new_patient()