Dialogue responses rework

This commit is contained in:
Maurane
2026-03-26 17:03:22 +01:00
parent 74b58adac6
commit 831909f769
21 changed files with 237 additions and 143 deletions
-74
View File
@@ -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
@@ -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
@@ -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
@@ -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
+4
View File
@@ -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
@@ -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
+1 -1
View File
@@ -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
+24 -2
View File
@@ -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"]
+10
View File
@@ -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
+1
View File
@@ -0,0 +1 @@
uid://blskmem7cshrj