43 lines
1.1 KiB
GDScript
43 lines
1.1 KiB
GDScript
extends AbstractLevel
|
|
|
|
|
|
@onready var cutscene_haze : Polygon2D = $%CutsceneHaze
|
|
@onready var cutscene_haze_timer : Timer = $Cutscene/HazeTimer
|
|
|
|
@onready var animation_player : AnimationPlayer = $AnimationPlayer
|
|
@onready var cutscene_camera : Camera2D = $Cutscene/Camera2D
|
|
|
|
@onready var cutscene_room_center : Vector2 = $Cutscene/RoomCenter.position
|
|
|
|
|
|
func _ready() -> void:
|
|
super._ready()
|
|
animation_player.play("hide_cutscene_elements")
|
|
|
|
|
|
func _on_level_end_entered(body: Node2D) -> void:
|
|
if body is Player:
|
|
_play_cutscene()
|
|
|
|
|
|
func _play_cutscene() -> void:
|
|
player.queue_free()
|
|
cutscene_camera.enabled = true
|
|
cutscene_camera.make_current()
|
|
animation_player.play("final_cutscene")
|
|
|
|
|
|
func _show_cutscene_haze(time: float) -> void:
|
|
SoundManager.play_sfx_stream(SoundManager.sfx_stream_haze, cutscene_room_center)
|
|
cutscene_haze.show()
|
|
cutscene_haze_timer.start(time)
|
|
|
|
|
|
func _on_haze_timer_timeout() -> void:
|
|
cutscene_haze.hide()
|
|
|
|
|
|
func _on_animation_player_animation_finished(anim_name: StringName) -> void:
|
|
if anim_name == "final_cutscene":
|
|
_complete_level(cutscene_room_center)
|