extends Node var base: Base var quest: Quest const NO_QUEST = "BASE_TAKE_QUEST_FAILED" const HAS_QUEST = "BASE_TAKE_QUEST_SUCCEED" const QUEST_TYPE = { Quest.Type.Elimination: "BASE_QUEST_ELIMINATION", Quest.Type.Delivery: "BASE_QUEST_DELIVERY" } const RESTRICTIONS = { Quest.Restriction.NoDeaths: "BASE_QUEST_RESTRICTION_NO_DEATHS", Quest.Restriction.NoWeapon: "BASE_QUEST_RESTRICTION_NO_WEAPON", Quest.Restriction.Timer: "BASE_QUEST_RESTRICTION_TIMER" } var has_quest: bool = false var answer: String = "" func _ready(): get_tree().create_timer(0.05).timeout.connect(fetch_quest) func fetch_quest(): base = get_parent().base quest = base.quest make_answer(quest) func make_answer(quest: Quest): has_quest = quest != null if !has_quest: answer = tr(NO_QUEST) return var quest_format = {} match quest.type: Quest.Type.Elimination: quest_format["amount"] = quest.progress_max quest_format["target_class"] = tr(quest.data["target_class"]) Quest.Type.Delivery: quest_format["base_name"] = tr(quest.data["base_name"]) var restrictions = "" for restriction in quest.restrictions: restrictions += tr(RESTRICTIONS[restriction]) + "\n" quest_format["restrictions"] = restrictions var quest_info = tr(QUEST_TYPE[quest.type]).format(quest_format) var final_format = {"quest_info": quest_info} answer = tr(HAS_QUEST).format(final_format)