extends Node signal questCompleted var quests = {} var questCompletedPopupScene = preload("res://UI/MenuBar/Quests/QuestCompletedPopup.tscn") func _ready(): initialize_quests() func complete_quest(questName:String): var currentQuest = get_quest_by_name(questName) var questCompletePopup = questCompletedPopupScene.instantiate() currentQuest.complete() award_quest_points(currentQuest) questCompletePopup.set_quest(currentQuest) add_child(questCompletePopup) questCompletePopup.popup_centered() get_tree().get_root().get_node("MainGame/QuestCompleteAudio").play() questCompleted.emit() func award_quest_points(quest): var currentQuestPoints = SaveManager.get_save_value("questPoints", 0) currentQuestPoints += quest.questPointReward SaveManager.set_save_value("questPoints", currentQuestPoints) func is_completed(questName:String): var currentQuest = get_quest_by_name(questName) return currentQuest.is_completed() func get_all_quests(): return quests.values() func get_quest_by_name(questName:String): return quests[questName] func initialize_quests(): var questPaths = [ "res://Quests/Humble/SugarTime.gd", "res://Quests/Humble/PaxBalloon.gd", "res://Quests/Humble/BeesleyJuice.gd", "res://Quests/Humble/BeaverLove.gd", "res://Quests/Moderate/ConstellationOfBaskets.gd", "res://Quests/Moderate/TrialsOfJonald.gd", "res://Quests/Adventurous/LakeOfJuice.gd", "res://Quests/Adventurous/FillingJuiceLake.gd"] for questPath in questPaths: var newQuest = load(questPath).new() quests[newQuest.questName] = newQuest