extends RoomTemplate signal ini_room @onready var board_trigger: InteractiveSprite = %MindBoard @onready var door_trigger: InteractiveSprite = %DoorTrigger @onready var card_board: CardBoard = %Board @onready var card_picker: CardPicker = %Picker func start_room(): save_game = State.active_save_game save_game.current_room = State.rooms.YOUTH Scenes.completed_sequences = save_game.mementos_complete Scenes.started_sequences = save_game.mementos_complete card_board.initialise_from_save(save_game) $logic/PlayerController.process_mode = Node.PROCESS_MODE_INHERIT ini_room.emit() if not Scenes.is_sequence_repeating(Scenes.id.YOUTH_DRAEVEN): Scenes.start_sequence(Scenes.id.YOUTH_DRAEVEN) State.queue_for_stage(%PlayerController) else: State.pass_stage_to(%PlayerController) %LightAnimation.lights_on() func get_ready(): self.show() $sfx/distant_rain.play() $"sfx/rain on window".play() await get_tree().create_timer(0.1).timeout $logic/UI/board.hide() func _ready(): Scenes.scene_finished.connect(_on_scene_finished) if get_parent() == get_tree().root: get_ready() start_room() card_picker.cards_picked.connect(card_board.populate_board) func pull_save_state(save: SaveGame) -> void: save.board_state = card_board.get_save_dict() save.current_room = State.rooms.YOUTH save.mementos_complete = Scenes.completed_sequences func _on_scene_finished(id: int, _repeat:bool): await get_tree().create_timer(3).timeout save_room()