56 lines
1.3 KiB
GDScript
56 lines
1.3 KiB
GDScript
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:
|
|
super.get_ready()
|
|
|
|
Scenes.scene_finished.connect(_on_scene_finished)
|
|
card_picker.cards_picked.connect(card_board.populate_board)
|
|
save_game = State.save_game
|
|
|
|
%TherapyVoluntaryInteractable.visible = not save_game.subway_burnout
|
|
%TherapyUniInteractable.visible = save_game.subway_burnout
|
|
|
|
card_board.initialise_from_save(save_game)
|
|
card_board.board_completed.connect(func():
|
|
#TODO: hook in ending
|
|
%DoorInteractable.show()
|
|
)
|
|
|
|
|
|
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
|