class_name NPC extends CharacterBody2D @export var visuals: Node2D var target_pos signal npc_left signal ready_to_order var seleced_visual:AnimatedSprite2D var active_order:Array[String] # Audio @export var angry_noise: AudioStreamPlayer @export var happy_noise: AudioStreamPlayer @export var shop_entert_sound: AudioStreamPlayer func _ready() -> void: selced_a_customer() var theke = get_tree().get_first_node_in_group("theke") if theke is Theke: theke.register_customer(self) func selced_a_customer()->void: seleced_visual = visuals.get_children().pick_random() seleced_visual.visible = true seleced_visual.play("run") func set_target_pos(target:Vector2)->void: target_pos = target func walk()->void: var tween = create_tween() tween.tween_property(self, "position", target_pos, 1.5) await tween.finished ## hier wäre der Spiler an der Theke var theke:Theke = get_tree().get_first_node_in_group("theke") theke.register_customer(self) print(" NPC ready to tke order") seleced_visual.play("idle") ## icon für oder aktiviren # löschen des npc über die theke func walk_back() ->void: seleced_visual.play("walk_back") var tween = create_tween() tween.tween_property(self, "position", Vector2.ZERO, 1.5) await tween.finished npc_left.emit() self.queue_free() # kann hier NPC ICON für bestllung anzeigen - func generet_potion_order(size:int)->void: active_order = OrderGenerator.generete_uniqe_order(size)