Skip to content

Commit 51a044f

Browse files
committed
Remove hard coding for socket bound runes
1 parent 02a45f8 commit 51a044f

1 file changed

Lines changed: 11 additions & 28 deletions

File tree

src/Classes/ItemsTab.lua

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1684,25 +1684,6 @@ local function isAugmentable(item)
16841684
return (item.sockets and #item.sockets > 0) or (item.base.socketLimit and item.base.socketLimit > 0)
16851685
end
16861686

1687-
-- a list of augments which cannot be removed from items. this data does not seem to be available in
1688-
-- the rune data.
1689-
local socketBoundAugments = {
1690-
["Raven-Touched Shard"] = true,
1691-
["Passion of Aldur"] = true,
1692-
["Breath of Aldur"] = true,
1693-
["Ire of Aldur"] = true,
1694-
["Betrayal of Aldur"] = true,
1695-
["Serle's Triumph"] = true,
1696-
["Cadigan's Epiphany"] = true,
1697-
["Uhtred's Sidereus"] = true,
1698-
["Kolr's Hunt"] = true,
1699-
["Vorana's Carnage"] = true,
1700-
["Thrud's Might"] = true,
1701-
["Medved's Tending"] = true,
1702-
["Katla's Gloom"] = true,
1703-
["Legacy of Ironbound"] = true,
1704-
}
1705-
17061687
function ItemsTabClass:CopyAnointsAndAugments(newItem, copyAugments, overwrite, sourceSlotName)
17071688
local isWeapon = newItem.base.tags and (newItem.base.tags.onehand or newItem.base.tags.twohand)
17081689
local isShield = newItem.base.tags and (newItem.base.tags.shield or newItem.base.tags.focus)
@@ -1758,13 +1739,15 @@ function ItemsTabClass:CopyAnointsAndAugments(newItem, copyAugments, overwrite,
17581739
local skipped = 0
17591740
if shouldChangeAugments then
17601741
for i = 1, #newItem.sockets do
1761-
-- avoid overwriting socket bound runes as removing these from trade results
1762-
-- will be confusing
1763-
if overwrite and newItem.runes[i] and socketBoundAugments[newItem.runes[i]] then
1764-
-- if the new item has more slots than the old item, we still copy old
1765-
-- runes in order after skipping the socket bound rune
1766-
skipped = skipped + 1
1767-
goto continue
1742+
for _, rune in ipairs(validRunes) do
1743+
-- avoid overwriting socket bound runes as removing these from e.g. trade results
1744+
-- will be confusing
1745+
if rune.name == newItem.runes[i] and rune.isSocketBound then
1746+
-- if the new item has more slots than the old item, we still copy old
1747+
-- runes in order after skipping the socket bound rune
1748+
skipped = skipped + 1
1749+
goto continue
1750+
end
17681751
end
17691752
newItem.runes[i] = "None"
17701753
if currentRunes[i - skipped] then
@@ -1928,11 +1911,11 @@ function ItemsTabClass:UpdateAffixControls()
19281911
self:UpdateCustomControls()
19291912
end
19301913

1931-
local runeModLines = { { name = "None", label = "None", lines = { "None" }, order = -1, slot = "None", group = -1 } }
1914+
local runeModLines = { { name = "None", label = "None", lines = { "None" }, order = -1, slot = "None", group = -1, isSocketBound = false } }
19321915
for name, runeMods in pairs(data.itemMods.Runes) do
19331916
-- Some runes have multiple mod lines; insert each as separate entry
19341917
for slotType, runeMod in pairs(runeMods) do
1935-
t_insert(runeModLines, { name = name, label = runeMod[1], lines = runeMod, req = runeMod.rank[1], order = runeMod.statOrder[1], slot = slotType, type = runeMod.type, group = #runeMod })
1918+
t_insert(runeModLines, { name = name, label = runeMod[1], lines = runeMod, req = runeMod.rank[1], order = runeMod.statOrder[1], slot = slotType, type = runeMod.type, group = #runeMod, isSocketBound = runeMod.isSocketBound })
19361919
end
19371920
end
19381921
table.sort(runeModLines, function(a, b)

0 commit comments

Comments
 (0)