Mercurial > wow > buffalo2
diff 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 |
line wrap: on
line diff
--- a/ObjectiveInfo.lua Tue Apr 05 00:44:25 2016 -0400 +++ b/ObjectiveInfo.lua Tue Apr 05 02:38:01 2016 -0400 @@ -1,9 +1,23 @@ local B = select(2,...).frame -local wipe, pairs, ipairs, min, max, unpack = table.wipe, pairs, ipairs, min, max, unpack +local wipe, pairs, ipairs, min, max, unpack, format = table.wipe, pairs, ipairs, min, max, unpack, format +local tinsert, tostring = tinsert, tostring +local GetQuestTagInfo, GetQuestLogTitle = GetQuestTagInfo, GetQuestLogTitle +local GetNumQuestLogEntries, GetNumQuestWatches, GetQuestLogCompletionText, IsQuestWatched, IsQuestHardWatched, GetQuestLogSpecialItemInfo, GetQuestLogSpecialItemCooldown = GetNumQuestLogEntries, GetNumQuestWatches, GetQuestLogCompletionText, IsQuestWatched, IsQuestHardWatched, GetQuestLogSpecialItemInfo, GetQuestLogSpecialItemCooldown +local GetNumAutoQuestPopUps, GetAutoQuestPopUp, GetTasksTable, GetNumQuestLogTasks, GetTaskInfo, GetQuestObjectiveInfo = GetNumAutoQuestPopUps, GetAutoQuestPopUp, GetTasksTable, GetNumQuestLogTasks, GetTaskInfo, GetQuestObjectiveInfo +local GetNumQuestLogRewardCurrencies, GetQuestLogRewardCurrencyInfo, GetNumQuestLogRewards, GetQuestLogRewardInfo, GetQuestLogRewardMoney, GetMoneyString = GetNumQuestLogRewardCurrencies, GetQuestLogRewardCurrencyInfo, GetNumQuestLogRewards, GetQuestLogRewardInfo, GetQuestLogRewardMoney, GetMoneyString local GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo = GetNumQuestLeaderBoards, GetAchievementNumCriteria, GetQuestLogLeaderBoard, GetAchievementCriteriaInfo local GetQuestWatchIndex, GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo = GetQuestWatchIndex, GetQuestLogIndexByID, GetSuperTrackedQuestID, SetSuperTrackedQuestID, GetQuestWatchInfo +local QuestHasPOIInfo, GetDistanceSqToQuest, GetQuestFactionGroup = QuestHasPOIInfo, GetDistanceSqToQuest, GetQuestFactionGroup +local GetTrackedAchievements, GetNumTrackedAchievements, GetAchievementInfo = GetTrackedAchievements, GetNumTrackedAchievements, GetAchievementInfo local mod = B:RegisterModule("ObjectiveTracker", _G.VeneerObjectiveWrapper, 'BuffFrame') local print = B.print('TrackerInfo') +local QUEST_TAG_DUNGEON = QUEST_TAG_DUNGEON +local QUEST_TAG_GROUP = QUEST_TAG_GROUP +local QUEST_TAG_ACCOUNT = QUEST_TAG_ACCOUNT +local QUEST_TAG_TCOORDS = QUEST_TAG_TCOORDS +local LE_QUEST_FREQUENCY_DAILY = LE_QUEST_FREQUENCY_DAILY +local LE_QUEST_FREQUENCY_WEEKLY = LE_QUEST_FREQUENCY_WEEKLY +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 local Tracker, Bonus, AutoQuest, Quest, Cheevs = mod.Tracker, mod.Bonus, mod.AutoQuest, mod.Quest, mod.Cheevs -------------------------------------------------------------------- @@ -168,6 +182,7 @@ Quest.QuestBlock = {} Quest.LogBlock = {} Quest.LogInfo = {} + Quest.GetNumWatched = function() Quest.numAll = GetNumQuestLogEntries() Quest.numWatched = GetNumQuestWatches() @@ -179,7 +194,7 @@ startEvent, isAutoComplete, failureTime, timeElapsed, questType, isTask, isStory, isOnMap, hasLocalPOI = GetQuestWatchInfo(watchIndex) local _, level, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, _, startEvent, displayQuestID, isOnMap, hasLocalPOI, isTask, isStory = GetQuestLogTitle(questIndex) - local questTagID, tagName = GetQuestTagInfo(questID); + if not questID then return @@ -192,6 +207,8 @@ q.questID = questID q.title = title q.level = level + q.displayQuestID = displayQuestID + q.suggestedGroup = suggestedGroup q.questLogIndex = questIndex q.numObjectives = numObjectives q.requiredMoney = requiredMoney @@ -205,22 +222,58 @@ q.isStory = isStory q.isOnMap = isOnMap q.hasLocalPOI = hasLocalPOI - - q.isDaily = ( frequency == LE_QUEST_FREQUENCY_DAILY and (not isComplete or isComplete == 0) ) - q.isWeekly = ( frequency == LE_QUEST_FREQUENCY_WEEKLY and (not isComplete or isComplete == 0) ) + q.frequency = frequency q.isComplete = isComplete q.isStory = isStory q.isTask = isTask - if isTask then - --q.task = Bonus.GetInfo(questID) + --- resolve icon type and template + local tagID, tagName = GetQuestTagInfo(questID) + if ( tagName ) then + local factionGroup = GetQuestFactionGroup(questID); + -- Faction-specific account quests have additional info in the tooltip + if ( tagID == QUEST_TAG_ACCOUNT and factionGroup ) then + local factionString = FACTION_ALLIANCE; + if ( factionGroup == LE_QUEST_FACTION_HORDE ) then + factionString = FACTION_HORDE; + end + tagName = format("%s (%s)", tagName, factionString); + end + if ( QUEST_TAG_TCOORDS[tagID] ) then + local questTypeIcon; + if ( tagID == QUEST_TAG_ACCOUNT and factionGroup ) then + q.typeTag = QUEST_TAG_TCOORDS["ALLIANCE"]; + if ( factionGroup == LE_QUEST_FACTION_HORDE ) then + q.typeTag= QUEST_TAG_TCOORDS["HORDE"]; + end + else + q.typeTag = QUEST_TAG_TCOORDS[tagID]; + end + end end + if ( frequency == LE_QUEST_FREQUENCY_DAILY ) then + q.frequencyTag = QUEST_TAG_TCOORDS["DAILY"] + q.mainStyle = 'Daily' + elseif ( frequency == LE_QUEST_FREQUENCY_WEEKLY ) then + q.frequencyTag = QUEST_TAG_TCOORDS["WEEKLY"] + q.mainStyle = 'Daily' + end + if ( isComplete and isComplete < 0 ) then + q.completionTag = QUEST_TAG_TCOORDS["FAILED"] + q.subStyle = 'Failed' + elseif isComplete then + q.completionTag = QUEST_TAG_TCOORDS["COMPLETED"] + q.subStyle = 'Complete' + end + q.tagID = tagID + q.tagName = tagName + + + --q.isBreadCrumb = isBreadCrumb q.completionText= GetQuestLogCompletionText(questIndex) q.numObjectives = GetNumQuestLeaderBoards(questIndex) - q.isWatched = IsQuestWatched(questIndex) - q.isHardWatched = IsQuestHardWatched(questIndex) q.objectives = {} for i = 1, q.numObjectives do local text, type, finished = GetQuestLogLeaderBoard(i, questIndex) @@ -253,7 +306,6 @@ } end - if QuestHasPOIInfo(questID) then local distance, onContinent = GetDistanceSqToQuest(questIndex) if distance ~= nil and distance > 0 then @@ -266,7 +318,8 @@ end end - q.superTracked = (questID == GetSuperTrackedQuestID()) -- call directly so artifact data doesn't become an issue + + q.selected = (questID == GetSuperTrackedQuestID()) -- call directly so artifact data doesn't become an issue self.WatchInfo[watchIndex] = q self.LogInfo[questIndex] = q print('- logIndex =', questIndex, 'title =', title)