Files
imnotsick/Scenes/screening_desk/journal_layer.gd
T
2026-03-11 23:17:25 +01:00

95 lines
3.1 KiB
GDScript

extends CanvasLayer
@onready var journal_symptoms = $Boundaries/VBoxContainer/Journal/MarginContainer/Symptoms/RightPage/Symptoms
@onready var bookmarks = $Boundaries/VBoxContainer/Bookmarks
@onready var journal = $Boundaries/VBoxContainer/Journal
#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",
"UNNATURAL BEHAVIOUR\nSigns or marks of non-human nature",
"AUDITORY HALLUCINATIONS\nFalse perceptions of external sound"],
["MEGALOMANIAC DELUSIONS\nFalse exaggeration of self-importance or power",
"SOMATIC HALLUCINATIONS\nFalse sensations, from inside the body or on the skin"],
["MYSTICAL DELUSIONS\nFalse certainty of spiritual, divine connection",
"MANIA\nExcessively elevated mood and increased energy"],
["CHEMOSENSORY HALLUCINATIONS\nFalse perceptions of smell or taste",
"SELF-MUTILATION\nDeliberate self-injury"],
["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:
#Connecting signals
$Boundaries/VBoxContainer/Journal/MarginContainer/Rules/LeftPage/CloseManual.pressed.connect(self._on_close_manual_pressed)
$Boundaries/VBoxContainer/Journal/MarginContainer/Symptoms/LeftPage/CloseManual.pressed.connect(self._on_close_manual_pressed)
$Boundaries/VBoxContainer/Journal/MarginContainer/Entities/LeftPage/CloseManual.pressed.connect(self._on_close_manual_pressed)
bookmarks.rules.pressed.connect(self._on_tab_rules_pressed)
bookmarks.symptoms.pressed.connect(self._on_tab_symptoms_pressed)
bookmarks.entities.pressed.connect(self._on_tab_entities_pressed)
hide() #Hiding at start
func _on_close_manual_pressed():
hide()
func _on_journal_pressed():
show()
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
#Resets to initial state
func reset():
hide()
#Shows the rules tab
func _on_tab_rules_pressed():
tab_switch(bookmarks.rules, journal.rules)
#Shows the symptoms tab
func _on_tab_symptoms_pressed():
tab_switch(bookmarks.symptoms, journal.symptoms)
#Shows the entities tab
func _on_tab_entities_pressed():
tab_switch(bookmarks.entities, journal.entities)
#Shows the correct screen according to the pressed tab
func tab_switch(pressed_tab, tab_screen):
#Highlights pressed tab and unpress the others
for tab in [bookmarks.rules, bookmarks.symptoms, bookmarks.entities]:
if tab == pressed_tab:
pressed_tab.set_pressed(true)
pressed_tab.set_mouse_filter(Control.MOUSE_FILTER_IGNORE)
else:
tab.set_pressed(false)
tab.set_mouse_filter(Control.MOUSE_FILTER_STOP)
#Showing desired screen and hiding the others
for screen in [journal.rules, journal.symptoms, journal.entities]:
if screen == tab_screen:
screen.show()
else:
screen.hide()