Mercurial > wow > buffalo2
diff ObjectiveInfo.lua @ 1:b0447b382f36
sorting client events from maintenance logic
implemented all that action buttons entail for quest items
author | Nenue |
---|---|
date | Wed, 30 Mar 2016 16:30:49 -0400 |
parents | 3dbcad2b387d |
children | a2396b03ce63 |
line wrap: on
line diff
--- a/ObjectiveInfo.lua Wed Mar 30 02:24:56 2016 -0400 +++ b/ObjectiveInfo.lua Wed Mar 30 16:30:49 2016 -0400 @@ -9,13 +9,15 @@ -------------------------------------------------------------------- --- Tracker-specific data retrieval functions -------------------------------------------------------------------- - +Quest.itemButtons = {} +Quest.freeButtons = {} +Quest.POI = {} Quest.GetNumWatched = function() return GetNumQuestWatches () end Quest.GetInfo = function (self, watchIndex) print('|cFF00DDFFQuest|r.|cFF0088FFGetInfo(|r'.. tostring(watchIndex)..'|r)') - local questID, title, questLogIndex, numObjectives, requiredMoney, isComplete, + local questID, title, questIndex, numObjectives, requiredMoney, isComplete, startEvent, isAutoComplete, failureTime, timeElapsed, questType, isTask, isStory, isOnMap, hasLocalPOI = GetQuestWatchInfo(watchIndex) print(GetQuestWatchInfo(watchIndex)) if not questID then @@ -29,7 +31,7 @@ q.type = 'Quest' q.questID = questID q.title = title - q.questLogIndex = questLogIndex + q.questLogIndex = questIndex q.numObjectives = numObjectives q.requiredMoney = requiredMoney q.isComplete = isComplete @@ -45,7 +47,7 @@ --- Start QuestLogEntry calls ----------------------------------------- - SelectQuestLogEntry(questLogIndex) + SelectQuestLogEntry(questIndex) q.greenRange = GetQuestGreenRange() q.isDaily = QuestIsDaily() q.isWeekly = QuestIsWeekly() @@ -57,13 +59,14 @@ q.isComplete = IsQuestComplete(questID) q.isBreadCrumb = IsBreadcrumbQuest(questID) q.isStoryQuest = IsStoryQuest(questID) - q.completionText= GetQuestLogCompletionText(questLogIndex) + q.completionText= GetQuestLogCompletionText(questIndex) q.trackingID = questID q.superTracked = (questID == GetSuperTrackedQuestID()) -- call directly so artifact data doesn't become an issue - q.numObjectives = GetNumQuestLeaderBoards(questLogIndex) + q.numObjectives = GetNumQuestLeaderBoards(questIndex) + q.isWatched = IsQuestWatched(questIndex) q.objectives = {} for i = 1, q.numObjectives do - local text, type, finished = GetQuestLogLeaderBoard(i, questLogIndex) + local text, type, finished = GetQuestLogLeaderBoard(i, questIndex) q.objectives[i] = { type = type, text = text, @@ -77,10 +80,12 @@ end end - local link, icon, charges = GetQuestLogSpecialItemInfo(questLogIndex) - local start, duration, enable = GetQuestLogSpecialItemCooldown(questLogIndex) + local link, icon, charges = GetQuestLogSpecialItemInfo(questIndex) + local start, duration, enable = GetQuestLogSpecialItemCooldown(questIndex) if link or icon or charges then q.specialItem = { + questID = questID, + questIndex = questIndex, link = link, charges = charges, icon = icon, @@ -90,11 +95,35 @@ } end - self.LogInfo[questLogIndex] = q - print('|cFF0088FFGetQuestInfo('..questID..')|r', questLogIndex, title) + + if QuestHasPOIInfo(questID) then + local distance, onContinent = GetDistanceSqToQuest(questIndex) + if distance ~= nil and distance > 0 then + self.POI[questIndex] = { + questIndex = questIndex, + questID = questID, + distance = distance, + onContinent = onContinent + } + end + end + + self.LogInfo[questIndex] = q + print('|cFF0088FFGetQuestInfo('..questID..')|r', questIndex, title) return q end +Quest.GetClosest = function() + local minID + local minDist = math.huge + for i = 1, Quest.GetNumWatched() do + local info = Quest.GetInfo(i) + if info.hasLocalPOI then + local distance, onContinent = GetDistanceSqToQuest(info.questIndex) + end + end +end + Cheevs.GetNumWatched = function(self) Cheevs.trackedCheevs = {GetTrackedAchievements()} return GetNumTrackedAchievements()