class_name YouthRoom extends RoomTemplate signal ini_room @onready var board_trigger: InteractiveSprite = %MindBoard @onready var door_trigger: InteractiveSprite = %Door @onready var card_board: CardBoard = %Board @onready var card_picker: CardPicker = %Picker func start_room(): $UI.show() save_game = State.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) card_board.board_completed.connect(func(): save_game.is_childhood_board_complete = true save_room()) $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(): id = State.rooms.YOUTH %UI.hide() self.show() $sfx/distant_rain.play() $"sfx/rain on window".play() await get_tree().process_frame #TODO: this was 0.1s, not sure if needed at all func _ready(): super._ready() Scenes.scene_finished.connect(_on_scene_finished) 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() func prepare_transition(): save_room() $AnimationPlayer.play("conserve_performance") await $AnimationPlayer.animation_finished unload() func unload(): $visuals.queue_free()