diff --git a/Art/Subjects/Entities/she_who_feels/she_who_feels.aseprite b/Art/Subjects/Entities/it_that_feels/it_that_feels.aseprite similarity index 100% rename from Art/Subjects/Entities/she_who_feels/she_who_feels.aseprite rename to Art/Subjects/Entities/it_that_feels/it_that_feels.aseprite diff --git a/Art/Subjects/Entities/it_that_feels/it_that_feels_neutral.png b/Art/Subjects/Entities/it_that_feels/it_that_feels_neutral.png new file mode 100644 index 0000000..fbab587 Binary files /dev/null and b/Art/Subjects/Entities/it_that_feels/it_that_feels_neutral.png differ diff --git a/Art/Subjects/Entities/it_that_feels/it_that_feels_neutral.png.import b/Art/Subjects/Entities/it_that_feels/it_that_feels_neutral.png.import new file mode 100644 index 0000000..9d5a75a --- /dev/null +++ b/Art/Subjects/Entities/it_that_feels/it_that_feels_neutral.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://562ncd84ds07" +path="res://.godot/imported/it_that_feels_neutral.png-564e0aec8cc37b80b5b34737ad8f4026.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"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Dialogues/Entities/it_that_feels.dialogue b/Dialogues/Entities/it_that_feels.dialogue new file mode 100644 index 0000000..318ebfb --- /dev/null +++ b/Dialogues/Entities/it_that_feels.dialogue @@ -0,0 +1,74 @@ +~ 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 new file mode 100644 index 0000000..d79f00c --- /dev/null +++ b/Dialogues/Entities/it_that_feels.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.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_file.cfg b/Dialogues/Entities/it_that_feels_file.cfg new file mode 100644 index 0000000..fd0e040 --- /dev/null +++ b/Dialogues/Entities/it_that_feels_file.cfg @@ -0,0 +1,15 @@ +initial_emotion="neutral" +name="?????????" +age="??" +profession="??????????" +psychiatric_assessment="??????????????" +abnormal_symptoms="?????????????" +status="abnormal" +type="entity" +entity_name="IT THAT FEELS" +entity_characteristics=" +- Appears as a tall woman clad in dark. +" +entity_course_of_action=" +- [color=red]UNKNOWN.[/color] +" diff --git a/Dialogues/Supervisors/supervisor_loeveth.dialogue b/Dialogues/Supervisors/supervisor_loeveth.dialogue index deb7afe..9c352d7 100644 --- a/Dialogues/Supervisors/supervisor_loeveth.dialogue +++ b/Dialogues/Supervisors/supervisor_loeveth.dialogue @@ -22,22 +22,22 @@ Prime Supervisor Loeveth: [#neutral] The importance of your work here cannot be Prime Supervisor Loeveth: [#neutral] This facility securely confines Abnormals for research and containment purposes. Patients suspected of Abnormality conversion are sent here for further screening expertise. Prime Supervisor Loeveth: [#neutral] Your task is to separate [color=green]Normal[/color] humans from [color=red]Abnormals[/color]. [color=green]Release[/color] humans. [color=red]Terminate[/color] Abnormals. - ~ part_1 + ~ part_0_1 - How do I differentiate normal people from abnormals ? [if Patient.dialog_tree[21] == "not_asked"] set Patient.dialog_tree[21] = "asked" Prime Supervisor Loeveth: [#neutral] Thorough pre-screening assessment identified [color=dark_orange]marker symptoms[/color] relevant to Abnormality conversion in every patient, regardless of its normality status. Prime Supervisor Loeveth: [#neutral] If you identify in a patient new [color=dark_orange]marker symptoms[/color] [color=red]that were not detected by pre-screening[/color], that patient is an [color=red]Abnormal[/color]. Otherwise, it is human. Prime Supervisor Loeveth: [#neutral] Read the [color=blue]manual[/color] on your desk for further details. - => part_1 + => part_0_1 - What do you mean, "Terminate" ? [if Patient.dialog_tree[22] == "not_asked"] set Patient.dialog_tree[22] = "asked" Prime Supervisor Loeveth: [#neutral] An ominous word that may sound more sinister than it actually is. Terminated patients are merely processed for further Research. We are not delivering mindless kinetic violence upon them. - Being "processed" doesn't sound very pleasant, to say the least... Prime Supervisor Loeveth: [#neutral] Do not commit the sin of compassion towards these creatures. We are terminating the threat they pose to public safety. We are terminating their pain. That is compassion enough. - => part_1 + => part_0_1 - I understand, Prime Supervisor. - => part_1 + => part_0_1 - What tools do I have to accomplish such a task ? [if Patient.dialog_tree[23] == "not_asked"] @@ -45,13 +45,13 @@ Prime Supervisor Loeveth: [#neutral] The importance of your work here cannot be Prime Supervisor Loeveth: [#neutral] A silver tongue, and an endless supply of chemically-enhanced tea. That is all you need. Prime Supervisor Loeveth: [#neutral] Abnormals differ from us by their inability to apprehend the human psyche. Conversation is the best tool at your disposal to unveil their alien nature. Prime Supervisor Loeveth: [#neutral] Talk to them. Gain their trust. Then [color=red]terminate[/color] them. - => part_1 + => part_0_1 - Where do Abnormals come from ? What kind of pathogen is that ? [if Patient.dialog_tree[24] == "not_asked"] set Patient.dialog_tree[24] = "asked" Prime Supervisor Loeveth: [#neutral] No virus strain, no biological marker have been identified so far. Abnormality seems to be a purely... psychiatric condition. As incomprehensible as it may sound. 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_1 + => part_0_1 - I am ready to start. Prime Supervisor Loeveth: [#neutral] So be it. Do not disappoint me. @@ -70,11 +70,11 @@ set Patient.dialog_tree = Patient.build_dialog_tree([]) do Globals.character_label_color_change.emit(Color(0,0.8,1,1)) -Prime Supervisor Loeveth: Well done, employee. You are showing great promise. +Prime Supervisor Loeveth: [#neutral] Well done, employee. You are showing great promise. Prime Supervisor Loeveth: Keep in mind however that the first floor is the easiest one. Prime Supervisor Loeveth: As you go deeper, the patients you encounter will be harder to assess, their expressions of abnormality more... human. -Prime Supervisor Loeveth: Do not get fooled by their inhuman humanity. Sort them accordingly. -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 not let yourself be fooled by their inhuman humanity. Sort them accordingly. +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 @@ -86,14 +86,28 @@ do Globals.next_event.emit(1) ~ interfloor_2 do Patient.marker.fill(0) -set Patient.dialog_tree = Patient.build_dialog_tree([]) +set Patient.dialog_tree = Patient.build_dialog_tree([21]) do Globals.character_label_color_change.emit(Color(0,0.8,1,1)) -WORK_IN_PROGRESS +Prime Supervisor Loeveth: [#neutral] Your performance is impressive, employee. I am pleased by your results. +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: 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. + => part_2_1 + set Globals.event_index = 1 -do Globals.next_event.emit() +do Globals.next_event.emit(1) => END diff --git a/Scenes/main/main.gd b/Scenes/main/main.gd index 9c618e6..65a6ef8 100644 --- a/Scenes/main/main.gd +++ b/Scenes/main/main.gd @@ -56,7 +56,7 @@ func _on_new_game_pressed(): #Setting/Resetting game parameters Globals.day_count = 1 - Globals.floor_count = -4 + Globals.floor_count = -3 Globals.patient_count = 0 Globals.accurate_diagnoses = 0 Globals.diagnoses_quota = 4 diff --git a/Scenes/screening_desk/green_button.gd b/Scenes/screening_desk/green_button.gd index fb73449..e5fc4a5 100644 --- a/Scenes/screening_desk/green_button.gd +++ b/Scenes/screening_desk/green_button.gd @@ -15,6 +15,7 @@ func _on_green_button_pressed(): #Resets to initial state func reset(): + Globals.buttons_activated = true set_mouse_filter(Control.MOUSE_FILTER_STOP) set_disabled(true) set_toggle_mode(false) diff --git a/Scenes/screening_desk/journal_layer.gd b/Scenes/screening_desk/journal_layer.gd index d108144..83926ea 100644 --- a/Scenes/screening_desk/journal_layer.gd +++ b/Scenes/screening_desk/journal_layer.gd @@ -81,7 +81,6 @@ func reset(): update_symptoms(Globals.floor_count) if Globals.floor_count <= -4: update_entities() - if Globals.floor_count <= -4: bookmarks.entities.show() else: bookmarks.entities.hide() diff --git a/Scenes/screening_desk/patient_global.gd b/Scenes/screening_desk/patient_global.gd index a4b8b3a..b0fbb49 100644 --- a/Scenes/screening_desk/patient_global.gd +++ b/Scenes/screening_desk/patient_global.gd @@ -236,9 +236,17 @@ func next_patient() -> Dictionary: #Decides next patient ID else: next_type = next_patient_type() next_id = generate_next_id(next_type) + -3: + if Globals.patient_count == 0: + next_id = "it_that_feels" + next_type = "entity" + else: + next_type = next_patient_type() + next_id = generate_next_id(next_type) _: next_type = next_patient_type() next_id = generate_next_id(next_type) + print("NEXT SUBJECT CHARACTERISTICS - ID: " + next_id + ", Type: " + next_type) return {"id": next_id, "type": next_type} diff --git a/Scenes/screening_desk/red_button.gd b/Scenes/screening_desk/red_button.gd index 67138b3..8370026 100644 --- a/Scenes/screening_desk/red_button.gd +++ b/Scenes/screening_desk/red_button.gd @@ -16,6 +16,7 @@ func _on_red_button_pressed(): #Resets to initial state func reset(): + Globals.buttons_activated = true set_mouse_filter(Control.MOUSE_FILTER_STOP) set_disabled(true) set_toggle_mode(false) diff --git a/project.godot b/project.godot index c6a713d..22994b0 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") +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")