Code reorganizing
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
+2
-196
@@ -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
|
||||
@@ -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)
|
||||
@@ -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")
|
||||
@@ -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:
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -0,0 +1 @@
|
||||
uid://chhh7v5iwiqw2
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
@@ -0,0 +1 @@
|
||||
uid://cmbmtqoh5iytr
|
||||
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
uid://bvi3qtmbubkck
|
||||
@@ -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()
|
||||
@@ -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
|
||||
@@ -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
@@ -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]
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user