class_name QuestView extends Panel

const questor_template = preload("res://templates/questor_sprite.tscn")

@onready var questorSprite : QuestorSprite
@onready var setting = $Setting
var quest : Quest
@export var base_speed : float

func setup(qst : Quest) -> void:
	quest = qst
	quest.questview = self
	questorSprite = questor_template.instantiate()
	questorSprite.setup(quest.questor)
	add_child(questorSprite)
	questorSprite.global_position = $QuestorPosition.global_position
	questorSprite.reset_position = questorSprite.position
	for child in %Layers.get_children():
		if child is Parallax2D:
			child.autoscroll.x = -base_speed * child.scroll_scale.x


func set_questor_animation(anim_name : String) -> void:
	questorSprite.set_animation(anim_name)

func set_enemy_animation(enemy : Enemy, anim_name : String) -> void:
	enemy.set_animation(anim_name)

func place_enemy(enemy : Enemy, reset : bool = false) -> void:
	add_child(enemy)
	enemy.global_position = $EnemyPosition.global_position
	enemy.reset_position = enemy.position

func pause_setting() -> void:
	setting.process_mode = Node.PROCESS_MODE_DISABLED

func unpause_setting() -> void:
	setting.process_mode = Node.PROCESS_MODE_INHERIT

func show_quest_complete() -> void:
	%QuestComplete.visible = true
	set_questor_animation("idle")
	setting.process_mode = Node.PROCESS_MODE_DISABLED
