comparison Modules/ArtifactPower.lua @ 129:9f2cf5609420 v7.3.0-20171022

- fix Argus world quests not being counted - add "Argus WQ" header in the summary box
author Nenue
date Sun, 22 Oct 2017 18:28:43 -0400
parents 3f4794dca91b
children 15a7f27b11e6
comparison
equal deleted inserted replaced
128:799ec6dce9c3 129:9f2cf5609420
39 local FRAME_PADDING = 4 39 local FRAME_PADDING = 4
40 local EQUIPPED_SIZE = 64 40 local EQUIPPED_SIZE = 64
41 local BUTTON_SIZE = 48 41 local BUTTON_SIZE = 48
42 local FRAME_LIST = {'ContainerFrame1', 'BankFrame'} 42 local FRAME_LIST = {'ContainerFrame1', 'BankFrame'}
43 local BAG_FRAMES = {'ContainerFrame1'} 43 local BAG_FRAMES = {'ContainerFrame1'}
44 local BANK_FRAMES = {'BankFrame'} 44 local BANK_FRAMES = {'BankFrame' }
45 local ZONE_ID_ARGUS = 1184
46 local ZONE_ID_BROKEN_ISLE = 1007
45 47
46 function Module:OnLoad() 48 function Module:OnLoad()
47 self:RegisterEvent('BAG_UPDATE') -- use to obtain bag IDs to scan 49 self:RegisterEvent('BAG_UPDATE') -- use to obtain bag IDs to scan
48 self:RegisterEvent('BAG_UPDATE_DELAYED') -- use to trigger actual scan activity 50 self:RegisterEvent('BAG_UPDATE_DELAYED') -- use to trigger actual scan activity
49 self:RegisterEvent('BANKFRAME_OPENED') -- bank info available 51 self:RegisterEvent('BANKFRAME_OPENED') -- bank info available
466 468
467 if self.worldQuestAP then 469 if self.worldQuestAP then
468 bankText = (bankText and (bankText .. '\n') or '') .. '|cFFFFBB00World Quests:|r |cFFFFFFFF' .. ShortNumberString(self.worldQuestAP) .. '' 470 bankText = (bankText and (bankText .. '\n') or '') .. '|cFFFFBB00World Quests:|r |cFFFFFFFF' .. ShortNumberString(self.worldQuestAP) .. ''
469 end 471 end
470 472
473 if self.argusAP then
474 bankText = (bankText and (bankText .. '\n') or '') .. '|cFF88FF00Argus WQ:|r |cFFFFFFFF' .. ShortNumberString(self.argusAP) .. ''
475 end
476
477
471 478
472 self.SummaryHeader:SetText(bankText) 479 self.SummaryHeader:SetText(bankText)
473 if not self.lastButton then 480 if not self.lastButton then
474 contentsHeight = contentsHeight + self.SummaryHeader:GetHeight() 481 contentsHeight = contentsHeight + self.SummaryHeader:GetHeight()
475 end 482 end
483 self:SetWidth(contentsWidth) 490 self:SetWidth(contentsWidth)
484 self:SetHeight(contentsHeight) 491 self:SetHeight(contentsHeight)
485 self:Reanchor() 492 self:Reanchor()
486 end 493 end
487 494
488 local BROKEN_ISLE_ID = 1007 495 function Module:GetContinentAP(mapAreaID)
489 496
490 function Module:UpdateWorldQuestsAP() 497 for zoneIndex = 1, C_MapCanvas.GetNumZones(mapAreaID) do
491 self.waitingForQuestRewardData = false 498 local zoneMapID, zoneName, zoneDepth, left, right, top, bottom = C_MapCanvas.GetZoneInfo(mapAreaID, zoneIndex);
492 self.worldQuestAP = 0
493 wipe(self.worldQuestItems)
494
495 for zoneIndex = 1, C_MapCanvas.GetNumZones(BROKEN_ISLE_ID) do
496 local zoneMapID, zoneName, zoneDepth, left, right, top, bottom = C_MapCanvas.GetZoneInfo(BROKEN_ISLE_ID, zoneIndex);
497 --print(zoneMapID, zoneName) 499 --print(zoneMapID, zoneName)
498 if zoneDepth <= 1 then -- Exclude subzones 500 if zoneDepth <= 1 then -- Exclude subzones
499 local taskInfo = C_TaskQuest.GetQuestsForPlayerByMapID(zoneMapID, BROKEN_ISLE_ID); 501 local taskInfo = C_TaskQuest.GetQuestsForPlayerByMapID(zoneMapID, mapAreaID, (mapAreaID == 1184) and 1 or nil);
500 502
501 if taskInfo then 503 if taskInfo then
502 for i, info in ipairs(taskInfo) do 504 for i, info in ipairs(taskInfo) do
503 local questID = info.questId 505 local questID = info.questId
504 506
517 if link then 519 if link then
518 local ap = self:GetItemAP(itemID, link) 520 local ap = self:GetItemAP(itemID, link)
519 --print('ap =', ap) 521 --print('ap =', ap)
520 if ap then 522 if ap then
521 self.worldQuestAP = self.worldQuestAP + ap 523 self.worldQuestAP = self.worldQuestAP + ap
524 if mapAreaID == ZONE_ID_ARGUS then
525 self.argusAP = self.argusAP + ap
526 end
522 527
523 end 528 end
524 529
525 self.worldQuestItems[itemID] = (self.worldQuestItems[itemID] or 0) + 1 530 self.worldQuestItems[itemID] = (self.worldQuestItems[itemID] or 0) + 1
526 end 531 end
539 end 544 end
540 end 545 end
541 end 546 end
542 end 547 end
543 end 548 end
549
550 end
551
552 function Module:UpdateWorldQuestsAP()
553 self.waitingForQuestRewardData = false
554 self.worldQuestAP = 0
555 self.argusAP = 0
556 wipe(self.worldQuestItems)
557
558 self:GetContinentAP(ZONE_ID_BROKEN_ISLE)
559 self:GetContinentAP(ZONE_ID_ARGUS)
560
544 end 561 end
545 562
546 function Module:UpdateArtifactButtons() 563 function Module:UpdateArtifactButtons()
547 564
548 -- Artifact icons, in no particular order 565 -- Artifact icons, in no particular order
758 local itemAP = text:match('[%d%.]+') 775 local itemAP = text:match('[%d%.]+')
759 if itemAP then 776 if itemAP then
760 -- tokens > 1M are described as '%f million' 777 -- tokens > 1M are described as '%f million'
761 if text:match("million") then 778 if text:match("million") then
762 itemAP = tonumber(itemAP) * 1000000 779 itemAP = tonumber(itemAP) * 1000000
780 elseif text:match("billion") then
781 itemAP = tonumber(itemAP) * 1000000000
763 end 782 end
764 783
765 itemAP = itemAP 784 itemAP = itemAP
766 self.cache.items[itemID] = tonumber(itemAP) 785 self.cache.items[itemID] = tonumber(itemAP)
767 end 786 end
1041 local maxHeight = self:GetHeight() - (XP_INSET*2) 1060 local maxHeight = self:GetHeight() - (XP_INSET*2)
1042 local currentHeight = self.CurrentProgress:GetHeight() or 1 1061 local currentHeight = self.CurrentProgress:GetHeight() or 1
1043 local offHeight = self.AdjustedProgress:GetHeight() or 1 1062 local offHeight = self.AdjustedProgress:GetHeight() or 1
1044 1063
1045 1064
1046 self.CurrentProgress:SetPoint('BOTTOM', self, 'BOTTOM', 0, XP_INSET) 1065 self.CurrentProgress:SetPoint('BOTTOM', self.XPBackground, 'BOTTOM', 0, 0)
1047 local currentProgress = (self.currentXP < self.currentCost) and (self.currentXP / self.currentCost) or 1 1066 local currentProgress = (self.currentXP < self.currentCost) and (self.currentXP / self.currentCost) or 1
1048 local projectedProgress = (self.totalXP < self.totalCost) and (self.totalXP / self.totalCost) or 1 1067 local projectedProgress = (self.totalXP < self.totalCost) and (self.totalXP / self.totalCost) or 1
1049 if self.actualLevel ~= self.level then 1068 if self.actualLevel ~= self.level then
1050 r3, g3, b3 = 0, 1, 1 1069 r3, g3, b3 = 0, 1, 1
1051 end 1070 end