173 lines
5.9 KiB
GDScript
173 lines
5.9 KiB
GDScript
extends RoomTemplate
|
|
|
|
@export var all_stations: Dictionary[Station.id, Station]
|
|
@export var all_lines: Dictionary[TrainLine.id, TrainLine]
|
|
|
|
func _ready() -> void:
|
|
super._ready()
|
|
id = State.rooms.TRANSITION
|
|
|
|
func start_room():
|
|
super.start_room()
|
|
|
|
%station_ministry.leave_room.connect(func():
|
|
proceed.emit(Main.adulthood_room_path))
|
|
|
|
# Give player control immediately, then open
|
|
Scenes.player_enable.emit(true)
|
|
|
|
await Main.curtain.open()
|
|
|
|
|
|
func pull_save_state(save: SaveGame) -> void:
|
|
#FIXME
|
|
save.sequences_enabled = Scenes.enabled_sequences
|
|
save.current_room = State.rooms.ADULTHOOD
|
|
save_game = save
|
|
|
|
# Call parent to restore player position
|
|
super.pull_save_state(save)
|
|
|
|
## left here for reference... the ~35 lines of code above should be enoough
|
|
#var left_first_station: bool = false
|
|
#func on_first_station() -> void:
|
|
# return
|
|
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_DND
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# %ShedulePlayer_R.play("train_arriving")
|
|
# await get_tree().create_timer(12.0).timeout
|
|
# if left_first_station: return
|
|
# %ShedulePlayer_R.play("train_leaving")
|
|
# await get_tree().create_timer(3.0).timeout
|
|
# %RightLabel.text = "do not board"
|
|
# await get_tree().create_timer(6.0).timeout
|
|
# %ShedulePlayer_L.play("train_arriving")
|
|
#
|
|
#var on_second_platform: bool = false
|
|
#func on_first_transition(_is_left: bool = false):
|
|
# %StationPlayer.play("first_transition")
|
|
# await get_tree().create_timer(1.0).timeout
|
|
# on_second_platform = true
|
|
#
|
|
#func on_second_transition():
|
|
# %StationPlayer.play("second_transition")
|
|
#
|
|
#func on_third_transition():
|
|
# %StationPlayer.play("third_transition")
|
|
#
|
|
#func on_left_train_enter(_body) -> void:
|
|
# if not left_first_station:
|
|
# left_first_station = true
|
|
# await get_tree().create_timer(2.0).timeout
|
|
# %Train2.get_child(0).door_open = false
|
|
# on_first_transition(true)
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_VOLUNTARY
|
|
# %SubwayMap.current_station = Scenes.id.ADULT_VOLUNTARY
|
|
# %RightLabel.text = "U3 Gesundquell \n via Rosenthal Hospital"
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_AUTISM
|
|
# %SubwayMap.current_station = Scenes.id.ADULT_AUTISM
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# %Train2.get_child(0).door_open = true
|
|
#
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# if not changeover:
|
|
# %Train2.get_child(0).door_open = false
|
|
# on_second_transition()
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_SELF_ADVOCACY
|
|
# %SubwayMap.current_station = Scenes.id.ADULT_SELF_ADVOCACY
|
|
# %RightLabel.text = "do not board"
|
|
# %LeftLabel.text = "do not board"
|
|
# on_final = true
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# %Train2.get_child(0).door_open = true
|
|
# else:
|
|
# %ShedulePlayer_L.play("train_leaving")
|
|
# %LeftLabel.text = "do not board"
|
|
# return
|
|
# if changeover:
|
|
# %ShedulePlayer_R.play("train_leaving")
|
|
# await get_tree().create_timer(2.0).timeout
|
|
# %Train2.get_child(0).door_open = false
|
|
# on_second_transition()
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# save_game.seen.append(str(Scenes.id.ADULT_THERAPY_UNI))
|
|
# %SubwayMap.current_station = Scenes.id.ADULT_THERAPY_UNI
|
|
# %RightLabel.text = "do not board"
|
|
# %LeftLabel.text = "do not board"
|
|
# on_final = true
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# %Train2.get_child(0).door_open = true
|
|
#
|
|
#var on_final: bool = false:
|
|
# set(final):
|
|
# #FIXME: this needs to be a proper sequence!
|
|
# on_final = final
|
|
# await get_tree().create_timer(0.5).timeout
|
|
# if final: prepare_transition()
|
|
#var on_direct_path: bool = false
|
|
#func on_right_train_enter(_body) -> void:
|
|
# if not left_first_station:
|
|
# on_direct_path = true
|
|
# %Train.get_child(0).door_open = false
|
|
# await get_tree().create_timer(2.0).timeout
|
|
# left_first_station = true
|
|
# on_first_transition(false)
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_EATING
|
|
# %SubwayMap.current_station = Scenes.id.ADULT_EATING
|
|
# %LeftLabel.text = "U8 Gesundquell \n via Rosenthal Hospital"
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_SELF_ADVOCACY
|
|
# %SubwayMap.current_station = Scenes.id.ADULT_SELF_ADVOCACY
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# %Train.get_child(0).door_open = true
|
|
#
|
|
# await get_tree().create_timer(5.0).timeout
|
|
#
|
|
# if not changeover:
|
|
# %Train.get_child(0).door_open = false
|
|
# on_second_transition()
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_BURNOUT
|
|
# %SubwayMap.current_station = Scenes.id.ADULT_BURNOUT
|
|
# %RightLabel.text = "do not board"
|
|
# %LeftLabel.text = "do not board"
|
|
# on_final = true
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# %Train.get_child(0).door_open = true
|
|
# else:
|
|
# %ShedulePlayer_R.play("train_leaving")
|
|
# %RightLabel.text = "do not board"
|
|
# return
|
|
# if changeover:
|
|
# on_second_transition()
|
|
# if on_direct_path: %ShedulePlayer_L.play("train_leaving")
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# Scenes.enabled_sequences += 1 << Scenes.id.ADULT_AUTISM
|
|
# %SubwayMap.current_station = Scenes.id.ADULT_AUTISM
|
|
# await get_tree().create_timer(2.0).timeout
|
|
# %Train2.get_child(0).door_open = false
|
|
# %RightLabel.text = "do not board"
|
|
# %LeftLabel.text = "do not board"
|
|
# on_final = true
|
|
# await get_tree().create_timer(5.0).timeout
|
|
# %Train.get_child(0).door_open = true
|
|
#
|
|
#var changeover: bool = false
|
|
#func on_left_train_exit(_body):
|
|
# if on_second_platform and not on_final:
|
|
# changeover = true
|
|
# %ShedulePlayer_R.play("train_arriving")
|
|
#
|
|
#func on_right_train_exit(_body):
|
|
# if on_second_platform and not on_final:
|
|
# changeover = true
|
|
# %ShedulePlayer_L.play("train_arriving")
|
|
# await get_tree().create_timer(10).timeout
|
|
# %RightLabel.text = "U1 weissnicht \n via Saint-Exupery Sq."
|
|
# await get_tree().create_timer(5).timeout
|
|
# %ShedulePlayer_R.play("train_arriving")
|