extends Interactable

## Example NPC demonstrating state system usage

@export var npc_id: String = "example_npc"
@export var npc_name: String = "Mysterious Stranger"

func _ready() -> void:
	super._ready()
	prompt = "Talk to " + npc_name

func interact(by: Node) -> void:
	super.interact(by)
	_show_dialogue()

func _show_dialogue() -> void:
	var dialogue: String = ""
	
	# Different dialogue based on persistent knowledge
	if StateManager.has_knowledge("time_loop_secret"):
		dialogue = "Ah, you know about the time loop! Impressive."
	
	# Different dialogue based on loop count
	elif StateManager.persistent_state.total_loops > 3:
		dialogue = "You seem... familiar. Have we met before? No, that's impossible..."
		# After 3 loops, NPC starts to remember
		if not StateManager.has_knowledge("npc_remembers"):
			StateManager.add_knowledge("npc_remembers")
	
	# Different dialogue if already talked this loop
	elif StateManager.has_talked_to_npc(npc_id):
		dialogue = "We already spoke this loop. Come back after the reset."
	
	# First time talking this loop
	else:
		dialogue = "Hello! I'm the " + npc_name + ". Strange things happen on this island..."
		StateManager.add_npc_talked(npc_id)
		
		# Give a hint about the time loop
		if StateManager.persistent_state.total_loops == 0:
			dialogue += "\n\nPay attention to the time. Something feels... off."
	
	# Check time-based dialogue
	var time = TimeManager.get_current_time()
	if time.hours >= 17 and time.minutes >= 15:
		dialogue += "\n\n(The stranger looks worried) Time is almost up..."
	
	print(npc_name + ": " + dialogue)
	# In a real implementation, you'd show this in a dialogue UI
	# UIManager.show_dialogue(npc_name, dialogue)
