Début de travail sur Screening Desk

This commit is contained in:
Maurane
2025-06-08 18:20:09 +02:00
parent d4f9a165dc
commit 34dd05aa07
18 changed files with 323 additions and 89 deletions
+16
View File
@@ -0,0 +1,16 @@
[gd_resource type="Theme" load_steps=4 format=3 uid="uid://dn1n15xwt8ucv"]
[ext_resource type="FontFile" uid="uid://ckg5x0oonnjtn" path="res://Art/XanhMono-Regular.ttf" id="1_vfunk"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nxxb1"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8rsmc"]
bg_color = Color(0.117647, 0.117647, 0.117647, 1)
border_color = Color(0, 0, 0, 1)
shadow_color = Color(0, 0, 0, 1)
[resource]
default_font = ExtResource("1_vfunk")
default_font_size = 20
AcceptDialog/styles/embedded_border = SubResource("StyleBoxFlat_nxxb1")
AcceptDialog/styles/panel = SubResource("StyleBoxFlat_8rsmc")
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

+34
View File
@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bmnsx7d17h3bw"
path="res://.godot/imported/ScaredFace.png-eb6218432951fbe129e10237d69dda7a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Art/ScaredFace.png"
dest_files=["res://.godot/imported/ScaredFace.png-eb6218432951fbe129e10237d69dda7a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

+34
View File
@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cngys5i7ggvhn"
path="res://.godot/imported/ScaredFaceEdited.png-51b8798a61e279c1ccded3d95ea8aca3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Art/ScaredFaceEdited.png"
dest_files=["res://.godot/imported/ScaredFaceEdited.png-51b8798a61e279c1ccded3d95ea8aca3.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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
+15 -10
View File
@@ -87,8 +87,8 @@ anchor_top = 1.0
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = 21.0 offset_left = 21.0
offset_top = -240.0 offset_top = -285.0
offset_right = -19.0 offset_right = -26.0
offset_bottom = -19.0 offset_bottom = -19.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 0 grow_vertical = 0
@@ -99,6 +99,7 @@ layout_mode = 1
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_right = -2.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
@@ -122,11 +123,15 @@ unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_fonts/normal_font = ExtResource("3_66oah") theme_override_fonts/normal_font = ExtResource("3_66oah")
theme_override_font_sizes/bold_italics_font_size = 40 theme_override_fonts/mono_font = ExtResource("3_66oah")
theme_override_font_sizes/italics_font_size = 40 theme_override_fonts/italics_font = ExtResource("2_qju6n")
theme_override_font_sizes/mono_font_size = 40 theme_override_fonts/bold_italics_font = ExtResource("2_qju6n")
theme_override_fonts/bold_font = ExtResource("3_66oah")
theme_override_font_sizes/bold_italics_font_size = 30
theme_override_font_sizes/italics_font_size = 30
theme_override_font_sizes/mono_font_size = 30
theme_override_font_sizes/normal_font_size = 30 theme_override_font_sizes/normal_font_size = 30
theme_override_font_sizes/bold_font_size = 40 theme_override_font_sizes/bold_font_size = 30
text = "Dialogue..." text = "Dialogue..."
[node name="Responses" type="MarginContainer" parent="Balloon"] [node name="Responses" type="MarginContainer" parent="Balloon"]
@@ -136,10 +141,10 @@ anchor_left = 0.5
anchor_top = 1.0 anchor_top = 1.0
anchor_right = 0.5 anchor_right = 0.5
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = -147.0 offset_left = -105.0
offset_top = -626.0 offset_top = -666.0
offset_right = 494.0 offset_right = 536.0
offset_bottom = -213.0 offset_bottom = -253.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 0 grow_vertical = 0
+39 -15
View File
@@ -1,23 +1,47 @@
~ start ~ start
A bleak, stern conference room, nestled in a research facility's subterranean network, probably buried deep somewhere underneath French fields of wheat and corn. Praise be the Republic for its generous funding. A bleak, stern conference room, nestled in a research facility's subterranean network, probably concealed somewhere underneath French fields of wheat and corn. Praise the Republic for its generous funding.
A handful of people sitting nervously around the table. 2-weeks trained psychiatrist wannabes, just like me. I couldn't help but wonder what they came down here for. A dash of fame ? Money ? Trying to gloriously save our kind ? Or perhaps desperately seeking some smidge of meaning in all of this ? A handful of people sitting nervously around the table. 2-weeks trained psychiatrist wannabes, just like me. I couldn't help but wonder what they came down here for. A dash of fame ? Money ? Trying to gloriously save our kind ? Or perhaps desperately seeking some smidge of meaning in all of this ?
I wouldn't remember any of their faces. I didn't want to. We were doomed people after all, fated to sit behind government-issued desks, sifting through waves of Abnormals until Death did us part. I didn't make eye contact with any of them, nor did they try to with me. I wouldn't remember any of their faces. I didn't want to. We were doomed people after all, fated to sit behind government-issued desks, sifting through waves of Abnormals until Death did us part. I didn't make eye contact with any of them, nor did they try to with me.
Standing upright at the end of the table, the Government Orator was speaking in a composed, almost rhythmic tone, his suave discourse slithering like a honey-smudged snake across the room. Every polished sentence a vital advice, every glib word a masked threat. All ears and eyes were fixated on him, trying to perceive every last speck of information.
Government Orator: As of today, Abnormality's pathophysiological mechanism has not yet been proven to have an infectious etiology. As such, psychiatry remains at the forefront of medical research against this pandemic. Standing upright at the end of the table, the Republican Commissar was speaking in a composed, almost rhythmic tone, his suave discourse slithering like a honey-smudged snake across the room. Every polished sentence a vital advice, every glib word a masked threat. All ears and eyes were fixated on him, trying to perceive every last speck of information.
Government Orator: Abnormality's psychiatric semiology was exceedingly arduous to apprehend, even for trained professionals. You are not expected to be qualified.
Government Orator: The brief training imparted to you on our lawgivers' behalf was at best an inadequate waste of the Republic's spending, and at worst an impetus towards your future demise. Though I may not offer you the expertise our senior colleagues wielded, listen closely, for the limited knowledge we gathered until now unveiled the Abnormality Rules. Republican Commissar: Greetings, young trainees. I shall be your supervisor for the duration of your work here. Any requests and interaction with the outer world shall go through me and only me.
Government Orator: 1- [color=darkred]Patients brought to you for screening may either be "Commons"[/color], as in people suffering from commonly known psychiatric illnesses,[color=darkred] or be Abnormals[/color].
Government Orator: 2- [color=darkred]Abnormals can and will try to mimic Commons' appearances, actions and speech patterns.[/color] Whether this behaviour stems from mere survival instinct or from an underlying motive has yet to be ascertained. Republican Commissar: Laws and rights from the outside do not apply here. On this floor, I represent the Republic. I [i]am[/i] the Laws and Rights.
Government Orator: 3- [color=darkred]An Abnormal will always exhibit signs of its true nature when submitted to thorough assessment.[/color] The underlying cause remains unclear. Inability to fully mimic human behaviour is the currently leading hypothesis.
Government Orator: 4- [color=darkred]Abnormals do not possess emotional faculties, although they will try to mimic them.[/color] The very concept of emotions is utterly alien to an Abnormal, regardless of its mimicking ability. Conversely, the severity of a psychiatric condition does not and cannot negate a Common's fundamental humanity, and therefore innate capacity to exhibit genuine displays of emotions. Republican Commissar: Patients strongly suspected of Abnormality contamination will be brought here every day. You are to sort them out. Separate the tainted from the pure. Any plea from them is to be ignored. Potential threats to the Republic do not qualify for civilian rights.
Government Orator: 5- [color=darkred]Abnormals violate the laws of Reality.[/color] If you notice anything that cannot be comprehended or explained by human knowledge, immediately take appropriate action according to protocol.
Government Orator: 6- As a final advice, follow your instinct. If something, anything [color=darkred]feels unnervingly wrong[/color] about a patient, further investigation is highly likely to be warranted. Republican Commissar: Abnormality's psychiatric semiology was exceedingly arduous to apprehend, even for trained professionals. You are not expected to be qualified.
Government Orator: As you all know, containment protocol's safety rules forbid you to leave the premises of this level for the duration of your work here. You have been assigned rooms to rest in between shifts. A meeting shall be held here every morning to optimize coordination and transmit information.
Government Orator: Good luck, "doctors". The Republic is proud of you. Republican Commissar: The brief training imparted to you on our lawgivers' behalf was at best an inadequate waste of the Republic's spending, and at worst an impetus towards your future demise. Though I may not offer you the expertise our senior colleagues wielded, listen closely, for the limited knowledge we gathered until now unveiled the Abnormality Rules.
Small notebooks were swiftly distributed around the table. Printed on the first pages were the Abnormality Rules, first verbally proclaimed to us, and now solemnly etched with ink. To read and reread ad nauseam until seared into one's memory.
Republican Commissar: 1- Patients may either be [color=darkgreen]Commons[/color], as in people suffering from commonly known psychiatric illnesses, or be [color=darkred]Abnormals[/color].
Republican Commissar: 2- Abnormals can and will try to [color=darkred]mimic[/color] Commons' appearances, actions and speech patterns. Whether this behaviour stems from mere survival instinct or from an underlying motive has yet to be ascertained.
Republican Commissar: 3- An Abnormal will always exhibit [color=darkred]signs of its true nature[/color] when submitted to thorough assessment. The underlying cause remains unclear. Inability to fully mimic human behaviour is the currently leading hypothesis.
Republican Commissar: 4- Abnormals do not possess [color=darkred]emotional faculties[/color], although they will try to [color=darkred]mimic[/color] them. The very concept of emotions is utterly alien to an Abnormal, regardless of its mimicking ability. Conversely, the severity of a psychiatric condition does not and cannot negate a Common's fundamental humanity, and therefore innate capacity to exhibit genuine displays of emotions.
Republican Commissar: 5- Abnormals [color=darkred]violate the laws of Reality.[/color] If you notice anything that cannot be comprehended or explained by human knowledge, immediately take appropriate action according to protocol.
Republican Commissar: 6- Follow your instinct. If something, anything [color=darkred]feels unnervingly wrong[/color] about a patient, further investigation is highly likely to save your lives.
Republican Commissar: 7- Commons are to be sent to the [color=darkgreen]Psych Ward[/color] for treatment and further monitoring. Regarding Abnormals, [color=darkred]immediately call Containment operatives[/color] using the switch concealed beneath your desk.
Republican Commissar: As you all know, containment protocol's safety rules forbid you to leave the premises of this floor. You have been assigned rooms to rest in between shifts. A meeting shall be held here every morning to optimize coordination and transmit information.
Republican Commissar: Good luck, "doctors". The Republic shelters.
Small notebooks were swiftly distributed around the table. Printed on the first pages were the Abnormality Rules, to be read and reread ad nauseam until seared into one's mind.
I was the first to stand up and leave the room, brimming with a restless blend of nervous anticipation and unspoken fear. I was the first to stand up and leave the room, brimming with a restless blend of nervous anticipation and unspoken fear.
I could still turn back and leave. I should. A part of me was screaming for it. But my legs kept on mechanically walking down the underground hallway, leading me to my assigned screening desk.
I could still turn back and leave. I should. A part of me was screaming for it. But my legs kept on mechanically walking down the austere hallway, leading me to my assigned screening desk.
It was too late. I already knew too much, and was worth too little. Or so I told myself. It was too late. I already knew too much, and was worth too little. Or so I told myself.
=> END => END
+2 -2
View File
@@ -2,7 +2,7 @@
[ext_resource type="Script" path="res://main_hub.gd" id="1_rvfpd"] [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://cahspuhi43bx7" path="res://title_screen.tscn" id="2_3wmv1"]
[ext_resource type="PackedScene" uid="uid://chytk2cctjk3x" path="res://office.tscn" id="3_whctb"] [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://igkl2384rxt1" path="res://text_screens.tscn" id="5_85o5j"]
[ext_resource type="PackedScene" uid="uid://dixsxwodxuf0b" path="res://dialogue_screens.tscn" id="6_60wm2"] [ext_resource type="PackedScene" uid="uid://dixsxwodxuf0b" path="res://dialogue_screens.tscn" id="6_60wm2"]
@@ -16,7 +16,7 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
script = ExtResource("1_rvfpd") script = ExtResource("1_rvfpd")
TitleScreen = ExtResource("2_3wmv1") TitleScreen = ExtResource("2_3wmv1")
Office = ExtResource("3_whctb") ScreeningDesk = ExtResource("3_whctb")
Bedroom = ExtResource("4_4fm57") Bedroom = ExtResource("4_4fm57")
TextScreens = ExtResource("5_85o5j") TextScreens = ExtResource("5_85o5j")
DialogueScreens = ExtResource("6_60wm2") DialogueScreens = ExtResource("6_60wm2")
+48 -11
View File
@@ -1,39 +1,43 @@
extends Control extends Control
@export var TitleScreen: PackedScene @export var TitleScreen: PackedScene
@export var Office: PackedScene @export var ScreeningDesk: PackedScene
@export var Bedroom: PackedScene @export var Bedroom: PackedScene
@export var TextScreens: PackedScene @export var TextScreens: PackedScene
@export var DialogueScreens: PackedScene @export var DialogueScreens: PackedScene
var dialogue_intro = load("res://Dialogues/intro.dialogue") var dialogue_intro = load("res://Dialogues/intro.dialogue")
# 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:
#Adding Scenes #Adding Scenes
var title_screen = TitleScreen.instantiate() var title_screen = TitleScreen.instantiate()
var office = Office.instantiate() var screening_desk = ScreeningDesk.instantiate()
var bedroom = Bedroom.instantiate() var bedroom = Bedroom.instantiate()
var text_screens = TextScreens.instantiate() var text_screens = TextScreens.instantiate()
var dialogue_screens = DialogueScreens.instantiate() var dialogue_screens = DialogueScreens.instantiate()
add_child(title_screen) add_child(title_screen)
add_child(office) add_child(screening_desk)
add_child(bedroom) add_child(bedroom)
add_child(text_screens) add_child(text_screens)
add_child(dialogue_screens) add_child(dialogue_screens)
#Naming Scenes #Naming Scenes
title_screen.name = "TitleScreen" title_screen.name = "TitleScreen"
office.name = "Office" screening_desk.name = "ScreeningDesk"
bedroom.name = "Bedroom" bedroom.name = "Bedroom"
text_screens.name = "TextScreens" text_screens.name = "TextScreens"
dialogue_screens.name = "DialogueScreens" dialogue_screens.name = "DialogueScreens"
#Showing TitleScreen #Showing TitleScreen
title_screen.show() title_screen.show()
#UI.show()
#UI.get_node("UI/SkipContainer").show()
#Connecting Signals #Connecting Signals
title_screen.connect("new_game_pressed", _on_new_game_pressed) title_screen.connect("new_game_pressed", _on_new_game_pressed)
@@ -41,32 +45,65 @@ func _ready() -> void:
pass pass
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void: func _process(delta: float) -> void:
pass pass
# Starts a new game # Starts a new game
func _on_new_game_pressed(): func _on_new_game_pressed():
var choice_dialog = UI.get_node("UI/ConfirmationDialog")
choice_dialog.set_ok_button_text("Yes")
choice_dialog.set_cancel_button_text("No")
choice_dialog.get_label().text = ("Do you wish to skip the introduction ?")
UI.get_node("UI/ConfirmationDialog").show()
choice_dialog.get_ok_button().pressed.connect(skip_intro, CONNECT_ONE_SHOT)
choice_dialog.get_cancel_button().pressed.connect(play_intro, CONNECT_ONE_SHOT)
#Skips the introduction
func skip_intro():
transition("big", [$TitleScreen], [$ScreeningDesk, UI, UI.get_node("UI/UpperContainer")])
await TransitionScreen.transition_finished
#Plays the entire introduction
func play_intro():
var text_container = $TextScreens/MarginContainer/IntroBoxContainer/TextContainer var text_container = $TextScreens/MarginContainer/IntroBoxContainer/TextContainer
transition("big", [$TitleScreen], [$TextScreens, text_container.get_child(0)]) #Introduction first slides
await $TextScreens.next_slide transition("big", [$TitleScreen], [$TextScreens, text_container.get_child(0), UI, UI.get_node("UI/SkipContainer")])
await UI.next_slide
for i in 4: for i in 4:
transition("small", [text_container.get_child(i)], [text_container.get_child(i+1)]) transition("small", [text_container.get_child(i)], [text_container.get_child(i+1)])
await $TextScreens.next_slide await UI.next_slide
transition("big", [$TextScreens, text_container.get_child(4)], [$DialogueScreens]) #Dialogue in the Meeting Room
await $TextScreens.next_slide transition("big", [$TextScreens, text_container.get_child(4), UI, UI.get_node("UI/SkipContainer")], [$DialogueScreens])
await TransitionScreen.transition_finished
$DialogueScreens.dialogue(dialogue_intro, "start") $DialogueScreens.dialogue(dialogue_intro, "start")
await DialogueManager.dialogue_ended
#Transition to the Screening Desk
transition("big", [$DialogueScreens], [$ScreeningDesk])
await UI.next_slide
# Takes care of fading transitions between scenes # Takes care of fading transitions between scenes
func transition(size, scenes_to_hide, scenes_to_show): func transition(fading_screen_size, scenes_to_hide, scenes_to_show):
TransitionScreen.transition(size) TransitionScreen.transition(fading_screen_size)
await TransitionScreen.fading_finished await TransitionScreen.fading_finished
+1
View File
@@ -19,6 +19,7 @@ config/features=PackedStringArray("4.3", "Forward Plus")
TransitionScreen="*res://transition_screen.tscn" TransitionScreen="*res://transition_screen.tscn"
Globals="*res://globals.gd" Globals="*res://globals.gd"
DialogueManager="*res://addons/dialogue_manager/dialogue_manager.gd" DialogueManager="*res://addons/dialogue_manager/dialogue_manager.gd"
UI="*res://ui.tscn"
[dialogue_manager] [dialogue_manager]
+1
View File
@@ -4,6 +4,7 @@ extends Control
# 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.hide() self.hide()
pass # Replace with function body. pass # Replace with function body.
+24 -8
View File
@@ -1,10 +1,11 @@
[gd_scene load_steps=4 format=3 uid="uid://chytk2cctjk3x"] [gd_scene load_steps=5 format=3 uid="uid://chytk2cctjk3x"]
[ext_resource type="Script" path="res://office.gd" id="1_1s7k3"] [ext_resource type="Script" path="res://screening_desk.gd" id="1_1s7k3"]
[ext_resource type="Texture2D" uid="uid://c3je4gir1qlot" path="res://Art/BlackScreen.png" id="1_r2ji1"] [ext_resource type="Texture2D" uid="uid://c3je4gir1qlot" path="res://Art/BlackScreen.png" id="1_r2ji1"]
[ext_resource type="Texture2D" uid="uid://cppnad2sauulq" path="res://Art/Office.png" id="3_vcj7d"] [ext_resource type="Texture2D" uid="uid://cppnad2sauulq" path="res://Art/Office.png" id="3_vcj7d"]
[ext_resource type="Texture2D" uid="uid://bmnsx7d17h3bw" path="res://Art/ScaredFace.png" id="4_inudk"]
[node name="Corridor" type="Control"] [node name="ScreeningDesk" type="Control"]
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
@@ -20,6 +21,7 @@ anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
theme_override_constants/separation = 0
[node name="UpperBorder" type="TextureRect" parent="Background"] [node name="UpperBorder" type="TextureRect" parent="Background"]
layout_mode = 2 layout_mode = 2
@@ -28,13 +30,27 @@ size_flags_stretch_ratio = 0.1
texture = ExtResource("1_r2ji1") texture = ExtResource("1_r2ji1")
expand_mode = 1 expand_mode = 1
[node name="Background" type="TextureRect" parent="Background"] [node name="HBoxContainer" type="HBoxContainer" parent="Background"]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 3 size_flags_vertical = 3
size_flags_stretch_ratio = 1.5 size_flags_stretch_ratio = 1.5
[node name="Desk" type="TextureRect" parent="Background/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
size_flags_stretch_ratio = 1.5
texture = ExtResource("3_vcj7d") texture = ExtResource("3_vcj7d")
expand_mode = 1 expand_mode = 1
[node name="CloseUp" type="TextureRect" parent="Background/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
size_flags_stretch_ratio = 0.8
texture = ExtResource("4_inudk")
expand_mode = 1
[node name="LowerBorder" type="TextureRect" parent="Background"] [node name="LowerBorder" type="TextureRect" parent="Background"]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 3 size_flags_vertical = 3
@@ -44,13 +60,13 @@ expand_mode = 1
[node name="Choices" type="GridContainer" parent="."] [node name="Choices" type="GridContainer" parent="."]
layout_mode = 0 layout_mode = 0
offset_left = 13.0 offset_left = 1267.0
offset_top = 791.0 offset_top = 829.0
offset_right = 638.0 offset_right = 1902.0
offset_bottom = 1004.0 offset_bottom = 1004.0
columns = 2 columns = 2
[node name="MedicsOffice" type="Button" parent="Choices"] [node name="PatientProfile" type="Button" parent="Choices"]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
+1 -22
View File
@@ -1,37 +1,16 @@
extends CanvasLayer extends CanvasLayer
@onready var intro_text_container = $MarginContainer/IntroBoxContainer/TextContainer @onready var intro_text_container = $MarginContainer/IntroBoxContainer/TextContainer
@onready var skip = $SkipContainer/SkipButton
signal skip_request
signal next_slide
# 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:
skip.pressed.connect(_on_skip_pressed)
self.connect("skip_request", _on_skip_request)
self.hide() self.hide()
for node in intro_text_container.get_children(): for node in intro_text_container.get_children():
node.hide() node.hide()
func _on_skip_pressed():
skip_request.emit()
func _input(event):
if event is InputEventKey and event.is_action_released("ui_accept"):
skip_request.emit()
func _on_skip_request():
if Globals.is_transitioning == false:
next_slide.emit()
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void: func _process(delta: float) -> void:
pass pass
+1 -19
View File
@@ -5,6 +5,7 @@
[ext_resource type="FontFile" uid="uid://mi5v1uq78g7o" path="res://Art/XanhMono-Italic.ttf" id="3_i5n2a"] [ext_resource type="FontFile" uid="uid://mi5v1uq78g7o" path="res://Art/XanhMono-Italic.ttf" id="3_i5n2a"]
[node name="TextScreens" type="CanvasLayer"] [node name="TextScreens" type="CanvasLayer"]
layer = 0
script = ExtResource("1_16laq") script = ExtResource("1_16laq")
[node name="Background" type="ColorRect" parent="."] [node name="Background" type="ColorRect" parent="."]
@@ -189,22 +190,3 @@ And yet I have to try.
For in these times of strife, I finally get to [i]matter[/i]." For in these times of strife, I finally get to [i]matter[/i]."
tab_size = 8 tab_size = 8
[node name="SkipContainer" type="CenterContainer" parent="."]
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -400.0
offset_top = -200.0
grow_horizontal = 0
grow_vertical = 0
[node name="SkipButton" type="Button" parent="SkipContainer"]
custom_minimum_size = Vector2(200, 100)
layout_mode = 2
theme_override_font_sizes/font_size = 40
text = "Next"
icon_alignment = 1
vertical_icon_alignment = 0
-1
View File
@@ -19,7 +19,6 @@ func _process(delta: float) -> void:
func _on_new_game_pressed() -> void: func _on_new_game_pressed() -> void:
new_game_pressed.emit() new_game_pressed.emit()
print("Starting New Game...") print("Starting New Game...")
pass # Replace with function body.
func _on_quit_game_pressed(): func _on_quit_game_pressed():
get_tree().quit() get_tree().quit()
+3 -1
View File
@@ -16,7 +16,8 @@ func _ready() -> void:
big_animation.connect("animation_finished", _on_animation_finished) big_animation.connect("animation_finished", _on_animation_finished)
small_animation.connect("animation_finished", _on_animation_finished) small_animation.connect("animation_finished", _on_animation_finished)
func _on_animation_finished(anim_name): func _on_animation_finished(anim_name):
if anim_name == "fade_to_black": if anim_name == "fade_to_black":
fading_finished.emit() fading_finished.emit()
@@ -31,6 +32,7 @@ func _on_animation_finished(anim_name):
#Handles fading transitions
func transition(size): func transition(size):
Globals.is_transitioning = true Globals.is_transitioning = true
+41
View File
@@ -0,0 +1,41 @@
extends CanvasLayer
@onready var next = $UI/SkipContainer/NextButton
signal next_request
signal next_slide
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
next.pressed.connect(_on_next_pressed)
self.connect("next_request", _on_next_request)
#Hiding everything at start
self.hide()
self.get_node("UI/UpperContainer").hide()
self.get_node("UI/SkipContainer").hide()
pass
#Requests next when the Next Button is pressed
func _on_next_pressed():
next_request.emit()
#Requests next when the space key is pressed
func _input(event):
if event is InputEventKey and event.is_action_released("ui_accept"):
next_request.emit()
#Makes sure fading transitions are done before approving a next request
func _on_next_request():
if Globals.is_transitioning == false:
next_slide.emit()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
+63
View File
@@ -0,0 +1,63 @@
[gd_scene load_steps=5 format=3 uid="uid://dy40jygog8t3k"]
[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://mi5v1uq78g7o" path="res://Art/XanhMono-Italic.ttf" id="3_e3v1e"]
[ext_resource type="Theme" uid="uid://dn1n15xwt8ucv" path="res://Art/DialogTheme.tres" id="4_ib3m7"]
[node name="UILayer" type="CanvasLayer"]
layer = 7
script = ExtResource("1_mg12k")
[node name="UI" type="Control" parent="."]
z_index = 12
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="ConfirmationDialog" type="ConfirmationDialog" parent="UI"]
initial_position = 1
size = Vector2i(300, 118)
theme = ExtResource("4_ib3m7")
ok_button_text = "Yes"
cancel_button_text = "No"
[node name="UpperContainer" type="HBoxContainer" parent="UI"]
layout_mode = 0
offset_left = 28.0
offset_top = 63.0
offset_right = 1877.0
offset_bottom = 148.0
[node name="Notebook" type="Button" parent="UI/UpperContainer"]
layout_mode = 2
theme_override_fonts/font = ExtResource("2_cohu5")
theme_override_font_sizes/font_size = 30
text = " Notebook "
[node name="Separator" type="Control" parent="UI/UpperContainer"]
custom_minimum_size = Vector2(20, 0)
layout_mode = 2
[node name="Menu" type="Button" parent="UI/UpperContainer"]
layout_mode = 2
theme_override_fonts/font = ExtResource("2_cohu5")
theme_override_font_sizes/font_size = 30
text = " Menu "
[node name="SkipContainer" type="HBoxContainer" parent="UI"]
layout_mode = 0
offset_left = 1643.0
offset_top = 999.0
offset_right = 1881.0
offset_bottom = 1059.0
[node name="NextButton" type="Button" parent="UI/SkipContainer"]
layout_mode = 2
theme_override_fonts/font = ExtResource("3_e3v1e")
theme_override_font_sizes/font_size = 20
text = " Press Space to Next "