Mercurial > wow > buffalo2
comparison ObjectiveInfo.lua @ 16:880828018bf4
ObjectiveEvents
- trim down the number of events that fire full updates
- begin the general outline for determining which trackers need to refresh
- handlers for accepting and completing auto-popup quests
ObjectiveFrame
- correct variables for money reward calculation
- make sure everythign is scaling to the font strings and that the font strings aren't being pinned by SetSize
ObjectiveInfo
- implementation of autoquest popups
- discern between internal and client bonus objective indexes
- acquire the correct data set from bonus objective query
ObjectiveStyle
- look for a style table under the previously interpreted set before deferring standard options
- horizontal/vertical options in gradient
- remove height-fixing for font strings
| author | Nenue |
|---|---|
| date | Tue, 05 Apr 2016 00:39:12 -0400 |
| parents | ed642234f017 |
| children | d1812fb10ae6 |
comparison
equal
deleted
inserted
replaced
| 15:f660f1c1e0aa | 16:880828018bf4 |
|---|---|
| 1 local B = select(2,...).frame | 1 local B = select(2,...).frame |
| 2 local wipe, pairs, ipairs, min, max, unpack = table.wipe, pairs, ipairs, min, max, unpack | 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 | 3 local GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo = GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo |
| 4 local GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo = GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo | 4 local GetQuestWatchIndex, GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo = GetQuestWatchIndex, GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo |
| 5 local mod = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame') | 5 local mod = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame') |
| 6 local print = B.print('TrackerInfo') | 6 local print = B.print('TrackerInfo') |
| 7 | 7 |
| 8 local Tracker, Bonus, AutoQuest, Quest, Cheevs = mod.Tracker, mod.Bonus, mod.AutoQuest, mod.Quest, mod.Cheevs | 8 local Tracker, Bonus, AutoQuest, Quest, Cheevs = mod.Tracker, mod.Bonus, mod.AutoQuest, mod.Quest, mod.Cheevs |
| 9 -------------------------------------------------------------------- | 9 -------------------------------------------------------------------- |
| 11 -------------------------------------------------------------------- | 11 -------------------------------------------------------------------- |
| 12 | 12 |
| 13 | 13 |
| 14 ----------------------------- | 14 ----------------------------- |
| 15 --- AUTO_QUEST | 15 --- AUTO_QUEST |
| 16 AutoQuest.GetNumWatched = GetNumAutoQuestPopUps | 16 AutoQuest.LogInfo = {} |
| 17 AutoQuest.GetInfo = function(watchIndex) | 17 AutoQuest.LogBlock = {} |
| 18 return Quest.GetInfo(watchIndex) | 18 AutoQuest.QuestBlock = {} |
| 19 AutoQuest.WatchBlock = {} | |
| 20 AutoQuest.GetNumWatched = function() | |
| 21 AutoQuest.numWatched = GetNumAutoQuestPopUps() | |
| 22 return AutoQuest.numWatched | |
| 23 end | |
| 24 AutoQuest.GetInfo = function(self, popupIndex) | |
| 25 | |
| 26 local questID, type = GetAutoQuestPopUp(popupIndex) | |
| 27 local questIndex = GetQuestLogIndexByID(questID) | |
| 28 local questWatchIndex = GetQuestWatchIndex(questIndex) | |
| 29 | |
| 30 local questInfo = Quest:GetInfo(questWatchIndex) | |
| 31 self.Info[questID] = { | |
| 32 title = questInfo.title, | |
| 33 description = type, | |
| 34 popupType = type, | |
| 35 questID = questID, | |
| 36 questIndex = questIndex, | |
| 37 popupIndex = popupIndex, | |
| 38 watchIndex = questWatchIndex, | |
| 39 numObjectives = 0 | |
| 40 } | |
| 41 | |
| 42 | |
| 43 return self.Info[questID] | |
| 19 end | 44 end |
| 20 | 45 |
| 21 ----------------------------- | 46 ----------------------------- |
| 22 --- BONUS OBJECTIVE | 47 --- BONUS OBJECTIVE |
| 23 Bonus.TasksTable = {} | 48 Bonus.TasksTable = {} |
| 24 Bonus.TasksPOI = {} | 49 Bonus.TasksPOI = {} |
| 25 Bonus.TaskScenario = {} | 50 Bonus.TaskScenario = {} |
| 26 | 51 |
| 27 local taskData = {} | 52 local taskData = {} |
| 28 Bonus.QuestBlock = {} | 53 Bonus.QuestBlock = {} |
| 54 Bonus.TaskWatch = {} | |
| 29 Bonus.GetNumWatched = function() | 55 Bonus.GetNumWatched = function() |
| 30 Bonus.TasksTable = GetTasksTable() | 56 local tasks = GetTasksTable() |
| 31 local numTasks = 0 | 57 local numTasks = 0 |
| 32 for i, questID in ipairs(Bonus.TasksTable) do | 58 Bonus.TaskWatch = {} |
| 33 local isInArea, isOnMap, numObjectives = GetTaskInfo(questID) | 59 print('|cFFFFFF00Bonus.GetNumWatched()|r', #tasks) |
| 34 if isInArea and isOnMap then | 60 for i, questID in ipairs(tasks) do |
| 61 local t = Bonus.StoreTask(questID) | |
| 62 print (' taskIndex', i, 'questID', questID) | |
| 63 print(' isComplete', t.isComplete) | |
| 64 if (t.inInArea or t.isOnMap) and not t.isComplete then | |
| 35 numTasks = numTasks + 1 | 65 numTasks = numTasks + 1 |
| 66 Bonus.TaskWatch[numTasks] = t | |
| 36 end | 67 end |
| 37 end | 68 end |
| 38 Bonus.numAll = #Bonus.TasksTable | 69 Bonus.numAll = #Bonus.TasksTable |
| 39 Bonus.numWatched = numTasks | 70 Bonus.numWatched = numTasks |
| 40 return GetNumQuestLogTasks() | 71 return GetNumQuestLogTasks() |
| 41 end | 72 end |
| 42 Bonus.GetInfo = function(self, watchIndex) | 73 |
| 43 local questID = Bonus.TasksTable[watchIndex] | 74 Bonus.GetInfo = function(self, taskIndex) |
| 75 return Bonus.TaskWatch[taskIndex] | |
| 76 end | |
| 77 | |
| 78 Bonus.StoreTask = function(questID) | |
| 79 | |
| 44 if not questID then | 80 if not questID then |
| 45 print('|cFFFF4400no quest ID for row', watchIndex) | 81 print('|cFFFF4400invalid quest ID', questID) |
| 46 return | 82 return |
| 47 end | 83 end |
| 48 | 84 |
| 49 | 85 Bonus.Info[questID] = Bonus.Info[questID] or {} |
| 50 local t= {} | 86 local t = Bonus.Info[questID] |
| 51 t.isInArea, t.isOnMap, t.numObjectives = GetTaskInfo(questID) | 87 local isInArea, isOnMap, numObjectives = GetTaskInfo(questID) |
| 52 | |
| 53 print('isInArea', t.isInArea, 'isOnMap', t.isOnMap, 'numObj', t.numObjectives) | |
| 54 t.displayObjectives = false | |
| 55 t.isComplete = true | |
| 56 t.questID = questID | 88 t.questID = questID |
| 57 if t.numObjectives >= 1 then | 89 t.numObjectives = numObjectives |
| 58 print(t.numObjectives,'objective rows') | 90 t.isInArea = isInArea |
| 91 t.isOnMap = isOnMap | |
| 92 | |
| 93 print(' isInArea', isInArea, 'isOnMap', isOnMap, 'numObj', numObjectives) | |
| 94 local displayObjectives = false | |
| 95 local isComplete = true | |
| 96 if numObjectives >= 1 then | |
| 97 print(' ', numObjectives,'objective rows') | |
| 59 t.objectives = {} | 98 t.objectives = {} |
| 60 for i = 1, t.numObjectives do | 99 for i = 1, t.numObjectives do |
| 61 t.objectives[i] = {} | 100 t.objectives[i] = {} |
| 62 local o = t.objectives[i] | 101 local o = t.objectives[i] |
| 63 o.index = i | 102 o.index = i |
| 64 o.text, o.objectiveType, o.finished, o.displayAsObjective = GetQuestObjectiveInfo(questID, i, true) | 103 --local text, objectiveType, finished, displayAsObjective = |
| 104 o.text, o.objectiveType, o.finished, o.displayAsObjective = GetQuestObjectiveInfo(questID, i, false) | |
| 65 | 105 |
| 66 print(i, '==>', o.text, o.objectiveType, o.finished, o.displayAsObjective) | 106 print(i, '==>', o.text, o.objectiveType, o.finished, o.displayAsObjective) |
| 67 t.displayObjectives = t.displayObjectives or o.displayAsObjective | 107 t.displayObjectives = t.displayObjectives or o.displayAsObjective |
| 68 t.isComplete = t.isComplete and o.finished | 108 t.isComplete = t.isComplete and o.finished |
| 69 | 109 |
| 70 end | 110 end |
| 71 end | 111 end |
| 112 | |
| 113 t.displayObjectives = displayObjectives | |
| 114 | |
| 115 | |
| 116 local rewards = {} | |
| 117 t.numCurrencies = GetNumQuestLogRewardCurrencies(questID) | |
| 118 for i = 1, t.numCurrencies do | |
| 119 local name, texture, count = GetQuestLogRewardCurrencyInfo(i, questID) | |
| 120 tinsert(rewards,{ | |
| 121 type = 'currency', | |
| 122 index = i, | |
| 123 name = name, | |
| 124 texture = texture, | |
| 125 count = count | |
| 126 }); | |
| 127 end | |
| 128 -- items | |
| 129 t.numItems = GetNumQuestLogRewards(questID) | |
| 130 for i = 1, t.numItems do | |
| 131 local name, texture, count, quality, isUsable = GetQuestLogRewardInfo(i, questID) | |
| 132 tinsert(rewards, { | |
| 133 type = 'item', | |
| 134 index = i , | |
| 135 name = name, | |
| 136 texture = texture, | |
| 137 count = count, | |
| 138 quality = quality, | |
| 139 isUsable = isUsable | |
| 140 }); | |
| 141 end | |
| 142 -- money | |
| 143 | |
| 144 local money = GetQuestLogRewardMoney(questID) | |
| 145 if ( money > 0 ) then | |
| 146 tinsert(rewards, { | |
| 147 type = 'money', | |
| 148 name = GetMoneyString(money), | |
| 149 texture = "Interface\\Icons\\inv_misc_coin_01", | |
| 150 count = 0, | |
| 151 }); | |
| 152 end | |
| 153 | |
| 154 if #rewards >= 1 then | |
| 155 t.rewardInfo = rewards | |
| 156 end | |
| 157 | |
| 72 Bonus.TasksTable[questID] = t | 158 Bonus.TasksTable[questID] = t |
| 73 | 159 |
| 74 return t | 160 return t |
| 75 end | 161 end |
| 76 | 162 |
| 78 --- QUEST | 164 --- QUEST |
| 79 Quest.itemButtons = {} | 165 Quest.itemButtons = {} |
| 80 Quest.freeButtons = {} | 166 Quest.freeButtons = {} |
| 81 Quest.POI = {} | 167 Quest.POI = {} |
| 82 Quest.QuestBlock = {} | 168 Quest.QuestBlock = {} |
| 169 Quest.LogBlock = {} | |
| 170 Quest.LogInfo = {} | |
| 83 Quest.GetNumWatched = function() | 171 Quest.GetNumWatched = function() |
| 84 Quest.numAll = GetNumQuestLogEntries() | 172 Quest.numAll = GetNumQuestLogEntries() |
| 85 Quest.numWatched = GetNumQuestWatches() | 173 Quest.numWatched = GetNumQuestWatches() |
| 86 return Quest.numWatched | 174 return Quest.numWatched |
| 87 end | 175 end |
| 94 local questTagID, tagName = GetQuestTagInfo(questID); | 182 local questTagID, tagName = GetQuestTagInfo(questID); |
| 95 | 183 |
| 96 if not questID then | 184 if not questID then |
| 97 return | 185 return |
| 98 end | 186 end |
| 99 self.Info[questID] = self.Info[questID] or {} | 187 Quest.Info[questID] = Quest.Info[questID] or {} |
| 100 | 188 |
| 101 local q = self.Info[questID] | 189 local q = Quest.Info[questID] |
| 102 q.watchIndex = watchIndex | 190 q.watchIndex = watchIndex |
| 103 q.type = 'Quest' | 191 q.type = 'Quest' |
| 104 q.questID = questID | 192 q.questID = questID |
| 105 q.title = title | 193 q.title = title |
| 106 q.level = level | 194 q.level = level |
