forked from moyin/whale-town-front
30 lines
726 B
GDScript
30 lines
726 B
GDScript
extends CharacterBody2D
|
||
|
||
signal interaction_happened(text)
|
||
|
||
@export var npc_name: String = "NPC"
|
||
@export var dialogue: String = "欢迎来到WhaleTown,我是镇长范鲸鱼"
|
||
|
||
func _ready():
|
||
$Sprite2D.texture = preload("res://assets/characters/npc_286_241.png")
|
||
$Sprite2D.hframes = 4
|
||
$Sprite2D.vframes = 4
|
||
|
||
# Start Idle Animation
|
||
if has_node("AnimationPlayer"):
|
||
$AnimationPlayer.play("idle")
|
||
|
||
# Ensure interaction layer
|
||
collision_layer = 3 # Layer 1 & 2 (Blocking)
|
||
collision_mask = 3
|
||
|
||
func interact():
|
||
show_bubble(dialogue)
|
||
interaction_happened.emit(dialogue)
|
||
return null
|
||
|
||
func show_bubble(text):
|
||
var bubble = preload("res://scenes/ui/ChatBubble.tscn").instantiate()
|
||
add_child(bubble)
|
||
bubble.set_text(text)
|