@@ -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 )
16851685end
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-
17061687function 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 ()
19291912end
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 } }
19321915for 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
19371920end
19381921table.sort (runeModLines , function (a , b )
0 commit comments