38 lines
1.1 KiB
Lua
38 lines
1.1 KiB
Lua
require "/scripts/util.lua"
|
|
|
|
function addQuests(questManagerMap, quests)
|
|
for questId, quest in pairs(quests) do
|
|
questManagerMap[questId] = quest
|
|
end
|
|
end
|
|
|
|
function updateQuest(quest, state)
|
|
quest.state = state
|
|
return quest
|
|
end
|
|
|
|
function updateQuests(quests, state)
|
|
return util.map(quests, function (quest)
|
|
local quest = root.loadVersionedJson(quest, "Quest")
|
|
quest = updateQuest(quest, state)
|
|
return root.makeCurrentVersionedJson("Quest", quest)
|
|
end, jobject())
|
|
end
|
|
|
|
function update(data)
|
|
local quests = data.quests
|
|
|
|
quests.quests = jobject()
|
|
|
|
addQuests(quests.quests, updateQuests(quests.activeQuests or jarray(), "Active"))
|
|
addQuests(quests.quests, updateQuests(quests.completedQuests or jarray(), "Complete"))
|
|
addQuests(quests.quests, updateQuests(quests.failedQuests or jarray(), "Failed"))
|
|
addQuests(quests.quests, updateQuests(quests.newQuests or jarray(), "Offer"))
|
|
|
|
jremove(quests, "activeQuests")
|
|
jremove(quests, "completedQuests")
|
|
jremove(quests, "failedQuests")
|
|
jremove(quests, "newQuests")
|
|
|
|
return data
|
|
end
|