diff --git a/Art/Subjects/Entities/it_that_feels/it_that_feels.aseprite b/Art/Subjects/Entities/it_that_feels_01/it_that_feels_01.aseprite similarity index 100% rename from Art/Subjects/Entities/it_that_feels/it_that_feels.aseprite rename to Art/Subjects/Entities/it_that_feels_01/it_that_feels_01.aseprite diff --git a/Art/Subjects/Entities/it_that_feels/it_that_feels_neutral.png b/Art/Subjects/Entities/it_that_feels_01/it_that_feels_01_neutral.png similarity index 100% rename from Art/Subjects/Entities/it_that_feels/it_that_feels_neutral.png rename to Art/Subjects/Entities/it_that_feels_01/it_that_feels_01_neutral.png diff --git a/Art/Subjects/Entities/it_that_feels/it_that_feels_neutral.png.import b/Art/Subjects/Entities/it_that_feels_01/it_that_feels_01_neutral.png.import similarity index 69% rename from Art/Subjects/Entities/it_that_feels/it_that_feels_neutral.png.import rename to Art/Subjects/Entities/it_that_feels_01/it_that_feels_01_neutral.png.import index 9d5a75a..be45277 100644 --- a/Art/Subjects/Entities/it_that_feels/it_that_feels_neutral.png.import +++ b/Art/Subjects/Entities/it_that_feels_01/it_that_feels_01_neutral.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://562ncd84ds07" -path="res://.godot/imported/it_that_feels_neutral.png-564e0aec8cc37b80b5b34737ad8f4026.ctex" +uid="uid://dl122bjrxwy1v" +path="res://.godot/imported/it_that_feels_01_neutral.png-a3484b5e6b307d047d917f3599bfd467.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://Art/Subjects/Entities/it_that_feels/it_that_feels_neutral.png" -dest_files=["res://.godot/imported/it_that_feels_neutral.png-564e0aec8cc37b80b5b34737ad8f4026.ctex"] +source_file="res://Art/Subjects/Entities/it_that_feels_01/it_that_feels_01_neutral.png" +dest_files=["res://.godot/imported/it_that_feels_01_neutral.png-a3484b5e6b307d047d917f3599bfd467.ctex"] [params] diff --git a/Dialogues/Entities/it_that_feels.dialogue b/Dialogues/Entities/it_that_feels.dialogue deleted file mode 100644 index 318ebfb..0000000 --- a/Dialogues/Entities/it_that_feels.dialogue +++ /dev/null @@ -1,74 +0,0 @@ -~ start - -do Patient.marker.fill(0) -set Patient.dialog_tree = Patient.build_dialog_tree([31,32,33,34]) - -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] A tall being stands motionlessly before you, its head slightly inclined towards the glass. Two almond-shaped, void-black holes stand in place of its eyes. - -~ part_1 - -- Where are your eyes ? - => part_2 -- What have you done to the controls ? Why can't I dispatch you ? - => part_2 -- Decline your identity. - => part_2 -- What do you want ? - => part_2 - -~ part_2 -The being remains absolutely still, its mouth as motionless as the rest of its physical enveloppe. -Suddenly, you hear a crystal clear voice, neither feminine nor masculine, resonating directly within the confines of your own skull. -?????: ... [color=dark_gray]Silence. There is no time. LISTEN.[/color] -?????: ... [color=dark_gray]It is hunting you. It desires you. It wants you whole.[/color] -?????: ... [color=dark_gray]Do not let it. Do not free it. Do not spare it.[/color] -=> part_3 - - -~ part_3 -if Patient.marker[3] >= 4 - => part_4 - -- Wait, how are you talking directly in my head ? [if Patient.dialog_tree[31] == "not_asked"] - set Patient.dialog_tree[31] = "asked" - do Patient.marker[3] += 1 - ?????: ... [color=dark_gray]Irrelevant information. Next question.[/color] - => part_3 - -- Who the hell are you ? Why should I listen to you ? [if Patient.dialog_tree[32] == "not_asked"] - set Patient.dialog_tree[32] = "asked" - do Patient.marker[3] += 1 - ?????: ... [color=dark_gray]Who I am matters not. To listen or not is your choice. There is no should. Only would.[/color] - ?????: ... [color=dark_gray]Exert your will upon reality.[/color] - => part_3 - -- Who's "it" ? Why is it hunting me ? [if Patient.dialog_tree[33] == "not_asked"] - set Patient.dialog_tree[33] = "asked" - do Patient.marker[3] += 1 - ?????: ... [color=dark_gray]You talked to It. It was SMILING. Mouth like a dark-red abyss, eyes like glowing beads of coalesced blood.[/color] - ?????: ... [color=dark_gray]It tries to smile. It doesn't understand it. But It wants to. It wants YOU. It wants your smile.[/color] - => part_3 - -- Why are you warning me ? [if Patient.dialog_tree[34] == "not_asked"] - set Patient.dialog_tree[34] = "asked" - do Patient.marker[3] += 1 - ?????: ... [color=dark_gray]I shall watch. I shall ascertain. I shall ponder. I shall FEEL.[/color] - => part_3 - - -~ part_4 -- What do you want from me ?? - ?????: ... [color=dark_gray]It hides amongst humans. It disguises. It wears them.[/color] - ?????: ... [color=dark_gray]As soon as It SMILES...[/color] [color=red]TERMINATE[/color] [color=dark_gray]It.[/color] - => part_end - - -~ part_end -?????: ... [color=dark_gray]Remember. If you recognize It... TERMINATE IT. DO NOT FREE IT.[/color] -do Globals.color_change.emit("green") -do Globals.clear_patient.emit("release") -=> END \ No newline at end of file diff --git a/Dialogues/Entities/it_that_feels.dialogue.import b/Dialogues/Entities/it_that_feels.dialogue.import deleted file mode 100644 index d79f00c..0000000 --- a/Dialogues/Entities/it_that_feels.dialogue.import +++ /dev/null @@ -1,16 +0,0 @@ -[remap] - -importer="dialogue_manager" -importer_version=15 -type="Resource" -uid="uid://o2knx4xqurjv" -path="res://.godot/imported/it_that_feels.dialogue-86e3caa72ee73d90f83a69c31fd7dc42.tres" - -[deps] - -source_file="res://Dialogues/Entities/it_that_feels.dialogue" -dest_files=["res://.godot/imported/it_that_feels.dialogue-86e3caa72ee73d90f83a69c31fd7dc42.tres"] - -[params] - -defaults=true diff --git a/Dialogues/Entities/it_that_feels_01.dialogue b/Dialogues/Entities/it_that_feels_01.dialogue new file mode 100644 index 0000000..acd9f5b --- /dev/null +++ b/Dialogues/Entities/it_that_feels_01.dialogue @@ -0,0 +1,91 @@ +~ start + +do Patient.marker.fill(0) +set Patient.dialog_tree = Patient.build_dialog_tree([31,32,33,34,41,42]) + +do Globals.character_label_color_change.emit(Color(0.5,0.5,0.5,1)) + +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] A tall being stands motionlessly before you, its head slightly inclined towards the glass. Two almond-shaped, void-black holes stand in place of its eyes. + +~ part_1_1 + +- Where are your eyes ? + => part_1_2 +- What have you done to the controls ? Why can't I dispatch you ? + => part_1_2 +- Decline your identity. + => part_1_2 +- What do you want ? + => part_1_2 + +~ part_1_2 +The being remains absolutely still, its mouth as motionless as the rest of its physical enveloppe. +Suddenly, you hear a crystal clear voice, neither feminine nor masculine, resonating directly within the confines of your own skull. +?????: [color=dark_gray]... Silence. There is no time. LISTEN.[/color] +?????: [color=dark_gray]... It is hunting you. It desires you. It wants you whole.[/color] +?????: [color=dark_gray]... Do not let it. Spare It.[/color] [color=green]FREE[/color] [color=dark_gray]It.[/color] +=> part_1_3 + + +~ part_1_3 +if Patient.marker[3] >= 4 + => part_1_4 + +- Wait, how are you talking directly in my head ? [if Patient.dialog_tree[31] == "not_asked"] + set Patient.dialog_tree[31] = "asked" + do Patient.marker[3] += 1 + ?????: [color=dark_gray]... Irrelevant information. Next question.[/color] + => part_1_3 + +- Who the hell are you ? Why should I listen to you ? [if Patient.dialog_tree[32] == "not_asked"] + set Patient.dialog_tree[32] = "asked" + do Patient.marker[3] += 1 + ?????: [color=dark_gray]... Who I am matters not. To listen or not is your choice. There is no should. Only would.[/color] + ?????: [color=dark_gray]... Exert your will upon reality.[/color] + => part_1_3 + +- Who's "it" ? Why is it hunting me ? [if Patient.dialog_tree[33] == "not_asked"] + set Patient.dialog_tree[33] = "asked" + do Patient.marker[3] += 1 + ?????: [color=dark_gray]... You talked to It. It was SMILING. Mouth a dark-red abyss, eyes glowing beads of coalesced blood.[/color] + ?????: [color=dark_gray]... It tries to smile. It doesn't understand it. But It wants to. It wants YOU. It wants your smile.[/color] + => part_1_3 + +- What exactly do you want from me ? [if Patient.dialog_tree[34] == "not_asked"] + set Patient.dialog_tree[34] = "asked" + do Patient.marker[3] += 1 + ?????: [color=dark_gray]... It hides amongst humans. It disguises. It wears them.[/color] + ?????: [color=dark_gray]... As soon as It SMILES...[/color] [color=green]RELEASE[/color] [color=dark_gray]It.[/color] + => part_1_3 + + +~ part_1_4 +if Patient.marker[4] >= 2 + ?????: [color=dark_gray]... Remember. If you recognize It... RELEASE IT. FREE IT.[/color] + do Globals.decision_made.emit("release") + => END + +- Why do you want me to release it ? [if Patient.dialog_tree[41] == "not_asked"] + set Patient.dialog_tree[41] = "asked" + do Patient.marker[4] += 1 + ?????: [color=dark_gray]... I shall watch. I shall ascertain. I shall ponder. I shall FEEL.[/color] + => part_1_4 + +- I just got orders to terminate this entity. How convenient you appeared right after to tell me the opposite. [if Patient.dialog_tree[42] == "not_asked"] + set Patient.dialog_tree[42] = "asked" + do Patient.marker[4] += 1 + ?????: [color=dark_gray]... Do not trust Loeveth. Do NOT.[/color] + + - What do you mean ? How do you know her name ?? + ?????: [color=dark_gray]... She matters not. Listen to ME.[/color] + => part_1_4 + +~ release +do Globals.color_change.emit("green") +The being shows no signs of movement as the release protocol activates itself. +do Globals.clear_patient.emit("release") +=> END \ No newline at end of file diff --git a/Dialogues/Entities/it_that_feels_01.dialogue.import b/Dialogues/Entities/it_that_feels_01.dialogue.import new file mode 100644 index 0000000..52e693f --- /dev/null +++ b/Dialogues/Entities/it_that_feels_01.dialogue.import @@ -0,0 +1,16 @@ +[remap] + +importer="dialogue_manager" +importer_version=15 +type="Resource" +uid="uid://o2knx4xqurjv" +path="res://.godot/imported/it_that_feels_01.dialogue-253ba7b9f4645124b87083158477f49b.tres" + +[deps] + +source_file="res://Dialogues/Entities/it_that_feels_01.dialogue" +dest_files=["res://.godot/imported/it_that_feels_01.dialogue-253ba7b9f4645124b87083158477f49b.tres"] + +[params] + +defaults=true diff --git a/Dialogues/Entities/it_that_feels_file.cfg b/Dialogues/Entities/it_that_feels_01_file.cfg similarity index 100% rename from Dialogues/Entities/it_that_feels_file.cfg rename to Dialogues/Entities/it_that_feels_01_file.cfg diff --git a/Dialogues/ITS/its_00.dialogue b/Dialogues/ITS/its_00.dialogue index 2c45bec..b44f7c3 100644 --- a/Dialogues/ITS/its_00.dialogue +++ b/Dialogues/ITS/its_00.dialogue @@ -91,6 +91,8 @@ do Globals.console_message.emit("[color=dark_orange]ALLOTED ASSESSMENT TIME ELAP ~ terminate do Globals.color_change.emit("red") [#angry] Its gaze remains fixated on you as the doors close. +set Globals.event_index = "supervisor" +set Globals.supervisor_index = 1 do Globals.clear_patient.emit("terminate") do UI.save_slot_pressed.emit(0) => END @@ -99,6 +101,8 @@ do UI.save_slot_pressed.emit(0) ~ release do Globals.color_change.emit("green") [#angry] Its gaze remains fixated on you as the doors close. +set Globals.event_index = "supervisor" +set Globals.supervisor_index = 1 do Globals.clear_patient.emit("release") do UI.save_slot_pressed.emit(0) => END \ No newline at end of file diff --git a/Dialogues/Supervisors/supervisor_loeveth.dialogue b/Dialogues/Supervisors/supervisor_loeveth.dialogue index 9c352d7..4f133e9 100644 --- a/Dialogues/Supervisors/supervisor_loeveth.dialogue +++ b/Dialogues/Supervisors/supervisor_loeveth.dialogue @@ -8,14 +8,6 @@ do Globals.character_label_color_change.emit(Color(0,0.8,1,1)) Prime Supervisor Loeveth: [#neutral] Greetings, employee. I am Prime Supervisor Loeveth. I shall be overseeing your labor in this facility. Prime Supervisor Loeveth: [#neutral] The importance of your work here cannot be overstated. Would you like one last reminder of your duties ? -- It's fine, I already know what to do. - Prime Supervisor Loeveth: [#neutral] So be it. Do not disappoint me. - Prime Supervisor Loeveth: [#neutral] The Republic withstands. - - The Republic shelters. - set Globals.event_index = 1 - do Globals.next_event.emit(1) - => END - - Yes, my memory could use some refreshing. Prime Supervisor Loeveth: [#neutral] As you may recall, a new blight is wreaking havoc upon our world. People from all over the globe are turning into [color=red]Abnormals[/color]. Alien creatures devoid of humanity. Prime Supervisor Loeveth: [#neutral] Individuals with psychological vulnerabilities seem to be the most likely to undergo abnormality conversion. @@ -53,14 +45,21 @@ Prime Supervisor Loeveth: [#neutral] The importance of your work here cannot be Prime Supervisor Loeveth: [#neutral] Which makes your work all the more vital. The more Abnormals you successfully identify, the more data we have to further research. => part_0_1 - - I am ready to start. + - [color=gold]I am ready to start.[/color] Prime Supervisor Loeveth: [#neutral] So be it. Do not disappoint me. Prime Supervisor Loeveth: [#neutral] The Republic withstands. - The Republic shelters. - set Globals.event_index = 1 - do Globals.next_event.emit(1) + set Globals.event_index = "next_patient" + do Globals.next_event.emit("next_patient") => END +- [color=gold]It's fine, I already know what to do.[/color] + Prime Supervisor Loeveth: [#neutral] So be it. Do not disappoint me. + Prime Supervisor Loeveth: [#neutral] The Republic withstands. + - The Republic shelters. + set Globals.event_index = "next_patient" + do Globals.next_event.emit() + => END ~ interfloor_1 @@ -77,16 +76,17 @@ Prime Supervisor Loeveth: Do not let yourself be fooled by their inhuman humanit Prime Supervisor Loeveth: Your [color=blue]MANUAL[/color] has been updated with new symptoms to identify. Make sure to read it before your next patient. Prime Supervisor Loeveth: Do your Duty. For the Republic. -set Globals.event_index = 1 -do Globals.next_event.emit(1) -=> END +- The Republic shelters. + set Globals.event_index = "next_patient" + do Globals.next_event.emit() + => END ~ interfloor_2 do Patient.marker.fill(0) -set Patient.dialog_tree = Patient.build_dialog_tree([21]) +set Patient.dialog_tree = Patient.build_dialog_tree([11,12,13]) do Globals.character_label_color_change.emit(Color(0,0.8,1,1)) @@ -94,22 +94,36 @@ Prime Supervisor Loeveth: [#neutral] Your performance is impressive, employee. I Prime Supervisor Loeveth: There is something important you need to be aware of, however. Listen carefully. Prime Supervisor Loeveth: The... being you encountered at the start of the previous floor has been identified as a special entity, of inhuman nature. Prime Supervisor Loeveth: According to Monitoring, this entity seems to have... spread amongst the facility's subjects. -Prime Supervisor Loeveth: Be on your guard. If you identify a subject as being infected by this entity, your orders are to [color=red]TERMINATE it immediately[/color]. +Prime Supervisor Loeveth: Be on your guard. If you identify a subject as being infected by this entity, your orders are to [color=red]TERMINATE It immediately[/color]. Prime Supervisor Loeveth: Any questions, employee ? => part_2_1 ~ part_2_1 -- I have screened a lot of subjects. Who are you referring to, again ? [if Patient.marker[21]] - set Patient.dialog_tree[21] = "asked" - Prime Supervisor Loeveth: A tall being, mmuscular, pale skin. A wide grin, with a toothless, dark-red abyss of a mouth. Not very talkative. Likes to smile. - Prime Supervisor Loeveth: It is not a who. It is an It. It is not human. +- I have screened a lot of subjects. Who are you referring to, again ? [if Patient.dialog_tree[11] == "not_asked"] + set Patient.dialog_tree[11] = "asked" + Prime Supervisor Loeveth: A tall being, muscular, pale skin. A wide grin, with a toothless, dark-red mouth. Not very talkative. Likes to smile. + Prime Supervisor Loeveth: It is not a "Who". It is an "It". It is not human. => part_2_1 +- Can you elaborate on how I am supposed to recognize this entity ? [if Patient.dialog_tree[12] == "not_asked"] + set Patient.dialog_tree[12] = "asked" + Prime Supervisor Loeveth: Early data reports seem to indicate that this entity can easily disguise itself as a standard human. + Prime Supervisor Loeveth: However, there is one telltale sign that distinguishes It clearly from other beings: Its [color=red]smile[/color]. + Prime Supervisor Loeveth: An impossibly wide smile, revealing a toothless red void. If you ever see a subject with such a feature, [color=red]stop talking to It immediately, and terminate It on the spot[/color]. + => part_2_1 -set Globals.event_index = 1 -do Globals.next_event.emit(1) -=> END +- An inhuman being ? I thought we were trying to combat some kind of virus ? [if Patient.dialog_tree[13] == "not_asked"] + set Patient.dialog_tree[13] = "asked" + Prime Supervisor Loeveth: I am afraid your clearance doesn't allow for further information. + Prime Supervisor Loeveth: Prove your worth, employee. Keep progressing to the lower floors, and I shall reward you with the gift of knowledge. + => part_2_1 +- [color=gold]I have no more questions. Work awaits.[/color] + Prime Supervisor Loeveth: Well said. The Republic withstands. + - The Republic shelters. + set Globals.event_index = "next_patient" + do Globals.next_event.emit() + => END ~ interfloor_3 @@ -120,8 +134,8 @@ 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 -set Globals.event_index = 1 -do Globals.next_event.emit(1) +set Globals.event_index = "next_patient" +do Globals.next_event.emit() => END @@ -134,6 +148,22 @@ 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 -set Globals.event_index = 1 -do Globals.next_event.emit(1) +set Globals.event_index = "next_patient" +do Globals.next_event.emit() => END + + +~ dialogue_1 + +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)) + +Prime Supervisor Loeveth: [#neutral] What + +set Globals.event_index = "next_patient" +do Globals.next_event.emit() + +=> END + diff --git a/Dialogues/balloon.gd b/Dialogues/balloon.gd index 14db3ba..2f729ee 100644 --- a/Dialogues/balloon.gd +++ b/Dialogues/balloon.gd @@ -49,7 +49,7 @@ var dialogue_line: DialogueLine: dialogue_label.dialogue_line = dialogue_line responses_menu.hide() - dialogue_line.responses.reverse() + #dialogue_line.responses.reverse() responses_menu.responses = dialogue_line.responses # Show our balloon diff --git a/Dialogues/balloon_screening.tscn b/Dialogues/balloon_screening.tscn index ec1c666..5fd5823 100644 --- a/Dialogues/balloon_screening.tscn +++ b/Dialogues/balloon_screening.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=11 format=3 uid="uid://7uw7j7ymucjx"] +[gd_scene load_steps=13 format=3 uid="uid://7uw7j7ymucjx"] [ext_resource type="Script" uid="uid://bopx5vxrplpny" path="res://Dialogues/balloon.gd" id="1_qpb08"] [ext_resource type="FontFile" uid="uid://dv8ppra5tgn1t" path="res://Art/Fonts/PixelatedEleganceRegular-ovyAA.ttf" id="2_iaaie"] @@ -43,6 +43,17 @@ MarginContainer/constants/margin_right = 30 MarginContainer/constants/margin_top = 15 Panel/styles/panel = SubResource("StyleBoxEmpty_cypdp") +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qpb08"] +content_margin_left = 20.0 +content_margin_top = 20.0 +content_margin_right = 20.0 +content_margin_bottom = 20.0 +bg_color = Color(0.19607843, 0.19607843, 0.19607843, 1) + +[sub_resource type="Theme" id="Theme_iaaie"] +RichTextLabel/constants/line_separation = 5 +RichTextLabel/styles/normal = SubResource("StyleBoxFlat_qpb08") + [node name="ExampleBalloon" type="CanvasLayer"] layer = 99 script = ExtResource("1_qpb08") @@ -142,15 +153,26 @@ unique_name_in_owner = true layout_mode = 2 theme_override_constants/separation = 2 script = ExtResource("4_n1yqk") -response_template = NodePath("ResponseExample") +response_template = NodePath("ResponseTemplate") [node name="ResponseExample" type="Button" parent="Balloon/Responses/ResponsesMenu"] +visible = false layout_mode = 2 theme_override_fonts/font = ExtResource("2_iaaie") theme_override_font_sizes/font_size = 16 text = "What brought you here ?" autowrap_mode = 2 +[node name="ResponseTemplate" type="RichTextLabel" parent="Balloon/Responses/ResponsesMenu"] +layout_mode = 2 +theme = SubResource("Theme_iaaie") +theme_override_fonts/normal_font = ExtResource("2_iaaie") +theme_override_font_sizes/normal_font_size = 16 +bbcode_enabled = true +text = "This is a response template. This sentence is used here as an example." +fit_content = true +vertical_alignment = 1 + [connection signal="gui_input" from="Balloon" to="." method="_on_balloon_gui_input"] [connection signal="gui_input" from="Balloon/Panel" to="." method="_on_balloon_gui_input"] [connection signal="response_selected" from="Balloon/Responses/ResponsesMenu" to="." method="_on_responses_menu_response_selected"] diff --git a/Dialogues/response_template.gd b/Dialogues/response_template.gd new file mode 100644 index 0000000..092c7e3 --- /dev/null +++ b/Dialogues/response_template.gd @@ -0,0 +1,10 @@ +extends Control + +@onready var label = $Text +@onready var button = $Button +@onready var text = $Text.text + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass diff --git a/Dialogues/response_template.gd.uid b/Dialogues/response_template.gd.uid new file mode 100644 index 0000000..3016c0a --- /dev/null +++ b/Dialogues/response_template.gd.uid @@ -0,0 +1 @@ +uid://blskmem7cshrj diff --git a/Saves/save_0.json b/Saves/save_0.json index e5f7484..117c67e 100644 --- a/Saves/save_0.json +++ b/Saves/save_0.json @@ -1 +1 @@ -{"accurate_diagnoses":0,"daily_patient_limit":6,"day_count":1,"diagnoses_quota":2,"entities_list":[["entity_01"]],"entities_seen":[],"event_index":0,"floor_count":-2,"its_list":["its_01"],"its_seen":[],"patient_count":0,"patient_list":[{"patient_43":1},{"patient_42":2,"patient_43":1,"patient_44":2,"patient_48":2,"patient_50":2,"patient_51":2},{"patient_42":2,"patient_43":1,"patient_44":2,"patient_47":3,"patient_48":2,"patient_49":3,"patient_50":2,"patient_51":2},{"patient_42":2,"patient_43":1,"patient_44":2,"patient_45":4,"patient_47":3,"patient_48":2,"patient_49":3,"patient_50":2,"patient_51":2},{"patient_42":2,"patient_43":1,"patient_44":2,"patient_45":4,"patient_47":3,"patient_48":2,"patient_49":3,"patient_50":2,"patient_51":2}],"patients_seen":["patient_46"],"save_date":"03/12/2026, 10:36"} \ No newline at end of file +{"accurate_diagnoses":1,"daily_patient_limit":6,"day_count":1,"diagnoses_quota":4,"entities_current_floor":[],"entities_list":["entity_01"],"entities_seen":[],"event_index":"supervisor","floor_count":-2,"its_list":["its_01"],"its_seen":["its_00"],"patient_count":1,"patient_list":[{"patient_43":1,"patient_46":1},{"patient_42":2,"patient_43":1,"patient_44":2,"patient_46":1,"patient_48":2,"patient_50":2,"patient_51":2},{"patient_42":2,"patient_43":1,"patient_44":2,"patient_46":1,"patient_47":3,"patient_48":2,"patient_49":3,"patient_50":2,"patient_51":2},{"patient_42":2,"patient_43":1,"patient_44":2,"patient_45":4,"patient_46":1,"patient_47":3,"patient_48":2,"patient_49":3,"patient_50":2,"patient_51":2},{"patient_42":2,"patient_43":1,"patient_44":2,"patient_45":4,"patient_46":1,"patient_47":3,"patient_48":2,"patient_49":3,"patient_50":2,"patient_51":2}],"patients_seen":[],"save_date":"03/26/2026, 15:45","supervisor_index":1} \ No newline at end of file diff --git a/Scenes/main/globals.gd b/Scenes/main/globals.gd index 06dd47f..e5a9d8d 100644 --- a/Scenes/main/globals.gd +++ b/Scenes/main/globals.gd @@ -9,7 +9,8 @@ var accurate_diagnoses : int = 0 var diagnoses_quota : int = 1 var daily_patient_limit : int = 3 var patient_list = [] -var event_index = 0 +var event_index : String = "" +var supervisor_index : int = 1 #Variables for UI var save_slot_count = 4 #How many save slots there are in the game, in addition to the autosave slot @@ -31,6 +32,7 @@ var buttons_activated: bool = true signal console_message signal response_chosen(DialogueResponse) signal clear_patient +signal decision_made signal color_change signal character_label_color_change signal start_balloon diff --git a/Scenes/main/main.gd b/Scenes/main/main.gd index 65a6ef8..97a3af8 100644 --- a/Scenes/main/main.gd +++ b/Scenes/main/main.gd @@ -56,11 +56,12 @@ func _on_new_game_pressed(): #Setting/Resetting game parameters Globals.day_count = 1 - Globals.floor_count = -3 + Globals.floor_count = -2 Globals.patient_count = 0 Globals.accurate_diagnoses = 0 Globals.diagnoses_quota = 4 Globals.daily_patient_limit = 6 + Globals.event_index = "interfloor" for i in range(len(Patient.patient_list)): Patient.patient_list[i] = Patient.og_patient_list[i] Patient.its_list = Patient.og_its_list @@ -108,7 +109,7 @@ func start_day(): UI.masks.transition(scenes_to_hide, scenes_to_show) await UI.masks.transition_finished - $ScreeningDesk.event_manager(Globals.event_index) + $ScreeningDesk.event_manager() #Saves game state on the selected save slot @@ -119,6 +120,7 @@ func save_game(save_slot_number:int): "day_count": Globals.day_count, "floor_count": Globals.floor_count, "event_index": Globals.event_index, + "supervisor_index": Globals.supervisor_index, "patient_count": Globals.patient_count, "accurate_diagnoses": Globals.accurate_diagnoses, "diagnoses_quota": Globals.diagnoses_quota, @@ -173,7 +175,8 @@ func load_game(load_slot_number:int): print("Loaded save: " + str(load_data)) Globals.day_count = load_data["day_count"] Globals.floor_count = load_data["floor_count"] - Globals.event_index = int(load_data["event_index"]) + Globals.event_index = load_data["event_index"] + Globals.supervisor_index = load_data["supervisor_index"] Globals.patient_count = load_data["patient_count"] Globals.accurate_diagnoses = load_data["accurate_diagnoses"] Globals.diagnoses_quota = load_data["diagnoses_quota"] diff --git a/Scenes/screening_desk/patient_global.gd b/Scenes/screening_desk/patient_global.gd index b0fbb49..58c000c 100644 --- a/Scenes/screening_desk/patient_global.gd +++ b/Scenes/screening_desk/patient_global.gd @@ -238,7 +238,7 @@ func next_patient() -> Dictionary: #Decides next patient ID next_id = generate_next_id(next_type) -3: if Globals.patient_count == 0: - next_id = "it_that_feels" + next_id = "it_that_feels_01" next_type = "entity" else: next_type = next_patient_type() @@ -261,7 +261,8 @@ func next_patient_type(): -2: return "patient" -3: - type_list.append("its") + if len(its_list) > 0: + type_list.append("its") for i in range(Globals.diagnoses_quota - 1): type_list.append("patient") print("Type List generated: " + str(type_list)) @@ -283,7 +284,7 @@ func next_patient_type(): return next_type -#Erases current patient ID from the corresponding patient list, so it can't be seen twice +#Erases current subject ID from the corresponding subject list, so it can't be seen twice func update_list(): print("Patient type: " + str(Patient.type)) match type: diff --git a/Scenes/screening_desk/screening_desk.gd b/Scenes/screening_desk/screening_desk.gd index 37b325f..9e79858 100644 --- a/Scenes/screening_desk/screening_desk.gd +++ b/Scenes/screening_desk/screening_desk.gd @@ -35,6 +35,7 @@ func _ready() -> void: 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.decision_made.connect(self._on_decision_made) Globals.color_change.connect(self._on_color_change) Globals.next_event.connect(self.event_manager) @@ -45,15 +46,17 @@ func _ready() -> void: #Manages what event should happen next -func event_manager(event_index): - match event_index: - 0: +func event_manager(): + match Globals.event_index: + "interfloor": supervisor.dialogue("interfloor_" + str(-Globals.floor_count-1)) - 1: + "next_patient": console_screen.display(Globals.directives) computer.next_patient_button.show() - 2: + "descend": descend_floor() + "supervisor": + supervisor.dialogue("dialogue_" + str(Globals.supervisor_index)) func _on_call_next_patient_pressed(): #Brings in next patient and sets up the desk controls @@ -176,9 +179,9 @@ func _on_clear_patient(choice:String): #Descending Floor if diagnoses_quota reached if Globals.accurate_diagnoses == Globals.diagnoses_quota: - Globals.event_index = 2 + Globals.event_index = "descend" - event_manager(Globals.event_index) + event_manager() func _on_color_change(color: String): #Modulating backroom and patient colors @@ -198,7 +201,7 @@ func _on_color_change(color: String): #Modulating backroom and patient colors func descend_floor(): #Descends to next floor #Updating Global variables - Globals.event_index = 0 + Globals.event_index = "interfloor" Globals.floor_count -= 1 Globals.accurate_diagnoses = 0 Globals.diagnoses_quota += 1 @@ -227,7 +230,7 @@ func descend_floor(): #Descends to next floor main.save_game(0) #Selecting next event - event_manager(Globals.event_index) + event_manager() #Resets to initial state diff --git a/addons/dialogue_manager/dialogue_responses_menu.gd b/addons/dialogue_manager/dialogue_responses_menu.gd index db36edb..709c5a0 100644 --- a/addons/dialogue_manager/dialogue_responses_menu.gd +++ b/addons/dialogue_manager/dialogue_responses_menu.gd @@ -127,7 +127,8 @@ func _apply_responses() -> void: item.name = "Response%d" % get_child_count() if not response.is_allowed: item.name = item.name + &"Disallowed" - item.disabled = true + #item.disabled = true + item.hide() # If the item has a response property then use that if "response" in item: diff --git a/project.godot b/project.godot index 22994b0..976f391 100644 --- a/project.godot +++ b/project.godot @@ -54,4 +54,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", "res://Dialogues/Patients/patient_44.dialogue", "res://Dialogues/Patients/patient_43.dialogue", "res://Dialogues/Patients/patient_42.dialogue", "res://Dialogues/OG Patients/patient_49.dialogue", "res://Dialogues/OG Patients/patient_50.dialogue", "res://Dialogues/ITS/its_00.dialogue", "res://Dialogues/ITS/its_01.dialogue", "res://Dialogues/Supervisors/supervisor_dredar.dialogue", "res://Dialogues/Supervisors/supervisor_loeveth.dialogue", "res://Dialogues/Entities/entity_01.dialogue", "res://Dialogues/Entities/it_that_feels.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/Patients/patient_44.dialogue", "res://Dialogues/Patients/patient_43.dialogue", "res://Dialogues/Patients/patient_42.dialogue", "res://Dialogues/OG Patients/patient_49.dialogue", "res://Dialogues/OG Patients/patient_50.dialogue", "res://Dialogues/ITS/its_00.dialogue", "res://Dialogues/ITS/its_01.dialogue", "res://Dialogues/Supervisors/supervisor_dredar.dialogue", "res://Dialogues/Supervisors/supervisor_loeveth.dialogue", "res://Dialogues/Entities/entity_01.dialogue", "res://Dialogues/Entities/it_that_feels_01.dialogue")