Mercurial > wow > buffalo2
view ObjectiveInfo.lua @ 4:18eee961038e
- more action button debug
author | Nenue |
---|---|
date | Thu, 31 Mar 2016 14:28:40 -0400 |
parents | 3397aae1f44d |
children | e9b61fd5f607 |
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.itemButtons = {} Quest.freeButtons = {} Quest.POI = {} Quest.GetNumWatched = function() return GetNumQuestWatches () end Quest.GetInfo = function (self, watchIndex) print('|cFF00DDFFQuest|r.|cFF0088FFGetInfo(|r'.. tostring(watchIndex)..'|r)') local questID, title, questIndex, numObjectives, requiredMoney, isComplete, startEvent, isAutoComplete, failureTime, timeElapsed, questType, isTask, isStory, isOnMap, hasLocalPOI = GetQuestWatchInfo(watchIndex) if not questID then return end 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 = questIndex 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(questIndex) q.greenRange = GetQuestGreenRange() q.isDaily = QuestIsDaily() q.isWeekly = QuestIsWeekly() ----------------------------------------- --- End QuestLogEntry calls q.isComplete = IsQuestComplete(questID) q.isBreadCrumb = IsBreadcrumbQuest(questID) q.isStoryQuest = IsStoryQuest(questID) q.completionText= GetQuestLogCompletionText(questIndex) q.trackingID = questID q.superTracked = (questID == GetSuperTrackedQuestID()) -- call directly so artifact data doesn't become an issue q.numObjectives = GetNumQuestLeaderBoards(questIndex) q.isWatched = IsQuestWatched(questIndex) q.objectives = {} for i = 1, q.numObjectives do local text, type, finished = GetQuestLogLeaderBoard(i, questIndex) 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(questIndex) local start, duration, enable = GetQuestLogSpecialItemCooldown(questIndex) if link or icon or charges then q.specialItem = { questID = questID, questIndex = questIndex, link = link, charges = charges, icon = icon, start = start, duration = duration, enable = enable, } end if QuestHasPOIInfo(questID) then local distance, onContinent = GetDistanceSqToQuest(questIndex) if distance ~= nil and distance > 0 then self.POI[questIndex] = { questIndex = questIndex, questID = questID, distance = distance, onContinent = onContinent } end end self.LogInfo[questIndex] = q print('- logIndex =', questIndex, 'title =', title) return q end Quest.GetClosest = function() local minID local minDist = math.huge for i = 1, Quest.GetNumWatched() do local info = Quest.GetInfo(i) if info.hasLocalPOI then local distance, onContinent = GetDistanceSqToQuest(info.questIndex) end end 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) 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 print('Cheevs.|cFF0088FFGetInfo|r('..index..')', 'obj:', GetAchievementNumCriteria(cheevID), name, description) self.WatchInfo[index] = c return self.Info[cheevID] end