Cow_Life_Sim_RPG/Quests/QuestManager.gd

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