Mercurial > wow > buffalo2
diff ObjectiveInfo.lua @ 0:3dbcad2b387d
initial push
author | Nenue |
---|---|
date | Wed, 30 Mar 2016 02:24:56 -0400 |
parents | |
children | b0447b382f36 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ObjectiveInfo.lua Wed Mar 30 02:24:56 2016 -0400 @@ -0,0 +1,135 @@ +local B = select(2,...).frame +local wipe, pairs, ipairs, min, max, unpack = table.wipe, pairs, ipairs, min, max, unpack +local GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo = GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo +local GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo = GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo +local mod = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame') +local print = B.print('Objectives') + +local Tracker, AutoQuest, Quest, Cheevs = mod.Tracker, mod.AutoQuest, mod.Quest, mod.Cheevs +-------------------------------------------------------------------- +--- Tracker-specific data retrieval functions +-------------------------------------------------------------------- + +Quest.GetNumWatched = function() + return GetNumQuestWatches () +end +Quest.GetInfo = function (self, watchIndex) + print('|cFF00DDFFQuest|r.|cFF0088FFGetInfo(|r'.. tostring(watchIndex)..'|r)') + local questID, title, questLogIndex, numObjectives, requiredMoney, isComplete, + startEvent, isAutoComplete, failureTime, timeElapsed, questType, isTask, isStory, isOnMap, hasLocalPOI = GetQuestWatchInfo(watchIndex) +print(GetQuestWatchInfo(watchIndex)) + if not questID then + return + end + print(self.Info) + self.Info[questID] = self.Info[questID] or {} + + local q = self.Info[questID] + q.watchIndex = watchIndex + q.type = 'Quest' + q.questID = questID + q.title = title + q.questLogIndex = questLogIndex + q.numObjectives = numObjectives + q.requiredMoney = requiredMoney + q.isComplete = isComplete + q.startEvent = startEvent + q.isAutoComplete = isAutoComplete + q.failureTime = failureTime + q.timeElapsed = timeElapsed + q.questType = questType + q.isTask = isTask + q.isStory = isStory + q.isOnMap = isOnMap + q.hasLocalPOI = hasLocalPOI + + --- Start QuestLogEntry calls + ----------------------------------------- + SelectQuestLogEntry(questLogIndex) + q.greenRange = GetQuestGreenRange() + q.isDaily = QuestIsDaily() + q.isWeekly = QuestIsWeekly() + ----------------------------------------- + + --- End QuestLogEntry calls + print(' |cFF0088FF', q.isDaily, q.isWeekly) + + q.isComplete = IsQuestComplete(questID) + q.isBreadCrumb = IsBreadcrumbQuest(questID) + q.isStoryQuest = IsStoryQuest(questID) + q.completionText= GetQuestLogCompletionText(questLogIndex) + q.trackingID = questID + q.superTracked = (questID == GetSuperTrackedQuestID()) -- call directly so artifact data doesn't become an issue + q.numObjectives = GetNumQuestLeaderBoards(questLogIndex) + q.objectives = {} + for i = 1, q.numObjectives do + local text, type, finished = GetQuestLogLeaderBoard(i, questLogIndex) + q.objectives[i] = { + type = type, + text = text, + finished = finished + } + if type == 'event' then + elseif type == 'monster' then + elseif type == 'object' then + elseif type == 'reputation' then + elseif type == 'item' then + end + end + + local link, icon, charges = GetQuestLogSpecialItemInfo(questLogIndex) + local start, duration, enable = GetQuestLogSpecialItemCooldown(questLogIndex) + if link or icon or charges then + q.specialItem = { + link = link, + charges = charges, + icon = icon, + start = start, + duration = duration, + enable = enable, + } + end + + self.LogInfo[questLogIndex] = q + print('|cFF0088FFGetQuestInfo('..questID..')|r', questLogIndex, title) + return q +end + +Cheevs.GetNumWatched = function(self) + Cheevs.trackedCheevs = {GetTrackedAchievements()} + return GetNumTrackedAchievements() +end +Cheevs.GetInfo = function(self, index) + local cheevID = Cheevs.trackedCheevs[index] + local id, name, points, completed, month, day, year, description, flags, icon, rewardText, isGuildAch, wasEarnedByMe, earnedBy = GetAchievementInfo(cheevID) + + print('|cFF00FF00', GetAchievementNumCriteria(cheevID)) + self.Info[cheevID] = {} + local c = self.Info[cheevID] + c.type = 'Cheevs' + c.watchIndex = index + c.cheevID = cheevID + c.title = name + c.points, c.completed, c.month, c.day, c.year, c.description, c.flags, c.icon, c.rewardText, c.isGuildAch, c.wasEarnedByMe, c.earnedBy = + points, completed, month, day, year, description, flags, icon, rewardText, isGuildAch, wasEarnedByMe, earnedBy + c.numObjectives = GetAchievementNumCriteria(cheevID) + c.objectives = {} + for i = 1, c.numObjectives do + local description, type, completed, quantity, requiredQuantity, characterName, flags, assetID, quantityString, criteriaID = GetAchievementCriteriaInfo(cheevID, i) + c.objectives[i] = { + text = description, + type = type, + finished = completed, + quantity = quantity, + requiredQuantity = requiredQuantity, + characterName = characterName, + flags = flags, + assetID = assetID, + quantityString = quantityString, + criteriaID = criteriaID, + } + end + + self.WatchInfo[index] = c + return self.Info[cheevID] +end