2024-09-15 17:51:07 +03:00
|
|
|
class_name Grave
|
2024-09-15 23:25:12 +03:00
|
|
|
extends PuzzleElement
|
2024-09-15 17:51:07 +03:00
|
|
|
|
|
|
|
@export var pair: Grave
|
|
|
|
@export var jingle: AudioStream
|
2024-09-15 23:25:12 +03:00
|
|
|
@export var id: int
|
2024-09-15 17:51:07 +03:00
|
|
|
|
|
|
|
@onready var animation_player: AnimationPlayer = $AnimationPlayer
|
|
|
|
@onready var audio_player: AudioStreamPlayer2D = $AudioStreamPlayer2D
|
2024-09-15 23:25:12 +03:00
|
|
|
@onready var manager: GravePuzzle = $"../"
|
2024-09-15 17:51:07 +03:00
|
|
|
|
|
|
|
var is_singing = false
|
|
|
|
var is_finished = false
|
|
|
|
|
|
|
|
func _ready():
|
|
|
|
pass # Replace with function body.
|
|
|
|
|
|
|
|
func _process(delta):
|
|
|
|
pass
|
|
|
|
|
|
|
|
func _physics_process(delta):
|
|
|
|
pass
|
2024-09-15 23:25:12 +03:00
|
|
|
|
2024-09-16 23:25:08 +03:00
|
|
|
func interact(player: Player):
|
2024-09-15 23:25:12 +03:00
|
|
|
manager.activate_grave(self)
|
|
|
|
|
2024-09-15 17:51:07 +03:00
|
|
|
func sing():
|
|
|
|
if is_finished:
|
|
|
|
return
|
|
|
|
|
|
|
|
animation_player.play(&"sing")
|
|
|
|
if !audio_player.is_playing():
|
|
|
|
audio_player.stream = jingle
|
|
|
|
audio_player.play()
|
|
|
|
|
|
|
|
func complete():
|
|
|
|
if is_finished:
|
|
|
|
return
|
|
|
|
|
|
|
|
animation_player.play(&"complete")
|
|
|
|
if !audio_player.is_playing():
|
|
|
|
audio_player.stream = jingle
|
|
|
|
audio_player.play()
|
|
|
|
is_finished = true
|
|
|
|
|
|
|
|
func _on_animation_player_animation_finished(anim_name):
|
|
|
|
if anim_name == &"sing":
|
|
|
|
animation_player.play(&"RESET")
|
|
|
|
is_singing = false
|