Mercurial > wow > buffalo2
diff ObjectiveTracker/Data.lua @ 29:adcd7c328d07
code collation cleaning
author | Nenue |
---|---|
date | Wed, 13 Apr 2016 21:53:24 -0400 |
parents | c33c17dd97e7 |
children |
line wrap: on
line diff
--- a/ObjectiveTracker/Data.lua Wed Apr 13 20:19:37 2016 -0400 +++ b/ObjectiveTracker/Data.lua Wed Apr 13 21:53:24 2016 -0400 @@ -26,87 +26,10 @@ -------------------------------------------------------------------- -local DoQuestRewards= function(t, questID) - local rewards = {} - t.numCurrencies = GetNumQuestLogRewardCurrencies(questID) - for i = 1, t.numCurrencies do - local name, texture, count = GetQuestLogRewardCurrencyInfo(i, questID) - tinsert(rewards,{ - type = 'currency', - index = i, - name = name, - texture = texture, - count = count - }); - end - -- items - t.numItems = GetNumQuestLogRewards(questID) - for i = 1, t.numItems do - local name, texture, count, quality, isUsable = GetQuestLogRewardInfo(i, questID) - tinsert(rewards, { - type = 'item', - index = i , - name = name, - texture = texture, - count = count, - quality = quality, - isUsable = isUsable - }); - end - -- money - - local money = GetQuestLogRewardMoney(questID) - if ( money > 0 ) then - tinsert(rewards, { - type = 'money', - name = GetMoneyString(money), - texture = "Interface\\Icons\\inv_misc_coin_01", - count = 0, - }); - end - - if #rewards >= 1 then - t.rewardInfo = rewards - end -end ----------------------------- --- AUTO_QUEST -AutoQuest.LogInfo = {} -AutoQuest.LogBlock = {} -AutoQuest.QuestBlock = {} -AutoQuest.WatchBlock = {} -function AutoQuest:GetNumWatched () - print(self.name, self) - Quest:GetNumWatched() - self.numWatched = GetNumAutoQuestPopUps() - - return self.numWatched -end -AutoQuest.GetInfo = function(self, popupIndex) - - - local questID, type = GetAutoQuestPopUp(popupIndex) - local questLogIndex = GetQuestLogIndexByID(questID) - local title, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, questID, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory = GetQuestLogTitle(questLogIndex) - - self.Info[questID] = self.Info[questID] or {} - local popup = self.Info[questID] - popup.title = title - popup.description = type - popup.popupType = type - popup.questID = questID - popup.questLogIndex = questLogIndex - popup.popupIndex = popupIndex - - self.Info[questID] = popup - self.WatchInfo[popupIndex] = popup - - - return self.Info[questID] -end - ----------------------------- --- BONUS OBJECTIVE -- The default UI pops them up as you enter their relevant areas, but the data is actually available at all times. @@ -119,223 +42,3 @@ --- These functions are copied from Blizzard_BonusObjectiveTracker.lua; -- It's kind of dumb, but this avoids the risk of code taint. ---- Returns a tasks table modified to include recently completed objectives -local UnitName, GetRealmName = UnitName, GetRealmName -local InternalGetTasksTable = function() - local savedTasks = T.Conf.TasksLog - local char = UnitName("player") - local realm = GetRealmName() - local tasks = GetTasksTable() - - for questID, data in pairs(Bonus.Info) do - - print(' -- questID:', questID, #data.objectives) - for i, o in ipairs(data.objectives) do - print(' --', i, o.text) - end - - end - - - for questID, data in pairs(savedTasks) do - if questID > 0 then - local found = false - for i = 1, #tasks do - if tasks[i] == questID then - found = true - break - end - end - -- if it's not part of the current table, then try to insert it where it was last found - if not found then - if data.watchIndex < #tasks then - tinsert(tasks, data.watchIndex, data) - else - tinsert(tasks, data) - end - end - end - end - return tasks -end - ---- Returns an entry from the composed tasks table if possible, otherwise makes an API pull -local InternalGetTaskInfo = function(questID) - local completedTasks = T.Conf.TasksLog - if completedTasks[questID] then - return true, true, #completedTasks[questID].objectives - else - return GetTaskInfo(questID) - end -end - ---- Same as above but for the objective entries -local InternalGetQuestObjectiveInfo = function(questID, objectiveIndex) - local completedTasks = T.Conf.TasksLog - if ( completedTasks[questID] ) then - print('using internal data') - return completedTasks[questID].objectives[objectiveIndex], completedTasks[questID].objectiveType, true; - else - return GetQuestObjectiveInfo(questID, objectiveIndex, false); - end -end - ---- end redundant copy of silliness ------------------------------------------------------------------------------------------- - -Bonus.Completed = {} -Bonus.POI = {} -Bonus.Scenario = {} -Bonus.QuestBlock = {} -Bonus.WatchInfo = {} -function Bonus:GetNumWatched () - print(self.name, self) - - local tasks = InternalGetTasksTable() - local numWatched = 0 - local numAll = 0 - self.WatchInfo = {} - print('|cFFFFFF00Bonus.GetNumWatched()|r', #tasks) - print(' TasksTable pull:') - for i, questID in ipairs(tasks) do - local isInArea, isOnMap, numObjectives = InternalGetTaskInfo(questID) - local existingTask = self.QuestBlock[questID] - local displayObjectiveHeader = false; - local test = (isInArea or (isOnMap and existingTask)) - --local test = true - if test then - self.Info[questID] = self.Info[questID] or {} - - local t = self.Info[questID] - self.WatchInfo[i] = t - t.isInArea = isInArea - t.isOnMap = isOnMap - t.existingTask = existingTask - t.questID = questID - t.objectives = {} - t.taskIndex = i - - - DoQuestRewards(t, questID) - - local taskTitle - local taskFinished = true; - for objectiveIndex = 1, numObjectives do - local text, objectiveType, finished, displayAsObjective = InternalGetQuestObjectiveInfo(questID, objectiveIndex, false); - displayObjectiveHeader = displayObjectiveHeader or displayAsObjective; - if not taskTitle then - if objectiveType == 'progressbar' and not text:match('^%d%+\\%d+') then - taskTitle = text - text = '' - end - end - - - print(' --', text, objectiveType, finished, displayAsObjective) - t.objectives[objectiveIndex] = t.objectives[objectiveIndex] or {} - local o = t.objectives[objectiveIndex] - - o.objectiveIndex = objectiveIndex - o.text = text - o.objectiveType = objectiveType - o.finished = finished - o.displayAsObjective = displayAsObjective - print(' |cFF00FF88*', objectiveIndex, text) - end - - -- didn't get a name from progress bar? what about area name - if not taskTitle then - if isInArea then - taskTitle = GetMapNameByID(GetCurrentMapAreaID()) - end - end - t.title = taskTitle - end - - print (' |cFF00FF88#', i, 'questID', questID, 'inArea', isInArea, 'onMap', isOnMap, 'existing', (existingTask and 'Y' or 'N'), (test and '|cFF00FF00show|r' or '|cFFFF0088hide|r')) - end - - - self.numAll = #tasks - self.numWatched = #self.WatchInfo - print(' stats:', self.numAll, 'active tasks,', self.numWatched, 'nearby or animating') - --return #tasks - return #self.WatchInfo -end - ---- info cleanup done when turn-ins are detected -Bonus.OnTurnIn = function(self, questID, xp, money) - - if #self.info.rewardInfo >= 1 then - for i, reward in ipairs(self.info.rewardInfo) do - --[[ - type = 'item', - index = i , - name = name, - texture = texture, - count = count, - quality = quality, - isUsable = isUsable - ]] - print(' reward ', i, ' ', reward.type, reward.name, reward.count) - - end - end - - print('|cFFFF8800'..self.name..':OnTurnIn call', questID, xp, money) - local savedTasks = B.Conf.TasksLog - - self.Info[questID].completedTime = GetTime() - self.Info[questID].animate = true - T.SetAnimate(self.watchReasonModule) - savedTasks[questID] = self.Info[questID] -end - -Bonus.GetInfo = function(self, taskIndex) - print(self.name, self) - return self.WatchInfo[taskIndex] -end - - - -Cheevs.GetNumWatched = function(self) - print('|cFF00FF00' .. GetTime()) - Cheevs.trackedCheevs = {GetTrackedAchievements()} - return GetNumTrackedAchievements() -end -Cheevs.GetInfo = function(self, index) - local cheevID = Cheevs.trackedCheevs[index] - local id, name, points, completed, month, day, year, description, flags, icon, rewardText, isGuildAch, wasEarnedByMe, earnedBy = GetAchievementInfo(cheevID) - - self.Info[cheevID] = {} - local c = self.Info[cheevID] - c.type = 'Cheevs' - c.watchIndex = index - c.cheevID = cheevID - c.title = name - c.points, c.completed, c.month, c.day, c.year, c.description, c.flags, c.icon, c.rewardText, c.isGuildAch, c.wasEarnedByMe, c.earnedBy = - points, completed, month, day, year, description, flags, icon, rewardText, isGuildAch, wasEarnedByMe, earnedBy - c.numObjectives = GetAchievementNumCriteria(cheevID) - c.objectives = {} - for i = 1, c.numObjectives do - local description, type, completed, quantity, requiredQuantity, characterName, flags, assetID, quantityString, criteriaID = GetAchievementCriteriaInfo(cheevID, i) - c.objectives[i] = { - objectiveIndex = i, - cheevID = cheevID, - text = description, - type = type, - finished = completed, - value = quantity, - maxValue = requiredQuantity, - characterName = characterName, - flags = flags, - assetID = assetID, - quantityString = quantityString, - criteriaID = criteriaID, - } - end - print('Cheevs.|cFF0088FFGetInfo|r('..index..')', 'obj:', GetAchievementNumCriteria(cheevID), name, description) - - self.WatchInfo[index] = c - return self.Info[cheevID] -end