diff --git a/SVUI_!Core/system/_reports/tokens.lua b/SVUI_!Core/system/_reports/tokens.lua index ffeb17f..5235385 100644 --- a/SVUI_!Core/system/_reports/tokens.lua +++ b/SVUI_!Core/system/_reports/tokens.lua @@ -1,6 +1,6 @@ --[[ ############################################################################## -S V U I By: Munglunch +S V U I By: Munglunch ############################################################################## ########################################################## @@ -10,15 +10,15 @@ LOCALIZED LUA FUNCTIONS --[[ GLOBALS ]]-- local _G = _G; -local select = _G.select; -local table = _G.table; -local twipe = table.wipe; -local tsort = table.sort; -local GetCurrencyInfo = _G.GetCurrencyInfo; -local GetNumWatchedTokens = _G.GetNumWatchedTokens; -local GetBackpackCurrencyInfo = _G.GetBackpackCurrencyInfo; -local GetProfessions = _G.GetProfessions; -local IsLoggedIn = _G.IsLoggedIn; +local select = _G.select; +local table = _G.table; +local twipe = table.wipe; +local tsort = table.sort; +local GetCurrencyInfo = _G.GetCurrencyInfo; +local GetNumWatchedTokens = _G.GetNumWatchedTokens; +local GetBackpackCurrencyInfo = _G.GetBackpackCurrencyInfo; +local GetProfessions = _G.GetProfessions; +local IsLoggedIn = _G.IsLoggedIn; --[[ ########################################################## GET ADDON DATA @@ -41,114 +41,117 @@ local playerRealm = GetRealmName(); local sort_menu_fn = function(a,b) return a.text < b.text end; local Tokens_OnEvent = function(self, event, ...) - if(not IsLoggedIn() or (not self)) then return end - local id = self.TokenKey or 738; - local _, current, tex = GetCurrencyInfo(id) - local currentText = TEXT_PATTERN:format(tex, current); - self.text:SetText(currentText) +if(not IsLoggedIn() or (not self)) then return end +local id = self.TokenKey or 738; +local _, current, tex = GetCurrencyInfo(id) +local currentText = TEXT_PATTERN:format(tex, current); +self.text:SetText(currentText) end local function AddToTokenMenu(self, id, key) - local itemName, _, tex, _, _, _, _ = GetCurrencyInfo(id) - local fn = function() - Reports.Accountant["tokens"][playerName][key] = id; - self.TokenKey = id - Tokens_OnEvent(self) - end - local nextIndex = #self.InnerData+1; - self.InnerData[nextIndex] = {text = itemName, icon = "\124T"..tex..":12\124t ", func = fn}; +local itemName, _, tex, _, _, _, _ = GetCurrencyInfo(id) +local fn = function() +Reports.Accountant["tokens"][playerName][key] = id; +self.TokenKey = id +Tokens_OnEvent(self) +end +local nextIndex = #self.InnerData+1; +self.InnerData[nextIndex] = {text = itemName, icon = "\124T"..tex..":12\124t ", func = fn}; end local function CacheTokenData(self) - twipe(self.InnerData); - local prof1, prof2, archaeology, _, cooking = GetProfessions(); - local key = self:GetName(); - if archaeology then - AddToTokenMenu(self, 398, key) - AddToTokenMenu(self, 384, key) - AddToTokenMenu(self, 393, key) - AddToTokenMenu(self, 677, key) - AddToTokenMenu(self, 400, key) - AddToTokenMenu(self, 394, key) - AddToTokenMenu(self, 397, key) - AddToTokenMenu(self, 676, key) - AddToTokenMenu(self, 401, key) - AddToTokenMenu(self, 385, key) - AddToTokenMenu(self, 399, key) - AddToTokenMenu(self, 821, key) - AddToTokenMenu(self, 829, key) - AddToTokenMenu(self, 944, key) - end - if cooking then - AddToTokenMenu(self, 81, key) - AddToTokenMenu(self, 402, key) - end - if(prof1 == 9 or prof2 == 9) then - AddToTokenMenu(self, 61, key) - AddToTokenMenu(self, 361, key) - AddToTokenMenu(self, 698, key) +twipe(self.InnerData); +local prof1, prof2, archaeology, _, cooking = GetProfessions(); +local key = self:GetName(); +if archaeology then +AddToTokenMenu(self, 398, key) +AddToTokenMenu(self, 384, key) +AddToTokenMenu(self, 393, key) +AddToTokenMenu(self, 677, key) +AddToTokenMenu(self, 400, key) +AddToTokenMenu(self, 394, key) +AddToTokenMenu(self, 397, key) +AddToTokenMenu(self, 676, key) +AddToTokenMenu(self, 401, key) +AddToTokenMenu(self, 385, key) +AddToTokenMenu(self, 399, key) +AddToTokenMenu(self, 821, key) +AddToTokenMenu(self, 829, key) +AddToTokenMenu(self, 944, key) +end +if cooking then +AddToTokenMenu(self, 81, key) +AddToTokenMenu(self, 402, key) +end +if(prof1 == 9 or prof2 == 9) then +AddToTokenMenu(self, 61, key) +AddToTokenMenu(self, 361, key) +AddToTokenMenu(self, 698, key) - AddToTokenMenu(self, 910, key) - AddToTokenMenu(self, 999, key) - AddToTokenMenu(self, 1020, key) - AddToTokenMenu(self, 1008, key) - AddToTokenMenu(self, 1017, key) - end - AddToTokenMenu(self, 994, key) - AddToTokenMenu(self, 697, key) - AddToTokenMenu(self, 738, key) - AddToTokenMenu(self, 615, key) - AddToTokenMenu(self, 614, key) - AddToTokenMenu(self, 395, key) - AddToTokenMenu(self, 396, key) - AddToTokenMenu(self, 390, key) - AddToTokenMenu(self, 392, key) - AddToTokenMenu(self, 391, key) - AddToTokenMenu(self, 241, key) - AddToTokenMenu(self, 416, key) - AddToTokenMenu(self, 515, key) - AddToTokenMenu(self, 776, key) - AddToTokenMenu(self, 777, key) - AddToTokenMenu(self, 789, key) - AddToTokenMenu(self, 823, key) - AddToTokenMenu(self, 824, key) - AddToTokenMenu(self, 1101, key) +AddToTokenMenu(self, 910, key) +AddToTokenMenu(self, 999, key) +AddToTokenMenu(self, 1020, key) +AddToTokenMenu(self, 1008, key) +AddToTokenMenu(self, 1017, key) +end +AddToTokenMenu(self, 1166, key) +AddToTokenMenu(self, 1129, key) +AddToTokenMenu(self, 994, key) +AddToTokenMenu(self, 697, key) +AddToTokenMenu(self, 738, key) +AddToTokenMenu(self, 615, key) +AddToTokenMenu(self, 614, key) +AddToTokenMenu(self, 395, key) +AddToTokenMenu(self, 396, key) +AddToTokenMenu(self, 390, key) +AddToTokenMenu(self, 392, key) +AddToTokenMenu(self, 391, key) +AddToTokenMenu(self, 241, key) +AddToTokenMenu(self, 416, key) +AddToTokenMenu(self, 515, key) +AddToTokenMenu(self, 776, key) +AddToTokenMenu(self, 777, key) +AddToTokenMenu(self, 789, key) +AddToTokenMenu(self, 823, key) +AddToTokenMenu(self, 824, key) +AddToTokenMenu(self, 1101, key) - tsort(self.InnerData, sort_menu_fn) +tsort(self.InnerData, sort_menu_fn) end local function TokenInquiry(id, weekly, capped) - --name, amount, texturePath, earnedThisWeek, weeklyMax, totalMax, isDiscovered = GetCurrencyInfo(id) - local name, amount, tex, week, weekmax, maxed, discovered = GetCurrencyInfo(id) - local r, g, b = 1, 1, 1 - for i = 1, GetNumWatchedTokens() do - local _, _, _, itemID = GetBackpackCurrencyInfo(i) - if id == itemID then r, g, b = 0.23, 0.88, 0.27 end - end - local texStr = ("\124T%s:12\124t %s"):format(tex, name) - local altStr = "" - if weekly then - if discovered then - if id == 390 then - local pointsThisWeek, maxPointsThisWeek = GetPVPRewards(); - altStr = ("Current: %d | Weekly: %d / %d"):format(amount, pointsThisWeek, maxPointsThisWeek) - else - altStr = ("Current: %d / %d | Weekly: %d / %d"):format(amount, maxed, week, weekmax) - end - Reports.ToolTip:AddDoubleLine(texStr, altStr, r, g, b, r, g, b) - end - elseif capped then - if id == 392 or id == 395 then maxed = 4000 end - if id == 396 then maxed = 3000 end - if discovered then - altStr = ("%d / %d"):format(amount, maxed) - Reports.ToolTip:AddDoubleLine(texStr, altStr, r, g, b, r, g, b) - end - else - if discovered then - Reports.ToolTip:AddDoubleLine(texStr, amount, r, g, b, r, g, b) - end - end +--name, amount, texturePath, earnedThisWeek, weeklyMax, totalMax, isDiscovered = GetCurrencyInfo(id) +local name, amount, tex, week, weekmax, maxed, discovered = GetCurrencyInfo(id) +local r, g, b = 1, 1, 1 +for i = 1, GetNumWatchedTokens() do +local _, _, _, itemID = GetBackpackCurrencyInfo(i) +if id == itemID then r, g, b = 0.23, 0.88, 0.27 end +end +local texStr = ("\124T%s:12\124t %s"):format(tex, name) +local altStr = "" +if weekly then +if discovered then +if id == 390 then +local pointsThisWeek, maxPointsThisWeek = GetPVPRewards(); +altStr = ("Current: %d | Weekly: %d / %d"):format(amount, pointsThisWeek, maxPointsThisWeek) +else +altStr = ("Current: %d / %d | Weekly: %d / %d"):format(amount, maxed, week, weekmax) +end +Reports.ToolTip:AddDoubleLine(texStr, altStr, r, g, b, r, g, b) +end +elseif capped then +if id == 392 or id == 395 then maxed = 4000 end +if id == 396 then maxed = 3000 end +if id == 1129 then maxed = 10 end +if discovered then +altStr = ("%d / %d"):format(amount, maxed) +Reports.ToolTip:AddDoubleLine(texStr, altStr, r, g, b, r, g, b) +end +else +if discovered then +Reports.ToolTip:AddDoubleLine(texStr, amount, r, g, b, r, g, b) +end +end end --[[ ########################################################## @@ -156,9 +159,9 @@ REPORT TEMPLATE ########################################################## ]]-- local Report = Reports:NewReport(REPORT_NAME, { - type = "data source", - text = REPORT_NAME .. " Info", - icon = [[Interface\Addons\SVUI_!Core\assets\icons\SVUI]] +type = "data source", +text = REPORT_NAME .. " Info", +icon = [[Interface\Addons\SVUI_!Core\assets\icons\SVUI]] }); Report.events = {"PLAYER_ENTERING_WORLD", "PLAYER_MONEY", "CURRENCY_DISPLAY_UPDATE"}; @@ -166,95 +169,97 @@ Report.events = {"PLAYER_ENTERING_WORLD", "PLAYER_MONEY", "CURRENCY_DISPLAY_UPDA Report.OnEvent = Tokens_OnEvent; Report.OnClick = function(self, button) - CacheTokenData(self); - SV.Dropdown:Open(self, self.InnerData, "Select Currency", 200) +CacheTokenData(self); +SV.Dropdown:Open(self, self.InnerData, "Select Currency", 200) end Report.OnEnter = function(self) - Reports:SetDataTip(self) - Reports.ToolTip:AddLine(playerName .. "\'s Tokens") +Reports:SetDataTip(self) +Reports.ToolTip:AddLine(playerName .. "\'s Tokens") - Reports.ToolTip:AddLine(" ") - Reports.ToolTip:AddLine("Common") - TokenInquiry(241) - TokenInquiry(416) - TokenInquiry(515) - TokenInquiry(776) - TokenInquiry(777) - TokenInquiry(789) +Reports.ToolTip:AddLine(" ") +Reports.ToolTip:AddLine("Common") +TokenInquiry(241) +TokenInquiry(416) +TokenInquiry(515) +TokenInquiry(776) +TokenInquiry(777) +TokenInquiry(789) - Reports.ToolTip:AddLine(" ") - Reports.ToolTip:AddLine("Garrison") - TokenInquiry(823) - TokenInquiry(824) - TokenInquiry(1101) - TokenInquiry(910) - TokenInquiry(999) - TokenInquiry(1020) - TokenInquiry(1008) - TokenInquiry(1017) +Reports.ToolTip:AddLine(" ") +Reports.ToolTip:AddLine("Garrison") +TokenInquiry(823) +TokenInquiry(824) +TokenInquiry(1101) +TokenInquiry(910) +TokenInquiry(999) +TokenInquiry(1020) +TokenInquiry(1008) +TokenInquiry(1017) - Reports.ToolTip:AddLine(" ") - Reports.ToolTip:AddLine("Raiding and Dungeons") - TokenInquiry(994, false, true) - TokenInquiry(697, false, true) - TokenInquiry(738) - TokenInquiry(615) - TokenInquiry(614) - TokenInquiry(395, false, true) - TokenInquiry(396, false, true) +Reports.ToolTip:AddLine(" ") +Reports.ToolTip:AddLine("Raiding and Dungeons") +TokenInquiry(1166) +TokenInquiry(1129, false, true) +TokenInquiry(994, false, true) +TokenInquiry(697, false, true) +TokenInquiry(738) +TokenInquiry(615) +TokenInquiry(614) +TokenInquiry(395, false, true) +TokenInquiry(396, false, true) - Reports.ToolTip:AddLine(" ") - Reports.ToolTip:AddLine("PvP") - TokenInquiry(390, true) - TokenInquiry(392, false, true) - TokenInquiry(391) +Reports.ToolTip:AddLine(" ") +Reports.ToolTip:AddLine("PvP") +TokenInquiry(390, true) +TokenInquiry(392, false, true) +TokenInquiry(391) - local prof1, prof2, archaeology, _, cooking = GetProfessions() - if(archaeology or cooking or prof1 == 9 or prof2 == 9) then - Reports.ToolTip:AddLine(" ") - Reports.ToolTip:AddLine("Professions") - end - if cooking then - TokenInquiry(81) - TokenInquiry(402) - end - if(prof1 == 9 or prof2 == 9) then - TokenInquiry(61) - TokenInquiry(361) - TokenInquiry(698) - end - if archaeology then - TokenInquiry(821) - TokenInquiry(829) - TokenInquiry(944) - TokenInquiry(398) - TokenInquiry(384) - TokenInquiry(393) - TokenInquiry(677) - TokenInquiry(400) - TokenInquiry(394) - TokenInquiry(397) - TokenInquiry(676) - TokenInquiry(401) - TokenInquiry(385) - TokenInquiry(399) - end - Reports.ToolTip:AddLine(" ") - Reports.ToolTip:AddDoubleLine("[Shift + Click]", "Change Watched Token", 0,1,0, 0.5,1,0.5) - Reports:ShowDataTip(true) +local prof1, prof2, archaeology, _, cooking = GetProfessions() +if(archaeology or cooking or prof1 == 9 or prof2 == 9) then +Reports.ToolTip:AddLine(" ") +Reports.ToolTip:AddLine("Professions") +end +if cooking then +TokenInquiry(81) +TokenInquiry(402) +end +if(prof1 == 9 or prof2 == 9) then +TokenInquiry(61) +TokenInquiry(361) +TokenInquiry(698) +end +if archaeology then +TokenInquiry(821) +TokenInquiry(829) +TokenInquiry(944) +TokenInquiry(398) +TokenInquiry(384) +TokenInquiry(393) +TokenInquiry(677) +TokenInquiry(400) +TokenInquiry(394) +TokenInquiry(397) +TokenInquiry(676) +TokenInquiry(401) +TokenInquiry(385) +TokenInquiry(399) +end +Reports.ToolTip:AddLine(" ") +Reports.ToolTip:AddDoubleLine("[Shift + Click]", "Change Watched Token", 0,1,0, 0.5,1,0.5) +Reports:ShowDataTip(true) end Report.OnInit = function(self) - if not IsAddOnLoaded("Blizzard_PVPUI") then - LoadAddOn("Blizzard_PVPUI") - end - if(not self.InnerData) then - self.InnerData = {} - end - Reports:SetAccountantData('tokens', 'table', {}) - local key = self:GetName() - Reports.Accountant["tokens"][playerName][key] = Reports.Accountant["tokens"][playerName][key] or 738; - self.TokenKey = Reports.Accountant["tokens"][playerName][key] - CacheTokenData(self); +if not IsAddOnLoaded("Blizzard_PVPUI") then +LoadAddOn("Blizzard_PVPUI") +end +if(not self.InnerData) then +self.InnerData = {} end +Reports:SetAccountantData('tokens', 'table', {}) +local key = self:GetName() +Reports.Accountant["tokens"][playerName][key] = Reports.Accountant["tokens"][playerName][key] or 738; +self.TokenKey = Reports.Accountant["tokens"][playerName][key] +CacheTokenData(self); +end \ No newline at end of file