diff --git a/Dialogues/Patients/patient_46.dialogue b/Dialogues/Patients/patient_46.dialogue index a231ada..930355e 100644 --- a/Dialogues/Patients/patient_46.dialogue +++ b/Dialogues/Patients/patient_46.dialogue @@ -96,11 +96,14 @@ do Globals.console_message.emit("[color=dark_orange]ALLOTED ASSESSMENT TIME ELAP ~ terminate -do Globals.color_change.emit("red") if Patient.abnormal == true + do Globals.character_label_color_change.emit(Color(1,0,0,1)) Fontelyne Dumont: [#abnormal1] I am alone. There is no one for me anymore. No one for me to [color=orange_red]LIVE[/color]. + do Globals.color_change.emit("red") Fontelyne Dumont: [#abnormal1] I feel so lonely... Helene... I am so sorry... else + do Globals.character_label_color_change.emit(Color(0,1,0,1)) + do Globals.color_change.emit("red") Fontelyne Dumont: [#crying] I'm sorry... Helene... I am so sorry... do Globals.clear_patient.emit("terminate") @@ -108,11 +111,14 @@ do Globals.clear_patient.emit("terminate") ~ release -do Globals.color_change.emit("green") if Patient.abnormal == true + do Globals.character_label_color_change.emit(Color(1,0,0,1)) Fontelyne Dumont: [#abnormal1] I am alone. There is no one for me anymore. No one for me to [color=orange_red]LIVE[/color]. + do Globals.color_change.emit("green") Fontelyne Dumont: [#abnormal1] I feel so lonely... Helene... I am so sorry... else + do Globals.character_label_color_change.emit(Color(0,1,0,1)) + do Globals.color_change.emit("green") Fontelyne Dumont: [#sad] I don't deserve it, but I'll try to live. That's what Hélène would've wanted. Fontelyne Dumont: [#sadsmiling] Thank you. I mean it. diff --git a/Dialogues/balloon_screening.tscn b/Dialogues/balloon_screening.tscn index 824f775..470a2d3 100644 --- a/Dialogues/balloon_screening.tscn +++ b/Dialogues/balloon_screening.tscn @@ -93,7 +93,7 @@ clip_contents = false custom_minimum_size = Vector2(0, 30) layout_mode = 2 mouse_filter = 1 -theme_override_colors/default_color = Color(0.784314, 0, 0, 1) +theme_override_colors/default_color = Color(1, 0.78431374, 0.19607843, 1) theme_override_colors/font_outline_color = Color(0, 0, 0, 1) theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) theme_override_constants/shadow_outline_size = 0 diff --git a/Dialogues/interfloor.dialogue b/Dialogues/interfloor.dialogue new file mode 100644 index 0000000..0d32f67 --- /dev/null +++ b/Dialogues/interfloor.dialogue @@ -0,0 +1,53 @@ +~ interfloor_1 + +do Patient.marker.fill(0) +set Patient.dialog_tree = Patient.build_dialog_tree([]) + +do Globals.character_label_color_change.emit(Color(0,0.8,1,1)) + +Prime Supervisor: Well done, employee. You are showing great promise. +Prime Supervisor: Keep in mind however that the first floor is the easiest one. +Prime Supervisor: As you go deeper, the patients you encounter will be harder to assess, their expressions of abnormality more... human. +Prime Supervisor: Do not get fooled by their inhuman humanity. Sort them accordingly. +Prime Supervisor: Do your Duty. For the Republic. + +=> END + + + +~ interfloor_2 + +do Patient.marker.fill(0) +set Patient.dialog_tree = Patient.build_dialog_tree([]) + +do Globals.character_label_color_change.emit(Color(0,0.8,1,1)) + +WORK_IN_PROGRESS + +=> END + + + +~ interfloor_3 + +do Patient.marker.fill(0) +set Patient.dialog_tree = Patient.build_dialog_tree([21,22,23,24,61,62,63]) + +do Globals.character_label_color_change.emit(Color(0,0.8,1,1)) + +WORK_IN_PROGRESS + +=> END + + + +~ interfloor_4 + +do Patient.marker.fill(0) +set Patient.dialog_tree = Patient.build_dialog_tree([21,22,23,24,61,62,63]) + +do Globals.character_label_color_change.emit(Color(0,0.8,1,1)) + +WORK_IN_PROGRESS + +=> END diff --git a/Dialogues/interfloor.dialogue.import b/Dialogues/interfloor.dialogue.import new file mode 100644 index 0000000..fcd3ef6 --- /dev/null +++ b/Dialogues/interfloor.dialogue.import @@ -0,0 +1,16 @@ +[remap] + +importer="dialogue_manager" +importer_version=15 +type="Resource" +uid="uid://srx3wjspnj05" +path="res://.godot/imported/interfloor.dialogue-ecc0de3057e85aa179c01b6aba3d2337.tres" + +[deps] + +source_file="res://Dialogues/interfloor.dialogue" +dest_files=["res://.godot/imported/interfloor.dialogue-ecc0de3057e85aa179c01b6aba3d2337.tres"] + +[params] + +defaults=true diff --git a/MainHub.tscn b/MainHub.tscn index fe02f57..3104cb4 100644 --- a/MainHub.tscn +++ b/MainHub.tscn @@ -3,9 +3,13 @@ [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://dcjhx2g4d056v" path="res://bedroom.tscn" id="4_4fm57"] [ext_resource type="PackedScene" uid="uid://igkl2384rxt1" path="res://text_screens.tscn" id="5_85o5j"] -[ext_resource type="PackedScene" uid="uid://dixsxwodxuf0b" path="res://dialogue_screens.tscn" id="6_60wm2"] + +[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 @@ -17,6 +21,6 @@ grow_vertical = 2 script = ExtResource("1_rvfpd") TitleScreen = ExtResource("2_3wmv1") ScreeningDesk = ExtResource("3_whctb") -Bedroom = ExtResource("4_4fm57") +Bedroom = SubResource("Resource_ucuk0") TextScreens = ExtResource("5_85o5j") -DialogueScreens = ExtResource("6_60wm2") +DialogueScreens = SubResource("Resource_h7sfr") diff --git a/globals.gd b/globals.gd index cef3cfd..8494c01 100644 --- a/globals.gd +++ b/globals.gd @@ -8,7 +8,8 @@ var diagnoses_quota : int = 1 var daily_patient_limit : int = 3 var patient_list = ["45", "46", "47", "48", "49", "50", "51"] var patients_seen: Array[String] -var patient_id = patient_list.pick_random() +var patient_id +var interfloor_dialogue = load("res://Dialogues/interfloor.dialogue") var dialogue_intro = load("res://Dialogues/intro.dialogue") var dialogue_recovery = load("res://Dialogues/recovery.dialogue") var directives = "\n[center][font_size=22]INSTRUCTIONS[/font_size][/center] @@ -27,6 +28,7 @@ signal console_message signal response_chosen(DialogueResponse) signal clear_patient signal color_change +signal character_label_color_change # Called when the node enters the scene tree for the first time. func _ready() -> void: diff --git a/main_hub.gd b/main_hub.gd index cac769b..7260012 100644 --- a/main_hub.gd +++ b/main_hub.gd @@ -41,6 +41,8 @@ func _ready() -> void: UI.connect("text_value_changed", self._on_text_value_changed) UI.connect("auto_value_changed", self._on_auto_value_changed) + Globals.character_label_color_change.connect(self._on_character_label_color_change) + #Updating Save/Load Slots Information based on Existing Saves update_slots() @@ -48,7 +50,16 @@ func _ready() -> void: # Starts a new game func _on_new_game_pressed(): + + #Setting/Resetting game parameters Globals.day_count = 1 + Globals.floor_count = -1 + Globals.patient_count = 1 + Globals.diagnoses_quota = 1 + Globals.daily_patient_limit = 3 + Globals.patient_list = ["45", "46", "47", "48", "49", "50", "51"] + Globals.patients_seen.clear() + UI.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 ?" @@ -197,7 +208,7 @@ func _on_main_menu_pressed(): UI.get_node("UI/UpperContainer").hide() #Going back to main menu - var scenes_to_hide = [$ScreeningDesk, $Bedroom, $TextScreens, $TextScreens/Day, $ScreeningDesk.patient_controls, $ScreeningDesk.end_of_day_controls, $ScreeningDesk.patient_texture, $ScreeningDesk.panel_container, $ScreeningDesk.face_zoom] + $ScreeningDesk.margin_container.get_children() + var scenes_to_hide = [$ScreeningDesk, $TextScreens, $TextScreens/Day] var scenes_to_show = [$TitleScreen] TransitionScreen.transition("big", scenes_to_hide, scenes_to_show) await TransitionScreen.transition_finished @@ -284,3 +295,10 @@ func _on_auto_value_changed(): if is_instance_valid(balloon): #balloon.dialogue_line.time = UI.auto_speed pass + + +#Changes CharacterLabel color +func _on_character_label_color_change(color: Color): + + var label = balloon.get_node("Balloon/Panel/Dialogue/VBoxContainer/CharacterLabel") + label.add_theme_color_override("default_color", color) diff --git a/patient.gd b/patient.gd index 2ddf4a1..8fc78f8 100644 --- a/patient.gd +++ b/patient.gd @@ -57,7 +57,9 @@ func new_patient(): var file_path: String #Generating patient_id - var patient_id = Globals.patient_list.pick_random() + var floor_index = -Globals.floor_count -1 + print("Floor Index: " + str(floor_index)) + var patient_id = weighted_random(patient_list[floor_index]) Globals.patient_id = patient_id Globals.patient_list.erase(patient_id) #Line to be reenabled when there is more than one patient in the list Globals.patients_seen.append(patient_id) @@ -122,15 +124,15 @@ func sort_patients(): var symptom_matched : bool var symptom_list: Array - for i in range(45,52): + for patient_id in Globals.patient_list: patient_symptoms.clear() - file_path = "res://Dialogues/Patients/patient_" + str(i) + "_file.cfg" + file_path = "res://Dialogues/Patients/patient_" + patient_id + "_file.cfg" config.load(file_path) symptom_list = config.get_value("", "psychiatric_assessment").split("\n", false) patient_symptoms = symptom_list symptom_list = config.get_value("", "abnormal_symptoms").split("\n", false) patient_symptoms.append_array(symptom_list) - print("Patient #" + str(i) + " symptom list: " + str(patient_symptoms)) + 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 @@ -143,9 +145,31 @@ func sort_patients(): break if symptom_matched: for k in range(j, symptoms_arrays.size()): - patient_list[k].append(str(i)) + patient_list[k].append({"patient_id": patient_id, "weight": j+1}) symptom_matched = false break for i in range(len(patient_list)): print("Floor " + str(i) + " possible patients: " + str(patient_list[i])) + + +#Weighted random selection from an Array +func weighted_random(array: Array): + + #Calculating total weight + var total_weight : int + for item in array: + total_weight += item.weight + print("Total weight: " + str(total_weight)) + + var r = randf() * total_weight + print("r :" + str(r)) + + var weight_sum : int + for item in array: + weight_sum += item.weight + if weight_sum >= r: + print("Patient selected: " + item.patient_id + ", Weight: " + str(item.weight)) + return item.patient_id + return null + diff --git a/project.godot b/project.godot index cf15b73..8be6596 100644 --- a/project.godot +++ b/project.godot @@ -55,4 +55,4 @@ ui_select={ [internationalization] -locale/translations_pot_files=PackedStringArray("res://Dialogues/Patients/patient_50.dialogue", "res://Dialogues/Patients/patient_49.dialogue", "res://Dialogues/Patients/patient_48.dialogue", "res://Dialogues/Patients/patient_47.dialogue", "res://Dialogues/Patients/patient_46.dialogue", "res://Dialogues/Patients/patient_45.dialogue", "res://Dialogues/Patients/patient_51.dialogue") +locale/translations_pot_files=PackedStringArray("res://Dialogues/Patients/patient_50.dialogue", "res://Dialogues/Patients/patient_49.dialogue", "res://Dialogues/Patients/patient_48.dialogue", "res://Dialogues/Patients/patient_47.dialogue", "res://Dialogues/Patients/patient_46.dialogue", "res://Dialogues/Patients/patient_45.dialogue", "res://Dialogues/Patients/patient_51.dialogue", "res://Dialogues/interfloor.dialogue") diff --git a/screening_desk.gd b/screening_desk.gd index aa52697..73b1e12 100644 --- a/screening_desk.gd +++ b/screening_desk.gd @@ -10,7 +10,7 @@ extends Control @onready var green_button = $LowerHalf/GreenButton @onready var red_button = $LowerHalf/RedButton @onready var journal = $LowerHalf/Journal/JournalButton -@onready var journal_layer = $LowerHalf/JournalLayer +@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 @@ -31,7 +31,6 @@ extends Control #DialogueAssets @onready var patient_dialogue_resource: Resource -@onready var end_of_day_dialogue_resource = load("res://Dialogues/end_of_day.dialogue") @onready var balloon: Node @onready var patient_emotions : Dictionary @onready var message_array: Array[String] @@ -359,9 +358,16 @@ func descend_floor(): #Descends to next floor 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 + main.start_balloon("screening", Globals.interfloor_dialogue, "interfloor_" + str(-Globals.floor_count - 1)) + await DialogueManager.dialogue_ended + #Setting up new patient new_patient() diff --git a/screening_desk.tscn b/screening_desk.tscn index 2227928..f888b30 100644 --- a/screening_desk.tscn +++ b/screening_desk.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=47 format=3 uid="uid://chytk2cctjk3x"] +[gd_scene load_steps=40 format=3 uid="uid://chytk2cctjk3x"] [ext_resource type="Script" uid="uid://b3ms0imu0umn8" path="res://screening_desk.gd" id="1_1s7k3"] [ext_resource type="Texture2D" uid="uid://b2epvjeqvmgrs" path="res://Art/Rooms/screening_room/screening_room_glass.png" id="3_nxnrp"] @@ -8,9 +8,7 @@ [ext_resource type="Texture2D" uid="uid://4qtc0tkq2wba" path="res://Art/Rooms/screening_room/shutter_top.png" id="6_1rj24"] [ext_resource type="Texture2D" uid="uid://cci0pb12chlps" path="res://Art/Rooms/screening_room/computer.png" id="6_6a8ar"] [ext_resource type="Texture2D" uid="uid://dj1x60fld5400" path="res://Art/Rooms/screening_room/backwall.png" id="6_5772r"] -[ext_resource type="Texture2D" uid="uid://c3je4gir1qlot" path="res://Art/BlackScreen.png" id="7_106l6"] [ext_resource type="Texture2D" uid="uid://jychpkygmjib" path="res://Art/Rooms/screening_room/desk.png" id="7_dp545"] -[ext_resource type="Texture2D" uid="uid://diln53wxa3oep" path="res://Art/Rooms/screening_room/journal_open.png" id="7_eqiuk"] [ext_resource type="Texture2D" uid="uid://cdbiwtt2w37kr" path="res://Art/Rooms/screening_room/shutter_bottom.png" id="7_feog2"] [ext_resource type="Theme" uid="uid://3k7sqw211ncl" path="res://Art/UI/button_theme.tres" id="8_hxrv4"] [ext_resource type="Texture2D" uid="uid://c3frxq4vyu0pr" path="res://Art/Rooms/screening_room/console_screen.png" id="9_68gp8"] @@ -33,42 +31,6 @@ [sub_resource type="Theme" id="Theme_63o5x"] RichTextLabel/fonts/normal_font = ExtResource("14_0pvwy") -[sub_resource type="Theme" id="Theme_dahej"] -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_gwogn"] -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="Animation" id="Animation_ub1ft"] length = 0.001 tracks/0/type = "value" @@ -601,150 +563,6 @@ TO GET TO THE NEXT FLOOR" horizontal_alignment = 1 vertical_alignment = 1 -[node name="JournalLayer" type="CanvasLayer" parent="LowerHalf"] -layer = 110 - -[node name="JournalOpen" type="Control" parent="LowerHalf/JournalLayer"] -z_index = 8 -layout_mode = 3 -anchors_preset = 7 -anchor_left = 0.5 -anchor_top = 1.0 -anchor_right = 0.5 -anchor_bottom = 1.0 -offset_left = -800.0 -offset_top = -800.0 -offset_right = 800.0 -grow_horizontal = 2 -grow_vertical = 0 -theme = SubResource("Theme_dahej") - -[node name="Shader" type="TextureRect" parent="LowerHalf/JournalLayer/JournalOpen"] -modulate = Color(1, 1, 1, 0.52549) -z_index = 2 -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = -221.0 -offset_top = -356.0 -offset_right = 198.0 -offset_bottom = 44.0 -grow_horizontal = 2 -grow_vertical = 2 -texture = ExtResource("7_106l6") - -[node name="JournalOpenTexture" type="TextureRect" parent="LowerHalf/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 -texture = ExtResource("7_eqiuk") - -[node name="JournalMargin" type="MarginContainer" parent="LowerHalf/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="LowerHalf/JournalLayer/JournalOpen/JournalMargin"] -layout_mode = 2 -theme_override_constants/separation = 90 - -[node name="LeftPage" type="VBoxContainer" parent="LowerHalf/JournalLayer/JournalOpen/JournalMargin/PageArea"] -layout_mode = 2 -size_flags_horizontal = 3 - -[node name="PageTitle" type="RichTextLabel" parent="LowerHalf/JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"] -custom_minimum_size = Vector2(0, 100) -layout_mode = 2 -size_flags_stretch_ratio = 0.1 -theme_override_font_sizes/normal_font_size = 28 -bbcode_enabled = true -text = " -[center]USER'S GUIDE[/center]" - -[node name="Instructions" type="RichTextLabel" parent="LowerHalf/JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"] -custom_minimum_size = Vector2(0, 500) -layout_mode = 2 -size_flags_vertical = 3 -size_flags_stretch_ratio = 0.0 -theme_override_constants/line_separation = 20 -theme_override_font_sizes/normal_font_size = 20 -bbcode_enabled = true -text = " - - - - -THE FOLLOWING SYMPTOMS 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="CloseManual" type="Button" parent="LowerHalf/JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"] -custom_minimum_size = Vector2(200, 60) -layout_mode = 2 -size_flags_horizontal = 4 -theme = SubResource("Theme_gwogn") -text = "Close manual" - -[node name="RightPage" type="VBoxContainer" parent="LowerHalf/JournalLayer/JournalOpen/JournalMargin/PageArea"] -layout_mode = 2 -size_flags_horizontal = 3 - -[node name="Symptoms" type="RichTextLabel" parent="LowerHalf/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="GreenButton" type="TextureButton" parent="LowerHalf"] z_index = 1 layout_mode = 1 diff --git a/ui.gd b/ui.gd index 9db2e50..f62af2c 100644 --- a/ui.gd +++ b/ui.gd @@ -2,6 +2,8 @@ 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 @@ -48,6 +50,26 @@ 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", +"MANIA\nExcessively elevated mood and increased energy", +"AUDITORY HALLUCINATIONS\nFalse perceptions of external sound"], + +["MEGALOMANIAC DELUSIONS\nFalse exaggeration of self-importance or power", +"PANIC ATTACKS\nAcute episodes of severe anxiety"], + +["MYSTICAL DELUSIONS\nFalse certainty of spiritual, divine connection", +"CENESTHETIC HALLUCINATIONS\nFalse internal bodily sensations"], + +["HAPTIC HALLUCINATIONS\nFalse perceptions of touch", +"SELF-MUTILATION\nDeliberate injury to one's own body"], + +["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: @@ -83,7 +105,7 @@ func _ready() -> void: $UI/Load/MarginContainer/VBoxContainer/LoadSlot3.pressed.connect(func(): _on_load_slot_pressed(3)) $UI/Load/MarginContainer/VBoxContainer/LoadSlot4.pressed.connect(func(): _on_load_slot_pressed(4)) - #Text settings signals + #Text settings signals text_slider.value_changed.connect(_on_text_value_changed) auto_slider.value_changed.connect(_on_auto_value_changed) autoplay.pressed.connect(_on_autoplay_pressed) @@ -93,11 +115,11 @@ func _ready() -> void: text_counter.text = "[center]" + str(snapped((text_speed * 1000), 1)) + " ms/letter[/center]" auto_counter.text = "[center]" + str(snapped(auto_speed, 0.01)) + " s delay[/center]" - #Initializes the auto-advance to false + #Initializes the auto-advance to false autoplay.button_pressed = false auto_mask.visible = true - #Screen settings signals and initialization + #Screen settings signals and initialization display_button.item_selected.connect(_on_display_selected) resolution_button.item_selected.connect(_on_resolution_selected) for index in resolution_list: @@ -322,3 +344,12 @@ 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 diff --git a/ui.tscn b/ui.tscn index d6c82e4..59bda8d 100644 --- a/ui.tscn +++ b/ui.tscn @@ -1,8 +1,46 @@ -[gd_scene load_steps=7 format=3 uid="uid://dy40jygog8t3k"] +[gd_scene load_steps=14 format=3 uid="uid://dy40jygog8t3k"] [ext_resource type="Script" uid="uid://c0q67t6m1i4dl" path="res://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 @@ -31,6 +69,150 @@ 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 = 7 +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +offset_left = -800.0 +offset_top = -800.0 +offset_right = 800.0 +grow_horizontal = 2 +grow_vertical = 0 +theme = SubResource("Theme_y4yjw") + +[node name="Shader" type="TextureRect" parent="JournalLayer/JournalOpen"] +modulate = Color(1, 1, 1, 0.52549) +z_index = 2 +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -221.0 +offset_top = -356.0 +offset_right = 198.0 +offset_bottom = 44.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("3_ibotj") + +[node name="JournalOpenTexture" type="TextureRect" 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 +texture = ExtResource("4_n5ude") + +[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, 100) +layout_mode = 2 +size_flags_stretch_ratio = 0.1 +theme_override_font_sizes/normal_font_size = 28 +bbcode_enabled = true +text = " +[center]USER'S GUIDE[/center]" + +[node name="Instructions" type="RichTextLabel" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"] +custom_minimum_size = Vector2(0, 500) +layout_mode = 2 +size_flags_vertical = 3 +size_flags_stretch_ratio = 0.0 +theme_override_constants/line_separation = 20 +theme_override_font_sizes/normal_font_size = 20 +bbcode_enabled = true +text = " + + + + +THE FOLLOWING SYMPTOMS 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="CloseManual" type="Button" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"] +custom_minimum_size = Vector2(200, 60) +layout_mode = 2 +size_flags_horizontal = 4 +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 @@ -681,6 +863,7 @@ 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