funnymemellama/Suit.gd

38 lines
899 B
GDScript3
Raw Permalink Normal View History

2023-10-02 18:15:10 -04:00
extends Area3D
@onready
var _grab_sound: AudioStreamPlayer3D = $GrabSound
@onready
var _song: AudioStreamPlayer = $Song
@onready
var _anim: AnimationPlayer = $AnimationPlayer
2023-10-02 18:15:10 -04:00
var _activated = false
2023-10-02 18:15:10 -04:00
func _ready():
_grab_sound.finished.connect(_on_sound_finished)
_song.finished.connect(_on_sound_finished)
var animation: Animation = _anim.get_animation('fade')
var track = animation.find_track('Song:volume_db', Animation.TrackType.TYPE_BEZIER)
var time = _song.stream.get_length()
animation.length = time
animation.bezier_track_insert_key(track, time, -80, Vector2(-0.25, 0))
2023-10-02 18:15:10 -04:00
func _on_body_entered(body):
if _activated: return
2023-10-02 18:15:10 -04:00
if body.is_in_group('Players'):
_activated = true
2023-10-02 18:15:10 -04:00
hide()
_anim.play('fade')
2023-10-02 18:15:10 -04:00
_grab_sound.play()
_song.play()
2023-10-02 18:15:10 -04:00
func _on_sound_finished():
# Make sure both sounds are done playing
if not _grab_sound.playing and not _song.playing:
2023-10-02 18:15:10 -04:00
queue_free()