55 lines
1.5 KiB
GDScript
55 lines
1.5 KiB
GDScript
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
|