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