xiandie/scene/entity/npc.gd

32 lines
729 B
GDScript

extends AnimatedSprite2D
@export var dialogs := []
@onready var speaking_animation = %SpeakingAnimationPlayer
@onready var speaking_sign = %SpeakingSign2D as Node2D
@onready var sign_mark = %Sign as Sign
@onready var area2d = %Area2D as Area2D
var dialog_played := false
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
area2d.body_entered.connect(_reset)
area2d.body_exited.connect(_on_cancel)
sign_mark.interacted.connect(_on_interacted)
sign_mark.cancel.connect(_on_cancel)
func _on_interacted() -> void:
%Sfx.play()
print("npc interacted")
func _on_cancel(_body = null):
speaking_animation.play("RESET")
func _reset(_body = null):
speaking_animation.play("speaking")