@@ -827,12 +827,17 @@ function ItemClass:ParseRaw(raw, rarity, highQuality)
827827 end
828828 if self .pendingAffixList and # self .pendingAffixList > 0 then
829829 if # self .pendingAffixList > 1 then
830- -- Probably a conqueror mod since the mod name is the same for all of them
830+ -- Probably a conqueror or essence mod since the mod name is the same for all of them
831831 -- Try to match the line against one of the mods there
832832 local valueStrippedLine = line :gsub (" %-?%d+%.?%d*%(" , " (" ):gsub (" %-?%d+%.?%d*" , " #" )
833833 for _ , pendingAffix in ipairs (self .pendingAffixList ) do
834834 local modData = self .affixes [pendingAffix .modId ]
835835 for _ , modDataLine in ipairs (modData ) do
836+ -- Prefer the exact match
837+ if line == modDataLine then
838+ self .pendingAffixList = { pendingAffix }
839+ break
840+ end
836841 if valueStrippedLine == modDataLine :gsub (" %-?%d+%.?%d*" , " #" ) then
837842 self .pendingAffixList = { pendingAffix }
838843 break
@@ -855,7 +860,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality)
855860 end
856861 t_insert (self .pendingAffixList [1 ].table , {
857862 modId = self .pendingAffixList [1 ].modId ,
858- range = tonumber ( bestPrecisionRange ) ,
863+ range = bestPrecisionRange >= 0 and bestPrecisionRange <= 1 and bestPrecisionRange or 0.5 ,
859864 })
860865 self .pendingAffixList = {}
861866 else
@@ -880,7 +885,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality)
880885 end
881886 end
882887 if bestPrecisionRange <= 1 and bestPrecisionRange >= 0 then
883- modLine .range = tonumber ( bestPrecisionRange )
888+ modLine .range = bestPrecisionRange
884889 end
885890 end
886891 local rangedLine = itemLib .applyRange (line , 1 , catalystScalar )
0 commit comments