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 |