From cdc0b1f5f4ac04490a9fc456c771c1431bb93856 Mon Sep 17 00:00:00 2001 From: Fujita Date: Tue, 10 Jun 2025 01:05:24 +0200 Subject: [PATCH] Custom Balloon resizing --- Dialogues/balloon.tscn | 18 +- Dialogues/mr_orleg.dialogue | 240 ++++++++++++++++++ Dialogues/mr_orleg.dialogue.import | 15 ++ Dialogues/patient_1.dialogue | 240 ++++++++++++++++++ Dialogues/patient_1.dialogue.import | 15 ++ MainHub.tscn | 2 +- .../example_balloon/example_balloon.tscn | 16 +- addons/dialogue_manager/test_scene.tscn | 3 +- current_patient.gd | 68 +++++ dialogue_screens.gd | 3 +- main_hub.gd | 18 +- project.godot | 5 +- screening_desk.tscn | 45 ++-- 13 files changed, 637 insertions(+), 51 deletions(-) create mode 100644 Dialogues/mr_orleg.dialogue create mode 100644 Dialogues/mr_orleg.dialogue.import create mode 100644 Dialogues/patient_1.dialogue create mode 100644 Dialogues/patient_1.dialogue.import create mode 100644 current_patient.gd diff --git a/Dialogues/balloon.tscn b/Dialogues/balloon.tscn index cd7f7d2..30dbb00 100644 --- a/Dialogues/balloon.tscn +++ b/Dialogues/balloon.tscn @@ -77,21 +77,18 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 +mouse_filter = 2 theme = SubResource("Theme_qq3yp") [node name="Panel" type="Panel" parent="Balloon"] clip_children = 2 layout_mode = 1 -anchors_preset = 12 -anchor_top = 1.0 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = 21.0 -offset_top = -285.0 -offset_right = -26.0 -offset_bottom = -19.0 -grow_horizontal = 2 -grow_vertical = 0 +offset_left = 10.0 +offset_top = 820.0 +offset_right = 1910.0 +offset_bottom = 1070.0 mouse_filter = 1 [node name="Dialogue" type="MarginContainer" parent="Balloon/Panel"] @@ -99,7 +96,6 @@ layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -offset_right = -2.0 grow_horizontal = 2 grow_vertical = 2 diff --git a/Dialogues/mr_orleg.dialogue b/Dialogues/mr_orleg.dialogue new file mode 100644 index 0000000..2169f31 --- /dev/null +++ b/Dialogues/mr_orleg.dialogue @@ -0,0 +1,240 @@ +~ mr_orleg_day_1_dialogue_start + +do CurrentPatient.marker.fill(0) +set CurrentPatient.dialog_tree = CurrentPatient.build_dialog_tree([1100,1200,1210,1220, 1300, 1400, 1500, 1610, 1620]) + +: The patient remains still, watching you expectantly. + +Psychiatrist: Greetings Mr Orleg. You shall be my in care for the duration of your stay in this facility. + +Mr Orleg: Greetings Doctor. I need your help, i don't know why i'm here, there must have been a mistake ! + +~ day_1_choice_1 + +- Tell me why you were brought here. [if CurrentPatient.dialog_tree[1100] == "not_asked"] + + set CurrentPatient.dialog_tree[1100] = "asked" + do CurrentPatient.marker[0] += 1 + do CurrentPatient.change_emotion("neutral") + do CurrentPatient.dialog_flags["insight"].append("Anosognosia") + + Mr Orleg: Sure. I was at the usual grocery store next door, and there was that cashier who was threatening me. I was busy explaining her nobody can talk to Mr Orleg this way, when these damned cops came out of nowhere and brutally restrained me ! Can you imagine ?! + + => day_1_choice_1 + +- Do you feel safe in this room ? [if CurrentPatient.dialog_tree[1200] == "not_asked"] + + set CurrentPatient.dialog_tree[1200] = "asked" + do CurrentPatient.marker[0] += 1 + do CurrentPatient.change_emotion("scared") + do CurrentPatient.dialog_flags["thought_content"].append("Persecutory delusions") + + Mr Orleg: Honestly ? I don't. Some of your colleagues have been giving me the heeby jeebies. Gotta stay sharp, i'm pretty sure he's here. + + ~ day_1_choice_1_2 + + - Who's "he" ? [if CurrentPatient.dialog_tree[1210] == "not_asked"] + + set CurrentPatient.dialog_tree[1210] = "asked" + do CurrentPatient.marker[1] += 1 + do CurrentPatient.dialog_flags["thought_content"].append("Mystical delusions") + + Mr Orleg: Shhh... you musntn't speak his name aloud. "He" is the Harbinger. The Prophet and the Reaper. The Messiah and the Deceiver. + + if CurrentPatient.marker[1] == 2 + set CurrentPatient.marker[1] = 0 + => day_1_choice_1 + else + => day_1_choice_1_2 + + - Which of my colleagues are you talking about ? [if CurrentPatient.dialog_tree[1220] == "not_asked"] + + set CurrentPatient.dialog_tree[1220] = "asked" + do CurrentPatient.marker[1] += 1 + do CurrentPatient.dialog_flags["perceptions"].append("Mystical delusions") + + Mr Orleg: Every single one of them... He's been using their shapes to contact me. I need to remain strong, Doctor. + + if CurrentPatient.marker[1] == 2 + set CurrentPatient.marker[1] = 0 + => day_1_choice_1 + else + => day_1_choice_1_2 + +- How has your sleep been recently ? [if CurrentPatient.dialog_tree[1300] == "not_asked"] + + set CurrentPatient.dialog_tree[1300] = "asked" + do CurrentPatient.marker[0] += 1 + do CurrentPatient.change_emotion("neutral") + do CurrentPatient.dialog_flags["sleep"].append("Insomnia") + + Mr Orleg: Hard to keep my eyes shut lately, i'll admit. I definitely could use some rest. + + => day_1_choice_1 + +- How are you feeling lately ? [if CurrentPatient.dialog_tree[1400] == "not_asked"] + + set CurrentPatient.dialog_tree[1400] = "asked" + do CurrentPatient.marker[0] += 1 + do CurrentPatient.change_emotion("neutral") + do CurrentPatient.dialog_flags["mood"].append("Euthymia") + + Mr Orleg: I'm feeling rather fine, actually. My life's quite enjoyable, except for the whole "i'm locked in here cause people think i'm crazy" situation. You've got to help me Doctor. + + - Have you had any thoughts about wanting to end your life ? + + do CurrentPatient.dialog_flags["suicidal_ideation"].append("None") + + Mr Orleg: I would never dare end the life God has given me. + + => day_1_choice_1 + +- Examine [if CurrentPatient.dialog_tree[1500] == "not_asked"] + + set CurrentPatient.dialog_tree[1500] = "asked" + do CurrentPatient.marker[0] += 1 + do CurrentPatient.dialog_flags["appearance"].append("Fixed gaze") + + : The patient appears to be calm and collected. His garment is clean, if a bit crumpled. His gaze switches back and forth between a wide-eyed focus on your face, and vacantly staring at the wall. + + => day_1_choice_1 + +- Don't you feel anxious about this otherwordly being targeting you ? [if CurrentPatient.marker[0] == 5] + + set CurrentPatient.marker[0] = 0 + do CurrentPatient.change_emotion("happy") + do CurrentPatient.dialog_flags["thought_process"].append("Ideo-affective dissociation") + do CurrentPatient.dialog_flags["thought_content"].append("Megalomaniac delusions") + + Mr Orleg: Not really. I'm protected by God. No one can hurt me. + + ~ day_1_choice_1_6 + + - How do you know God protects you ? [if CurrentPatient.dialog_tree[1610] == "not_asked"] + + set CurrentPatient.dialog_tree[1610] = "asked" + set CurrentPatient.marker[2] += 1 + do CurrentPatient.dialog_flags["perceptions"].append("Intra-psychic auditory hallucinations") + + Mr Orleg: He shares his Will with me directly inside my head. We have a special connection. + + if CurrentPatient.marker[2] == 2 + set CurrentPatient.marker[2] = 0 + => day_1_choice_2 + else + => day_1_choice_1_6 + + - Have you ever seen God or this evil being with your own eyes ? [if CurrentPatient.dialog_tree[1620] == "not_asked"] + + set CurrentPatient.dialog_tree[1620] = "asked" + set CurrentPatient.marker[2] += 1 + + Mr Orleg: Never. I don't need to see them to know they're here. + + if CurrentPatient.marker[2] == 2 + set CurrentPatient.marker[2] = 0 + => day_1_choice_2 + else + => day_1_choice_1_6 + +~ day_1_choice_2 + +- Send to Reset + + Psychiatrist: You are in need of psychiatric care, Mr Orleg. My colleagues here will take you to the resetting room for adequate treatment. + + do CurrentPatient.change_emotion("scared") + + Mr Orleg: You can't do that Doctor ! This is a mistake ! + + Mr Orleg: I swear i'm not crazy ! + + do CurrentPatient.send_to_reset() + + => END + +- Send to Isolation + + Psychiatrist: I have assessed that you are currently unstable, Mr Orleg. You may be dangerous to other people, and even to yourself. We are going to Isolate you to ensure your safety. + + do CurrentPatient.change_emotion("scared") + + Mr Orleg: What ?? Th- This can't be... + + Mr Orleg: Please, have mercy... + + do CurrentPatient.send_to_isolation + + => END + +- End the evaluation + + Psychiatrist: Thank you for answering my questions, Mr Orleg. You are to remain here for further observation. + + do CurrentPatient.change_emotion("angry") + + Mr Orleg: I knew it. You are just like the others, faking compassion for profit. You disgust me. + + Psychiatrist: I am here to help you, I just need more time to make the right decision. Please be patient, sir. + + Mr Orleg: This whole thing's a joke... + + => END + +=> END + + + +~ mr_orleg_day_2_dialogue_start + +do CurrentPatient.marker.fill(0) +set CurrentPatient.dialog_tree = CurrentPatient.build_dialog_tree([1100,1200,1210,1220, 1300, 1400, 1500, 1610, 1620]) + +: The patient is hurriedly mumbling something to himself in hushed tones. He abruptly stops as you step in, fixing you with an unnerving stare. + +Mr Orleg: Back for round 2, I presume ? Ask away, Doc. + +~ day_2_choice_1 + +- How was your first night here ? [if CurrentPatient.dialog_tree[1100] == "not_asked"] + + set CurrentPatient.dialog_tree[1100] = "asked" + do CurrentPatient.marker[0] += 1 + do CurrentPatient.change_emotion("scared") + do CurrentPatient.dialog_flags["insight"].append("Insomnia") + do CurrentPatient.dialog_flags["thought_content"].append("Persecutory delusions") + + Mr Orleg: I couldn't get my eyes shut. The Deceiver never rests. I could feel him breathing on my skin in the dark. It felt cold, so cold... + + ~ day_2_choice_1_1 + + - You told me you felt safe under God's protection. Is it still the case ? [if CurrentPatient.dialog_tree[1110] == "not_asked"] + + set CurrentPatient.dialog_tree[1110] = "asked" + do CurrentPatient.marker[1] += 1 + do CurrentPatient.dialog_flags["thought_content"].append("Mystical delusions") + + Mr Orleg: Yes, I still feel his Holy Presence within me, but it's getting fainter and fainter... This place is cursed. I need to get out of here fast. + + if CurrentPatient.marker[1] == 2 + set CurrentPatient.marker[1] = 0 + => day_2_choice_1 + else + => day_2_choice_1_1 + + - Were you able to see the Deceiver ? How did you know it was Him in your room last night ? [if CurrentPatient.dialog_tree[1120] == "not_asked"] + + set CurrentPatient.dialog_tree[1120] = "asked" + do CurrentPatient.marker[1] += 1 + do CurrentPatient.dialog_flags["perceptions"].append("Mystical delusions") + + Mr Orleg: Because I KNOW it ! It starts with yellow water dripping from the ceilings, flowing more and more... the smell ! Gods, the smell... + + if CurrentPatient.marker[1] == 2 + set CurrentPatient.marker[1] = 0 + => day_2_choice_1 + else + => day_2_choice_1_1 + + => day_2_choice_1 + diff --git a/Dialogues/mr_orleg.dialogue.import b/Dialogues/mr_orleg.dialogue.import new file mode 100644 index 0000000..95f4326 --- /dev/null +++ b/Dialogues/mr_orleg.dialogue.import @@ -0,0 +1,15 @@ +[remap] + +importer="dialogue_manager_compiler_13" +type="Resource" +uid="uid://b8235p2e4e2yq" +path="res://.godot/imported/mr_orleg.dialogue-555b24f3e197f19afed17ef5e5c6a5e2.tres" + +[deps] + +source_file="res://Dialogues/mr_orleg.dialogue" +dest_files=["res://.godot/imported/mr_orleg.dialogue-555b24f3e197f19afed17ef5e5c6a5e2.tres"] + +[params] + +defaults=true diff --git a/Dialogues/patient_1.dialogue b/Dialogues/patient_1.dialogue new file mode 100644 index 0000000..3c139a4 --- /dev/null +++ b/Dialogues/patient_1.dialogue @@ -0,0 +1,240 @@ +~ start + +do CurrentPatient.marker.fill(0) +set CurrentPatient.dialog_tree = CurrentPatient.build_dialog_tree([1100,1200,1210,1220, 1300, 1400, 1500, 1610, 1620]) + +: The patient remains still, watching you expectantly. + +Psychiatrist: Greetings Mr Orleg. You shall be my in care for the duration of your stay in this facility. + +Mr Orleg: Greetings Doctor. I need your help, i don't know why i'm here, there must have been a mistake ! + +~ day_1_choice_1 + +- Tell me why you were brought here. [if CurrentPatient.dialog_tree[1100] == "not_asked"] + + set CurrentPatient.dialog_tree[1100] = "asked" + do CurrentPatient.marker[0] += 1 + do CurrentPatient.change_emotion("neutral") + do CurrentPatient.dialog_flags["insight"].append("Anosognosia") + + Mr Orleg: Sure. I was at the usual grocery store next door, and there was that cashier who was threatening me. I was busy explaining her nobody can talk to Mr Orleg this way, when these damned cops came out of nowhere and brutally restrained me ! Can you imagine ?! + + => day_1_choice_1 + +- Do you feel safe in this room ? [if CurrentPatient.dialog_tree[1200] == "not_asked"] + + set CurrentPatient.dialog_tree[1200] = "asked" + do CurrentPatient.marker[0] += 1 + do CurrentPatient.change_emotion("scared") + do CurrentPatient.dialog_flags["thought_content"].append("Persecutory delusions") + + Mr Orleg: Honestly ? I don't. Some of your colleagues have been giving me the heeby jeebies. Gotta stay sharp, i'm pretty sure he's here. + + ~ day_1_choice_1_2 + + - Who's "he" ? [if CurrentPatient.dialog_tree[1210] == "not_asked"] + + set CurrentPatient.dialog_tree[1210] = "asked" + do CurrentPatient.marker[1] += 1 + do CurrentPatient.dialog_flags["thought_content"].append("Mystical delusions") + + Mr Orleg: Shhh... you musntn't speak his name aloud. "He" is the Harbinger. The Prophet and the Reaper. The Messiah and the Deceiver. + + if CurrentPatient.marker[1] == 2 + set CurrentPatient.marker[1] = 0 + => day_1_choice_1 + else + => day_1_choice_1_2 + + - Which of my colleagues are you talking about ? [if CurrentPatient.dialog_tree[1220] == "not_asked"] + + set CurrentPatient.dialog_tree[1220] = "asked" + do CurrentPatient.marker[1] += 1 + do CurrentPatient.dialog_flags["perceptions"].append("Mystical delusions") + + Mr Orleg: Every single one of them... He's been using their shapes to contact me. I need to remain strong, Doctor. + + if CurrentPatient.marker[1] == 2 + set CurrentPatient.marker[1] = 0 + => day_1_choice_1 + else + => day_1_choice_1_2 + +- How has your sleep been recently ? [if CurrentPatient.dialog_tree[1300] == "not_asked"] + + set CurrentPatient.dialog_tree[1300] = "asked" + do CurrentPatient.marker[0] += 1 + do CurrentPatient.change_emotion("neutral") + do CurrentPatient.dialog_flags["sleep"].append("Insomnia") + + Mr Orleg: Hard to keep my eyes shut lately, i'll admit. I definitely could use some rest. + + => day_1_choice_1 + +- How are you feeling lately ? [if CurrentPatient.dialog_tree[1400] == "not_asked"] + + set CurrentPatient.dialog_tree[1400] = "asked" + do CurrentPatient.marker[0] += 1 + do CurrentPatient.change_emotion("neutral") + do CurrentPatient.dialog_flags["mood"].append("Euthymia") + + Mr Orleg: I'm feeling rather fine, actually. My life's quite enjoyable, except for the whole "i'm locked in here cause people think i'm crazy" situation. You've got to help me Doctor. + + - Have you had any thoughts about wanting to end your life ? + + do CurrentPatient.dialog_flags["suicidal_ideation"].append("None") + + Mr Orleg: I would never dare end the life God has given me. + + => day_1_choice_1 + +- Examine [if CurrentPatient.dialog_tree[1500] == "not_asked"] + + set CurrentPatient.dialog_tree[1500] = "asked" + do CurrentPatient.marker[0] += 1 + do CurrentPatient.dialog_flags["appearance"].append("Fixed gaze") + + : The patient appears to be calm and collected. His garment is clean, if a bit crumpled. His gaze switches back and forth between a wide-eyed focus on your face, and vacantly staring at the wall. + + => day_1_choice_1 + +- Don't you feel anxious about this otherwordly being targeting you ? [if CurrentPatient.marker[0] == 5] + + set CurrentPatient.marker[0] = 0 + do CurrentPatient.change_emotion("happy") + do CurrentPatient.dialog_flags["thought_process"].append("Ideo-affective dissociation") + do CurrentPatient.dialog_flags["thought_content"].append("Megalomaniac delusions") + + Mr Orleg: Not really. I'm protected by God. No one can hurt me. + + ~ day_1_choice_1_6 + + - How do you know God protects you ? [if CurrentPatient.dialog_tree[1610] == "not_asked"] + + set CurrentPatient.dialog_tree[1610] = "asked" + set CurrentPatient.marker[2] += 1 + do CurrentPatient.dialog_flags["perceptions"].append("Intra-psychic auditory hallucinations") + + Mr Orleg: He shares his Will with me directly inside my head. We have a special connection. + + if CurrentPatient.marker[2] == 2 + set CurrentPatient.marker[2] = 0 + => day_1_choice_2 + else + => day_1_choice_1_6 + + - Have you ever seen God or this evil being with your own eyes ? [if CurrentPatient.dialog_tree[1620] == "not_asked"] + + set CurrentPatient.dialog_tree[1620] = "asked" + set CurrentPatient.marker[2] += 1 + + Mr Orleg: Never. I don't need to see them to know they're here. + + if CurrentPatient.marker[2] == 2 + set CurrentPatient.marker[2] = 0 + => day_1_choice_2 + else + => day_1_choice_1_6 + +~ day_1_choice_2 + +- Send to Reset + + Psychiatrist: You are in need of psychiatric care, Mr Orleg. My colleagues here will take you to the resetting room for adequate treatment. + + do CurrentPatient.change_emotion("scared") + + Mr Orleg: You can't do that Doctor ! This is a mistake ! + + Mr Orleg: I swear i'm not crazy ! + + do CurrentPatient.send_to_reset() + + => END + +- Send to Isolation + + Psychiatrist: I have assessed that you are currently unstable, Mr Orleg. You may be dangerous to other people, and even to yourself. We are going to Isolate you to ensure your safety. + + do CurrentPatient.change_emotion("scared") + + Mr Orleg: What ?? Th- This can't be... + + Mr Orleg: Please, have mercy... + + do CurrentPatient.send_to_isolation + + => END + +- End the evaluation + + Psychiatrist: Thank you for answering my questions, Mr Orleg. You are to remain here for further observation. + + do CurrentPatient.change_emotion("angry") + + Mr Orleg: I knew it. You are just like the others, faking compassion for profit. You disgust me. + + Psychiatrist: I am here to help you, I just need more time to make the right decision. Please be patient, sir. + + Mr Orleg: This whole thing's a joke... + + => END + +=> END + + + +~ mr_orleg_day_2_dialogue_start + +do CurrentPatient.marker.fill(0) +set CurrentPatient.dialog_tree = CurrentPatient.build_dialog_tree([1100,1200,1210,1220, 1300, 1400, 1500, 1610, 1620]) + +: The patient is hurriedly mumbling something to himself in hushed tones. He abruptly stops as you step in, fixing you with an unnerving stare. + +Mr Orleg: Back for round 2, I presume ? Ask away, Doc. + +~ day_2_choice_1 + +- How was your first night here ? [if CurrentPatient.dialog_tree[1100] == "not_asked"] + + set CurrentPatient.dialog_tree[1100] = "asked" + do CurrentPatient.marker[0] += 1 + do CurrentPatient.change_emotion("scared") + do CurrentPatient.dialog_flags["insight"].append("Insomnia") + do CurrentPatient.dialog_flags["thought_content"].append("Persecutory delusions") + + Mr Orleg: I couldn't get my eyes shut. The Deceiver never rests. I could feel him breathing on my skin in the dark. It felt cold, so cold... + + ~ day_2_choice_1_1 + + - You told me you felt safe under God's protection. Is it still the case ? [if CurrentPatient.dialog_tree[1110] == "not_asked"] + + set CurrentPatient.dialog_tree[1110] = "asked" + do CurrentPatient.marker[1] += 1 + do CurrentPatient.dialog_flags["thought_content"].append("Mystical delusions") + + Mr Orleg: Yes, I still feel his Holy Presence within me, but it's getting fainter and fainter... This place is cursed. I need to get out of here fast. + + if CurrentPatient.marker[1] == 2 + set CurrentPatient.marker[1] = 0 + => day_2_choice_1 + else + => day_2_choice_1_1 + + - Were you able to see the Deceiver ? How did you know it was Him in your room last night ? [if CurrentPatient.dialog_tree[1120] == "not_asked"] + + set CurrentPatient.dialog_tree[1120] = "asked" + do CurrentPatient.marker[1] += 1 + do CurrentPatient.dialog_flags["perceptions"].append("Mystical delusions") + + Mr Orleg: Because I KNOW it ! It starts with yellow water dripping from the ceilings, flowing more and more... the smell ! Gods, the smell... + + if CurrentPatient.marker[1] == 2 + set CurrentPatient.marker[1] = 0 + => day_2_choice_1 + else + => day_2_choice_1_1 + + => day_2_choice_1 + diff --git a/Dialogues/patient_1.dialogue.import b/Dialogues/patient_1.dialogue.import new file mode 100644 index 0000000..02dff52 --- /dev/null +++ b/Dialogues/patient_1.dialogue.import @@ -0,0 +1,15 @@ +[remap] + +importer="dialogue_manager_compiler_13" +type="Resource" +uid="uid://dh8ce25f0hs24" +path="res://.godot/imported/patient_1.dialogue-c504d8f23d2b90e6ee45f5c71c616a35.tres" + +[deps] + +source_file="res://Dialogues/patient_1.dialogue" +dest_files=["res://.godot/imported/patient_1.dialogue-c504d8f23d2b90e6ee45f5c71c616a35.tres"] + +[params] + +defaults=true diff --git a/MainHub.tscn b/MainHub.tscn index 74cf9c1..73c77d0 100644 --- a/MainHub.tscn +++ b/MainHub.tscn @@ -3,7 +3,7 @@ [ext_resource type="Script" 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://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"] diff --git a/addons/dialogue_manager/example_balloon/example_balloon.tscn b/addons/dialogue_manager/example_balloon/example_balloon.tscn index 6facc26..4ad0cb4 100644 --- a/addons/dialogue_manager/example_balloon/example_balloon.tscn +++ b/addons/dialogue_manager/example_balloon/example_balloon.tscn @@ -79,17 +79,11 @@ theme = SubResource("Theme_qq3yp") [node name="Panel" type="Panel" parent="Balloon"] clip_children = 2 -layout_mode = 1 -anchors_preset = 12 -anchor_top = 1.0 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = 21.0 -offset_top = -183.0 -offset_right = -19.0 -offset_bottom = -19.0 -grow_horizontal = 2 -grow_vertical = 0 +layout_mode = 0 +offset_left = 10.0 +offset_top = 820.0 +offset_right = 1260.0 +offset_bottom = 1070.0 mouse_filter = 1 [node name="Dialogue" type="MarginContainer" parent="Balloon/Panel"] diff --git a/addons/dialogue_manager/test_scene.tscn b/addons/dialogue_manager/test_scene.tscn index f2bbd8d..b47f632 100644 --- a/addons/dialogue_manager/test_scene.tscn +++ b/addons/dialogue_manager/test_scene.tscn @@ -1,7 +1,6 @@ -[gd_scene load_steps=2 format=3] +[gd_scene load_steps=2 format=3 uid="uid://cp33m8d3ha6s"] [ext_resource type="Script" path="res://addons/dialogue_manager/test_scene.gd" id="1_yupoh"] - [node name="TestScene" type="Node2D"] script = ExtResource("1_yupoh") diff --git a/current_patient.gd b/current_patient.gd new file mode 100644 index 0000000..1e780fe --- /dev/null +++ b/current_patient.gd @@ -0,0 +1,68 @@ +extends Node + +var emotion: String +var dialog_flags : Dictionary = { + "history_of_present_illness": [], + "appearance": [], + "behaviour": [], + "speech": [], + "thought_process": [], + "thought_content": [], + "perceptions": [], + "insight": [], + "sleep": [], + "mood": [], + "suicidal_ideation": [], + } +var dialog_tree: Dictionary +var marker: Array[int] + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + + DialogueManager.got_dialogue.connect(_change_emotion) + + marker.resize(10) + marker.fill(0) + + + +func new_patient(dialogue_resource): + + var Balloon: Resource = preload("res://Dialogues/balloon.tscn") + var balloon: Node = Balloon.instantiate() + var panel = balloon.get_node("Balloon/Panel") + + get_tree().current_scene.add_child(balloon) + balloon.start(dialogue_resource,"start") + + panel.size = Vector2(1250, 250) + + pass + + + +func build_dialog_tree(tree_model: Array[int]) -> Dictionary: + + var branch : Dictionary + var tree : Dictionary + + for branch_id in tree_model: + branch = {branch_id: "not_asked"} + tree.merge(branch) + + return tree + + +func _change_emotion(dialogue_line) -> void: + + var new_emotion = dialogue_line.tags + if new_emotion != null: + print("Emotion changed to", new_emotion) + pass + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass diff --git a/dialogue_screens.gd b/dialogue_screens.gd index 5d5b2ea..7865b6e 100644 --- a/dialogue_screens.gd +++ b/dialogue_screens.gd @@ -5,8 +5,7 @@ extends Control func _ready() -> void: self.hide() -func dialogue(dialogue_resource, dialogue_start): - DialogueManager.show_dialogue_balloon(dialogue_resource, dialogue_start) + # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: diff --git a/main_hub.gd b/main_hub.gd index bec2c08..aaff56b 100644 --- a/main_hub.gd +++ b/main_hub.gd @@ -72,6 +72,8 @@ func skip_intro(): transition("big", [$TitleScreen], [$ScreeningDesk, UI, UI.get_node("UI/UpperContainer")]) await TransitionScreen.transition_finished + + gameplay_loop(load("res://Dialogues/patient_1.dialogue")) #Plays the entire introduction @@ -91,12 +93,22 @@ func play_intro(): transition("big", [$TextScreens, text_container.get_child(4), UI, UI.get_node("UI/SkipContainer")], [$DialogueScreens]) await TransitionScreen.transition_finished - $DialogueScreens.dialogue(dialogue_intro, "start") + DialogueManager.show_dialogue_balloon(dialogue_intro, "start") await DialogueManager.dialogue_ended #Transition to the Screening Desk - transition("big", [$DialogueScreens], [$ScreeningDesk]) - await UI.next_slide + transition("big", [$DialogueScreens], [$ScreeningDesk, UI, UI.get_node("UI/UpperContainer")]) + await TransitionScreen.transition_finished + + gameplay_loop(load("res://Dialogues/patient_1.dialogue")) + + + +func gameplay_loop(dialogue_resource): + + CurrentPatient.new_patient(dialogue_resource) + + pass diff --git a/project.godot b/project.godot index 23db9c2..d0eb1c1 100644 --- a/project.godot +++ b/project.godot @@ -17,9 +17,10 @@ config/features=PackedStringArray("4.3", "Forward Plus") [autoload] TransitionScreen="*res://transition_screen.tscn" -Globals="*res://globals.gd" DialogueManager="*res://addons/dialogue_manager/dialogue_manager.gd" +Globals="*res://globals.gd" UI="*res://ui.tscn" +CurrentPatient="*res://current_patient.gd" [dialogue_manager] @@ -54,4 +55,4 @@ ui_select={ [internationalization] -locale/translations_pot_files=PackedStringArray("res://Dialogues/intro.dialogue") +locale/translations_pot_files=PackedStringArray("res://Dialogues/intro.dialogue", "res://Dialogues/mr_orleg.dialogue", "res://Dialogues/patient_1.dialogue") diff --git a/screening_desk.tscn b/screening_desk.tscn index 61ac0bf..b52ba56 100644 --- a/screening_desk.tscn +++ b/screening_desk.tscn @@ -40,7 +40,7 @@ theme_override_constants/separation = 0 layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 -size_flags_stretch_ratio = 1.5 +size_flags_stretch_ratio = 2.0 texture = ExtResource("3_vcj7d") expand_mode = 1 @@ -53,32 +53,32 @@ theme_override_constants/separation = 0 layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 -size_flags_stretch_ratio = 0.8 +size_flags_stretch_ratio = 2.0 texture = ExtResource("4_ronmq") expand_mode = 1 -[node name="ColorRect" type="ColorRect" parent="Background/HBoxContainer/VBoxContainer"] +[node name="MarginContainer" type="MarginContainer" parent="Background/HBoxContainer/VBoxContainer"] layout_mode = 2 size_flags_vertical = 3 -size_flags_stretch_ratio = 0.2 + +[node name="ColorRect" type="ColorRect" parent="Background/HBoxContainer/VBoxContainer/MarginContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 color = Color(0, 0, 0, 1) -[node name="LowerBorder" type="TextureRect" parent="Background"] +[node name="MarginContainer" type="MarginContainer" parent="Background/HBoxContainer/VBoxContainer/MarginContainer"] layout_mode = 2 -size_flags_vertical = 3 -size_flags_stretch_ratio = 0.1 -texture = ExtResource("1_r2ji1") -expand_mode = 1 +theme_override_constants/margin_left = 10 +theme_override_constants/margin_top = 10 +theme_override_constants/margin_right = 15 +theme_override_constants/margin_bottom = 10 -[node name="Choices" type="GridContainer" parent="."] -layout_mode = 0 -offset_left = 1171.0 -offset_top = 836.0 -offset_right = 1900.0 -offset_bottom = 1012.0 +[node name="Choices" type="GridContainer" parent="Background/HBoxContainer/VBoxContainer/MarginContainer/MarginContainer"] +layout_mode = 2 columns = 2 -[node name="PatientProfile" type="Button" parent="Choices"] +[node name="PatientProfile" type="Button" parent="Background/HBoxContainer/VBoxContainer/MarginContainer/MarginContainer/Choices"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 @@ -86,23 +86,30 @@ theme_override_font_sizes/font_size = 25 text = "Check Patient's Profile " -[node name="Examine" type="Button" parent="Choices"] +[node name="Examine" type="Button" parent="Background/HBoxContainer/VBoxContainer/MarginContainer/MarginContainer/Choices"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 theme_override_font_sizes/font_size = 25 text = "Examine" -[node name="Containment" type="Button" parent="Choices"] +[node name="Containment" type="Button" parent="Background/HBoxContainer/VBoxContainer/MarginContainer/MarginContainer/Choices"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 theme_override_font_sizes/font_size = 25 text = "Send to Containment" -[node name="PsychWard" type="Button" parent="Choices"] +[node name="PsychWard" type="Button" parent="Background/HBoxContainer/VBoxContainer/MarginContainer/MarginContainer/Choices"] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 theme_override_font_sizes/font_size = 25 text = "Send to Psych Ward" + +[node name="LowerBorder" type="TextureRect" parent="Background"] +layout_mode = 2 +size_flags_vertical = 3 +size_flags_stretch_ratio = 0.1 +texture = ExtResource("1_r2ji1") +expand_mode = 1