frame-of-mind/src/base-environments/youth_room/room_handle.gd

62 lines
1.9 KiB
GDScript3
Raw Normal View History

extends RoomTemplate
signal ini_room
@onready var mask_memento: Collectable_Ui = %MaskMemento.ui
@onready var clothes_memento: Collectable_Ui = %ClothesMemento.ui
@onready var comic_memento: Collectable_Ui = %ComicMemento.ui
@onready var ceiling_memento: Collectable_Ui = %CeilingMemento.ui
@onready var board_trigger: InteractiveSprite = %MindBoard
@onready var door_trigger: InteractiveSprite = %DoorTrigger
@onready var card_board: CardBoard = %Board
@onready var card_picker: CardPicker = %Picker
2024-10-18 16:10:51 +00:00
func start_room():
save_game = State.active_save_game
2024-09-15 09:30:31 +00:00
# Setting Memento user interface elemnts as collected based on the savegame.
mask_memento.collected = save_game.mementos_complete && 1 >> Scenes.id.YOUTH_CHILDHOOD > 0
clothes_memento.collected = save_game.mementos_complete && 1 >> Scenes.id.YOUTH_JUI_JUTSU > 0
comic_memento.collected = save_game.mementos_complete && 1 >> Scenes.id.YOUTH_VOICE_TRAINING > 0
ceiling_memento.collected = save_game.mementos_complete && 1 >> Scenes.id.YOUTH_DRAEVEN > 0
$logic/PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
ini_room.emit()
2025-02-06 17:55:05 +00:00
Scenes.start_sequence(Scenes.id.YOUTH_DRAEVEN)
State.queue_for_stage(%PlayerController)
2023-07-19 20:43:00 +00:00
2023-12-02 16:37:42 +00:00
2023-07-19 20:43:00 +00:00
func get_ready():
2024-09-15 09:30:31 +00:00
self.show()
$sfx/distant_rain.play()
$"sfx/rain on window".play()
await get_tree().create_timer(0.1).timeout
$logic/UI/board.hide()
2023-12-02 16:37:42 +00:00
func _ready():
2025-02-06 17:55:05 +00:00
Scenes.scene_finished.connect(_on_scene_finished)
2024-09-15 09:30:31 +00:00
if get_parent() == get_tree().root:
get_ready()
2024-10-18 16:10:51 +00:00
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()
2025-02-06 17:55:05 +00:00
func _on_scene_finished(id: int, _repeat:bool):
save_game.mementos_complete &= 1 << id
save_room()
var fixed := false
func hotfix(discard):
print("meep")
if not fixed:
await get_tree().create_timer(0.1).timeout
State.take_stage($logic/PlayerController, true)
fixed = true
dnd = false
2025-02-24 15:14:53 +00:00
var dnd: bool