Mercurial > wow > buffalo2
comparison ObjectiveInfo.lua @ 0:3dbcad2b387d
initial push
| author | Nenue |
|---|---|
| date | Wed, 30 Mar 2016 02:24:56 -0400 |
| parents | |
| children | b0447b382f36 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:3dbcad2b387d |
|---|---|
| 1 local B = select(2,...).frame | |
| 2 local wipe, pairs, ipairs, min, max, unpack = table.wipe, pairs, ipairs, min, max, unpack | |
| 3 local GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo = GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo | |
| 4 local GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo = GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo | |
| 5 local mod = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame') | |
| 6 local print = B.print('Objectives') | |
| 7 | |
| 8 local Tracker, AutoQuest, Quest, Cheevs = mod.Tracker, mod.AutoQuest, mod.Quest, mod.Cheevs | |
| 9 -------------------------------------------------------------------- | |
| 10 --- Tracker-specific data retrieval functions | |
| 11 -------------------------------------------------------------------- | |
| 12 | |
| 13 Quest.GetNumWatched = function() | |
| 14 return GetNumQuestWatches () | |
| 15 end | |
| 16 Quest.GetInfo = function (self, watchIndex) | |
| 17 print('|cFF00DDFFQuest|r.|cFF0088FFGetInfo(|r'.. tostring(watchIndex)..'|r)') | |
| 18 local questID, title, questLogIndex, numObjectives, requiredMoney, isComplete, | |
| 19 startEvent, isAutoComplete, failureTime, timeElapsed, questType, isTask, isStory, isOnMap, hasLocalPOI = GetQuestWatchInfo(watchIndex) | |
| 20 print(GetQuestWatchInfo(watchIndex)) | |
| 21 if not questID then | |
| 22 return | |
| 23 end | |
| 24 print(self.Info) | |
| 25 self.Info[questID] = self.Info[questID] or {} | |
| 26 | |
| 27 local q = self.Info[questID] | |
| 28 q.watchIndex = watchIndex | |
| 29 q.type = 'Quest' | |
| 30 q.questID = questID | |
| 31 q.title = title | |
| 32 q.questLogIndex = questLogIndex | |
| 33 q.numObjectives = numObjectives | |
| 34 q.requiredMoney = requiredMoney | |
| 35 q.isComplete = isComplete | |
| 36 q.startEvent = startEvent | |
| 37 q.isAutoComplete = isAutoComplete | |
| 38 q.failureTime = failureTime | |
| 39 q.timeElapsed = timeElapsed | |
| 40 q.questType = questType | |
| 41 q.isTask = isTask | |
| 42 q.isStory = isStory | |
| 43 q.isOnMap = isOnMap | |
| 44 q.hasLocalPOI = hasLocalPOI | |
| 45 | |
| 46 --- Start QuestLogEntry calls | |
| 47 ----------------------------------------- | |
| 48 SelectQuestLogEntry(questLogIndex) | |
| 49 q.greenRange = GetQuestGreenRange() | |
| 50 q.isDaily = QuestIsDaily() | |
| 51 q.isWeekly = QuestIsWeekly() | |
| 52 ----------------------------------------- | |
| 53 | |
| 54 --- End QuestLogEntry calls | |
| 55 print(' |cFF0088FF', q.isDaily, q.isWeekly) | |
| 56 | |
| 57 q.isComplete = IsQuestComplete(questID) | |
| 58 q.isBreadCrumb = IsBreadcrumbQuest(questID) | |
| 59 q.isStoryQuest = IsStoryQuest(questID) | |
| 60 q.completionText= GetQuestLogCompletionText(questLogIndex) | |
| 61 q.trackingID = questID | |
| 62 q.superTracked = (questID == GetSuperTrackedQuestID()) -- call directly so artifact data doesn't become an issue | |
| 63 q.numObjectives = GetNumQuestLeaderBoards(questLogIndex) | |
| 64 q.objectives = {} | |
| 65 for i = 1, q.numObjectives do | |
| 66 local text, type, finished = GetQuestLogLeaderBoard(i, questLogIndex) | |
| 67 q.objectives[i] = { | |
| 68 type = type, | |
| 69 text = text, | |
| 70 finished = finished | |
| 71 } | |
| 72 if type == 'event' then | |
| 73 elseif type == 'monster' then | |
| 74 elseif type == 'object' then | |
| 75 elseif type == 'reputation' then | |
| 76 elseif type == 'item' then | |
| 77 end | |
| 78 end | |
| 79 | |
| 80 local link, icon, charges = GetQuestLogSpecialItemInfo(questLogIndex) | |
| 81 local start, duration, enable = GetQuestLogSpecialItemCooldown(questLogIndex) | |
| 82 if link or icon or charges then | |
| 83 q.specialItem = { | |
| 84 link = link, | |
| 85 charges = charges, | |
| 86 icon = icon, | |
| 87 start = start, | |
| 88 duration = duration, | |
| 89 enable = enable, | |
| 90 } | |
| 91 end | |
| 92 | |
| 93 self.LogInfo[questLogIndex] = q | |
| 94 print('|cFF0088FFGetQuestInfo('..questID..')|r', questLogIndex, title) | |
| 95 return q | |
| 96 end | |
| 97 | |
| 98 Cheevs.GetNumWatched = function(self) | |
| 99 Cheevs.trackedCheevs = {GetTrackedAchievements()} | |
| 100 return GetNumTrackedAchievements() | |
| 101 end | |
| 102 Cheevs.GetInfo = function(self, index) | |
| 103 local cheevID = Cheevs.trackedCheevs[index] | |
| 104 local id, name, points, completed, month, day, year, description, flags, icon, rewardText, isGuildAch, wasEarnedByMe, earnedBy = GetAchievementInfo(cheevID) | |
| 105 | |
| 106 print('|cFF00FF00', GetAchievementNumCriteria(cheevID)) | |
| 107 self.Info[cheevID] = {} | |
| 108 local c = self.Info[cheevID] | |
| 109 c.type = 'Cheevs' | |
| 110 c.watchIndex = index | |
| 111 c.cheevID = cheevID | |
| 112 c.title = name | |
| 113 c.points, c.completed, c.month, c.day, c.year, c.description, c.flags, c.icon, c.rewardText, c.isGuildAch, c.wasEarnedByMe, c.earnedBy = | |
| 114 points, completed, month, day, year, description, flags, icon, rewardText, isGuildAch, wasEarnedByMe, earnedBy | |
| 115 c.numObjectives = GetAchievementNumCriteria(cheevID) | |
| 116 c.objectives = {} | |
| 117 for i = 1, c.numObjectives do | |
| 118 local description, type, completed, quantity, requiredQuantity, characterName, flags, assetID, quantityString, criteriaID = GetAchievementCriteriaInfo(cheevID, i) | |
| 119 c.objectives[i] = { | |
| 120 text = description, | |
| 121 type = type, | |
| 122 finished = completed, | |
| 123 quantity = quantity, | |
| 124 requiredQuantity = requiredQuantity, | |
| 125 characterName = characterName, | |
| 126 flags = flags, | |
| 127 assetID = assetID, | |
| 128 quantityString = quantityString, | |
| 129 criteriaID = criteriaID, | |
| 130 } | |
| 131 end | |
| 132 | |
| 133 self.WatchInfo[index] = c | |
| 134 return self.Info[cheevID] | |
| 135 end |
