frame-of-mind/src/base-environments/volunteer_room/volunteer_room.gd

61 lines
1.4 KiB
GDScript3
Raw Normal View History

extends RoomTemplate
class_name VolunteerRoom
@onready var card_picker: CardPicker = %Picker
@onready var player: PlayerController = %PlayerController
func _ready():
id = State.rooms.ADULTHOOD
super._ready()
func get_ready() -> void:
2026-01-22 00:15:53 +00:00
await super.get_ready()
2026-01-22 00:15:53 +00:00
# Interactions can this way load their correct prompts
get_tree().call_group("interactables", "pull_save_state")
%TherapyVoluntaryInteractable.visible = not save_game.subway_burnout
%TherapyUniInteractable.visible = save_game.subway_burnout
pull_save_state(State.save_game)
2026-01-22 00:15:53 +00:00
card_board.board_completed.connect(func():
#TODO: hook in ending
#%DoorInteractable.show()
pass
)
card_board.closed.connect(save_room)
Scenes.scene_finished.connect(_on_scene_finished)
card_picker.cards_picked.connect(card_board.populate_board)
func start_room():
await super.start_room()
%UI.show()
%PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
# Give player control immediately, then open
Scenes.player_enable.emit(true)
await Main.curtain.open()
func _on_scene_finished(_id: int, _repeat:bool):
await get_tree().create_timer(3).timeout
save_room()
func save_room():
# Update board state before saving
card_board.save_to_resource(save_game)
save_game.mementos_complete = Scenes.completed_sequences
save_game.sequences_enabled = Scenes.enabled_sequences
super.save_room()
func prepare_transition():
pass
func unload():
pass