Mercurial > wow > buffalo2
changeset 133:86621c60512b v7.3.2-20171222
- Fixed AP calc tooltip appearing while hidden
- Fixed PaperDoll relic tooltips missing nether crucible info
author | Nenue |
---|---|
date | Fri, 22 Dec 2017 20:36:40 -0500 |
parents | 4cb1d2a0c110 |
children | 24dc16a49b15 |
files | Modules/ArtifactPower.lua Modules/Currency.lua Modules/GuildInfo.lua Modules/GuildInfo.xml Modules/PaperDoll.lua Modules/PaperDoll.xml |
diffstat | 6 files changed, 480 insertions(+), 108 deletions(-) [+] |
line wrap: on
line diff
--- a/Modules/ArtifactPower.lua Mon Nov 20 12:02:18 2017 -0500 +++ b/Modules/ArtifactPower.lua Fri Dec 22 20:36:40 2017 -0500 @@ -402,6 +402,7 @@ end end +local hasShownHeaderTip function Module:OnUpdate() if #self.scanQueue >= 1 then local scanInfo = tremove(self.scanQueue, 1) @@ -412,6 +413,42 @@ self.Refresh:Hide() end + if self.SummaryHeader:IsMouseOver() and self:IsShown() then + if not hasShownHeaderTip then + hasShownHeaderTip = true + GameTooltip:SetOwner(self, 'ANCHOR_BOTTOM') + GameTooltip:AddLine("World Quests") + + for zone, data in pairs(self.apQuests) do + + if #data >= 1 then + GameTooltip:AddLine(zone) + for i, quest in ipairs(data) do + + if IsQuestComplete(quest[1]) then + GameTooltip:AddDoubleLine(quest[2], ShortNumberString(quest[3]), 0.5,0.5,0.5, 0.5,0.5,0.5) + else + GameTooltip:AddDoubleLine(quest[2], ShortNumberString(quest[3]), 1,1,1, 0,1,0) + + end + + end + end + + + end + + GameTooltip:Show() + end + else + if GameTooltip:IsOwned(self) then + hasShownHeaderTip = nil + GameTooltip:Hide() + end + + end + + end function Module:OnMouseDown(button) @@ -492,6 +529,7 @@ self:Reanchor() end +Module.apQuests = {} function Module:GetContinentAP(mapAreaID) for zoneIndex = 1, C_MapCanvas.GetNumZones(mapAreaID) do @@ -500,28 +538,39 @@ if zoneDepth <= 1 then -- Exclude subzones local taskInfo = C_TaskQuest.GetQuestsForPlayerByMapID(zoneMapID, mapAreaID, (mapAreaID == 1184) and 1 or nil); + self.apQuests[zoneName] = self.apQuests[zoneName] or {} + wipe(self.apQuests[zoneName]) + if taskInfo then for i, info in ipairs(taskInfo) do local questID = info.questId local questTitle, factionID, capped = C_TaskQuest.GetQuestInfoByQuestID(questID) - --print(questTitle, HaveQuestRewardData(questID)) - if HaveQuestRewardData(questID) and not IsQuestComplete(questID) then + if HaveQuestRewardData(questID) then for i = 1, GetNumQuestLogRewards(questID) or 0 do local name, texture, numItems, quality, isUsable, itemID = GetQuestLogRewardInfo(i, questID) if IsArtifactPowerItem(itemID) then + + print(questTitle, HaveQuestRewardData(questID)) local _, link = GetItemInfo(itemID) if link then local ap = self:GetItemAP(itemID, link) --print('ap =', ap) if ap then - self.worldQuestAP = self.worldQuestAP + ap - if mapAreaID == ZONE_ID_ARGUS then - self.argusAP = self.argusAP + ap + + if not IsQuestComplete(questID) then + self.worldQuestAP = self.worldQuestAP + ap + if mapAreaID == ZONE_ID_ARGUS then + self.argusAP = self.argusAP + ap + end end + + tinsert(self.apQuests[zoneName], {questID, questTitle, ap}) + + end self.worldQuestItems[itemID] = (self.worldQuestItems[itemID] or 0) + 1 @@ -549,7 +598,7 @@ self.worldQuestAP = 0 self.argusAP = 0 wipe(self.worldQuestItems) - + wipe(self.apQuests) self:GetContinentAP(ZONE_ID_BROKEN_ISLE) self:GetContinentAP(ZONE_ID_ARGUS)
--- a/Modules/Currency.lua Mon Nov 20 12:02:18 2017 -0500 +++ b/Modules/Currency.lua Fri Dec 22 20:36:40 2017 -0500 @@ -14,14 +14,10 @@ local currencyBlock = {} -local zoneEvents = { - "ZONE_CHANGED_NEW_AREA", "ZONE_CHANGED_INDOORS", "ZONE_CHANGED" -} -local currencyEvents = { - 'CURRENCY_DISPLAY_UPDATE', 'CHAT_MSG_CURRENCY' -} -local itemEvents = { - 'CHAT_MSG_LOOT', 'BAG_UPDATE' +local events = { + 'CHAT_MSG_LOOT', + "ZONE_CHANGED_NEW_AREA", "ZONE_CHANGED_INDOORS", "ZONE_CHANGED", + 'BAG_UPDATE', 'CURRENCY_DISPLAY_UPDATE', 'CHAT_MSG_CURRENCY', } local blocks = { @@ -87,6 +83,11 @@ function module:OnLoad () Veneer:AddHandler(self) + for _, event in ipairs(events) do + self:RegisterEvent(event) + end + + for name, info in pairs(blocks) do local block = CreateFrame('Frame', nil, self, 'VeneerCurrencyTemplate') block.name = name @@ -100,6 +101,8 @@ end block.id = info.itemID or info.currencyID + block:SetScript('OnEnter', itemBlock.OnEnter or block.OnEnter) + block:SetScript('OnLeave', itemBlock.OnLeave or block.OnLeave) if info.itemID then local itemID = info.itemID @@ -108,17 +111,14 @@ frame = block } block.Update = itemBlock.Update - RegisterEvents(block, itemEvents) elseif info.currencyID then local currencyID = info.currencyID block.Update = currencyBlock.Update - RegisterEvents(self, currencyEvents) end if info.zones then - RegisterEvents(self, zoneEvents) local zones = info.zones local of = block.Update function block:Update() @@ -157,7 +157,6 @@ end local canShow = false - if BagBrother then for i, bag in pairs(BagBrother.Player) do if type(bag) == 'table' then @@ -193,6 +192,7 @@ local itemID = GetContainerItemID(i, j) local texture, count = GetContainerItemInfo(i,j) if items[itemID] then + items[itemID].count = items[itemID].count + (count or 1) if not items[itemID].texture then items[itemID].texture = texture @@ -278,13 +278,6 @@ end end -function block:OnEvent(event, ...) - self.debug('OnEvent', event, ...) - self:Update() -end - -function block:Setup() -end function itemBlock:Update() if items[self.itemID].count >= 1 then
--- a/Modules/GuildInfo.lua Mon Nov 20 12:02:18 2017 -0500 +++ b/Modules/GuildInfo.lua Fri Dec 22 20:36:40 2017 -0500 @@ -18,7 +18,7 @@ --self:RegisterEvent('GUILD_ROSTER_UPDATE') --self:RegisterEvent('GUILD_TRADESKILL_UPDATE') - self:RegisterEvent('LFG_LIST_SEARCH_RESULT_UPDATED') + --self:RegisterEvent('LFG_LIST_SEARCH_RESULT_UPDATED') --self:RegisterEvent('LFG_LIST_SEARCH_RESULTS_RECEIVED') --self:RegisterEvent('LFG_LIST_AVAILABILITY_UPDATE') --self:RegisterEvent('LFG_LIST_LOCK_INFO_RECEIVED') @@ -74,12 +74,25 @@ -- cheevos to link local overlaps = { [11781] = 11875, - - + [12002] = 12111, } local cheevos = { - -- Mythic Prog: Tomb + -- Mythic Prog { + -- Antorus + 12002, -- argus + 12001, -- aggramar + 12000, -- coven + 11999, -- barry + 11998, -- kin'garoth + 11997, -- imonar + 11996, -- eonar + 11995, -- portal keeper + 11994, -- high command + 11993, -- doggos + 11992, -- worldbreaker + + -- Tomb of Sargeras 11781, -- kj 11780, -- avatar 11779, -- maiden @@ -90,8 +103,10 @@ 11774, -- di, 11773, -- goroth }, - -- Completion: Tomb + -- Completion { + 12111, -- CE Argus, + 12110, -- AotC Argus, 11875, -- CE KJ 11874, -- AotC KJ 11790 -- Deceiver's Fall, @@ -105,6 +120,7 @@ } } +local invasion = {} local cheev = {} function cheev:OnClick() @@ -119,6 +135,15 @@ end end +function invasion:OnClick() + +end + +function module:UpdateInvasionButtons() + +end + +local listed = {} function module:UpdateAchievementLinks() print('UpdateAchievementLinks()') @@ -134,6 +159,13 @@ for _, id in ipairs(group) do local _, name, points, completed, month, day, year, description, flags, icon = GetAchievementInfo(id) if completed then + + -- if the highest mythic kill + if listed[overlaps[id]] then + break + end + + index = index + 1 --print(index) local block =self.blocks[index] @@ -160,11 +192,36 @@ --print(index, name, icon) lastBlock = block + listed[id] = true break; end end end +--[[ + local areaPOIs = C_WorldMap.GetAreaPOIForMap(GetCurrentMapAreaID(), 1); + if areaPOIs then + + + for i, areaPoiID in ipairs(areaPOIs) do + local poiInfo = C_WorldMap.GetAreaPOIInfo(GetCurrentMapAreaID(), areaPoiID, 1); + + index = index + 1 + --print(index) + local block =self.blocks[index] + if not block then + block = CreateFrame('Button', 'VeneerRosterKunBlock'..index, self, 'VeneerRosterKunBlock') + block:SetScript('OnClick', invasion.OnClick) + block:SetID(index) + self.blocks[index] = block + end + + + + end + end + --]] + --print(index, #self.blocks) if index < #self.blocks then for i = index+1, #self.blocks do @@ -188,6 +245,7 @@ self:UpdateAchievementLinks() end + end function module:SetupGuildUI() self:UnregisterEvent('ADDON_LOADED') @@ -203,3 +261,143 @@ elseif event == 'LFG_LIST_SEARCH_RESULT_UPDATED' then end end + + +VeneerPetBattleActionMixin = {} +VeneerPetBattleInfoMixin = {} +local pb = VeneerPetBattleInfoMixin +local action = VeneerPetBattleActionMixin + + +function pb:OnShow() + self:ClearAllPoints() + self:SetPoint('TOPLEFT', PetBattleFrame.EnemyBuffFrame, 'BOTTOMLEFT', 0, -12) + self:RegisterEvent('PET_BATTLE_PET_ROUND_PLAYBACK_COMPLETE') + self:RegisterEvent('PET_BATTLE_ACTION_SELECTED') + self:RegisterEvent('PET_BATTLE_TURN_STARTED') + print('pet on show') + self:Refresh() +end + +function pb:OnHide() + print('pet on hide') + self:UnregisterAllEvents() +end + +function pb:OnEvent(event) + print('pb event|cFFFF8800', event) + self:Refresh() +end + +function pb:Refresh() + local myPetSlot = C_PetBattles.GetActivePet(1) + local myPetType = C_PetBattles.GetPetType(1, myPetSlot) + + local index = 0 + local nonActiveIndex = 0 + local lastFrame, lastNonActive + for petSlot = 1, C_PetBattles.GetNumPets(2) do + + for abilitySlot = 1,3 do + local _, name, texture, cooldown, tooltip,_, abilityType, noStrongWeakHints = C_PetBattles.GetAbilityInfo(2, petSlot, abilitySlot) + local petHealth = C_PetBattles.GetHealth(2, petSlot) + + if petHealth >= 1 then + local isUsable, currentCooldown, currentLockdown = C_PetBattles.GetAbilityState(2, petSlot, abilitySlot); + --print(index, petSlot, abilitySlot, name, currentCooldown, currentLockdown, cooldown, petHealth) + + index = index + 1 + local frame = self.Abilities[index] + + frame.ownerID = 2 + frame.petIndex = petSlot + frame.abIndex = abilitySlot + frame.tooltip = tooltip + frame.Name:SetText(name) + frame.Icon:SetTexture(texture) + frame.TypeIcon:SetTexture("Interface\\PetBattles\\PetIcon-"..PET_TYPE_SUFFIX[abilityType]) + + + for i = 1,C_PetBattles.GetNumPets(1) do + local myPetType = C_PetBattles.GetPetType(1, i) + if not (myPetType or abilityType) then + frame.BetterIcon[i]:Hide(); + else + local modifier = C_PetBattles.GetAttackModifier(abilityType, myPetType) + if ( noStrongWeakHints or modifier == 1 ) then + frame.BetterIcon[i]:Hide(); + elseif (modifier > 1) then + frame.BetterIcon[i]:SetTexture("Interface\\PetBattles\\BattleBar-AbilityBadge-Strong"); + frame.BetterIcon[i]:Show(); + elseif (modifier < 1) then + frame.BetterIcon[i]:SetTexture("Interface\\PetBattles\\BattleBar-AbilityBadge-Weak"); + frame.BetterIcon[i]:Show(); + end + + end + end + + + if cooldown >= 1 then + frame.Border2:Show() + else + + frame.Border2:Hide() + end + + + currentCooldown = (currentCooldown >= 1) and currentCooldown or 0 + if petHealth == 0 then + frame.Cooldown:SetText(nil) + frame.Cooldown:SetTextColor(1,0,0) + else + if currentLockdown >= 1 and currentLockdown > currentCooldown then + frame.Cooldown:SetTextColor(1,0,0) + else + frame.Cooldown:SetTextColor(1,1,1) + end + frame.Cooldown:SetText((currentCooldown >= 1) and currentCooldown or nil) + end + + frame:ClearAllPoints() + if petSlot == C_PetBattles.GetActivePet(2) then + frame:SetSize(48,48) + frame.Border2:SetSize(72,72) + frame.Icon:SetDesaturated(false) + frame.Name:SetTextColor(1,1,0) + if lastFrame then + frame:SetPoint('TOPLEFT', lastFrame, 'BOTTOMLEFT', 0, -4) + else + frame:SetPoint('TOPLEFT', self, 'TOPLEFT') + end + lastFrame = frame + else + frame:SetSize(24,24) + frame.Border2:SetSize(36,36) + frame.Name:SetTextColor(0.5,0.5,0.5) + frame.Icon:SetDesaturated(true) + if lastNonActive then + frame:SetPoint('TOPLEFT', lastNonActive, 'BOTTOMLEFT', 0, -2) + else + frame:SetPoint('TOPLEFT', self, 'TOPLEFT', 128, 0) + end + lastNonActive = frame + end + frame:Show() + end + end + end + + for i = index + 1, #self.Abilities do + self.Abilities[i]:Hide() + end +end + +function action:OnEnter() + PetBattleAbilityTooltip_SetAbility(self.ownerID, self.petIndex, self.abIndex); + PetBattleAbilityTooltip_Show("TOPRIGHT", self:GetParent(), "TOPLEFT", -5, 0, self.additionalText); +end + +function action:OnLeave() + PetBattlePrimaryAbilityTooltip:Hide(); +end \ No newline at end of file
--- a/Modules/GuildInfo.xml Mon Nov 20 12:02:18 2017 -0500 +++ b/Modules/GuildInfo.xml Fri Dec 22 20:36:40 2017 -0500 @@ -41,4 +41,91 @@ </HighlightTexture> </Button> - </Ui> \ No newline at end of file + + <Frame name="VeneerPetBattleAbilityTemplate" parent="VeneerPetBattleInfo" parentArray="Abilities" virtual="true" mixin="VeneerPetBattleActionMixin"> + <Size x="48" y="48" /> + <Scripts> + <OnEnter method="OnEnter" /> + <OnLeave method="OnLeave" /> + </Scripts> + <Layers> + <Layer level="BACKGROUND"> + <Texture parentKey="Icon" setAllPoints="true" /> + + </Layer> + <Layer level="OVERLAY"> + <Texture parentArray="BetterIcon"> + <Size x="24" y="24" /> + <Anchors> + <Anchor point="BOTTOMLEFT" relativePoint="BOTTOMRIGHT" /> + </Anchors> + </Texture> + <Texture parentArray="BetterIcon"> + <Size x="24" y="24" /> + <Anchors> + <Anchor point="BOTTOMLEFT" relativePoint="BOTTOMRIGHT" x="26" y="0" /> + </Anchors> + </Texture> + <Texture parentArray="BetterIcon"> + <Size x="24" y="24" /> + <Anchors> + <Anchor point="BOTTOMLEFT" relativePoint="BOTTOMRIGHT" x="54" y="0" /> + </Anchors> + </Texture> + <FontString parentKey="Name" inherits="GameFontNormal"> + <Anchors> + <Anchor point="TOPLEFT" relativePoint="TOPRIGHT" x="4" y="-4" /> + </Anchors> + </FontString> + <FontString parentKey="Cooldown" inherits="GameFont_Gigantic"> + <Anchors> + <Anchor point="CENTER" /> + </Anchors> + </FontString> + + <Texture parentKey="TypeIcon"> + <Size x="16" y="16" /> + <TexCoords left="0.79687500" right="0.49218750" top="0.50390625" bottom="0.65625000"/> + <Anchors> + <Anchor point="TOPRIGHT" /> + + </Anchors> + </Texture> + + <Texture setAllPoints="true" hidden="true" file=""> + + </Texture> + <Texture parentKey="Border2" file="Interface\PetBattles\PetBattle-GoldSpeedFrame" hidden="true"> + <Size x="48" y="48"/> + <Anchors> + <Anchor point="CENTER" relativeKey="$parent.Icon"/> + </Anchors> + <TexCoords left="0.0" right="0.84375" top="0.0" bottom="0.8515625"/> + </Texture> + </Layer> + </Layers> + </Frame> + + <Frame name="VeneerPetBattleInfo" parent="PetBattleFrame" hidden="false" mixin="VeneerPetBattleInfoMixin"> + <Size x="128" y="64" /> + <Scripts> + <OnLoad method="OnLoad" /> + <OnEvent method="OnEvent" /> + <OnShow method="OnShow" /> + <OnHide method="OnHide" /> + </Scripts> + <Frames> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + <Frame inherits="VeneerPetBattleAbilityTemplate" /> + </Frames> + </Frame> + + +</Ui> \ No newline at end of file
--- a/Modules/PaperDoll.lua Mon Nov 20 12:02:18 2017 -0500 +++ b/Modules/PaperDoll.lua Fri Dec 22 20:36:40 2017 -0500 @@ -87,6 +87,8 @@ self:RegisterEvent('ARTIFACT_UPDATE') self:MarkForUpdate() + + end function VeneerPaperDollMixin:MarkForUpdate() @@ -158,8 +160,6 @@ end end - - function VeneerPaperDollMixin:OnEvent(event, arg) print(event, arg) if event == 'ADDON_LOADED' then @@ -171,12 +171,13 @@ self:MarkForUpdate() end elseif event == 'ARTIFACT_UPDATE' then + self:ScoopRelics() if artifactSlot then - artifactSlot:Update(true) + artifactSlot.isDirty = true end elseif event == 'ARTIFACT_RELIC_INFO_RECEIVED' then if artifactSlot then - artifactSlot:Update(true) + artifactSlot.isDirty = true end else if (event == 'PLAYER_SPECIALIZATION_CHANGED' or event == 'UNIT_INVENTORY_CHANGED') then @@ -195,12 +196,20 @@ self.SocketText = {} self.SocketType = {} self.SocketLink = {} + self.SocketForge = {} end function VeneerPaperDollSlotMixin:OnShow() if self.isDirty then self:Update() end end + +function VeneerPaperDollSlotMixin:OnHide() + if GameTooltip:IsOwned(self) then + GameTooltip:Hide() + end +end + function VeneerPaperDollSlotMixin:OnUpdate() if self.isDirty then --print('|cFF00FF00pushing update for', self:GetID()) @@ -208,28 +217,29 @@ end if self.checkRelic then - self.tooltipLink = nil + local setTip for i = 1, 3 do - if self.SocketLink[i] and self.Sockets.SocketIcon[i]:IsMouseOver() then - self.tooltipLink = self.SocketLink[i] + if self.SocketType[i] and self.Sockets.SocketIcon[i]:IsMouseOver() then + setTip = self.SocketForge[i] end end - - if self.tooltipLink then - if not GameTooltip:IsOwned(self) then - GameTooltip:SetOwner(self, 'ANCHOR_CURSOR') - GameTooltip:SetHyperlink(self.tooltipLink) - - GameTooltip:Show() + if setTip then + GameTooltip:SetOwner(self, 'ANCHOR_RIGHT') + for _, info in ipairs(setTip) do + if type(info) == 'table' then + GameTooltip:AddLine(unpack(info)) + elseif type(info) == 'string' then + GameTooltip:AddLine(info) + end end - else - if GameTooltip:IsOwned(self) then - GameTooltip:Hide() - end + GameTooltip:Show() + elseif GameTooltip:IsOwned(self) then + GameTooltip:Hide() end end end +local tooltipName= 'VeneerPaperDollTooltip' function VeneerPaperDollSlotMixin:UpdateRelicInfo() @@ -237,9 +247,46 @@ if not itemID then return end - print('|cFF00FFFFRelic Sweep:', itemID) + print('|cFF00FFFFRelic Info:', itemID) + local guid = UnitGUID(self.unit or 'player') + local relicCache = VeneerPaperDoll.KnownRelics[guid] and VeneerPaperDoll.KnownRelics[guid][itemID] + if not relicCache then + relicCache = {} + VeneerPaperDoll.KnownRelics[guid] = VeneerPaperDoll.KnownRelics[guid] or {} + VeneerPaperDoll.KnownRelics[guid][itemID] = relicCache + end + + for i = 1, 3 do + if relicCache[i] then + local relicIcon, relicLevel, relicType, relicLink, relicForge = unpack(relicCache[i]) + + print('reading', i, unpack(relicCache[i])) + self.SocketInfo[i] = relicIcon + self.SocketText[i] = relicLevel + self.SocketType[i] = relicType + self.SocketLink[i] = relicLink + self.SocketForge[i] = self.SocketForge[i] or {} + if relicForge then + for l, info in ipairs(relicForge) do + self.SocketForge[i][l] = info + end + end + + end + end +end + +function VeneerPaperDollMixin:ScoopRelics() + + -- not a viewed artifact + local itemID = C_ArtifactUI.GetArtifactInfo() + if not itemID then + return + end + + print('|cFFFF00FFScoopRelics:|r', itemID) local guid = UnitGUID(self.unit or 'player') local relicCache = VeneerPaperDoll.KnownRelics[guid] and VeneerPaperDoll.KnownRelics[guid][itemID] if VeneerPaperDoll.KnownRelics[guid] then @@ -260,56 +307,52 @@ local numRelics = C_ArtifactUI.GetNumRelicSlots() local isEquipped = C_ArtifactUI.IsViewedArtifactEquipped() local tooltip = VeneerPaperDollTooltip - tooltip:SetOwner(self, 'ANCHOR_NONE') - self.hasRelicSlots = true - if numRelics and isEquipped then - print('Relic Query:', itemID, numRelics) - for i = 1, numRelics do - local relicName, relicIcon, relicType, relicLink = C_ArtifactUI.GetRelicInfo(i); - local relicType = C_ArtifactUI.GetRelicSlotType(i); - print(relicType) - if relicType then - if relicLink then - tooltip:SetHyperlink(relicLink) - print(tooltip:NumLines()) - local line1 = _G['VeneerPaperDollTooltipTextLeft2'] - local line2 = _G['VeneerPaperDollTooltipTextLeft3'] - local text1 = line1 and line1:GetText() - local text2 = line2 and line2:GetText() - if text1 or text2 then - self.SocketText[i] = text1:match('Item Level (%d+)') or text2:match('Item Level (%d+)') + for i = 1, numRelics do + local relicName, relicIcon, relicType, relicLink = C_ArtifactUI.GetRelicInfo(i); + local relicLevel = relicCache[i][2] or "" + local relicForge = relicCache[i][5] or {} + local relicType = C_ArtifactUI.GetRelicSlotType(i); + + if relicType then + if relicLink then + tooltip:SetSocketedRelic(i) + print(tooltip:NumLines()) + + local numLines = tooltip:NumLines() + if numLines >= 1 then + wipe(relicForge) + local foundRank = 0 + for line = 1, numLines do + --print( _G[tooltipName .. 'TextLeft' .. line]:GetText(), _G[tooltipName .. 'TextLeft' .. line]:GetTextColor()) + local lineText = _G[tooltipName .. 'TextLeft' .. line]:GetText() + + if lineText then + local iLevel = lineText:match('Item Level (%d+)') + local rank = lineText:match('+1 Rank: (.+)') + + if iLevel then + relicLevel = iLevel + print('iLevel = ',iLevel) + end + + tinsert(relicForge, {lineText, _G[tooltipName .. 'TextLeft' .. line]:GetTextColor()}) + end end end - - self.SocketInfo[i] = relicIcon or 0 - self.SocketType[i] = relicType - self.SocketLink[i] = relicLink - print('storing', i, self.SocketInfo[i], self.SocketText[i], self.SocketType[i], self.SocketLink[i]) - else - - - self.SocketInfo[i] = "Interface\\CharacterFrame\\TempPortraitAlphaMask" - self.SocketType[i] = nil - self.SocketLink[i] = nil end - relicCache[i] = {self.SocketInfo[i], self.SocketText[i], self.SocketType[i], self.SocketLink[i]} - end - else + print('storing', i, relicIcon, relicLevel, relicType, relicLink, relicForge) - for i = 1, 3 do - if relicCache[i] then - local relicIcon, relicText, relicType, relicLink = unpack(relicCache[i]) - - print('loading', i, relicIcon, relicText, relicType, relicLink) - self.SocketInfo[i] = relicIcon - self.SocketText[i] = relicText - self.SocketType[i] = relicType - self.SocketLink[i] = relicLink - end + relicCache[i] = {relicIcon, relicLevel, relicType, relicLink, relicForge} end end + + +end + +function VeneerPaperDollSlotMixin:OnLeave() + end function VeneerPaperDollSlotMixin:Update(forced) @@ -334,24 +377,25 @@ local ignoreIL = IsAddOnLoaded("DejaCharacterStats") local itemLevelLine --print('|cFFFFFF00Sockets scan:', numLines) - for i = 1, numLines do - local line = _G['VeneerPaperDollTooltipTextLeft'..i] - local text = line and line:GetText() - if text and not ignoreIL then - itemLevel = text:match('Item Level (%d+)') - if itemLevel then - self.ItemLevel:SetText(itemLevel) - break - end - end - - local texture = _G['VeneerPaperDollTooltipTexture'..i] - if texture and texture:IsShown() then - numTextures = numTextures + 1 - --print('picked up socket', numTextures, texture:GetTexture()) - self.SocketInfo[numTextures] = texture:GetTexture() + for i = 1, numLines do + local line = _G['VeneerPaperDollTooltipTextLeft'..i] + local text = line and line:GetText() + if text and not ignoreIL then + itemLevel = text:match('Item Level (%d+)') + if itemLevel then + self.ItemLevel:SetText(itemLevel) + break end end + + local texture = _G['VeneerPaperDollTooltipTexture'..i] + if texture and texture:IsShown() then + numTextures = numTextures + 1 + --print('picked up socket', numTextures, texture:GetTexture()) + self.SocketInfo[numTextures] = texture:GetTexture() + end + end + if self.checkRelic then self:UpdateRelicInfo() end