Skip to content

Commit cab08e4

Browse files
committed
feat: strip Runeforged prefix from base items on import
Strip "Runeforged " prefix from item base names in Item.lua so that Runeforged variants resolve to their underlying base type. Fix ImportTab to handle Runic Ward import correctly.
1 parent 9948842 commit cab08e4

2 files changed

Lines changed: 9 additions & 5 deletions

File tree

src/Classes/ImportTab.lua

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,7 +1032,7 @@ function ImportTabClass:ImportItem(itemData, slotName)
10321032
item.rarity = rarityMap[itemData.frameType]
10331033
if #itemData.name > 0 then
10341034
item.title = sanitiseText(itemData.name)
1035-
item.baseName = sanitiseText(itemData.typeLine):gsub("Synthesised ","")
1035+
item.baseName = sanitiseText(itemData.typeLine):gsub("Synthesised ",""):gsub("Runeforged ","")
10361036
item.name = item.title .. ", " .. item.baseName
10371037
if item.baseName == "Two-Toned Boots" then
10381038
-- Hack for Two-Toned Boots
@@ -1114,10 +1114,12 @@ function ImportTabClass:ImportItem(itemData, slotName)
11141114
item.base = self.build.data.itemBases[item.baseName]
11151115
end
11161116
end
1117-
if property.name == "Energy Shield" or property.name == "Ward" or property.name == "Armour" or property.name == "Evasion Rating" then
1117+
if property.name == "Energy Shield" or property.name == "Ward" or property.name == "Runic Ward" or property.name == "Armour" or property.name == "Evasion Rating" then
11181118
item.armourData = item.armourData or { }
1119+
local armourKey = property.name:gsub(" Rating", ""):gsub(" ", "")
1120+
if armourKey == "RunicWard" then armourKey = "Ward" end
11191121
for _, value in ipairs(property.values) do
1120-
item.armourData[property.name:gsub(" Rating", ""):gsub(" ", "")] = (item.armourData[property.name:gsub(" Rating", ""):gsub(" ", "")] or 0) + tonumber(value[1])
1122+
item.armourData[armourKey] = (item.armourData[armourKey] or 0) + tonumber(value[1])
11211123
end
11221124
end
11231125
end

src/Classes/Item.lua

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality)
579579
end
580580
elseif specName == "Talisman Tier" then
581581
self.talismanTier = specToNumber(specVal)
582-
elseif specName == "Armour" or specName == "Evasion Rating" or specName == "Evasion" or specName == "Energy Shield" or specName == "Ward" then
582+
elseif specName == "Armour" or specName == "Evasion Rating" or specName == "Evasion" or specName == "Energy Shield" or specName == "Ward" or specName == "Runic Ward" then
583583
if specName == "Evasion Rating" then
584584
specName = "Evasion"
585585
if self.baseName == "Two-Toned Boots (Armour/Energy Shield)" then
@@ -594,6 +594,8 @@ function ItemClass:ParseRaw(raw, rarity, highQuality)
594594
self.baseName = "Two-Toned Boots (Evasion/Energy Shield)"
595595
self.base = data.itemBases[self.baseName]
596596
end
597+
elseif specName == "Runic Ward" then
598+
specName = "Ward"
597599
end
598600
self.armourData = self.armourData or { }
599601
self.armourData[specName] = specToNumber(specVal)
@@ -792,7 +794,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality)
792794
self.name = self.name:gsub(" %(.+%)","")
793795
end
794796
if not baseName then
795-
baseName = line:gsub("^Superior ", "")
797+
baseName = line:gsub("^Superior ", ""):gsub("^Runeforged ", "")
796798
end
797799
if baseName == "Two-Toned Boots" then
798800
baseName = "Two-Toned Boots (Armour/Energy Shield)"

0 commit comments

Comments
 (0)