Mercurial > wow > buffalo2
view ObjectiveInfo.lua @ 0:3dbcad2b387d
initial push
author | Nenue |
---|---|
date | Wed, 30 Mar 2016 02:24:56 -0400 |
parents | |
children | b0447b382f36 |
line wrap: on
line source
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