@@ -21,6 +21,7 @@ local TIER_LFR = 1
2121local TIER_NORMAL = 2
2222local TIER_HEROIC = 3
2323local TIER_MYTHIC = 4
24+
2425local MYTH_TRACK_STRING_ID = 978 ;
2526local HERO_TRACK_STRING_ID = 974 ;
2627local CHAMPION_TRACK_STRING_ID = 973 ;
@@ -31,12 +32,15 @@ local TRACK_STRING_ID_TO_TIERS = {
3132 [HERO_TRACK_STRING_ID ] = TIER_HEROIC ,
3233 [MYTH_TRACK_STRING_ID ] = TIER_MYTHIC ,
3334}
35+
36+ local CONQUEST_ITEM_MOD_ID = 159 ;
3437local ITEM_MOD_ID_TIERS = {
3538 [4 ] = TIER_LFR ,
3639 [0 ] = TIER_NORMAL ,
3740 [1 ] = TIER_HEROIC ,
3841 [3 ] = TIER_MYTHIC ,
3942}
43+
4044local CLOTH = Enum .ItemArmorSubclass .Cloth
4145local LEATHER = Enum .ItemArmorSubclass .Leather
4246local MAIL = Enum .ItemArmorSubclass .Mail
@@ -56,6 +60,7 @@ local classArmorTypeMap = {
5660 [12 ] = LEATHER , -- DEMONHUNTER
5761 [13 ] = MAIL , -- EVOKER
5862}
63+
5964local ITEM_UPGRADE_TOOLTIP_PATTERN = ITEM_UPGRADE_TOOLTIP_FORMAT_STRING :gsub (' %%d' , ' (%%d+)' ):gsub (' %%s' , ' (.-)' );
6065local CATALYST_MARKUP = CreateAtlasMarkup (' CreationCatalyst-32x32' , 18 , 18 )
6166local UPGRADE_MARKUP = CreateAtlasMarkup (' CovenantSanctum-Upgrade-Icon-Available' , 18 , 18 )
@@ -233,6 +238,18 @@ function TUM:IsCurrentSeasonItem(itemLink)
233238 return false
234239end
235240
241+ --- @param itemLink string
242+ --- @return boolean isConquestPvpItem
243+ function TUM :IsConquestPvpItem (itemLink )
244+ local _ , sourceID = C_TransmogCollection .GetItemInfo (itemLink )
245+ if not sourceID then
246+ return false
247+ end
248+ local sourceInfo = C_TransmogCollection .GetSourceInfo (sourceID )
249+
250+ return sourceInfo and sourceInfo .itemModID == CONQUEST_ITEM_MOD_ID or false
251+ end
252+
236253local mailableBindings = {
237254 [Enum .TooltipDataItemBinding .Account ] = true ,
238255 [Enum .TooltipDataItemBinding .AccountUntilEquipped ] = true ,
@@ -359,6 +376,11 @@ function TUM:IsAppearanceMissing(itemLink, classID, debugLines)
359376 local _ , sourceID = C_TransmogCollection .GetItemInfo (itemLink )
360377 tryInsert (debugLines , ' sourceID: ' .. tostring (sourceID ))
361378
379+ if sourceID and debugLines then
380+ local sourceInfo = C_TransmogCollection .GetSourceInfo (sourceID )
381+ tryInsert (debugLines , ' itemModID: ' .. tostring (sourceInfo and sourceInfo .itemModID ))
382+ end
383+
362384 if currentTier == 0 then
363385 local sourceIDs = self :GetSourceIDsForItemID (itemID )
364386 local index = tIndexOf (sourceIDs or {}, sourceID )
@@ -396,9 +418,16 @@ function TUM:IsAppearanceMissing(itemLink, classID, debugLines)
396418 end
397419 end
398420
421+ -- conquest PvP items can be catalysed for set bonus and upgraded, but they keep their appearance
422+ local isConquestPvpItem = self :IsConquestPvpItem (itemLink )
423+ tryInsert (debugLines , ' isConquestPvpItem: ' .. tostring (isConquestPvpItem ))
424+ if isConquestPvpItem then
425+ canUpgradeToNextBreakpoint = false
426+ end
427+
399428 local isCatalysed = self :IsItemCatalysed (itemID )
400429 tryInsert (debugLines , ' isCatalysed: ' .. tostring (isCatalysed ))
401- canCatalyse = not isCatalysed and self :IsCatalystSlot (itemSlot ) and self :IsValidArmorTypeForClass (itemLink , classID )
430+ canCatalyse = not isCatalysed and not isConquestPvpItem and self :IsCatalystSlot (itemSlot ) and self :IsValidArmorTypeForClass (itemLink , classID )
402431 if canCatalyse then
403432 local catalystCollected , catalystUpgradeCollected
404433 local playerSets = self :GetSetsForClass (classID , seasonID )
@@ -426,7 +455,7 @@ function TUM:IsAppearanceMissing(itemLink, classID, debugLines)
426455 end
427456 end
428457 else
429- tryInsert (debugLines , ' can\' t catalyse or already catalysed ' )
458+ tryInsert (debugLines , ' can\' t catalyse or catalyst keeps old appearance ' )
430459 end
431460 local upgradeCollected
432461 if isCatalysed and relatedSets and canUpgradeToNextBreakpoint then
0 commit comments