Files
Embodiment/Levels/Objects/Chest.gd

41 lines
1.1 KiB
GDScript

extends AnimatedSprite
export(PackedScene) var object_scene: PackedScene = null
var is_player_inside: bool = false
var is_opened: bool = false
var has_key: bool = false
onready var animation_player: AnimationPlayer = get_node("AnimationPlayer")
onready var tween: Tween = get_node("Key/Tween")
func _ready() -> void:
assert(object_scene!=null)
animation_player.play("closed")
$Key/KeySprite.visible = false
func _input(event: InputEvent) -> void:
if is_player_inside and not is_opened:
is_opened = true
animation_player.play("open")
_drop_object()
func _drop_object() -> void:
#print($Key.position)
$Key/KeySprite.visible = true
tween.interpolate_property($Key, "position", Vector2(0,0), Vector2(0, -10), 1.0, Tween.TRANS_QUAD,
Tween.EASE_OUT)
tween.start()
yield(tween, "tween_completed")
$Key/KeySprite.visible = false
func _on_Area2D_player_entered(_player: KinematicBody2D) -> void:
is_player_inside = true
func _on_Area2D_player_exited(_player: KinematicBody2D) -> void:
is_player_inside = false