Mercurial > wow > buffalo2
diff 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 |
line wrap: on
line diff
--- a/ObjectiveInfo.lua Mon Apr 04 03:41:28 2016 -0400 +++ b/ObjectiveInfo.lua Tue Apr 05 00:39:12 2016 -0400 @@ -1,7 +1,7 @@ local B = select(2,...).frame local wipe, pairs, ipairs, min, max, unpack = table.wipe, pairs, ipairs, min, max, unpack local GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo = GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo -local GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo = GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo +local GetQuestWatchIndex, GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo = GetQuestWatchIndex, GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo local mod = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame') local print = B.print('TrackerInfo') @@ -13,9 +13,34 @@ ----------------------------- --- AUTO_QUEST -AutoQuest.GetNumWatched = GetNumAutoQuestPopUps -AutoQuest.GetInfo = function(watchIndex) - return Quest.GetInfo(watchIndex) +AutoQuest.LogInfo = {} +AutoQuest.LogBlock = {} +AutoQuest.QuestBlock = {} +AutoQuest.WatchBlock = {} +AutoQuest.GetNumWatched = function() + AutoQuest.numWatched = GetNumAutoQuestPopUps() + return AutoQuest.numWatched +end +AutoQuest.GetInfo = function(self, popupIndex) + + local questID, type = GetAutoQuestPopUp(popupIndex) + local questIndex = GetQuestLogIndexByID(questID) + local questWatchIndex = GetQuestWatchIndex(questIndex) + + local questInfo = Quest:GetInfo(questWatchIndex) + self.Info[questID] = { + title = questInfo.title, + description = type, + popupType = type, + questID = questID, + questIndex = questIndex, + popupIndex = popupIndex, + watchIndex = questWatchIndex, + numObjectives = 0 + } + + + return self.Info[questID] end ----------------------------- @@ -26,42 +51,57 @@ local taskData = {} Bonus.QuestBlock = {} +Bonus.TaskWatch = {} Bonus.GetNumWatched = function() - Bonus.TasksTable = GetTasksTable() + local tasks = GetTasksTable() local numTasks = 0 - for i, questID in ipairs(Bonus.TasksTable) do - local isInArea, isOnMap, numObjectives = GetTaskInfo(questID) - if isInArea and isOnMap then + Bonus.TaskWatch = {} + print('|cFFFFFF00Bonus.GetNumWatched()|r', #tasks) + for i, questID in ipairs(tasks) do + local t = Bonus.StoreTask(questID) + print (' taskIndex', i, 'questID', questID) + print(' isComplete', t.isComplete) + if (t.inInArea or t.isOnMap) and not t.isComplete then numTasks = numTasks + 1 + Bonus.TaskWatch[numTasks] = t end end Bonus.numAll = #Bonus.TasksTable Bonus.numWatched = numTasks return GetNumQuestLogTasks() end -Bonus.GetInfo = function(self, watchIndex) - local questID = Bonus.TasksTable[watchIndex] + +Bonus.GetInfo = function(self, taskIndex) + return Bonus.TaskWatch[taskIndex] +end + +Bonus.StoreTask = function(questID) + if not questID then - print('|cFFFF4400no quest ID for row', watchIndex) + print('|cFFFF4400invalid quest ID', questID) return end + Bonus.Info[questID] = Bonus.Info[questID] or {} + local t = Bonus.Info[questID] + local isInArea, isOnMap, numObjectives = GetTaskInfo(questID) + t.questID = questID + t.numObjectives = numObjectives + t.isInArea = isInArea + t.isOnMap = isOnMap - local t= {} - t.isInArea, t.isOnMap, t.numObjectives = GetTaskInfo(questID) - - print('isInArea', t.isInArea, 'isOnMap', t.isOnMap, 'numObj', t.numObjectives) - t.displayObjectives = false - t.isComplete = true - t.questID = questID - if t.numObjectives >= 1 then - print(t.numObjectives,'objective rows') + print(' isInArea', isInArea, 'isOnMap', isOnMap, 'numObj', numObjectives) + local displayObjectives = false + local isComplete = true + if numObjectives >= 1 then + print(' ', numObjectives,'objective rows') t.objectives = {} for i = 1, t.numObjectives do t.objectives[i] = {} local o = t.objectives[i] o.index = i - o.text, o.objectiveType, o.finished, o.displayAsObjective = GetQuestObjectiveInfo(questID, i, true) + --local text, objectiveType, finished, displayAsObjective = + o.text, o.objectiveType, o.finished, o.displayAsObjective = GetQuestObjectiveInfo(questID, i, false) print(i, '==>', o.text, o.objectiveType, o.finished, o.displayAsObjective) t.displayObjectives = t.displayObjectives or o.displayAsObjective @@ -69,6 +109,52 @@ end end + + t.displayObjectives = displayObjectives + + + 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 + Bonus.TasksTable[questID] = t return t @@ -80,6 +166,8 @@ Quest.freeButtons = {} Quest.POI = {} Quest.QuestBlock = {} +Quest.LogBlock = {} +Quest.LogInfo = {} Quest.GetNumWatched = function() Quest.numAll = GetNumQuestLogEntries() Quest.numWatched = GetNumQuestWatches() @@ -96,9 +184,9 @@ if not questID then return end - self.Info[questID] = self.Info[questID] or {} + Quest.Info[questID] = Quest.Info[questID] or {} - local q = self.Info[questID] + local q = Quest.Info[questID] q.watchIndex = watchIndex q.type = 'Quest' q.questID = questID