34 lines
930 B
GDScript
34 lines
930 B
GDScript
extends AnimatedSprite
|
|
|
|
export var object_scene: PackedScene = null
|
|
|
|
var has_key: bool = false
|
|
|
|
|
|
func _ready() -> void:
|
|
assert(object_scene != null)
|
|
$AnimationPlayer.play('closed')
|
|
$Key/KeySprite.visible = false
|
|
return
|
|
|
|
|
|
func _on_area_body_entered(body: Node) -> void:
|
|
if body.is_in_group('player'):
|
|
$Area/CollisionShape2D.set_deferred('disabled', true)
|
|
$AnimationPlayer.play('open')
|
|
_drop_object()
|
|
return
|
|
|
|
|
|
func _drop_object() -> void:
|
|
$Key/KeySprite.visible = true
|
|
if not $Key/Tween.interpolate_property($Key, 'position', Vector2(0,0), Vector2(0, -10), 1.0,
|
|
Tween.TRANS_QUAD, Tween.EASE_OUT):
|
|
print('ERROR: Chest key animation has errors.')
|
|
if not $Key/Tween.start():
|
|
print('ERROR: Chest key animation failed to start.')
|
|
|
|
yield($Key/Tween, 'tween_completed')
|
|
$Key/KeySprite.visible = false
|
|
return
|