end_of_day dialogues

This commit is contained in:
Maurane
2025-06-13 16:57:11 +02:00
parent 402d44e2bb
commit 2e4bf232b8
9 changed files with 212 additions and 32 deletions
+16
View File
@@ -18,4 +18,20 @@ Today's work was more difficult than yesterday. I couldn't wait to hit the sack.
At last, I was done for the day. I was drained. How was I so exhausted after merely 3 days ? At last, I was done for the day. I was drained. How was I so exhausted after merely 3 days ?
=> END
~ end_of_day_4
Time felt surreal. Was it already the end of the day ? Was I tired ? Maybe, yes. Yes, it's time to go to rest.
=> END
~ end_of_day_5
It's coming. I know it. I feel it. It's here and there, all around me, within me, in the walls, in the ceilings, on the floor, on the windows, in my EYES, in my MOUTH. Gogogo to recovery i must GO.
=> END => END
+29
View File
@@ -29,3 +29,32 @@ I had to get to work.
=> END => END
~ end_of_day_4
My energy was gone. I skipped dinner and went straight to bed.
The nightmares came immediately. Some Being of unfathomable proportions, bathing me in terror. Unknowable. Unvoiceable.
I tried to run away, but my legs couldn't move. So I jumped, I flied. But the terror was still here. Thousands, no, millions of screams flooding my ears, my mind. I closed my eyes, shut my ears, but it didn't change anything.
I screamed, but there was no sound. There couldn't be.
I woke up when the alarm rang. Or did I ? I felt surreal, as if I was watching someone move my body. A powerless spectator caged in the trap of his own flesh. An undescribable feeling, akin to a mix of befuddled restlessness and sheer terror, started to swell up deep within me.
Time to work.
=> END
~ end_of_day_5
It was time. Time, time, time. Real and temporal, unreal and eternal. Every moment a future past, every instant a past future. I laughed without really knowing why.
It was time to work. Let's go, it's time, it's time ! I could hear myself giggling as I hurriedly removed my clothes. The anticipation was nerve-wracking -but oh, how pleasurable it was ! How pleasurable it was about to be !
As I stood naked in the middle of the room, It started guiding me. Softly, gently describing me what to do next, just like a loving parent would teach a beloved child.
Wielding a pair of pliers, I started methodically removing myself from Reality. First, the toes. Inelegant, oddly-shaped mounds of flesh, hair and nails. Each of them crunchily snapped as I separated them from my feet, in a cracking melody.
Then, the ears. Tearing them off pulled on my jaw muscles, which helped relax them from all the anxiety-fueled jaw-clenching I was unconciously doing these past few days. A calming experience.
Now, on to the nose. Such a weird protuberance. Getting rid of it forced me to start breathing with my mouth, which reminded me how dry my throat was from all this physical exertion. I happily chugged down my water ration, savouring every gulp.
As I prepared to remove my eyes -unrefined globes of liquid, really-, Security operatives smashed down the door and apprehended me, preventing me from completing my work. No matter. I was already on the path to Ascendance.
I felt alive. I was alive. I had found some meaning in this world. I had finally found my calling. It kept talking to me as I was brought down the endless hallways towards Containment. It kept reassuring me, comforting me.
A boundless smile distorted my face as the rest of my body was melting down to reshape itself in the form of something greater. The feeling was pure bliss, and sent shivers of unabated pleasure down my liquefying spine.
At last, I was happy.
=> END
+2
View File
@@ -2,7 +2,9 @@ extends Node
var is_transitioning = false var is_transitioning = false
var day_count = 1 var day_count = 1
var patient_count = 0
var daily_patient_limit = 2 var daily_patient_limit = 2
var patient_id = "564"
var dialogue_intro = load("res://Dialogues/intro.dialogue") var dialogue_intro = load("res://Dialogues/intro.dialogue")
var dialogue_recovery = load("res://Dialogues/recovery.dialogue") var dialogue_recovery = load("res://Dialogues/recovery.dialogue")
+47 -2
View File
@@ -35,6 +35,8 @@ func _ready() -> void:
#Connecting Signals #Connecting Signals
title_screen.connect("new_game_pressed", self._on_new_game_pressed) title_screen.connect("new_game_pressed", self._on_new_game_pressed)
title_screen.connect("load_pressed", self._on_load_pressed)
title_screen.connect("settings_pressed", self._on_settings_pressed)
screening_desk.connect("recovery_pressed", self._on_recovery_pressed) screening_desk.connect("recovery_pressed", self._on_recovery_pressed)
pass pass
@@ -112,7 +114,7 @@ func start_day_loop():
await TransitionScreen.transition_finished await TransitionScreen.transition_finished
#Finally starting the Game Loop #Finally starting the Game Loop
$ScreeningDesk.new_patient("564") $ScreeningDesk.new_patient(Globals.patient_id)
@@ -141,4 +143,47 @@ func _on_recovery_pressed():
scenes_to_show = [$ScreeningDesk, $ScreeningDesk.alone_controls] scenes_to_show = [$ScreeningDesk, $ScreeningDesk.alone_controls]
TransitionScreen.transition("big", scenes_to_hide, scenes_to_show) TransitionScreen.transition("big", scenes_to_hide, scenes_to_show)
await TransitionScreen.transition_finished await TransitionScreen.transition_finished
$ScreeningDesk.new_patient("564") $ScreeningDesk.new_patient(Globals.patient_id)
func save_game(save_slot:String):
var save_data = {
"day_count": Globals.day_count,
"patient_count": Globals.patient_count,
"patient_id": Globals.patient_id
}
var file = FileAccess.open("res://Saves/save_" + save_slot + ".json", FileAccess.WRITE)
if file:
var json_string = JSON.stringify(save_data)
print(json_string)
file.store_string(json_string)
file.close()
print("Game saved successfully!")
else:
print("Failed to open file for saving.")
func load_game(save_slot:String):
var file = FileAccess.open("res://Saves/save_" + save_slot + ".json", FileAccess.READ)
if file:
var json_string = file.get_as_text()
file.close()
var load_data = JSON.parse_string(json_string)
if load_data == OK:
print(load_data)
Globals.day_count = load_data["day_count"]
Globals.patient_count = load_data["patient_count"]
Globals.patient_id = load_data["patient_id"]
else:
print("Failed to parse Loading Data.")
func _on_save_pressed():
+6 -6
View File
@@ -16,10 +16,10 @@ extends Control
@onready var balloon: Node @onready var balloon: Node
@onready var patient_emotions : Dictionary @onready var patient_emotions : Dictionary
var patient_count = 0
signal recovery_pressed signal recovery_pressed
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void: func _ready() -> void:
@@ -230,8 +230,8 @@ func clear_patient(choice:String):
var scenes_to_hide = [patient_controls, patient_texture, face_zoom, panel_container] + margin_container.get_children() var scenes_to_hide = [patient_controls, patient_texture, face_zoom, panel_container] + margin_container.get_children()
var scenes_to_show:Array[Node] var scenes_to_show:Array[Node]
patient_count += 1 Globals.patient_count += 1
if patient_count < Globals.daily_patient_limit: if Globals.patient_count < Globals.daily_patient_limit:
scenes_to_show.append(alone_controls) scenes_to_show.append(alone_controls)
else: else:
scenes_to_show.append(end_of_day_controls) scenes_to_show.append(end_of_day_controls)
@@ -240,11 +240,11 @@ func clear_patient(choice:String):
await TransitionScreen.transition_finished await TransitionScreen.transition_finished
if patient_count < Globals.daily_patient_limit: if Globals.patient_count < Globals.daily_patient_limit:
#Setting Up Next Patient #Setting Up Next Patient
new_patient("564") new_patient("564")
else: else:
patient_count = 0 Globals.patient_count = 0
#Starting End of Day Dialogue #Starting End of Day Dialogue
var start_title = "end_of_day_" + str(Globals.day_count) var start_title = "end_of_day_" + str(Globals.day_count)
+18 -3
View File
@@ -1,13 +1,16 @@
extends CanvasLayer extends CanvasLayer
signal new_game_pressed signal new_game_pressed
signal load_pressed
signal settings_pressed
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void: func _ready() -> void:
self.get_node("TitleScreen/MenuContainer/NewGame").pressed.connect(_on_new_game_pressed) $TitleScreen/MenuContainer/NewGame.pressed.connect(_on_new_game_pressed)
self.get_node("TitleScreen/MenuContainer/QuitGame").pressed.connect(_on_quit_game_pressed) $TitleScreen/MenuContainer/Load.pressed.connect(_on_load_pressed)
$TitleScreen/MenuContainer/Settings.pressed.connect(_on_settings_pressed)
$TitleScreen/MenuContainer/QuitGame.pressed.connect(_on_quit_game_pressed)
self.hide() self.hide()
pass pass
@@ -25,5 +28,17 @@ func _on_new_game_pressed() -> void:
func _on_load_pressed() -> void:
load_pressed.emit()
pass
func _on_settings_pressed() -> void:
settings_pressed.emit()
pass
func _on_quit_game_pressed(): func _on_quit_game_pressed():
get_tree().quit() get_tree().quit()
-7
View File
@@ -39,13 +39,6 @@ theme_override_fonts/font = ExtResource("3_xwylp")
theme_override_font_sizes/font_size = 30 theme_override_font_sizes/font_size = 30
text = "NEW GAME" text = "NEW GAME"
[node name="Save" type="Button" parent="TitleScreen/MenuContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("3_xwylp")
theme_override_font_sizes/font_size = 30
text = "SAVE"
[node name="Load" type="Button" parent="TitleScreen/MenuContainer"] [node name="Load" type="Button" parent="TitleScreen/MenuContainer"]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 3 size_flags_vertical = 3
+4 -4
View File
@@ -1,10 +1,10 @@
extends CanvasLayer extends CanvasLayer
@onready var next = $UI/SkipContainer/NextButton @onready var next = $UI/SkipContainer/NextButton
@onready var confirmation_dialog = $UI/PanelContainer @onready var confirmation_dialog = $UI/ConfirmationDialog
@onready var confirmation_text = $UI/PanelContainer/MarginContainer/VBoxContainer/ConfirmationText @onready var confirmation_text = $UI/ConfirmationDialog/MarginContainer/VBoxContainer/ConfirmationText
@onready var confirmation_yes = $UI/PanelContainer/MarginContainer/VBoxContainer/MarginContainer/HBoxContainer/YesButton @onready var confirmation_yes = $UI/ConfirmationDialog/MarginContainer/VBoxContainer/MarginContainer/HBoxContainer/YesButton
@onready var confirmation_no = $UI/PanelContainer/MarginContainer/VBoxContainer/MarginContainer/HBoxContainer/NoButton @onready var confirmation_no = $UI/ConfirmationDialog/MarginContainer/VBoxContainer/MarginContainer/HBoxContainer/NoButton
signal next_request signal next_request
signal next_slide signal next_slide
+90 -10
View File
@@ -1,9 +1,15 @@
[gd_scene load_steps=5 format=3 uid="uid://dy40jygog8t3k"] [gd_scene load_steps=6 format=3 uid="uid://dy40jygog8t3k"]
[ext_resource type="Script" path="res://ui.gd" id="1_mg12k"] [ext_resource type="Script" path="res://ui.gd" id="1_mg12k"]
[ext_resource type="FontFile" uid="uid://ckg5x0oonnjtn" path="res://Art/XanhMono-Regular.ttf" id="2_cohu5"] [ext_resource type="FontFile" uid="uid://ckg5x0oonnjtn" path="res://Art/XanhMono-Regular.ttf" id="2_cohu5"]
[ext_resource type="FontFile" uid="uid://mi5v1uq78g7o" path="res://Art/XanhMono-Italic.ttf" id="3_e3v1e"] [ext_resource type="FontFile" uid="uid://mi5v1uq78g7o" path="res://Art/XanhMono-Italic.ttf" id="3_e3v1e"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fo2i3"]
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0joc6"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0joc6"]
border_width_left = 2 border_width_left = 2
border_width_top = 2 border_width_top = 2
@@ -25,7 +31,79 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
mouse_filter = 2 mouse_filter = 2
[node name="PanelContainer" type="PanelContainer" parent="UI"] [node name="Menu" type="PanelContainer" parent="UI"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -125.0
offset_top = -200.0
offset_right = 125.0
offset_bottom = 200.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_fo2i3")
[node name="Background" type="ColorRect" parent="UI/Menu"]
layout_mode = 2
color = Color(0, 0, 0, 1)
[node name="MarginContainer" type="MarginContainer" parent="UI/Menu"]
layout_mode = 2
theme_override_constants/margin_left = 40
theme_override_constants/margin_top = 40
theme_override_constants/margin_right = 40
theme_override_constants/margin_bottom = 40
[node name="VBoxContainer" type="VBoxContainer" parent="UI/Menu/MarginContainer"]
layout_mode = 2
[node name="Continue" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_cohu5")
theme_override_font_sizes/font_size = 27
text = "CONTINUE"
[node name="Save" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_cohu5")
theme_override_font_sizes/font_size = 27
text = "SAVE"
[node name="Load" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_cohu5")
theme_override_font_sizes/font_size = 27
text = "LOAD"
[node name="Options" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_cohu5")
theme_override_font_sizes/font_size = 27
text = "OPTIONS"
[node name="MainMenu" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_cohu5")
theme_override_font_sizes/font_size = 27
text = "MAIN MENU"
[node name="Exit" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_fonts/font = ExtResource("2_cohu5")
theme_override_font_sizes/font_size = 27
text = "EXIT GAME"
[node name="ConfirmationDialog" type="PanelContainer" parent="UI"]
visible = false
layout_mode = 1 layout_mode = 1
anchors_preset = 8 anchors_preset = 8
anchor_left = 0.5 anchor_left = 0.5
@@ -40,21 +118,21 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_0joc6") theme_override_styles/panel = SubResource("StyleBoxFlat_0joc6")
[node name="ColorRect" type="ColorRect" parent="UI/PanelContainer"] [node name="Background" type="ColorRect" parent="UI/ConfirmationDialog"]
layout_mode = 2 layout_mode = 2
color = Color(0, 0, 0, 1) color = Color(0, 0, 0, 1)
[node name="MarginContainer" type="MarginContainer" parent="UI/PanelContainer"] [node name="MarginContainer" type="MarginContainer" parent="UI/ConfirmationDialog"]
layout_mode = 2 layout_mode = 2
theme_override_constants/margin_left = 10 theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 20 theme_override_constants/margin_top = 20
theme_override_constants/margin_right = 10 theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10 theme_override_constants/margin_bottom = 10
[node name="VBoxContainer" type="VBoxContainer" parent="UI/PanelContainer/MarginContainer"] [node name="VBoxContainer" type="VBoxContainer" parent="UI/ConfirmationDialog/MarginContainer"]
layout_mode = 2 layout_mode = 2
[node name="ConfirmationText" type="RichTextLabel" parent="UI/PanelContainer/MarginContainer/VBoxContainer"] [node name="ConfirmationText" type="RichTextLabel" parent="UI/ConfirmationDialog/MarginContainer/VBoxContainer"]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 3 size_flags_vertical = 3
size_flags_stretch_ratio = 3.0 size_flags_stretch_ratio = 3.0
@@ -62,24 +140,24 @@ theme_override_fonts/normal_font = ExtResource("2_cohu5")
theme_override_font_sizes/normal_font_size = 25 theme_override_font_sizes/normal_font_size = 25
bbcode_enabled = true bbcode_enabled = true
[node name="MarginContainer" type="MarginContainer" parent="UI/PanelContainer/MarginContainer/VBoxContainer"] [node name="MarginContainer" type="MarginContainer" parent="UI/ConfirmationDialog/MarginContainer/VBoxContainer"]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_constants/margin_left = 70 theme_override_constants/margin_left = 70
theme_override_constants/margin_right = 70 theme_override_constants/margin_right = 70
[node name="HBoxContainer" type="HBoxContainer" parent="UI/PanelContainer/MarginContainer/VBoxContainer/MarginContainer"] [node name="HBoxContainer" type="HBoxContainer" parent="UI/ConfirmationDialog/MarginContainer/VBoxContainer/MarginContainer"]
layout_mode = 2 layout_mode = 2
theme_override_constants/separation = 70 theme_override_constants/separation = 70
[node name="YesButton" type="Button" parent="UI/PanelContainer/MarginContainer/VBoxContainer/MarginContainer/HBoxContainer"] [node name="YesButton" type="Button" parent="UI/ConfirmationDialog/MarginContainer/VBoxContainer/MarginContainer/HBoxContainer"]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("2_cohu5") theme_override_fonts/font = ExtResource("2_cohu5")
theme_override_font_sizes/font_size = 20 theme_override_font_sizes/font_size = 20
text = "YES" text = "YES"
[node name="NoButton" type="Button" parent="UI/PanelContainer/MarginContainer/VBoxContainer/MarginContainer/HBoxContainer"] [node name="NoButton" type="Button" parent="UI/ConfirmationDialog/MarginContainer/VBoxContainer/MarginContainer/HBoxContainer"]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("2_cohu5") theme_override_fonts/font = ExtResource("2_cohu5")
@@ -87,6 +165,7 @@ theme_override_font_sizes/font_size = 20
text = "NO" text = "NO"
[node name="UpperContainer" type="HBoxContainer" parent="UI"] [node name="UpperContainer" type="HBoxContainer" parent="UI"]
visible = false
layout_mode = 0 layout_mode = 0
offset_left = 28.0 offset_left = 28.0
offset_top = 63.0 offset_top = 63.0
@@ -100,6 +179,7 @@ theme_override_font_sizes/font_size = 30
text = " Menu " text = " Menu "
[node name="SkipContainer" type="HBoxContainer" parent="UI"] [node name="SkipContainer" type="HBoxContainer" parent="UI"]
visible = false
layout_mode = 0 layout_mode = 0
offset_left = 1643.0 offset_left = 1643.0
offset_top = 999.0 offset_top = 999.0