32 lines
679 B
GDScript
32 lines
679 B
GDScript
class_name QuestMenu extends Panel
|
|
|
|
@export var questList:ItemList
|
|
@export var questName:Label
|
|
|
|
func _ready() -> void:
|
|
hide()
|
|
|
|
# Setup quests
|
|
questList.clear()
|
|
for questKey in QUEST.quests:
|
|
var q = QUEST.quests[questKey]
|
|
questList.add_item(q.questName)
|
|
|
|
# Connect signals
|
|
questList.item_selected.connect(_onQuestSelected)
|
|
|
|
func _onQuestSelected(index:int) -> void:
|
|
setQuest(index)
|
|
pass
|
|
|
|
func setQuest(questKey = null):
|
|
if questKey == null:
|
|
questList.deselect_all()
|
|
return
|
|
|
|
assert(QUEST.quests.has(questKey), "Quest with key %s does not exist" % questKey)
|
|
var quest = QUEST.quests[questKey];
|
|
questList.select(questKey)
|
|
questName.text = quest.questName
|
|
pass
|