extends Button class_name QuestEntry signal quest_selected(quest_id: StringName) @onready var title_label: Label = $HBoxContainer/VBoxContainer/TitleLabel @onready var progress_label: Label = $HBoxContainer/VBoxContainer/ProgressLabel @onready var status_icon: Label = $HBoxContainer/StatusIcon const QuestData = preload("uid://bldyeahkrms8n") var _quest_id: StringName = &"" func setup(quest: QuestData, is_completed: bool) -> void: _quest_id = quest.quest_id title_label.text = quest.title if is_completed: progress_label.text = "Terminée" status_icon.text = "✓" status_icon.add_theme_color_override("font_color", Color(0.4, 0.9, 0.4)) else: var total := quest.get_required_objectives().size() var done := 0 for obj in quest.get_required_objectives(): if obj.is_complete(): done += 1 progress_label.text = "%d/%d objectifs" % [done, total] status_icon.text = "▶" if done < total else "✓" status_icon.add_theme_color_override("font_color", Color(0.9, 0.8, 0.4)) pressed.connect(func(): quest_selected.emit(_quest_id))