Files
imnotsick/Scenes/screening_desk/computer.gd
T
2026-08-16 01:06:53 +02:00

83 lines
2.6 KiB
GDScript

extends Control
@onready var tab_patient_file = $Margin/ComputerScreen/Tabs/PatientFile
@onready var tab_statistics = $Margin/ComputerScreen/Tabs/Statistics
@onready var tab_recording = $Margin/ComputerScreen/Tabs/Recording
@onready var patient_file = $Margin/ComputerScreen/ComputerTabs/FileContainer/PatientFile
@onready var statistics = $Margin/ComputerScreen/ComputerTabs/Statistics
@onready var recording = $Margin/ComputerScreen/ComputerTabs/Recording
var tab_list
var screen_list
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
tab_list = [tab_patient_file, tab_statistics, tab_recording]
screen_list = [patient_file, statistics, recording]
#Connecting signals
tab_patient_file.pressed.connect(self._on_tab_patient_file_pressed)
tab_statistics.pressed.connect(self._on_tab_statistics_pressed)
tab_recording.pressed.connect(self._on_tab_recording_pressed)
Globals.response_chosen.connect(self._on_response_chosen)
#Shows the patient file tab
func _on_tab_patient_file_pressed():
tab_switch(tab_patient_file, patient_file)
#Shows the statistics tab
func _on_tab_statistics_pressed():
tab_switch(tab_statistics, statistics)
#Shows the recording tab
func _on_tab_recording_pressed():
tab_switch(tab_recording, recording)
#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 tab_list:
tab.set_pressed(false)
tab.set_mouse_filter(Control.MOUSE_FILTER_STOP)
pressed_tab.set_pressed(true)
pressed_tab.set_mouse_filter(Control.MOUSE_FILTER_IGNORE)
#Showing desired screen and hiding the others
for node in screen_list:
node.hide()
tab_screen.show()
func _recording_text(dialogue_line): #Records the dialogues
recording.append_text("\n\n")
recording.append_text("[color=red]" + dialogue_line.character + "[/color]" + "\n")
recording.append_text(dialogue_line.text)
func _on_response_chosen(response): #Adds protagonist responses to the recording tab
recording.append_text("\n\n")
recording.append_text("[color=green]You[/color]" + "\n")
recording.append_text(response.text)
#Updates the statistics tab
func update_statistics(accurate_diagnoses, misdiagnoses):
var accurate_diagnoses_line = "ACCURATE DIAGNOSES : " + Globals.colorize(str(accurate_diagnoses), "green")
var misdiagnoses_line = "MISDIAGNOSES : " + Globals.colorize(str(misdiagnoses), "red")
statistics.text = accurate_diagnoses_line + "\n\n" + misdiagnoses_line
#Resets to initial state
func reset():
update_statistics(Globals.accurate_diagnoses, Globals.misdiagnoses)
patient_file.text = Globals.default_patient_file
recording.text = ""