Mercurial > wow > buffalo2
comparison ObjectiveInfo.lua @ 18:d1812fb10ae6
ObjectiveStyle
- move tag/template logic into the corresponding GetInfo
| author | Nenue |
|---|---|
| date | Tue, 05 Apr 2016 02:38:01 -0400 |
| parents | 880828018bf4 |
| children | 605e8f0e46db |
comparison
equal
deleted
inserted
replaced
| 17:c33497b116d6 | 18:d1812fb10ae6 |
|---|---|
| 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, format = table.wipe, pairs, ipairs, min, max, unpack, format |
| 3 local tinsert, tostring = tinsert, tostring | |
| 4 local GetQuestTagInfo, GetQuestLogTitle = GetQuestTagInfo, GetQuestLogTitle | |
| 5 local GetNumQuestLogEntries, GetNumQuestWatches, GetQuestLogCompletionText, IsQuestWatched, IsQuestHardWatched, GetQuestLogSpecialItemInfo, GetQuestLogSpecialItemCooldown = GetNumQuestLogEntries, GetNumQuestWatches, GetQuestLogCompletionText, IsQuestWatched, IsQuestHardWatched, GetQuestLogSpecialItemInfo, GetQuestLogSpecialItemCooldown | |
| 6 local GetNumAutoQuestPopUps, GetAutoQuestPopUp, GetTasksTable, GetNumQuestLogTasks, GetTaskInfo, GetQuestObjectiveInfo = GetNumAutoQuestPopUps, GetAutoQuestPopUp, GetTasksTable, GetNumQuestLogTasks, GetTaskInfo, GetQuestObjectiveInfo | |
| 7 local GetNumQuestLogRewardCurrencies, GetQuestLogRewardCurrencyInfo, GetNumQuestLogRewards, GetQuestLogRewardInfo, GetQuestLogRewardMoney, GetMoneyString = GetNumQuestLogRewardCurrencies, GetQuestLogRewardCurrencyInfo, GetNumQuestLogRewards, GetQuestLogRewardInfo, GetQuestLogRewardMoney, GetMoneyString | |
| 3 local GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo = GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo | 8 local GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo = GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo |
| 4 local GetQuestWatchIndex, GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo = GetQuestWatchIndex, GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo | 9 local GetQuestWatchIndex, GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo = GetQuestWatchIndex, GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo |
| 10 local QuestHasPOIInfo, GetDistanceSqToQuest, GetQuestFactionGroup = QuestHasPOIInfo, GetDistanceSqToQuest, GetQuestFactionGroup | |
| 11 local GetTrackedAchievements, GetNumTrackedAchievements, GetAchievementInfo = GetTrackedAchievements, GetNumTrackedAchievements, GetAchievementInfo | |
| 5 local mod = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame') | 12 local mod = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame') |
| 6 local print = B.print('TrackerInfo') | 13 local print = B.print('TrackerInfo') |
| 14 local QUEST_TAG_DUNGEON = QUEST_TAG_DUNGEON | |
| 15 local QUEST_TAG_GROUP = QUEST_TAG_GROUP | |
| 16 local QUEST_TAG_ACCOUNT = QUEST_TAG_ACCOUNT | |
| 17 local QUEST_TAG_TCOORDS = QUEST_TAG_TCOORDS | |
| 18 local LE_QUEST_FREQUENCY_DAILY = LE_QUEST_FREQUENCY_DAILY | |
| 19 local LE_QUEST_FREQUENCY_WEEKLY = LE_QUEST_FREQUENCY_WEEKLY | |
| 20 local FACTION_ALLIANCE, LE_QUEST_FACTION_HORDE, FACTION_HORDE, LE_QUEST_FACTION_HORDE = FACTION_ALLIANCE, LE_QUEST_FACTION_HORDE, FACTION_HORDE, LE_QUEST_FACTION_HORDE | |
| 7 | 21 |
| 8 local Tracker, Bonus, AutoQuest, Quest, Cheevs = mod.Tracker, mod.Bonus, mod.AutoQuest, mod.Quest, mod.Cheevs | 22 local Tracker, Bonus, AutoQuest, Quest, Cheevs = mod.Tracker, mod.Bonus, mod.AutoQuest, mod.Quest, mod.Cheevs |
| 9 -------------------------------------------------------------------- | 23 -------------------------------------------------------------------- |
| 10 --- Tracker-specific data retrieval functions | 24 --- Tracker-specific data retrieval functions |
| 11 -------------------------------------------------------------------- | 25 -------------------------------------------------------------------- |
| 166 Quest.freeButtons = {} | 180 Quest.freeButtons = {} |
| 167 Quest.POI = {} | 181 Quest.POI = {} |
| 168 Quest.QuestBlock = {} | 182 Quest.QuestBlock = {} |
| 169 Quest.LogBlock = {} | 183 Quest.LogBlock = {} |
| 170 Quest.LogInfo = {} | 184 Quest.LogInfo = {} |
| 185 | |
| 171 Quest.GetNumWatched = function() | 186 Quest.GetNumWatched = function() |
| 172 Quest.numAll = GetNumQuestLogEntries() | 187 Quest.numAll = GetNumQuestLogEntries() |
| 173 Quest.numWatched = GetNumQuestWatches() | 188 Quest.numWatched = GetNumQuestWatches() |
| 174 return Quest.numWatched | 189 return Quest.numWatched |
| 175 end | 190 end |
| 177 print('|cFF00DDFFQuest|r.|cFF0088FFGetInfo(|r'.. tostring(watchIndex)..'|r)') | 192 print('|cFF00DDFFQuest|r.|cFF0088FFGetInfo(|r'.. tostring(watchIndex)..'|r)') |
| 178 local questID, title, questIndex, numObjectives, requiredMoney, isComplete, | 193 local questID, title, questIndex, numObjectives, requiredMoney, isComplete, |
| 179 startEvent, isAutoComplete, failureTime, timeElapsed, questType, isTask, isStory, isOnMap, hasLocalPOI = GetQuestWatchInfo(watchIndex) | 194 startEvent, isAutoComplete, failureTime, timeElapsed, questType, isTask, isStory, isOnMap, hasLocalPOI = GetQuestWatchInfo(watchIndex) |
| 180 | 195 |
| 181 local _, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, _, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory = GetQuestLogTitle(questIndex) | 196 local _, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, _, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory = GetQuestLogTitle(questIndex) |
| 182 local questTagID, tagName = GetQuestTagInfo(questID); | 197 |
| 183 | 198 |
| 184 if not questID then | 199 if not questID then |
| 185 return | 200 return |
| 186 end | 201 end |
| 187 Quest.Info[questID] = Quest.Info[questID] or {} | 202 Quest.Info[questID] = Quest.Info[questID] or {} |
| 190 q.watchIndex = watchIndex | 205 q.watchIndex = watchIndex |
| 191 q.type = 'Quest' | 206 q.type = 'Quest' |
| 192 q.questID = questID | 207 q.questID = questID |
| 193 q.title = title | 208 q.title = title |
| 194 q.level = level | 209 q.level = level |
| 210 q.displayQuestID = displayQuestID | |
| 211 q.suggestedGroup = suggestedGroup | |
| 195 q.questLogIndex = questIndex | 212 q.questLogIndex = questIndex |
| 196 q.numObjectives = numObjectives | 213 q.numObjectives = numObjectives |
| 197 q.requiredMoney = requiredMoney | 214 q.requiredMoney = requiredMoney |
| 198 q.isComplete = isComplete | 215 q.isComplete = isComplete |
| 199 q.startEvent = startEvent | 216 q.startEvent = startEvent |
| 203 q.questType = questType | 220 q.questType = questType |
| 204 q.isTask = isTask | 221 q.isTask = isTask |
| 205 q.isStory = isStory | 222 q.isStory = isStory |
| 206 q.isOnMap = isOnMap | 223 q.isOnMap = isOnMap |
| 207 q.hasLocalPOI = hasLocalPOI | 224 q.hasLocalPOI = hasLocalPOI |
| 208 | 225 q.frequency = frequency |
| 209 q.isDaily = ( frequency == LE_QUEST_FREQUENCY_DAILY and (not isComplete or isComplete == 0) ) | |
| 210 q.isWeekly = ( frequency == LE_QUEST_FREQUENCY_WEEKLY and (not isComplete or isComplete == 0) ) | |
| 211 q.isComplete = isComplete | 226 q.isComplete = isComplete |
| 212 q.isStory = isStory | 227 q.isStory = isStory |
| 213 q.isTask = isTask | 228 q.isTask = isTask |
| 214 | 229 |
| 215 if isTask then | 230 --- resolve icon type and template |
| 216 --q.task = Bonus.GetInfo(questID) | 231 local tagID, tagName = GetQuestTagInfo(questID) |
| 217 end | 232 if ( tagName ) then |
| 233 local factionGroup = GetQuestFactionGroup(questID); | |
| 234 -- Faction-specific account quests have additional info in the tooltip | |
| 235 if ( tagID == QUEST_TAG_ACCOUNT and factionGroup ) then | |
| 236 local factionString = FACTION_ALLIANCE; | |
| 237 if ( factionGroup == LE_QUEST_FACTION_HORDE ) then | |
| 238 factionString = FACTION_HORDE; | |
| 239 end | |
| 240 tagName = format("%s (%s)", tagName, factionString); | |
| 241 end | |
| 242 if ( QUEST_TAG_TCOORDS[tagID] ) then | |
| 243 local questTypeIcon; | |
| 244 if ( tagID == QUEST_TAG_ACCOUNT and factionGroup ) then | |
| 245 q.typeTag = QUEST_TAG_TCOORDS["ALLIANCE"]; | |
| 246 if ( factionGroup == LE_QUEST_FACTION_HORDE ) then | |
| 247 q.typeTag= QUEST_TAG_TCOORDS["HORDE"]; | |
| 248 end | |
| 249 else | |
| 250 q.typeTag = QUEST_TAG_TCOORDS[tagID]; | |
| 251 end | |
| 252 end | |
| 253 end | |
| 254 | |
| 255 if ( frequency == LE_QUEST_FREQUENCY_DAILY ) then | |
| 256 q.frequencyTag = QUEST_TAG_TCOORDS["DAILY"] | |
| 257 q.mainStyle = 'Daily' | |
| 258 elseif ( frequency == LE_QUEST_FREQUENCY_WEEKLY ) then | |
| 259 q.frequencyTag = QUEST_TAG_TCOORDS["WEEKLY"] | |
| 260 q.mainStyle = 'Daily' | |
| 261 end | |
| 262 if ( isComplete and isComplete < 0 ) then | |
| 263 q.completionTag = QUEST_TAG_TCOORDS["FAILED"] | |
| 264 q.subStyle = 'Failed' | |
| 265 elseif isComplete then | |
| 266 q.completionTag = QUEST_TAG_TCOORDS["COMPLETED"] | |
| 267 q.subStyle = 'Complete' | |
| 268 end | |
| 269 q.tagID = tagID | |
| 270 q.tagName = tagName | |
| 271 | |
| 272 | |
| 218 | 273 |
| 219 --q.isBreadCrumb = isBreadCrumb | 274 --q.isBreadCrumb = isBreadCrumb |
| 220 q.completionText= GetQuestLogCompletionText(questIndex) | 275 q.completionText= GetQuestLogCompletionText(questIndex) |
| 221 q.numObjectives = GetNumQuestLeaderBoards(questIndex) | 276 q.numObjectives = GetNumQuestLeaderBoards(questIndex) |
| 222 q.isWatched = IsQuestWatched(questIndex) | |
| 223 q.isHardWatched = IsQuestHardWatched(questIndex) | |
| 224 q.objectives = {} | 277 q.objectives = {} |
| 225 for i = 1, q.numObjectives do | 278 for i = 1, q.numObjectives do |
| 226 local text, type, finished = GetQuestLogLeaderBoard(i, questIndex) | 279 local text, type, finished = GetQuestLogLeaderBoard(i, questIndex) |
| 227 q.objectives[i] = { | 280 q.objectives[i] = { |
| 228 index = i, | 281 index = i, |
| 251 duration = duration, | 304 duration = duration, |
| 252 enable = enable, | 305 enable = enable, |
| 253 } | 306 } |
| 254 end | 307 end |
| 255 | 308 |
| 256 | |
| 257 if QuestHasPOIInfo(questID) then | 309 if QuestHasPOIInfo(questID) then |
| 258 local distance, onContinent = GetDistanceSqToQuest(questIndex) | 310 local distance, onContinent = GetDistanceSqToQuest(questIndex) |
| 259 if distance ~= nil and distance > 0 then | 311 if distance ~= nil and distance > 0 then |
| 260 self.POI[questIndex] = { | 312 self.POI[questIndex] = { |
| 261 questIndex = questIndex, | 313 questIndex = questIndex, |
| 264 onContinent = onContinent | 316 onContinent = onContinent |
| 265 } | 317 } |
| 266 end | 318 end |
| 267 end | 319 end |
| 268 | 320 |
| 269 q.superTracked = (questID == GetSuperTrackedQuestID()) -- call directly so artifact data doesn't become an issue | 321 |
| 322 q.selected = (questID == GetSuperTrackedQuestID()) -- call directly so artifact data doesn't become an issue | |
| 270 self.WatchInfo[watchIndex] = q | 323 self.WatchInfo[watchIndex] = q |
| 271 self.LogInfo[questIndex] = q | 324 self.LogInfo[questIndex] = q |
| 272 print('- logIndex =', questIndex, 'title =', title) | 325 print('- logIndex =', questIndex, 'title =', title) |
| 273 return q | 326 return q |
| 274 end | 327 end |
