extends Control @onready var panel_container = $Background/HBoxContainer/MarginContainer/VBoxContainer/FaceMarginContainer/PanelContainer @onready var margin_container = $Background/HBoxContainer/MarginContainer/VBoxContainer/FaceMarginContainer/PanelContainer/MarginContainer @onready var patient_file = $Background/HBoxContainer/MarginContainer/VBoxContainer/FaceMarginContainer/PanelContainer/MarginContainer/FileContainer/PatientFile @onready var patient_file_title = $Background/HBoxContainer/MarginContainer/VBoxContainer/FaceMarginContainer/PanelContainer/MarginContainer/FileContainer/HBoxContainer/PatientFileTitle @onready var face_zoom = $Background/HBoxContainer/MarginContainer/VBoxContainer/FaceMarginContainer/FaceZoom @onready var alone_controls = $Background/HBoxContainer/MarginContainer/VBoxContainer/ControlsMarginContainer/Alone @onready var patient_controls = $Background/HBoxContainer/MarginContainer/VBoxContainer/ControlsMarginContainer/Patient @onready var patient_texture = $Background/HBoxContainer/Desk/PatientTextureRect @onready var dialogue_resource: Resource @onready var balloon: Node @onready var patient_emotions : Dictionary # Called when the node enters the scene tree for the first time. func _ready() -> void: #Connecting signals alone_controls.get_node("PatientFile").pressed.connect(self._patient_file) patient_controls.get_node("PatientFile").pressed.connect(self._patient_file) alone_controls.get_node("Guidebook").pressed.connect(self._guidebook) patient_controls.get_node("Guidebook").pressed.connect(self._guidebook) alone_controls.get_node("CallNextPatient").pressed.connect(self._call_next_patient) patient_controls.get_node("PatientRecording").pressed.connect(self._patient_recording) patient_controls.get_node("Examine").pressed.connect(self._examine) #Instantiating a custom balloon var Balloon: Resource = preload("res://Dialogues/balloon.tscn") balloon = Balloon.instantiate() var panel = balloon.get_node("Balloon/Panel") get_tree().current_scene.add_child(balloon) balloon.name = "Balloon" panel.size = Vector2(1260, 250) #Hiding everything self.hide() for node in margin_container.get_children(): node.hide() panel_container.hide() face_zoom.hide() patient_controls.hide() patient_texture.hide() func gameplay_loop(patient_id): new_patient(patient_id) func new_patient(patient_id): #Loading Patient Files var file_path: String = "res://Dialogues/Patients/patient_" + String(patient_id) + "_file.txt" print(file_path) var file = FileAccess.open(file_path, FileAccess.READ) var file_content = file.get_as_text() patient_file.text = file_content patient_file_title.text = " PATIENT FILE #" + String(patient_id) file.close() #Loading Patient Texture file_path = "res://Art/Patients/patient_" + String(patient_id) + "/patient_" + String(patient_id) + "_full.png" patient_texture.texture = load(file_path) #Loading Face Emotions var face: Resource var emotion: Dictionary #Neutral file_path = "res://Art/Patients/patient_" + String(patient_id) + "/patient_" + String(patient_id) + "_neutral.png" face = load(file_path) emotion = {"neutral": face} patient_emotions.merge(emotion) #Smiling file_path = "res://Art/Patients/patient_" + String(patient_id) + "/patient_" + String(patient_id) + "_smiling.png" face = load(file_path) emotion = {"smiling": face} patient_emotions.merge(emotion) #Loading Default Face face = patient_emotions["neutral"] face_zoom.texture = face #Loading Dialogue Resource var dialogue_resource_path = "res://Dialogues/Patients/patient_" + String(patient_id) + ".dialogue" dialogue_resource = load(dialogue_resource_path) func _patient_file(): for node in margin_container.get_children(): node.hide() panel_container.show() face_zoom.hide() margin_container.get_node("FileContainer").show() func _guidebook(): for node in margin_container.get_children(): node.hide() panel_container.show() face_zoom.hide() margin_container.get_node("Rules").show() func _call_next_patient(): #Hiding and Showing appropriate scenes #alone_controls.hide() #patient_controls.show() #patient_texture.show() #_examine() var scenes_to_hide = margin_container.get_children() scenes_to_hide.append_array([alone_controls,panel_container]) TransitionScreen.transition("big", scenes_to_hide, [patient_controls,patient_texture,face_zoom]) await TransitionScreen.transition_finished #Starting Dialogue DialogueManager.got_dialogue.connect(_change_emotion) balloon.start(dialogue_resource, "start") func _patient_recording(): for node in margin_container.get_children(): node.hide() panel_container.show() face_zoom.hide() margin_container.get_node("RecordingContainer").show() func _examine(): for node in margin_container.get_children(): node.hide() panel_container.hide() face_zoom.show() func _change_emotion(dialogue_line) -> void: var line_tag = dialogue_line.tags var new_emotion if line_tag.is_empty() == false: new_emotion = line_tag[0] print("Emotion changed to ", new_emotion) face_zoom.texture = patient_emotions[new_emotion] pass # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass