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

79 lines
2.0 KiB
GDScript3
Raw Normal View History

extends AnimationPlayer
var has_stage
var is_repeating = false
func _ready() -> void:
Scenes.scene_finished.connect(scene_finished)
# FIXME: this needs to be made prettier.
$draven.finished.connect(on_draeven_done)
$childhood.finished.connect(on_childhood_done)
$JuiJutsu.finished.connect(on_jui_jutsu_done)
$voice_training.finished.connect(on_voice_training_done)
$draven.intro.connect(try_intro)
Scenes.sign_up_for_sequence(play_scene, Scenes.id.YOUTH_DRAEVEN, 1)
Scenes.sign_up_for_sequence(play_scene, Scenes.id.YOUTH_CHILDHOOD, 0)
Scenes.sign_up_for_sequence(play_scene, Scenes.id.YOUTH_VOICE_TRAINING, 1)
Scenes.sign_up_for_sequence(play_scene, Scenes.id.YOUTH_JUI_JUTSU, 0)
func start_soundtrack():
$Moving.play(70)
$Childhood.play(70)
$VoiceTraining.play(70)
func play_scene(id: int, repeat = false):
get_tree().call_group("interactables", "collapse")
is_repeating = repeat
Input.mouse_mode = Input.MOUSE_MODE_HIDDEN
match id:
Scenes.id.YOUTH_CHILDHOOD:
play("childhood_music")
$childhood.play()
Scenes.id.YOUTH_VOICE_TRAINING:
$voice_training.play()
play("voice_music")
Scenes.id.YOUTH_JUI_JUTSU:
play("jui_jutsu_music")
$JuiJutsu.play()
Scenes.id.YOUTH_DRAEVEN:
play("draeven")
$draven.play()
func on_childhood_done():
Scenes.continue_sequence(self)
$childhood.hide()
func on_voice_training_done():
Scenes.continue_sequence(self)
$"voice_training".hide()
func on_jui_jutsu_done():
Scenes.continue_sequence(self)
$JuiJutsu.hide()
if $JuiJutsu.was_skipped:
play("intro")
func on_draeven_done():
Scenes.continue_sequence(self)
await $draven.finished
$draven.hide()
func try_intro():
if $draven.was_skipped:
play("intro")
func scene_finished(id: Scenes.id, _repeat: bool):
match id:
Scenes.id.YOUTH_CHILDHOOD:
play_backwards("childhood_music")
Scenes.id.YOUTH_VOICE_TRAINING:
play_backwards("voice_music")
queue("RESET")
func play(anin_name: StringName = "", a: float = -1, b: float = 1, c: bool = false) -> void:
print_debug("anim player accessed!")
super.play(anin_name, a, b, c)