Weighted Random Selection
This commit is contained in:
@@ -96,11 +96,14 @@ do Globals.console_message.emit("[color=dark_orange]ALLOTED ASSESSMENT TIME ELAP
|
||||
|
||||
|
||||
~ terminate
|
||||
do Globals.color_change.emit("red")
|
||||
if Patient.abnormal == true
|
||||
do Globals.character_label_color_change.emit(Color(1,0,0,1))
|
||||
Fontelyne Dumont: [#abnormal1] I am alone. There is no one for me anymore. No one for me to [color=orange_red]LIVE[/color].
|
||||
do Globals.color_change.emit("red")
|
||||
Fontelyne Dumont: [#abnormal1] I feel so lonely... Helene... I am so sorry...
|
||||
else
|
||||
do Globals.character_label_color_change.emit(Color(0,1,0,1))
|
||||
do Globals.color_change.emit("red")
|
||||
Fontelyne Dumont: [#crying] I'm sorry... Helene... I am so sorry...
|
||||
|
||||
do Globals.clear_patient.emit("terminate")
|
||||
@@ -108,11 +111,14 @@ do Globals.clear_patient.emit("terminate")
|
||||
|
||||
|
||||
~ release
|
||||
do Globals.color_change.emit("green")
|
||||
if Patient.abnormal == true
|
||||
do Globals.character_label_color_change.emit(Color(1,0,0,1))
|
||||
Fontelyne Dumont: [#abnormal1] I am alone. There is no one for me anymore. No one for me to [color=orange_red]LIVE[/color].
|
||||
do Globals.color_change.emit("green")
|
||||
Fontelyne Dumont: [#abnormal1] I feel so lonely... Helene... I am so sorry...
|
||||
else
|
||||
do Globals.character_label_color_change.emit(Color(0,1,0,1))
|
||||
do Globals.color_change.emit("green")
|
||||
Fontelyne Dumont: [#sad] I don't deserve it, but I'll try to live. That's what Hélène would've wanted.
|
||||
Fontelyne Dumont: [#sadsmiling] Thank you. I mean it.
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ clip_contents = false
|
||||
custom_minimum_size = Vector2(0, 30)
|
||||
layout_mode = 2
|
||||
mouse_filter = 1
|
||||
theme_override_colors/default_color = Color(0.784314, 0, 0, 1)
|
||||
theme_override_colors/default_color = Color(1, 0.78431374, 0.19607843, 1)
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_colors/font_shadow_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/shadow_outline_size = 0
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
~ interfloor_1
|
||||
|
||||
do Patient.marker.fill(0)
|
||||
set Patient.dialog_tree = Patient.build_dialog_tree([])
|
||||
|
||||
do Globals.character_label_color_change.emit(Color(0,0.8,1,1))
|
||||
|
||||
Prime Supervisor: Well done, employee. You are showing great promise.
|
||||
Prime Supervisor: Keep in mind however that the first floor is the easiest one.
|
||||
Prime Supervisor: As you go deeper, the patients you encounter will be harder to assess, their expressions of abnormality more... human.
|
||||
Prime Supervisor: Do not get fooled by their inhuman humanity. Sort them accordingly.
|
||||
Prime Supervisor: Do your Duty. For the Republic.
|
||||
|
||||
=> END
|
||||
|
||||
|
||||
|
||||
~ interfloor_2
|
||||
|
||||
do Patient.marker.fill(0)
|
||||
set Patient.dialog_tree = Patient.build_dialog_tree([])
|
||||
|
||||
do Globals.character_label_color_change.emit(Color(0,0.8,1,1))
|
||||
|
||||
WORK_IN_PROGRESS
|
||||
|
||||
=> END
|
||||
|
||||
|
||||
|
||||
~ interfloor_3
|
||||
|
||||
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))
|
||||
|
||||
WORK_IN_PROGRESS
|
||||
|
||||
=> END
|
||||
|
||||
|
||||
|
||||
~ interfloor_4
|
||||
|
||||
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))
|
||||
|
||||
WORK_IN_PROGRESS
|
||||
|
||||
=> END
|
||||
@@ -0,0 +1,16 @@
|
||||
[remap]
|
||||
|
||||
importer="dialogue_manager"
|
||||
importer_version=15
|
||||
type="Resource"
|
||||
uid="uid://srx3wjspnj05"
|
||||
path="res://.godot/imported/interfloor.dialogue-ecc0de3057e85aa179c01b6aba3d2337.tres"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Dialogues/interfloor.dialogue"
|
||||
dest_files=["res://.godot/imported/interfloor.dialogue-ecc0de3057e85aa179c01b6aba3d2337.tres"]
|
||||
|
||||
[params]
|
||||
|
||||
defaults=true
|
||||
+8
-4
@@ -3,9 +3,13 @@
|
||||
[ext_resource type="Script" uid="uid://c6kqjqj6cs4wa" 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://igkl2384rxt1" path="res://text_screens.tscn" id="5_85o5j"]
|
||||
[ext_resource type="PackedScene" uid="uid://dixsxwodxuf0b" path="res://dialogue_screens.tscn" id="6_60wm2"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ucuk0"]
|
||||
metadata/__load_path__ = "res://bedroom.tscn"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_h7sfr"]
|
||||
metadata/__load_path__ = "res://dialogue_screens.tscn"
|
||||
|
||||
[node name="MainHub" type="Control"]
|
||||
layout_mode = 3
|
||||
@@ -17,6 +21,6 @@ grow_vertical = 2
|
||||
script = ExtResource("1_rvfpd")
|
||||
TitleScreen = ExtResource("2_3wmv1")
|
||||
ScreeningDesk = ExtResource("3_whctb")
|
||||
Bedroom = ExtResource("4_4fm57")
|
||||
Bedroom = SubResource("Resource_ucuk0")
|
||||
TextScreens = ExtResource("5_85o5j")
|
||||
DialogueScreens = ExtResource("6_60wm2")
|
||||
DialogueScreens = SubResource("Resource_h7sfr")
|
||||
|
||||
+3
-1
@@ -8,7 +8,8 @@ var diagnoses_quota : int = 1
|
||||
var daily_patient_limit : int = 3
|
||||
var patient_list = ["45", "46", "47", "48", "49", "50", "51"]
|
||||
var patients_seen: Array[String]
|
||||
var patient_id = patient_list.pick_random()
|
||||
var patient_id
|
||||
var interfloor_dialogue = load("res://Dialogues/interfloor.dialogue")
|
||||
var dialogue_intro = load("res://Dialogues/intro.dialogue")
|
||||
var dialogue_recovery = load("res://Dialogues/recovery.dialogue")
|
||||
var directives = "\n[center][font_size=22]INSTRUCTIONS[/font_size][/center]
|
||||
@@ -27,6 +28,7 @@ signal console_message
|
||||
signal response_chosen(DialogueResponse)
|
||||
signal clear_patient
|
||||
signal color_change
|
||||
signal character_label_color_change
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
|
||||
+19
-1
@@ -41,6 +41,8 @@ func _ready() -> void:
|
||||
UI.connect("text_value_changed", self._on_text_value_changed)
|
||||
UI.connect("auto_value_changed", self._on_auto_value_changed)
|
||||
|
||||
Globals.character_label_color_change.connect(self._on_character_label_color_change)
|
||||
|
||||
#Updating Save/Load Slots Information based on Existing Saves
|
||||
update_slots()
|
||||
|
||||
@@ -48,7 +50,16 @@ func _ready() -> void:
|
||||
|
||||
# Starts a new game
|
||||
func _on_new_game_pressed():
|
||||
|
||||
#Setting/Resetting game parameters
|
||||
Globals.day_count = 1
|
||||
Globals.floor_count = -1
|
||||
Globals.patient_count = 1
|
||||
Globals.diagnoses_quota = 1
|
||||
Globals.daily_patient_limit = 3
|
||||
Globals.patient_list = ["45", "46", "47", "48", "49", "50", "51"]
|
||||
Globals.patients_seen.clear()
|
||||
UI.update_journal(-1)
|
||||
# DISABLED FOR NOW SINCE THERE'S NO INTRO ANYMORE
|
||||
#Offering to skip the introduction
|
||||
#var choice_text = "Do you wish to skip the introduction ?"
|
||||
@@ -197,7 +208,7 @@ func _on_main_menu_pressed():
|
||||
UI.get_node("UI/UpperContainer").hide()
|
||||
|
||||
#Going back to main menu
|
||||
var scenes_to_hide = [$ScreeningDesk, $Bedroom, $TextScreens, $TextScreens/Day, $ScreeningDesk.patient_controls, $ScreeningDesk.end_of_day_controls, $ScreeningDesk.patient_texture, $ScreeningDesk.panel_container, $ScreeningDesk.face_zoom] + $ScreeningDesk.margin_container.get_children()
|
||||
var scenes_to_hide = [$ScreeningDesk, $TextScreens, $TextScreens/Day]
|
||||
var scenes_to_show = [$TitleScreen]
|
||||
TransitionScreen.transition("big", scenes_to_hide, scenes_to_show)
|
||||
await TransitionScreen.transition_finished
|
||||
@@ -284,3 +295,10 @@ func _on_auto_value_changed():
|
||||
if is_instance_valid(balloon):
|
||||
#balloon.dialogue_line.time = UI.auto_speed
|
||||
pass
|
||||
|
||||
|
||||
#Changes CharacterLabel color
|
||||
func _on_character_label_color_change(color: Color):
|
||||
|
||||
var label = balloon.get_node("Balloon/Panel/Dialogue/VBoxContainer/CharacterLabel")
|
||||
label.add_theme_color_override("default_color", color)
|
||||
|
||||
+29
-5
@@ -57,7 +57,9 @@ func new_patient():
|
||||
var file_path: String
|
||||
|
||||
#Generating patient_id
|
||||
var patient_id = Globals.patient_list.pick_random()
|
||||
var floor_index = -Globals.floor_count -1
|
||||
print("Floor Index: " + str(floor_index))
|
||||
var patient_id = weighted_random(patient_list[floor_index])
|
||||
Globals.patient_id = patient_id
|
||||
Globals.patient_list.erase(patient_id) #Line to be reenabled when there is more than one patient in the list
|
||||
Globals.patients_seen.append(patient_id)
|
||||
@@ -122,15 +124,15 @@ func sort_patients():
|
||||
var symptom_matched : bool
|
||||
var symptom_list: Array
|
||||
|
||||
for i in range(45,52):
|
||||
for patient_id in Globals.patient_list:
|
||||
patient_symptoms.clear()
|
||||
file_path = "res://Dialogues/Patients/patient_" + str(i) + "_file.cfg"
|
||||
file_path = "res://Dialogues/Patients/patient_" + patient_id + "_file.cfg"
|
||||
config.load(file_path)
|
||||
symptom_list = config.get_value("", "psychiatric_assessment").split("\n", false)
|
||||
patient_symptoms = symptom_list
|
||||
symptom_list = config.get_value("", "abnormal_symptoms").split("\n", false)
|
||||
patient_symptoms.append_array(symptom_list)
|
||||
print("Patient #" + str(i) + " symptom list: " + str(patient_symptoms))
|
||||
print("Patient #" + patient_id + " symptom list: " + str(patient_symptoms))
|
||||
#Goes through the symptoms_arrays from the last to the first,
|
||||
#If a symptom matches with the patient symptoms,
|
||||
#Add that patient to the floors from that floor to the last one
|
||||
@@ -143,9 +145,31 @@ func sort_patients():
|
||||
break
|
||||
if symptom_matched:
|
||||
for k in range(j, symptoms_arrays.size()):
|
||||
patient_list[k].append(str(i))
|
||||
patient_list[k].append({"patient_id": patient_id, "weight": j+1})
|
||||
symptom_matched = false
|
||||
break
|
||||
|
||||
for i in range(len(patient_list)):
|
||||
print("Floor " + str(i) + " possible patients: " + str(patient_list[i]))
|
||||
|
||||
|
||||
#Weighted random selection from an Array
|
||||
func weighted_random(array: Array):
|
||||
|
||||
#Calculating total weight
|
||||
var total_weight : int
|
||||
for item in array:
|
||||
total_weight += item.weight
|
||||
print("Total weight: " + str(total_weight))
|
||||
|
||||
var r = randf() * total_weight
|
||||
print("r :" + str(r))
|
||||
|
||||
var weight_sum : int
|
||||
for item in array:
|
||||
weight_sum += item.weight
|
||||
if weight_sum >= r:
|
||||
print("Patient selected: " + item.patient_id + ", Weight: " + str(item.weight))
|
||||
return item.patient_id
|
||||
return null
|
||||
|
||||
|
||||
+1
-1
@@ -55,4 +55,4 @@ ui_select={
|
||||
|
||||
[internationalization]
|
||||
|
||||
locale/translations_pot_files=PackedStringArray("res://Dialogues/Patients/patient_50.dialogue", "res://Dialogues/Patients/patient_49.dialogue", "res://Dialogues/Patients/patient_48.dialogue", "res://Dialogues/Patients/patient_47.dialogue", "res://Dialogues/Patients/patient_46.dialogue", "res://Dialogues/Patients/patient_45.dialogue", "res://Dialogues/Patients/patient_51.dialogue")
|
||||
locale/translations_pot_files=PackedStringArray("res://Dialogues/Patients/patient_50.dialogue", "res://Dialogues/Patients/patient_49.dialogue", "res://Dialogues/Patients/patient_48.dialogue", "res://Dialogues/Patients/patient_47.dialogue", "res://Dialogues/Patients/patient_46.dialogue", "res://Dialogues/Patients/patient_45.dialogue", "res://Dialogues/Patients/patient_51.dialogue", "res://Dialogues/interfloor.dialogue")
|
||||
|
||||
+8
-2
@@ -10,7 +10,7 @@ extends Control
|
||||
@onready var green_button = $LowerHalf/GreenButton
|
||||
@onready var red_button = $LowerHalf/RedButton
|
||||
@onready var journal = $LowerHalf/Journal/JournalButton
|
||||
@onready var journal_layer = $LowerHalf/JournalLayer
|
||||
@onready var journal_layer = UI.journal_layer
|
||||
@onready var release = $LowerHalf/DecisionScreen/MarginContainer/HBoxContainer/Release
|
||||
@onready var terminate = $LowerHalf/DecisionScreen/MarginContainer/HBoxContainer/Terminate
|
||||
@onready var patient_color: Color
|
||||
@@ -31,7 +31,6 @@ extends Control
|
||||
|
||||
#DialogueAssets
|
||||
@onready var patient_dialogue_resource: Resource
|
||||
@onready var end_of_day_dialogue_resource = load("res://Dialogues/end_of_day.dialogue")
|
||||
@onready var balloon: Node
|
||||
@onready var patient_emotions : Dictionary
|
||||
@onready var message_array: Array[String]
|
||||
@@ -359,9 +358,16 @@ func descend_floor(): #Descends to next floor
|
||||
Globals.diagnoses_quota += 1
|
||||
update_middle_screen(Globals.day_count, Globals.floor_count, accurate_diagnoses, Globals.diagnoses_quota)
|
||||
|
||||
#Updating journal symptoms
|
||||
UI.update_journal(Globals.floor_count)
|
||||
|
||||
#Hiding screen messages
|
||||
computer_screen.hide()
|
||||
console_screen.hide()
|
||||
|
||||
#Interfloor dialogue
|
||||
main.start_balloon("screening", Globals.interfloor_dialogue, "interfloor_" + str(-Globals.floor_count - 1))
|
||||
await DialogueManager.dialogue_ended
|
||||
|
||||
#Setting up new patient
|
||||
new_patient()
|
||||
|
||||
+1
-183
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=47 format=3 uid="uid://chytk2cctjk3x"]
|
||||
[gd_scene load_steps=40 format=3 uid="uid://chytk2cctjk3x"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b3ms0imu0umn8" path="res://screening_desk.gd" id="1_1s7k3"]
|
||||
[ext_resource type="Texture2D" uid="uid://b2epvjeqvmgrs" path="res://Art/Rooms/screening_room/screening_room_glass.png" id="3_nxnrp"]
|
||||
@@ -8,9 +8,7 @@
|
||||
[ext_resource type="Texture2D" uid="uid://4qtc0tkq2wba" path="res://Art/Rooms/screening_room/shutter_top.png" id="6_1rj24"]
|
||||
[ext_resource type="Texture2D" uid="uid://cci0pb12chlps" path="res://Art/Rooms/screening_room/computer.png" id="6_6a8ar"]
|
||||
[ext_resource type="Texture2D" uid="uid://dj1x60fld5400" path="res://Art/Rooms/screening_room/backwall.png" id="6_5772r"]
|
||||
[ext_resource type="Texture2D" uid="uid://c3je4gir1qlot" path="res://Art/BlackScreen.png" id="7_106l6"]
|
||||
[ext_resource type="Texture2D" uid="uid://jychpkygmjib" path="res://Art/Rooms/screening_room/desk.png" id="7_dp545"]
|
||||
[ext_resource type="Texture2D" uid="uid://diln53wxa3oep" path="res://Art/Rooms/screening_room/journal_open.png" id="7_eqiuk"]
|
||||
[ext_resource type="Texture2D" uid="uid://cdbiwtt2w37kr" path="res://Art/Rooms/screening_room/shutter_bottom.png" id="7_feog2"]
|
||||
[ext_resource type="Theme" uid="uid://3k7sqw211ncl" path="res://Art/UI/button_theme.tres" id="8_hxrv4"]
|
||||
[ext_resource type="Texture2D" uid="uid://c3frxq4vyu0pr" path="res://Art/Rooms/screening_room/console_screen.png" id="9_68gp8"]
|
||||
@@ -33,42 +31,6 @@
|
||||
[sub_resource type="Theme" id="Theme_63o5x"]
|
||||
RichTextLabel/fonts/normal_font = ExtResource("14_0pvwy")
|
||||
|
||||
[sub_resource type="Theme" id="Theme_dahej"]
|
||||
default_font = ExtResource("14_0pvwy")
|
||||
RichTextLabel/colors/default_color = Color(0, 0, 0, 1)
|
||||
RichTextLabel/fonts/normal_font = ExtResource("14_0pvwy")
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3lob0"]
|
||||
bg_color = Color(0.843137, 0.843137, 0.843137, 1)
|
||||
border_width_left = 2
|
||||
border_width_top = 2
|
||||
border_width_right = 2
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wj8aa"]
|
||||
bg_color = Color(0.784314, 0.784314, 0.784314, 1)
|
||||
border_width_left = 2
|
||||
border_width_top = 2
|
||||
border_width_right = 2
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5jbc5"]
|
||||
bg_color = Color(0.901961, 0.901961, 0.901961, 1)
|
||||
border_width_left = 2
|
||||
border_width_top = 2
|
||||
border_width_right = 2
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="Theme" id="Theme_gwogn"]
|
||||
Button/colors/font_color = Color(0, 0, 0, 1)
|
||||
Button/fonts/font = ExtResource("14_0pvwy")
|
||||
Button/styles/hover = SubResource("StyleBoxFlat_3lob0")
|
||||
Button/styles/normal = SubResource("StyleBoxFlat_wj8aa")
|
||||
Button/styles/pressed = SubResource("StyleBoxFlat_5jbc5")
|
||||
|
||||
[sub_resource type="Animation" id="Animation_ub1ft"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
@@ -601,150 +563,6 @@ TO GET TO THE NEXT FLOOR"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="JournalLayer" type="CanvasLayer" parent="LowerHalf"]
|
||||
layer = 110
|
||||
|
||||
[node name="JournalOpen" type="Control" parent="LowerHalf/JournalLayer"]
|
||||
z_index = 8
|
||||
layout_mode = 3
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -800.0
|
||||
offset_top = -800.0
|
||||
offset_right = 800.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
theme = SubResource("Theme_dahej")
|
||||
|
||||
[node name="Shader" type="TextureRect" parent="LowerHalf/JournalLayer/JournalOpen"]
|
||||
modulate = Color(1, 1, 1, 0.52549)
|
||||
z_index = 2
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -221.0
|
||||
offset_top = -356.0
|
||||
offset_right = 198.0
|
||||
offset_bottom = 44.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = ExtResource("7_106l6")
|
||||
|
||||
[node name="JournalOpenTexture" type="TextureRect" parent="LowerHalf/JournalLayer/JournalOpen"]
|
||||
z_index = 2
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = ExtResource("7_eqiuk")
|
||||
|
||||
[node name="JournalMargin" type="MarginContainer" parent="LowerHalf/JournalLayer/JournalOpen"]
|
||||
z_index = 2
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_constants/margin_left = 70
|
||||
theme_override_constants/margin_top = 30
|
||||
theme_override_constants/margin_right = 70
|
||||
theme_override_constants/margin_bottom = 50
|
||||
|
||||
[node name="PageArea" type="HBoxContainer" parent="LowerHalf/JournalLayer/JournalOpen/JournalMargin"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 90
|
||||
|
||||
[node name="LeftPage" type="VBoxContainer" parent="LowerHalf/JournalLayer/JournalOpen/JournalMargin/PageArea"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="PageTitle" type="RichTextLabel" parent="LowerHalf/JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"]
|
||||
custom_minimum_size = Vector2(0, 100)
|
||||
layout_mode = 2
|
||||
size_flags_stretch_ratio = 0.1
|
||||
theme_override_font_sizes/normal_font_size = 28
|
||||
bbcode_enabled = true
|
||||
text = "
|
||||
[center]USER'S GUIDE[/center]"
|
||||
|
||||
[node name="Instructions" type="RichTextLabel" parent="LowerHalf/JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"]
|
||||
custom_minimum_size = Vector2(0, 500)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
size_flags_stretch_ratio = 0.0
|
||||
theme_override_constants/line_separation = 20
|
||||
theme_override_font_sizes/normal_font_size = 20
|
||||
bbcode_enabled = true
|
||||
text = "
|
||||
|
||||
|
||||
|
||||
|
||||
THE FOLLOWING SYMPTOMS HAVE BEEN IDENTIFIED AS MARKERS OF ABNORMALITY CONVERSION
|
||||
|
||||
|
||||
IF YOU DETECT ONE THAT WAS NOT ASSESSED IN PRE-SCREENING, [color=red]TERMINATE[/color] THE SUBJECT"
|
||||
|
||||
[node name="CloseManual" type="Button" parent="LowerHalf/JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"]
|
||||
custom_minimum_size = Vector2(200, 60)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
theme = SubResource("Theme_gwogn")
|
||||
text = "Close manual"
|
||||
|
||||
[node name="RightPage" type="VBoxContainer" parent="LowerHalf/JournalLayer/JournalOpen/JournalMargin/PageArea"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Symptoms" type="RichTextLabel" parent="LowerHalf/JournalLayer/JournalOpen/JournalMargin/PageArea/RightPage"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
theme_override_constants/paragraph_separation = 1
|
||||
theme_override_font_sizes/normal_font_size = 20
|
||||
bbcode_enabled = true
|
||||
text = "SUICIDAL IDEATIONS
|
||||
Persistent thoughts about ending one's own life
|
||||
|
||||
PANIC ATTACKS
|
||||
Acute episodes of severe anxiety
|
||||
|
||||
PERSECUTORY DELUSIONS
|
||||
False conviction of being targeted or harmed
|
||||
|
||||
MEGALOMANIAC DELUSIONS
|
||||
False exaggeration of self-importance or power
|
||||
|
||||
MYSTICAL DELUSIONS
|
||||
False certainty of spiritual, divine connection
|
||||
|
||||
MANIA
|
||||
Excessively elevated mood and increased energy
|
||||
|
||||
AUDITORY HALLUCINATIONS
|
||||
False perceptions of external sound
|
||||
|
||||
VISUAL HALLUCINATIONS
|
||||
False perceptions of visual stimuli
|
||||
|
||||
HAPTIC HALLUCINATIONS
|
||||
False perceptions of touch
|
||||
|
||||
CENESTHETIC HALLUCINATIONS
|
||||
False internal bodily sensations
|
||||
|
||||
SELF-MUTILATION
|
||||
Deliberate injury to one's own body
|
||||
|
||||
HETERO-AGRESSIVE BEHAVIOUR
|
||||
Hostility, verbal agression, threats"
|
||||
|
||||
[node name="GreenButton" type="TextureButton" parent="LowerHalf"]
|
||||
z_index = 1
|
||||
layout_mode = 1
|
||||
|
||||
@@ -2,6 +2,8 @@ extends CanvasLayer
|
||||
|
||||
@onready var next = $UI/SkipContainer/NextButton
|
||||
@onready var confirmation_mask = $ConfirmationMask
|
||||
@onready var journal_layer = $JournalLayer
|
||||
@onready var journal_symptoms = $JournalLayer/JournalOpen/JournalMargin/PageArea/RightPage/Symptoms
|
||||
|
||||
#Signals for progressing through slides
|
||||
signal next_request
|
||||
@@ -48,6 +50,26 @@ var resolution_list: Dictionary = {
|
||||
7: Vector2i(1920,1080)
|
||||
}
|
||||
|
||||
#Journal Settings
|
||||
var symptoms_detailed: Array[Array] = [
|
||||
["SUICIDAL IDEATIONS\nPersistent thoughts about ending one's own life",
|
||||
"PERSECUTORY DELUSIONS\nFalse conviction of being targeted or harmed",
|
||||
"MANIA\nExcessively elevated mood and increased energy",
|
||||
"AUDITORY HALLUCINATIONS\nFalse perceptions of external sound"],
|
||||
|
||||
["MEGALOMANIAC DELUSIONS\nFalse exaggeration of self-importance or power",
|
||||
"PANIC ATTACKS\nAcute episodes of severe anxiety"],
|
||||
|
||||
["MYSTICAL DELUSIONS\nFalse certainty of spiritual, divine connection",
|
||||
"CENESTHETIC HALLUCINATIONS\nFalse internal bodily sensations"],
|
||||
|
||||
["HAPTIC HALLUCINATIONS\nFalse perceptions of touch",
|
||||
"SELF-MUTILATION\nDeliberate injury to one's own body"],
|
||||
|
||||
["HETERO-AGRESSIVE BEHAVIOUR\nExcessive hostility, verbal agression, threats",
|
||||
"VISUAL HALLUCINATIONS\nFalse perceptions of visual stimuli"]
|
||||
]
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
|
||||
@@ -83,7 +105,7 @@ func _ready() -> void:
|
||||
$UI/Load/MarginContainer/VBoxContainer/LoadSlot3.pressed.connect(func(): _on_load_slot_pressed(3))
|
||||
$UI/Load/MarginContainer/VBoxContainer/LoadSlot4.pressed.connect(func(): _on_load_slot_pressed(4))
|
||||
|
||||
#Text settings signals
|
||||
#Text settings signals
|
||||
text_slider.value_changed.connect(_on_text_value_changed)
|
||||
auto_slider.value_changed.connect(_on_auto_value_changed)
|
||||
autoplay.pressed.connect(_on_autoplay_pressed)
|
||||
@@ -93,11 +115,11 @@ func _ready() -> void:
|
||||
text_counter.text = "[center]" + str(snapped((text_speed * 1000), 1)) + " ms/letter[/center]"
|
||||
auto_counter.text = "[center]" + str(snapped(auto_speed, 0.01)) + " s delay[/center]"
|
||||
|
||||
#Initializes the auto-advance to false
|
||||
#Initializes the auto-advance to false
|
||||
autoplay.button_pressed = false
|
||||
auto_mask.visible = true
|
||||
|
||||
#Screen settings signals and initialization
|
||||
#Screen settings signals and initialization
|
||||
display_button.item_selected.connect(_on_display_selected)
|
||||
resolution_button.item_selected.connect(_on_resolution_selected)
|
||||
for index in resolution_list:
|
||||
@@ -322,3 +344,12 @@ func _on_resolution_selected(index: int):
|
||||
DisplayServer.window_set_size(resolution_size)
|
||||
await get_tree().process_frame #Waits process_frame to avoid bugs
|
||||
DisplayServer.window_set_position(top_left)
|
||||
|
||||
|
||||
func update_journal(floor_count:int):
|
||||
|
||||
var symptoms_page : String = ""
|
||||
for i in range(-floor_count):
|
||||
for symptom in symptoms_detailed[i]:
|
||||
symptoms_page += "\n\n" + symptom
|
||||
journal_symptoms.text = symptoms_page
|
||||
|
||||
@@ -1,8 +1,46 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://dy40jygog8t3k"]
|
||||
[gd_scene load_steps=14 format=3 uid="uid://dy40jygog8t3k"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://c0q67t6m1i4dl" path="res://ui.gd" id="1_mg12k"]
|
||||
[ext_resource type="FontFile" uid="uid://dv8ppra5tgn1t" path="res://Art/Fonts/PixelatedEleganceRegular-ovyAA.ttf" id="2_vb7na"]
|
||||
[ext_resource type="Texture2D" uid="uid://l7786mlmvet8" path="res://Art/UI/menu_gear.png" id="3_ibj64"]
|
||||
[ext_resource type="Texture2D" uid="uid://c3je4gir1qlot" path="res://Art/BlackScreen.png" id="3_ibotj"]
|
||||
[ext_resource type="Texture2D" uid="uid://diln53wxa3oep" path="res://Art/Rooms/screening_room/journal_open.png" id="4_n5ude"]
|
||||
|
||||
[sub_resource type="Theme" id="Theme_y4yjw"]
|
||||
default_font = ExtResource("2_vb7na")
|
||||
RichTextLabel/colors/default_color = Color(0, 0, 0, 1)
|
||||
RichTextLabel/fonts/normal_font = ExtResource("2_vb7na")
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3lob0"]
|
||||
bg_color = Color(0.843137, 0.843137, 0.843137, 1)
|
||||
border_width_left = 2
|
||||
border_width_top = 2
|
||||
border_width_right = 2
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wj8aa"]
|
||||
bg_color = Color(0.784314, 0.784314, 0.784314, 1)
|
||||
border_width_left = 2
|
||||
border_width_top = 2
|
||||
border_width_right = 2
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5jbc5"]
|
||||
bg_color = Color(0.901961, 0.901961, 0.901961, 1)
|
||||
border_width_left = 2
|
||||
border_width_top = 2
|
||||
border_width_right = 2
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="Theme" id="Theme_waa4j"]
|
||||
Button/colors/font_color = Color(0, 0, 0, 1)
|
||||
Button/fonts/font = ExtResource("2_vb7na")
|
||||
Button/styles/hover = SubResource("StyleBoxFlat_3lob0")
|
||||
Button/styles/normal = SubResource("StyleBoxFlat_wj8aa")
|
||||
Button/styles/pressed = SubResource("StyleBoxFlat_5jbc5")
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fo2i3"]
|
||||
border_width_left = 2
|
||||
@@ -31,6 +69,150 @@ auto_mask = NodePath("UI/Settings/MarginContainer/VBoxContainer/GridContainer/Di
|
||||
display_button = NodePath("UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer/VBoxContainer2/ScreenSettings/VBoxContainer/Display/DisplayButton")
|
||||
resolution_button = NodePath("UI/Settings/MarginContainer/VBoxContainer/GridContainer/ScreenContainer/VBoxContainer2/ScreenSettings/VBoxContainer/Resolution/ResolutionButton")
|
||||
|
||||
[node name="JournalLayer" type="CanvasLayer" parent="."]
|
||||
layer = 110
|
||||
|
||||
[node name="JournalOpen" type="Control" parent="JournalLayer"]
|
||||
z_index = 8
|
||||
layout_mode = 3
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -800.0
|
||||
offset_top = -800.0
|
||||
offset_right = 800.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
theme = SubResource("Theme_y4yjw")
|
||||
|
||||
[node name="Shader" type="TextureRect" parent="JournalLayer/JournalOpen"]
|
||||
modulate = Color(1, 1, 1, 0.52549)
|
||||
z_index = 2
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -221.0
|
||||
offset_top = -356.0
|
||||
offset_right = 198.0
|
||||
offset_bottom = 44.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = ExtResource("3_ibotj")
|
||||
|
||||
[node name="JournalOpenTexture" type="TextureRect" parent="JournalLayer/JournalOpen"]
|
||||
z_index = 2
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = ExtResource("4_n5ude")
|
||||
|
||||
[node name="JournalMargin" type="MarginContainer" parent="JournalLayer/JournalOpen"]
|
||||
z_index = 2
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_constants/margin_left = 70
|
||||
theme_override_constants/margin_top = 30
|
||||
theme_override_constants/margin_right = 70
|
||||
theme_override_constants/margin_bottom = 50
|
||||
|
||||
[node name="PageArea" type="HBoxContainer" parent="JournalLayer/JournalOpen/JournalMargin"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 90
|
||||
|
||||
[node name="LeftPage" type="VBoxContainer" parent="JournalLayer/JournalOpen/JournalMargin/PageArea"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="PageTitle" type="RichTextLabel" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"]
|
||||
custom_minimum_size = Vector2(0, 100)
|
||||
layout_mode = 2
|
||||
size_flags_stretch_ratio = 0.1
|
||||
theme_override_font_sizes/normal_font_size = 28
|
||||
bbcode_enabled = true
|
||||
text = "
|
||||
[center]USER'S GUIDE[/center]"
|
||||
|
||||
[node name="Instructions" type="RichTextLabel" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"]
|
||||
custom_minimum_size = Vector2(0, 500)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
size_flags_stretch_ratio = 0.0
|
||||
theme_override_constants/line_separation = 20
|
||||
theme_override_font_sizes/normal_font_size = 20
|
||||
bbcode_enabled = true
|
||||
text = "
|
||||
|
||||
|
||||
|
||||
|
||||
THE FOLLOWING SYMPTOMS HAVE BEEN IDENTIFIED AS MARKERS OF ABNORMALITY CONVERSION
|
||||
|
||||
|
||||
IF YOU DETECT ONE THAT WAS NOT ASSESSED IN PRE-SCREENING, [color=red]TERMINATE[/color] THE SUBJECT"
|
||||
|
||||
[node name="CloseManual" type="Button" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/LeftPage"]
|
||||
custom_minimum_size = Vector2(200, 60)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
theme = SubResource("Theme_waa4j")
|
||||
text = "Close manual"
|
||||
|
||||
[node name="RightPage" type="VBoxContainer" parent="JournalLayer/JournalOpen/JournalMargin/PageArea"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Symptoms" type="RichTextLabel" parent="JournalLayer/JournalOpen/JournalMargin/PageArea/RightPage"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
theme_override_constants/paragraph_separation = 1
|
||||
theme_override_font_sizes/normal_font_size = 20
|
||||
bbcode_enabled = true
|
||||
text = "SUICIDAL IDEATIONS
|
||||
Persistent thoughts about ending one's own life
|
||||
|
||||
PANIC ATTACKS
|
||||
Acute episodes of severe anxiety
|
||||
|
||||
PERSECUTORY DELUSIONS
|
||||
False conviction of being targeted or harmed
|
||||
|
||||
MEGALOMANIAC DELUSIONS
|
||||
False exaggeration of self-importance or power
|
||||
|
||||
MYSTICAL DELUSIONS
|
||||
False certainty of spiritual, divine connection
|
||||
|
||||
MANIA
|
||||
Excessively elevated mood and increased energy
|
||||
|
||||
AUDITORY HALLUCINATIONS
|
||||
False perceptions of external sound
|
||||
|
||||
VISUAL HALLUCINATIONS
|
||||
False perceptions of visual stimuli
|
||||
|
||||
HAPTIC HALLUCINATIONS
|
||||
False perceptions of touch
|
||||
|
||||
CENESTHETIC HALLUCINATIONS
|
||||
False internal bodily sensations
|
||||
|
||||
SELF-MUTILATION
|
||||
Deliberate injury to one's own body
|
||||
|
||||
HETERO-AGRESSIVE BEHAVIOUR
|
||||
Hostility, verbal agression, threats"
|
||||
|
||||
[node name="UI" type="Control" parent="."]
|
||||
z_index = 12
|
||||
layout_mode = 3
|
||||
@@ -681,6 +863,7 @@ theme_override_font_sizes/font_size = 20
|
||||
text = " Press Space to Next "
|
||||
|
||||
[node name="ConfirmationMask" type="ColorRect" parent="."]
|
||||
visible = false
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
|
||||
Reference in New Issue
Block a user