diff --git a/spec/System/TestIdolatry_spec.lua b/spec/System/TestIdolatry_spec.lua index 3eb4f62ee6..3befabecfe 100644 --- a/spec/System/TestIdolatry_spec.lua +++ b/spec/System/TestIdolatry_spec.lua @@ -59,7 +59,7 @@ describe("TestIdolatry", function() end) -- Parsing: the three stat lines must resolve to mods that scale against those multipliers. - it("parses the three Idolatry stat lines", function() + it("parses Idolatry and bonded-idol stat lines", function() local parseMod = LoadModule("Modules/ModParser") -- Helper to find the Multiplier tag on a mod (tags are stored as array entries) @@ -98,5 +98,145 @@ describe("TestIdolatry", function() assert.are.equals("BASE", resist[1].type) assert.are.equals(-4, resist[1].value) assert.are.equals("NonIdolAugmentsInEquipment", multiplierTag(resist[1]).var) + + -- 4) Fox Idol's unlock is an item-local flag, not a global condition. + local localUnlock = parseMod("Idols socketed in this item gain the benefits of their Bonded modifiers") + assert.are.equals(1, #localUnlock) + assert.are.equals("SocketedIdolsUseBondedModifiers", localUnlock[1].name) + assert.are.equals("FLAG", localUnlock[1].type) + + -- 5) The ascendancy unlock is a flag consumed by calc setup, not a condition on each bonded mod. + local globalUnlock = parseMod("Gain the benefits of Bonded modifiers on Runes and Idols") + assert.are.equals(1, #globalUnlock) + assert.are.equals("CanUseBonded", globalUnlock[1].name) + assert.are.equals("FLAG", globalUnlock[1].type) + + -- Bonded is no longer consumed as a parser prefix, so other prefixes still apply. + local minionMod, extra = parseMod("Minions have 30% increased Area of Effect") + assert.is_nil(extra) + assert.are.equals("MinionModifier", minionMod[1].name) + end) + + it("enables only Idol Bonded modifiers from Fox Idol locally", function() + local item = new("Item"):Item([[ + Test Body + Rusted Cuirass + ]]) + item.itemSocketCount = 2 + item.runes = { "Fox Idol", "Lesser Body Rune" } + item:UpdateRunes() + item:BuildAndParseRaw() + assert.is_true(item.socketedIdolsUseBondedModifiers) + + local foxBondedLine + local bodyRuneBondedLife + for _, modLine in ipairs(item.runeModLines) do + if modLine.line == "Bonded: +5% to Quality of all Skills" then + foxBondedLine = modLine + end + if modLine.line == "Bonded: +20 to maximum Life" then + bodyRuneBondedLife = modLine + end + end + assert.is_not_nil(foxBondedLine) + assert.are.equals("GemProperty", foxBondedLine.modList[1].name) + assert.is_not_nil(bodyRuneBondedLife) + assert.are.equals("Life", bodyRuneBondedLife.modList[1].name) + + build.itemsTab:AddItem(item) + build.buildFlag = true + runCallback("OnFrame") + + local modDB = build.calcsTab.mainEnv.itemModDB + local foxBondedQuality + for _, mod in ipairs(modDB.mods.GemProperty or { }) do + if mod.value.value == 5 and mod.source == item.modSource then + foxBondedQuality = mod + break + end + end + assert.is_not_nil(foxBondedQuality) + assert.is_not_nil(foxBondedLine.bondedModList) + + for _, mod in ipairs(modDB.mods.Life or { }) do + assert.is_false(mod.type == "BASE" and mod.value == 20 and mod.source == item.modSource) + end + end) + + it("does not enable disabled Bonded modifiers", function() + local item = new("Item"):Item([[ + Test Body + Rusted Cuirass + ]]) + item.itemSocketCount = 1 + item.runes = { "Lesser Body Rune" } + item:UpdateRunes() + for _, modLine in ipairs(item.runeModLines) do + if modLine.line == "Bonded: +20 to maximum Life" then + modLine.disabled = true + end + end + item:BuildModList() + for _, mod in ipairs(item:GetActiveModListForSlotNum(nil, true)) do + assert.is_false(mod.name == "Life" and mod.type == "BASE" and mod.value == 20) + end + end) + + it("processes active Bonded modifiers through local item calculations", function() + local item = new("Item"):Item([[ + Test Mace + Marauding Mace + ]]) + item.itemSocketCount = 1 + item.runes = { "Legacy of Brynhand's Mark" } + item:UpdateRunes() + item:BuildModList() + local physicalMin = item.weaponData[1].PhysicalMin + local physicalMax = item.weaponData[1].PhysicalMax + + item:GetActiveModListForSlotNum(1, true) + + assert.are.equals(physicalMin + 14, item.weaponData[1].PhysicalMin) + assert.are.equals(physicalMax + 20, item.weaponData[1].PhysicalMax) + + item:GetActiveModListForSlotNum(1, false) + assert.are.equals(physicalMin, item.weaponData[1].PhysicalMin) + assert.are.equals(physicalMax, item.weaponData[1].PhysicalMax) + end) + + it("enables and scales Bonded modifiers from the ascendancy flag", function() + build.spec:SelectClass(build.spec.tree.classNameMap.Druid) + for ascendClassId, ascendClass in pairs(build.spec.curClass.classes) do + if ascendClass.name == "Shaman" then + build.spec:SelectAscendClass(ascendClassId) + break + end + end + local wisdomOfTheMaji = build.spec.nodes[42253] + wisdomOfTheMaji.alloc = true + build.spec.allocNodes[wisdomOfTheMaji.id] = wisdomOfTheMaji + build.buildFlag = true + runCallback("OnFrame") + local baseModDB = build.calcsTab.mainEnv.modDB + local baseLife = baseModDB:Sum("BASE", nil, "Life") + local baseMana = baseModDB:Sum("BASE", nil, "Mana") + + local item = new("Item"):Item([[ + Test Body + Rusted Cuirass + 200% increased effect of Socketed Runes + ]]) + item.itemSocketCount = 1 + item.runes = { "Lesser Body Rune" } + item:UpdateRunes() + item:BuildAndParseRaw() + build.itemsTab:AddItem(item) + build.itemsTab:EquipItemInSet(item, build.itemsTab.activeItemSetId) + build.buildFlag = true + runCallback("OnFrame") + + local modDB = build.calcsTab.mainEnv.modDB + assert.are.equals(150, modDB:Sum("BASE", nil, "Life") - baseLife) + assert.are.equals(60, modDB:Sum("BASE", nil, "Mana") - baseMana) end) end) diff --git a/spec/System/TestItemParse_spec.lua b/spec/System/TestItemParse_spec.lua index 0e1cd841bd..eb2763fe38 100644 --- a/spec/System/TestItemParse_spec.lua +++ b/spec/System/TestItemParse_spec.lua @@ -671,10 +671,15 @@ describe("TestItemParse", function() assert.are.equals(3, item.itemSocketCount) assert.are.same({ "Greater Glacial Rune", "Lesser Body Rune" }, item.runes) - assert.are.equals(1, item.runeModLines[1].runeCount) - assert.are.equals(1, item.runeModLines[2].runeCount) - assert.is_nil(item.runeModLines[3].runeCount) - assert.is_nil(item.runeModLines[4].runeCount) + local runeLines = { } + for _, modLine in ipairs(item.runeModLines) do + runeLines[modLine.line] = true + end + assert.are.equals(4, #item.runeModLines) + assert.is_true(runeLines["Adds 9 to 15 Cold Damage"]) + assert.is_true(runeLines["Leeches 3% of Physical Damage as Life"]) + assert.is_true(runeLines["Bonded: 5% increased maximum Life"]) + assert.is_true(runeLines["Bonded: 30% increased Freeze Buildup"]) for _, rune in ipairs(item.runes) do assert.are_not.equals("Lesser Glacial Rune", rune) end @@ -694,6 +699,8 @@ describe("TestItemParse", function() assert.are.equals("+30 to maximum Life", item.runeModLines[1].line) assert.are.equals("Bonded: +20 to maximum Life", item.runeModLines[2].line) assert.are.equals("Bonded: +20 to maximum Mana", item.runeModLines[3].line) + assert.are.equals("Life", item.runeModLines[2].modList[1].name) + assert.are.equals("Mana", item.runeModLines[3].modList[1].name) end) it("applies increased effect of socketed runes", function() diff --git a/spec/System/TestItemsTab_spec.lua b/spec/System/TestItemsTab_spec.lua index ed38dad4ca..15f1d100df 100644 --- a/spec/System/TestItemsTab_spec.lua +++ b/spec/System/TestItemsTab_spec.lua @@ -800,6 +800,25 @@ Ruby]]) assert.are.equals("Hits against you have 20% reduced Critical Damage Bonus", ticabaRune.lines[1]) assert.are.equals("Hits against you have 20% reduced Critical Damage Bonus", ticabaRune.lines[2]) end) + + it("keeps pure Bonded slot entries and uses the regular rune mod as the dropdown label", function () + local runeMods = data.itemMods.Runes["Perfect Resolve Rune"] + assert.are.same({ "Adds 6 to 10 Physical Damage to Attacks", "Adds 5 to 8 Cold damage to Attacks" }, { unpack(runeMods.weapon.bonded) }) + assert.are.same({ "+50 to maximum Energy Shield" }, { unpack(runeMods.wand.bonded) }) + + local item = new("Item"):Item([[ + Test Wand + Runic Fork + ]]) + + for _, rune in ipairs(build.itemsTab:GetValidRunesForItem(item)) do + if rune.name == "Perfect Resolve Rune" then + assert.are.equals("+15 to Intelligence", rune.label) + return + end + end + assert.fail("Perfect Resolve Rune was not valid for a wand") + end) end) it("does nothing when no matching item is equipped", function () diff --git a/spec/System/TestSocketables_spec.lua b/spec/System/TestSocketables_spec.lua index 64099353de..85402ce010 100644 --- a/spec/System/TestSocketables_spec.lua +++ b/spec/System/TestSocketables_spec.lua @@ -6,13 +6,19 @@ describe("TestSocketables", function() -- Item Tab display Tests -- Also checks slot type runes - local extractNamesFromModRunes = function(slotType) + local extractNamesFromModRunes = function(item) local modRunes = LoadModule("../src/Data/ModRunes") - local names = {} + local names = { } + local baseType, specificType = item:GetSocketedAugmentTypes() for name, rune in pairs(modRunes) do - for runeSlotType, mods in pairs(rune) do - if runeSlotType == slotType then - table.insert(names, name) + if rune[baseType] or rune[specificType] then + names[name] = true + else + for soulCoreType in pairs(item.socketedSoulCoreTypes) do + if rune[soulCoreType] and rune[soulCoreType].type == "SoulCore" then + names[name] = true + break + end end end end @@ -23,36 +29,23 @@ describe("TestSocketables", function() -- ConPrintf("Testing: %s", slotType) local itemRaw = "Test\n" .. itemBase .. "\nSockets: S" - local modRunes = extractNamesFromModRunes(slotType) - -- Create an ItemTab and add a socketable item to it local item = new("Item"):Item(itemRaw) + local modRunes = extractNamesFromModRunes(item) build.itemsTab:AddItem(item) build.itemsTab:SetDisplayItem(item) runCallback("OnFrame") - -- Extract the proper slot type runes from the list - local itemTabRunes = {} + -- The dropdown combines broad and specific slot types, then deduplicates by name. + -- Compare that exact union so both missing and incorrectly included runes fail. + local itemTabRunes = { } for _, rune in ipairs(build.itemsTab.controls["displayItemRune1"].list) do - if rune.slot == slotType then - table.insert(itemTabRunes, rune.name) - end - end - -- To keep the test fast, only check that the lengths match - -- This should also catch issues with multi-mod line runes since the rune name will appear - -- for the number of mod lines that the rune has. - if #itemTabRunes ~= #modRunes then - ConPrintf("Item Tab Runes for slot type '%s':", slotType) - for _, name in ipairs(itemTabRunes) do - ConPrintf(" %s", name) - end - ConPrintf("Mod Runes for slot type '%s':", slotType) - for _, name in ipairs(modRunes) do - ConPrintf(" %s", name) + if rune.name ~= "None" then + itemTabRunes[rune.name] = true end end - assert.are.equals(#itemTabRunes, #modRunes, "Mismatch in number of runes for slot type: " .. slotType) + assert.are.same(modRunes, itemTabRunes, "Rune list mismatch for slot type: " .. slotType) end -- Note: Except for weapon/armour/caster, diff --git a/src/Classes/Item.lua b/src/Classes/Item.lua index 75a2c9deb4..d78c62f802 100644 --- a/src/Classes/Item.lua +++ b/src/Classes/Item.lua @@ -564,6 +564,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) self.advancedCopy = false self.modMagnitudeMods = {} local implicitLines = 0 + local skippedRuneLines = 0 self.variantList = nil self.versionList = nil -- group ID -> variant ID -> eligible version IDs; version 0 means every version. @@ -655,7 +656,6 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) local foundExplicit, foundImplicit local linePrefix = "" local linePostfix = "" - while self.rawLines[l] do local line = self.rawLines[l] if flaskBuffLines and flaskBuffLines[line] then @@ -992,11 +992,6 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) return "" end) - -- Used to flag Bonded soul core mods - if line:find("Bonded:") then - modLine.bonded = true - end - if modLine.rune then modLine.enchant = true end @@ -1116,6 +1111,11 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) foundImplicit = true gameModeStage = "IMPLICIT" end + -- Bonded is display text, not modifier syntax; known rune lines are rebuilt below. + if modLine.rune and not modLine.disabled and line:match("^Bonded:%s+") then + skippedRuneLines = skippedRuneLines + 1 + goto continue + end local catalystScalar = 1 if line:match(" %- Unscalable Value$") or line:match(" — Unscalable Value$") then line = line:gsub(" %- Unscalable Value$", ""):gsub(" — Unscalable Value$", "") @@ -1307,7 +1307,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) modLines = self.enchantModLines elseif line:find("Requires Class") then modLines = self.classRequirementModLines - elseif modLine.implicit or #self.runeModLines + #self.enchantModLines + #self.implicitModLines < implicitLines then + elseif modLine.implicit or #self.runeModLines + skippedRuneLines + #self.enchantModLines + #self.implicitModLines < implicitLines then modLines = self.implicitModLines else modLines = self.explicitModLines @@ -1363,14 +1363,11 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) if self.base then if self.base.weapon or self.base.armour or self.base.tags.wand or self.base.tags.staff or self.base.tags.sceptre or self.itemSocketCount > 0 then local shouldFixRunesOnItem = #self.runes == 0 - local canRebuildRunes - if not shouldFixRunesOnItem and #self.runeModLines > 0 then - canRebuildRunes = true - for _, rune in ipairs(self.runes) do - if rune ~= "None" and not data.itemMods.Runes[rune] then - canRebuildRunes = false - break - end + local canRebuildRunes = #self.runes > 0 + for _, rune in ipairs(self.runes) do + if rune ~= "None" and not data.itemMods.Runes[rune] then + canRebuildRunes = false + break end end @@ -1507,7 +1504,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) if slotType == broadItemType or slotType == specificItemType or (slotMod.type == "SoulCore" and self.socketedSoulCoreTypes[slotType]) then local effectModifier = gameSocketedAugmentEffectModifiers.SocketedAugmentItemEffect + (gameSocketedAugmentEffectModifiers["Socketed" .. slotMod.type .. "Effect"] or 0) local valueScalar = effectModifier ~= 0 and 1 + effectModifier - for _, modLine in ipairs(slotMod) do + local addModToGroupedRunes = function(modLine) local line = modLine if valueScalar then local bondedPrefix = line:match("^(Bonded: )") or "" @@ -1528,6 +1525,14 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) t_insert(groupedRunes, rune) end end + for _, modLine in ipairs(slotMod) do + addModToGroupedRunes(modLine) + end + if slotMod.bonded then + for _, modLine in ipairs(slotMod.bonded) do + addModToGroupedRunes("Bonded: " .. modLine) + end + end end end end @@ -1586,6 +1591,11 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) end end end + if shouldFixRunesOnItem and #self.runes > 0 then + -- Advanced item text omits the Rune fields. Once its regular lines identify the + -- socketed augments, rebuild every line from the exported normal/bonded data. + self:UpdateRunes() + end else self.sockets = { } self.itemSocketCount = 0 @@ -2098,62 +2108,68 @@ function ItemClass:UpdateRunes() self.requirements.level = self.requirements.naturalLevel end wipeTable(self.runeModLines) - local getModRunesForTypes = function(runeName, baseType, specificType, soulCoreTypes) - local rune = data.itemMods.Runes[runeName] - local gatheredRuneMods = { } - if rune then - if rune[baseType] then - -- for _, mod in pairs(rune[baseType]) do - t_insert(gatheredRuneMods, rune[baseType]) - -- end - end - if rune[specificType] then - -- for _, mod in pairs(rune[specificType]) do - t_insert(gatheredRuneMods, rune[specificType]) - -- end - end - for soulCoreType in pairs(soulCoreTypes) do - local soulCoreMod = rune[soulCoreType] - if soulCoreMod and soulCoreMod.type == "SoulCore" then - t_insert(gatheredRuneMods, soulCoreMod) + local statOrder = {} + -- Normal and Bonded stats share display ordering and stacking, but Bonded is only + -- added for display; it is not part of the text sent to the modifier parser. + local addModLine = function(mod, line, order, bonded) + local orderValue = order or 0 + local displayLine = bonded and "Bonded: " .. line or line + local orderKey = mod.type .. ":" .. (bonded and "Bonded:" or "") .. orderValue + if statOrder[orderKey] then + -- Combine stats + local start = 1 + statOrder[orderKey].line = statOrder[orderKey].line:gsub("(%d%.?%d*)", function(num) + local _, e, other = displayLine:find("(%d%.?%d*)", start) + start = e + 1 + return tonumber(num) + tonumber(other) + end) + local parseLine = statOrder[orderKey].line:gsub("^Bonded:%s*", "") + local modList, extra = modLib.parseMod(parseLine) + statOrder[orderKey].modList = modList or { } + statOrder[orderKey].extra = extra + else + local modList, extra = modLib.parseMod(line) + local modLine = { line = displayLine, order = orderValue, modList = modList or { }, extra = extra, rune = true, enchant = true, augmentType = mod.type } + if bonded then + modLine.bonded = true + end + for l = 1, #self.runeModLines + 1 do + if not self.runeModLines[l] or self.runeModLines[l].order > orderValue then + t_insert(self.runeModLines, l, modLine) + break end end + statOrder[orderKey] = modLine end - return gatheredRuneMods end - - local statOrder = {} local baseType, specificType = self:GetSocketedAugmentTypes() local soulCoreTypes = self.socketedSoulCoreTypes for i = 1, self.itemSocketCount do local name = self.runes[i] if name and name ~= "None" then - local gatheredMods = getModRunesForTypes(name, baseType, specificType, soulCoreTypes) + local rune = data.itemMods.Runes[name] + local gatheredMods = { } + if rune then + if rune[baseType] then + t_insert(gatheredMods, rune[baseType]) + end + if rune[specificType] then + t_insert(gatheredMods, rune[specificType]) + end + for soulCoreType in pairs(soulCoreTypes) do + local soulCoreMod = rune[soulCoreType] + if soulCoreMod and soulCoreMod.type == "SoulCore" then + t_insert(gatheredMods, soulCoreMod) + end + end + end for _, mod in ipairs(gatheredMods) do for i, modLine in ipairs(mod) do - local order = mod.statOrder[i] - local orderKey = mod.type .. ":" .. (modLine:match("^Bonded:") and "Bonded:"..order or order) - if statOrder[orderKey] then - -- Combine stats - local start = 1 - statOrder[orderKey].line = statOrder[orderKey].line:gsub("(%d%.?%d*)", function(num) - local s, e, other = mod[i]:find("(%d%.?%d*)", start) - start = e + 1 - return tonumber(num) + tonumber(other) - end) - local modList, extra = modLib.parseMod(statOrder[orderKey].line) - statOrder[orderKey].modList = modList or { } - statOrder[orderKey].extra = extra - else - local modList, extra = modLib.parseMod(modLine) - local modLine = { line = modLine, order = order, modList = modList or { }, extra = extra, rune = true, enchant = true, augmentType = mod.type } - for l = 1, #self.runeModLines + 1 do - if not self.runeModLines[l] or self.runeModLines[l].order > order then - t_insert(self.runeModLines, l, modLine) - break - end - end - statOrder[orderKey] = modLine + addModLine(mod, modLine, mod.statOrder and mod.statOrder[i], false) + end + if mod.bonded then + for i, modLine in ipairs(mod.bonded) do + addModLine(mod, modLine, mod.bonded.statOrder and mod.bonded.statOrder[i], true) end end end @@ -2177,6 +2193,28 @@ function ItemClass:ApplySocketedRuneDisplayScalars() end end +-- Return the item's calculated modifiers for a slot, including only Bonded modifiers +-- enabled by the global Rune/Idol unlock or this item's Idol-only unlock. +function ItemClass:GetActiveModListForSlotNum(slotNum, canUseBonded) + local canUseBondedIdols = canUseBonded or self.socketedIdolsUseBondedModifiers + local baseList = self.baseModList + if canUseBondedIdols then + local activeBaseList + for _, modLine in ipairs(self.runeModLines or { }) do + local canUseBondedMod = modLine.bonded and (modLine.augmentType == "Rune" and canUseBonded or modLine.augmentType == "Idol" and canUseBondedIdols) + if canUseBondedMod and modLine.bondedModList and modLine.bondedModList[1] then + activeBaseList = activeBaseList or new("ModList"):ModList() + activeBaseList:AddList(modLine.bondedModList) + end + end + if activeBaseList then + activeBaseList:AddList(baseList) + baseList = activeBaseList + end + end + return self:BuildModListForSlotNum(baseList, slotNum) +end + -- Rebuild explicit modifiers using the item's affixes function ItemClass:Craft() -- Save off any custom mods so they can be re-added at the end @@ -2668,6 +2706,7 @@ function ItemClass:BuildModList() end end local function processModLine(modLine) + modLine.bondedModList = nil if modLine.disabled then return end @@ -2684,6 +2723,11 @@ function ItemClass:BuildModList() end -- handle understood modifier variable properties if not modLine.extra then + local targetList = baseList + if modLine.bonded then + modLine.bondedModList = new("ModList"):ModList() + targetList = modLine.bondedModList + end local rangedModList = getRangedModList(self, modLine) if rangedModList then modLine.modList = rangedModList @@ -2691,7 +2735,7 @@ function ItemClass:BuildModList() end for _, mod in ipairs(modLine.modList) do for _ = 1, variantCount do - baseList:AddMod(modLib.setSource(mod, self.modSource)) + targetList:AddMod(modLib.setSource(mod, self.modSource)) end end if modLine.modTags and #modLine.modTags > 0 then @@ -2717,6 +2761,7 @@ function ItemClass:BuildModList() for _, modLine in ipairs(self.explicitModLines) do processModLine(modLine) end + self.socketedIdolsUseBondedModifiers = calcLocal(baseList, "SocketedIdolsUseBondedModifiers", "FLAG", 0) self.socketedSoulCoreEffectModifier = calcLocal(baseList, "SocketedSoulCoreEffect", "INC", 0) / 100 self.socketedRuneEffectModifier = calcLocal(baseList, "SocketedRuneEffect", "INC", 0) / 100 self.socketedAugmentItemEffectModifier = calcLocal(baseList, "SocketedAugmentItemEffect", "INC", 0) / 100 @@ -2730,9 +2775,10 @@ function ItemClass:BuildModList() elseif modLine.augmentType == "Rune" then effectModifier = effectModifier + self.socketedRuneEffectModifier end - if effectModifier and effectModifier ~= 0 and self:CheckModLineVariant(modLine) and not modLine.extra and not modLine.socketedRuneEffectAlreadyApplied then + local targetList = modLine.bonded and modLine.bondedModList or baseList + if targetList and effectModifier and effectModifier ~= 0 and self:CheckModLineVariant(modLine) and not modLine.extra and not modLine.socketedRuneEffectAlreadyApplied then for _, mod in ipairs(modLine.modList) do - baseList:ScaleAddMod(mod, effectModifier) + targetList:ScaleAddMod(mod, effectModifier) end end end diff --git a/src/Classes/ItemsTab.lua b/src/Classes/ItemsTab.lua index c01cf5e586..d48630ba1b 100644 --- a/src/Classes/ItemsTab.lua +++ b/src/Classes/ItemsTab.lua @@ -2111,7 +2111,17 @@ local runeModLines = { { name = "None", label = "None", lines = { "None" }, orde for name, runeMods in pairs(data.itemMods.Runes) do -- Some runes have multiple mod lines; insert each as separate entry for slotType, runeMod in pairs(runeMods) do - 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 }) + -- Bonded stats are stored separately for calculation, but remain part of the + -- visible rune description and are prefixed only at this presentation boundary. + local lines = { } + for _, line in ipairs(runeMod) do + t_insert(lines, line) + end + for _, line in ipairs(runeMod.bonded or { }) do + t_insert(lines, "Bonded: " .. line) + end + local order = (runeMod.statOrder and runeMod.statOrder[1]) or (runeMod.bonded and runeMod.bonded.statOrder and runeMod.bonded.statOrder[1]) or 0 + t_insert(runeModLines, { name = name, label = runeMod[1], lines = lines, req = runeMod.rank[1], order = order, slot = slotType, type = runeMod.type, group = #lines, isSocketBound = runeMod.isSocketBound }) end end table.sort(runeModLines, function(a, b) @@ -2148,11 +2158,15 @@ function ItemsTabClass:GetValidRunesForItem(item) t_insert(runes, addedRune) addedRunes[rune.name] = addedRune end + addedRune.label = addedRune.label or rune.label for _, line in ipairs(rune.lines) do t_insert(addedRune.lines, line) end end end + for _, rune in ipairs(runes) do + rune.label = rune.label or rune.lines[1] + end return runes end diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 2c8b6a753a..5014c4596e 100644 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -7850,7 +7850,7 @@ c["Gain no inherent bonus from Dexterity 1% increased Armour per 2 Dexterity"]={ c["Gain no inherent bonus from Intelligence"]={{[1]={flags=0,keywordFlags=0,name="NoIntBonusToMana",type="FLAG",value=true}},nil} c["Gain no inherent bonus from Strength"]={{[1]={flags=0,keywordFlags=0,name="NoStrBonusToLife",type="FLAG",value=true}},nil} c["Gain no inherent bonuses from Attributes"]={{[1]={flags=0,keywordFlags=0,name="NoAttributeBonuses",type="FLAG",value=true}},nil} -c["Gain the benefits of Bonded modifiers on Runes and Idols"]={{[1]={flags=0,keywordFlags=0,name="Condition:CanUseBondedModifiers",type="FLAG",value=true}},nil} +c["Gain the benefits of Bonded modifiers on Runes and Idols"]={{[1]={flags=0,keywordFlags=0,name="CanUseBonded",type="FLAG",value=true}},nil} c["Gains 0.15 Charges per Second"]={{[1]={flags=0,keywordFlags=0,name="FlaskChargesGenerated",type="BASE",value=0.15}},nil} c["Gains 0.18 Charges per Second"]={{[1]={flags=0,keywordFlags=0,name="FlaskChargesGenerated",type="BASE",value=0.18}},nil} c["Gains 0.20 Charges per Second"]={{[1]={flags=0,keywordFlags=0,name="FlaskChargesGenerated",type="BASE",value=0.2}},nil} diff --git a/src/Data/ModRunes.lua b/src/Data/ModRunes.lua index b12d445700..4eaad95b72 100644 --- a/src/Data/ModRunes.lua +++ b/src/Data/ModRunes.lua @@ -738,37 +738,49 @@ return { ["weapon"] = { type = "Rune", "Adds 7 to 11 Fire Damage", - "Bonded: 30% increased Ignite Magnitude", - statOrder = { 832, 1077 }, + statOrder = { 832 }, tradeHashes = { [709508406] = { "Adds 7 to 11 Fire Damage" }, }, + bonded = { + "30% increased Ignite Magnitude", + statOrder = { 1077 }, + }, isSocketBound = false, rank = { 15 }, }, ["wand"] = { type = "Rune", "Gain 8% of Damage as Extra Fire Damage", - "Bonded: 30% increased Ignite Magnitude", - statOrder = { 863, 1077 }, + statOrder = { 863 }, tradeHashes = { [3015669065] = { "Gain 8% of Damage as Extra Fire Damage" }, }, + bonded = { + "30% increased Ignite Magnitude", + statOrder = { 1077 }, + }, isSocketBound = false, rank = { 15 }, }, ["staff"] = { type = "Rune", "Gain 8% of Damage as Extra Fire Damage", - "Bonded: 30% increased Ignite Magnitude", - statOrder = { 863, 1077 }, + statOrder = { 863 }, tradeHashes = { [3015669065] = { "Gain 8% of Damage as Extra Fire Damage" }, }, + bonded = { + "30% increased Ignite Magnitude", + statOrder = { 1077 }, + }, isSocketBound = false, rank = { 15 }, }, ["armour"] = { type = "Rune", "+14% to Fire Resistance", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1014, 887, 892 }, + statOrder = { 1014 }, tradeHashes = { [3372524247] = { "+14% to Fire Resistance" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -777,37 +789,49 @@ return { ["weapon"] = { type = "Rune", "Adds 6 to 10 Cold Damage", - "Bonded: 30% increased Freeze Buildup", - statOrder = { 833, 1057 }, + statOrder = { 833 }, tradeHashes = { [1037193709] = { "Adds 6 to 10 Cold Damage" }, }, + bonded = { + "30% increased Freeze Buildup", + statOrder = { 1057 }, + }, isSocketBound = false, rank = { 15 }, }, ["wand"] = { type = "Rune", "Gain 8% of Damage as Extra Cold Damage", - "Bonded: 30% increased Freeze Buildup", - statOrder = { 866, 1057 }, + statOrder = { 866 }, tradeHashes = { [2505884597] = { "Gain 8% of Damage as Extra Cold Damage" }, }, + bonded = { + "30% increased Freeze Buildup", + statOrder = { 1057 }, + }, isSocketBound = false, rank = { 15 }, }, ["staff"] = { type = "Rune", "Gain 8% of Damage as Extra Cold Damage", - "Bonded: 30% increased Freeze Buildup", - statOrder = { 866, 1057 }, + statOrder = { 866 }, tradeHashes = { [2505884597] = { "Gain 8% of Damage as Extra Cold Damage" }, }, + bonded = { + "30% increased Freeze Buildup", + statOrder = { 1057 }, + }, isSocketBound = false, rank = { 15 }, }, ["armour"] = { type = "Rune", "+14% to Cold Resistance", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1020, 887, 892 }, + statOrder = { 1020 }, tradeHashes = { [4220027924] = { "+14% to Cold Resistance" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -816,37 +840,49 @@ return { ["weapon"] = { type = "Rune", "Adds 1 to 20 Lightning Damage", - "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 834, 9839 }, + statOrder = { 834 }, tradeHashes = { [3336890334] = { "Adds 1 to 20 Lightning Damage" }, }, + bonded = { + "30% increased Magnitude of Shock you inflict", + statOrder = { 9839 }, + }, isSocketBound = false, rank = { 15 }, }, ["wand"] = { type = "Rune", "Gain 8% of Damage as Extra Lightning Damage", - "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 869, 9839 }, + statOrder = { 869 }, tradeHashes = { [3278136794] = { "Gain 8% of Damage as Extra Lightning Damage" }, }, + bonded = { + "30% increased Magnitude of Shock you inflict", + statOrder = { 9839 }, + }, isSocketBound = false, rank = { 15 }, }, ["staff"] = { type = "Rune", "Gain 8% of Damage as Extra Lightning Damage", - "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 869, 9839 }, + statOrder = { 869 }, tradeHashes = { [3278136794] = { "Gain 8% of Damage as Extra Lightning Damage" }, }, + bonded = { + "30% increased Magnitude of Shock you inflict", + statOrder = { 9839 }, + }, isSocketBound = false, rank = { 15 }, }, ["armour"] = { type = "Rune", "+14% to Lightning Resistance", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1023, 887, 892 }, + statOrder = { 1023 }, tradeHashes = { [1671376347] = { "+14% to Lightning Resistance" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -855,37 +891,49 @@ return { ["weapon"] = { type = "Rune", "16% increased Physical Damage", - "Bonded: 20% increased effect of Fully Broken Armour", - statOrder = { 830, 5232 }, + statOrder = { 830 }, tradeHashes = { [1805374733] = { "16% increased Physical Damage" }, }, + bonded = { + "20% increased effect of Fully Broken Armour", + statOrder = { 5232 }, + }, isSocketBound = false, rank = { 15 }, }, ["wand"] = { type = "Rune", "25% increased Spell Damage", - "Bonded: Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", - statOrder = { 871, 4411 }, + statOrder = { 871 }, tradeHashes = { [2974417149] = { "25% increased Spell Damage" }, }, + bonded = { + "Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", + statOrder = { 4411 }, + }, isSocketBound = false, rank = { 15 }, }, ["staff"] = { type = "Rune", "25% increased Spell Damage", - "Bonded: Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", - statOrder = { 871, 4411 }, + statOrder = { 871 }, tradeHashes = { [2974417149] = { "25% increased Spell Damage" }, }, + bonded = { + "Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", + statOrder = { 4411 }, + }, isSocketBound = false, rank = { 15 }, }, ["armour"] = { type = "Rune", "16% increased Armour, Evasion and Energy Shield", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 854, 887, 892 }, + statOrder = { 854 }, tradeHashes = { [3523867985] = { "16% increased Armour, Evasion and Energy Shield" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -894,37 +942,49 @@ return { ["weapon"] = { type = "Rune", "Leeches 4% of Physical Damage as Life", - "Bonded: 5% increased maximum Life", - statOrder = { 1039, 889 }, + statOrder = { 1039 }, tradeHashes = { [55876295] = { "Leeches 4% of Physical Damage as Life" }, }, + bonded = { + "5% increased maximum Life", + statOrder = { 889 }, + }, isSocketBound = false, rank = { 15 }, }, ["wand"] = { type = "Rune", "+40 to maximum Energy Shield", - "Bonded: 5% increased maximum Life", - statOrder = { 885, 889 }, + statOrder = { 885 }, tradeHashes = { [3489782002] = { "+40 to maximum Energy Shield" }, }, + bonded = { + "5% increased maximum Life", + statOrder = { 889 }, + }, isSocketBound = false, rank = { 15 }, }, ["staff"] = { type = "Rune", "+40 to maximum Energy Shield", - "Bonded: 5% increased maximum Life", - statOrder = { 885, 889 }, + statOrder = { 885 }, tradeHashes = { [3489782002] = { "+40 to maximum Energy Shield" }, }, + bonded = { + "5% increased maximum Life", + statOrder = { 889 }, + }, isSocketBound = false, rank = { 15 }, }, ["armour"] = { type = "Rune", "+45 to maximum Life", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 887, 887, 892 }, + statOrder = { 887 }, tradeHashes = { [3299347043] = { "+45 to maximum Life" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -933,37 +993,49 @@ return { ["weapon"] = { type = "Rune", "Leeches 3% of Physical Damage as Mana", - "Bonded: 5% increased maximum Mana", - statOrder = { 1045, 894 }, + statOrder = { 1045 }, tradeHashes = { [669069897] = { "Leeches 3% of Physical Damage as Mana" }, }, + bonded = { + "5% increased maximum Mana", + statOrder = { 894 }, + }, isSocketBound = false, rank = { 15 }, }, ["wand"] = { type = "Rune", "+60 to maximum Mana", - "Bonded: 5% increased maximum Mana", - statOrder = { 892, 894 }, + statOrder = { 892 }, tradeHashes = { [1050105434] = { "+60 to maximum Mana" }, }, + bonded = { + "5% increased maximum Mana", + statOrder = { 894 }, + }, isSocketBound = false, rank = { 15 }, }, ["staff"] = { type = "Rune", "+60 to maximum Mana", - "Bonded: 5% increased maximum Mana", - statOrder = { 892, 894 }, + statOrder = { 892 }, tradeHashes = { [1050105434] = { "+60 to maximum Mana" }, }, + bonded = { + "5% increased maximum Mana", + statOrder = { 894 }, + }, isSocketBound = false, rank = { 15 }, }, ["armour"] = { type = "Rune", "+30 to maximum Mana", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 892, 887, 892 }, + statOrder = { 892 }, tradeHashes = { [1050105434] = { "+30 to maximum Mana" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -972,37 +1044,49 @@ return { ["weapon"] = { type = "Rune", "Gain 25 Life per enemy killed", - "Bonded: Regenerate 0.4% of maximum Life per second", - statOrder = { 1042, 1691 }, + statOrder = { 1042 }, tradeHashes = { [3695891184] = { "Gain 25 Life per enemy killed" }, }, + bonded = { + "Regenerate 0.4% of maximum Life per second", + statOrder = { 1691 }, + }, isSocketBound = false, rank = { 15 }, }, ["wand"] = { type = "Rune", "8% increased Energy Shield Recharge Rate", - "Bonded: 8% of Damage taken Recouped as Life", - statOrder = { 1032, 1037 }, + statOrder = { 1032 }, tradeHashes = { [2339757871] = { "8% increased Energy Shield Recharge Rate" }, }, + bonded = { + "8% of Damage taken Recouped as Life", + statOrder = { 1037 }, + }, isSocketBound = false, rank = { 15 }, }, ["staff"] = { type = "Rune", "8% increased Energy Shield Recharge Rate", - "Bonded: 8% of Damage taken Recouped as Life", - statOrder = { 1032, 1037 }, + statOrder = { 1032 }, tradeHashes = { [2339757871] = { "8% increased Energy Shield Recharge Rate" }, }, + bonded = { + "8% of Damage taken Recouped as Life", + statOrder = { 1037 }, + }, isSocketBound = false, rank = { 15 }, }, ["armour"] = { type = "Rune", "Regenerate 0.4% of maximum Life per second", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1691, 887, 892 }, + statOrder = { 1691 }, tradeHashes = { [836936635] = { "Regenerate 0.4% of maximum Life per second" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -1011,37 +1095,49 @@ return { ["weapon"] = { type = "Rune", "Gain 20 Mana per enemy killed", - "Bonded: 12% of Skill Mana Costs Converted to Life Costs", - statOrder = { 1047, 4742 }, + statOrder = { 1047 }, tradeHashes = { [1368271171] = { "Gain 20 Mana per enemy killed" }, }, + bonded = { + "12% of Skill Mana Costs Converted to Life Costs", + statOrder = { 4742 }, + }, isSocketBound = false, rank = { 15 }, }, ["wand"] = { type = "Rune", "25% increased Mana Regeneration Rate", - "Bonded: 16% increased Mana Cost Efficiency", - statOrder = { 1043, 4716 }, + statOrder = { 1043 }, tradeHashes = { [789117908] = { "25% increased Mana Regeneration Rate" }, }, + bonded = { + "16% increased Mana Cost Efficiency", + statOrder = { 4716 }, + }, isSocketBound = false, rank = { 15 }, }, ["staff"] = { type = "Rune", "25% increased Mana Regeneration Rate", - "Bonded: 16% increased Mana Cost Efficiency", - statOrder = { 1043, 4716 }, + statOrder = { 1043 }, tradeHashes = { [789117908] = { "25% increased Mana Regeneration Rate" }, }, + bonded = { + "16% increased Mana Cost Efficiency", + statOrder = { 4716 }, + }, isSocketBound = false, rank = { 15 }, }, ["armour"] = { type = "Rune", "15% increased Mana Regeneration Rate", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1043, 887, 892 }, + statOrder = { 1043 }, tradeHashes = { [789117908] = { "15% increased Mana Regeneration Rate" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -1050,37 +1146,49 @@ return { ["weapon"] = { type = "Rune", "Causes 30% increased Stun Buildup", - "Bonded: 40% increased Damage against Immobilised Enemies", - statOrder = { 1052, 5954 }, + statOrder = { 1052 }, tradeHashes = { [791928121] = { "Causes 30% increased Stun Buildup" }, }, + bonded = { + "40% increased Damage against Immobilised Enemies", + statOrder = { 5954 }, + }, isSocketBound = false, rank = { 15 }, }, ["wand"] = { type = "Rune", "Gain additional Stun Threshold equal to 12% of maximum Energy Shield", - "Bonded: 30% increased Immobilisation buildup", - statOrder = { 10131, 7188 }, + statOrder = { 10131 }, tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 12% of maximum Energy Shield" }, }, + bonded = { + "30% increased Immobilisation buildup", + statOrder = { 7188 }, + }, isSocketBound = false, rank = { 15 }, }, ["staff"] = { type = "Rune", "Gain additional Stun Threshold equal to 12% of maximum Energy Shield", - "Bonded: 30% increased Immobilisation buildup", - statOrder = { 10131, 7188 }, + statOrder = { 10131 }, tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 12% of maximum Energy Shield" }, }, + bonded = { + "30% increased Immobilisation buildup", + statOrder = { 7188 }, + }, isSocketBound = false, rank = { 15 }, }, ["armour"] = { type = "Rune", "+75 to Stun Threshold", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1061, 887, 892 }, + statOrder = { 1061 }, tradeHashes = { [915769802] = { "+75 to Stun Threshold" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -1089,37 +1197,49 @@ return { ["weapon"] = { type = "Rune", "+90 to Accuracy Rating", - "Bonded: Attacks have +1% to Critical Hit Chance", - statOrder = { 835, 4465 }, + statOrder = { 835 }, tradeHashes = { [691932474] = { "+90 to Accuracy Rating" }, }, + bonded = { + "Attacks have +1% to Critical Hit Chance", + statOrder = { 4465 }, + }, isSocketBound = false, rank = { 15 }, }, ["wand"] = { type = "Rune", "20% increased Critical Hit Chance for Spells", - "Bonded: 25% increased Critical Damage Bonus", - statOrder = { 978, 980 }, + statOrder = { 978 }, tradeHashes = { [737908626] = { "20% increased Critical Hit Chance for Spells" }, }, + bonded = { + "25% increased Critical Damage Bonus", + statOrder = { 980 }, + }, isSocketBound = false, rank = { 15 }, }, ["staff"] = { type = "Rune", "20% increased Critical Hit Chance for Spells", - "Bonded: 25% increased Critical Damage Bonus", - statOrder = { 978, 980 }, + statOrder = { 978 }, tradeHashes = { [737908626] = { "20% increased Critical Hit Chance for Spells" }, }, + bonded = { + "25% increased Critical Damage Bonus", + statOrder = { 980 }, + }, isSocketBound = false, rank = { 15 }, }, ["armour"] = { type = "Rune", "12% increased Life and Mana Recovery from Flasks", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 6639, 887, 892 }, + statOrder = { 6639 }, tradeHashes = { [2310741722] = { "12% increased Life and Mana Recovery from Flasks" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -1128,37 +1248,49 @@ return { ["weapon"] = { type = "Rune", "Adds 4 to 6 Fire Damage", - "Bonded: 30% increased Ignite Magnitude", - statOrder = { 832, 1077 }, + statOrder = { 832 }, tradeHashes = { [709508406] = { "Adds 4 to 6 Fire Damage" }, }, + bonded = { + "30% increased Ignite Magnitude", + statOrder = { 1077 }, + }, isSocketBound = false, rank = { 0 }, }, ["wand"] = { type = "Rune", "Gain 6% of Damage as Extra Fire Damage", - "Bonded: 30% increased Ignite Magnitude", - statOrder = { 863, 1077 }, + statOrder = { 863 }, tradeHashes = { [3015669065] = { "Gain 6% of Damage as Extra Fire Damage" }, }, + bonded = { + "30% increased Ignite Magnitude", + statOrder = { 1077 }, + }, isSocketBound = false, rank = { 0 }, }, ["staff"] = { type = "Rune", "Gain 6% of Damage as Extra Fire Damage", - "Bonded: 30% increased Ignite Magnitude", - statOrder = { 863, 1077 }, + statOrder = { 863 }, tradeHashes = { [3015669065] = { "Gain 6% of Damage as Extra Fire Damage" }, }, + bonded = { + "30% increased Ignite Magnitude", + statOrder = { 1077 }, + }, isSocketBound = false, rank = { 0 }, }, ["armour"] = { type = "Rune", "+10% to Fire Resistance", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1014, 887, 892 }, + statOrder = { 1014 }, tradeHashes = { [3372524247] = { "+10% to Fire Resistance" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -1167,37 +1299,49 @@ return { ["weapon"] = { type = "Rune", "Adds 3 to 5 Cold Damage", - "Bonded: 30% increased Freeze Buildup", - statOrder = { 833, 1057 }, + statOrder = { 833 }, tradeHashes = { [1037193709] = { "Adds 3 to 5 Cold Damage" }, }, + bonded = { + "30% increased Freeze Buildup", + statOrder = { 1057 }, + }, isSocketBound = false, rank = { 0 }, }, ["wand"] = { type = "Rune", "Gain 6% of Damage as Extra Cold Damage", - "Bonded: 30% increased Freeze Buildup", - statOrder = { 866, 1057 }, + statOrder = { 866 }, tradeHashes = { [2505884597] = { "Gain 6% of Damage as Extra Cold Damage" }, }, + bonded = { + "30% increased Freeze Buildup", + statOrder = { 1057 }, + }, isSocketBound = false, rank = { 0 }, }, ["staff"] = { type = "Rune", "Gain 6% of Damage as Extra Cold Damage", - "Bonded: 30% increased Freeze Buildup", - statOrder = { 866, 1057 }, + statOrder = { 866 }, tradeHashes = { [2505884597] = { "Gain 6% of Damage as Extra Cold Damage" }, }, + bonded = { + "30% increased Freeze Buildup", + statOrder = { 1057 }, + }, isSocketBound = false, rank = { 0 }, }, ["armour"] = { type = "Rune", "+10% to Cold Resistance", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1020, 887, 892 }, + statOrder = { 1020 }, tradeHashes = { [4220027924] = { "+10% to Cold Resistance" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -1206,37 +1350,49 @@ return { ["weapon"] = { type = "Rune", "Adds 1 to 10 Lightning Damage", - "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 834, 9839 }, + statOrder = { 834 }, tradeHashes = { [3336890334] = { "Adds 1 to 10 Lightning Damage" }, }, + bonded = { + "30% increased Magnitude of Shock you inflict", + statOrder = { 9839 }, + }, isSocketBound = false, rank = { 0 }, }, ["wand"] = { type = "Rune", "Gain 6% of Damage as Extra Lightning Damage", - "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 869, 9839 }, + statOrder = { 869 }, tradeHashes = { [3278136794] = { "Gain 6% of Damage as Extra Lightning Damage" }, }, + bonded = { + "30% increased Magnitude of Shock you inflict", + statOrder = { 9839 }, + }, isSocketBound = false, rank = { 0 }, }, ["staff"] = { type = "Rune", "Gain 6% of Damage as Extra Lightning Damage", - "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 869, 9839 }, + statOrder = { 869 }, tradeHashes = { [3278136794] = { "Gain 6% of Damage as Extra Lightning Damage" }, }, + bonded = { + "30% increased Magnitude of Shock you inflict", + statOrder = { 9839 }, + }, isSocketBound = false, rank = { 0 }, }, ["armour"] = { type = "Rune", "+10% to Lightning Resistance", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1023, 887, 892 }, + statOrder = { 1023 }, tradeHashes = { [1671376347] = { "+10% to Lightning Resistance" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -1245,37 +1401,49 @@ return { ["weapon"] = { type = "Rune", "14% increased Physical Damage", - "Bonded: 20% increased effect of Fully Broken Armour", - statOrder = { 830, 5232 }, + statOrder = { 830 }, tradeHashes = { [1805374733] = { "14% increased Physical Damage" }, }, + bonded = { + "20% increased effect of Fully Broken Armour", + statOrder = { 5232 }, + }, isSocketBound = false, rank = { 0 }, }, ["wand"] = { type = "Rune", "20% increased Spell Damage", - "Bonded: Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", - statOrder = { 871, 4411 }, + statOrder = { 871 }, tradeHashes = { [2974417149] = { "20% increased Spell Damage" }, }, + bonded = { + "Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", + statOrder = { 4411 }, + }, isSocketBound = false, rank = { 0 }, }, ["staff"] = { type = "Rune", "20% increased Spell Damage", - "Bonded: Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", - statOrder = { 871, 4411 }, + statOrder = { 871 }, tradeHashes = { [2974417149] = { "20% increased Spell Damage" }, }, + bonded = { + "Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", + statOrder = { 4411 }, + }, isSocketBound = false, rank = { 0 }, }, ["armour"] = { type = "Rune", "14% increased Armour, Evasion and Energy Shield", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 854, 887, 892 }, + statOrder = { 854 }, tradeHashes = { [3523867985] = { "14% increased Armour, Evasion and Energy Shield" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -1284,37 +1452,49 @@ return { ["weapon"] = { type = "Rune", "Leeches 3% of Physical Damage as Life", - "Bonded: 5% increased maximum Life", - statOrder = { 1039, 889 }, + statOrder = { 1039 }, tradeHashes = { [55876295] = { "Leeches 3% of Physical Damage as Life" }, }, + bonded = { + "5% increased maximum Life", + statOrder = { 889 }, + }, isSocketBound = false, rank = { 0 }, }, ["wand"] = { type = "Rune", "+30 to maximum Energy Shield", - "Bonded: 5% increased maximum Life", - statOrder = { 885, 889 }, + statOrder = { 885 }, tradeHashes = { [3489782002] = { "+30 to maximum Energy Shield" }, }, + bonded = { + "5% increased maximum Life", + statOrder = { 889 }, + }, isSocketBound = false, rank = { 0 }, }, ["staff"] = { type = "Rune", "+30 to maximum Energy Shield", - "Bonded: 5% increased maximum Life", - statOrder = { 885, 889 }, + statOrder = { 885 }, tradeHashes = { [3489782002] = { "+30 to maximum Energy Shield" }, }, + bonded = { + "5% increased maximum Life", + statOrder = { 889 }, + }, isSocketBound = false, rank = { 0 }, }, ["armour"] = { type = "Rune", "+30 to maximum Life", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 887, 887, 892 }, + statOrder = { 887 }, tradeHashes = { [3299347043] = { "+30 to maximum Life" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -1323,37 +1503,49 @@ return { ["weapon"] = { type = "Rune", "Leeches 2% of Physical Damage as Mana", - "Bonded: 5% increased maximum Mana", - statOrder = { 1045, 894 }, + statOrder = { 1045 }, tradeHashes = { [669069897] = { "Leeches 2% of Physical Damage as Mana" }, }, + bonded = { + "5% increased maximum Mana", + statOrder = { 894 }, + }, isSocketBound = false, rank = { 0 }, }, ["wand"] = { type = "Rune", "+45 to maximum Mana", - "Bonded: 5% increased maximum Mana", - statOrder = { 892, 894 }, + statOrder = { 892 }, tradeHashes = { [1050105434] = { "+45 to maximum Mana" }, }, + bonded = { + "5% increased maximum Mana", + statOrder = { 894 }, + }, isSocketBound = false, rank = { 0 }, }, ["staff"] = { type = "Rune", "+45 to maximum Mana", - "Bonded: 5% increased maximum Mana", - statOrder = { 892, 894 }, + statOrder = { 892 }, tradeHashes = { [1050105434] = { "+45 to maximum Mana" }, }, + bonded = { + "5% increased maximum Mana", + statOrder = { 894 }, + }, isSocketBound = false, rank = { 0 }, }, ["armour"] = { type = "Rune", "+20 to maximum Mana", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 892, 887, 892 }, + statOrder = { 892 }, tradeHashes = { [1050105434] = { "+20 to maximum Mana" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -1362,37 +1554,49 @@ return { ["weapon"] = { type = "Rune", "Gain 15 Life per enemy killed", - "Bonded: Regenerate 0.4% of maximum Life per second", - statOrder = { 1042, 1691 }, + statOrder = { 1042 }, tradeHashes = { [3695891184] = { "Gain 15 Life per enemy killed" }, }, + bonded = { + "Regenerate 0.4% of maximum Life per second", + statOrder = { 1691 }, + }, isSocketBound = false, rank = { 0 }, }, ["wand"] = { type = "Rune", "6% increased Energy Shield Recharge Rate", - "Bonded: 8% of Damage taken Recouped as Life", - statOrder = { 1032, 1037 }, + statOrder = { 1032 }, tradeHashes = { [2339757871] = { "6% increased Energy Shield Recharge Rate" }, }, + bonded = { + "8% of Damage taken Recouped as Life", + statOrder = { 1037 }, + }, isSocketBound = false, rank = { 0 }, }, ["staff"] = { type = "Rune", "6% increased Energy Shield Recharge Rate", - "Bonded: 8% of Damage taken Recouped as Life", - statOrder = { 1032, 1037 }, + statOrder = { 1032 }, tradeHashes = { [2339757871] = { "6% increased Energy Shield Recharge Rate" }, }, + bonded = { + "8% of Damage taken Recouped as Life", + statOrder = { 1037 }, + }, isSocketBound = false, rank = { 0 }, }, ["armour"] = { type = "Rune", "Regenerate 0.35% of maximum Life per second", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1691, 887, 892 }, + statOrder = { 1691 }, tradeHashes = { [836936635] = { "Regenerate 0.35% of maximum Life per second" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -1401,37 +1605,49 @@ return { ["weapon"] = { type = "Rune", "Gain 10 Mana per enemy killed", - "Bonded: 12% of Skill Mana Costs Converted to Life Costs", - statOrder = { 1047, 4742 }, + statOrder = { 1047 }, tradeHashes = { [1368271171] = { "Gain 10 Mana per enemy killed" }, }, + bonded = { + "12% of Skill Mana Costs Converted to Life Costs", + statOrder = { 4742 }, + }, isSocketBound = false, rank = { 0 }, }, ["wand"] = { type = "Rune", "20% increased Mana Regeneration Rate", - "Bonded: 16% increased Mana Cost Efficiency", - statOrder = { 1043, 4716 }, + statOrder = { 1043 }, tradeHashes = { [789117908] = { "20% increased Mana Regeneration Rate" }, }, + bonded = { + "16% increased Mana Cost Efficiency", + statOrder = { 4716 }, + }, isSocketBound = false, rank = { 0 }, }, ["staff"] = { type = "Rune", "20% increased Mana Regeneration Rate", - "Bonded: 16% increased Mana Cost Efficiency", - statOrder = { 1043, 4716 }, + statOrder = { 1043 }, tradeHashes = { [789117908] = { "20% increased Mana Regeneration Rate" }, }, + bonded = { + "16% increased Mana Cost Efficiency", + statOrder = { 4716 }, + }, isSocketBound = false, rank = { 0 }, }, ["armour"] = { type = "Rune", "12% increased Mana Regeneration Rate", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1043, 887, 892 }, + statOrder = { 1043 }, tradeHashes = { [789117908] = { "12% increased Mana Regeneration Rate" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -1440,37 +1656,49 @@ return { ["weapon"] = { type = "Rune", "Causes 20% increased Stun Buildup", - "Bonded: 40% increased Damage against Immobilised Enemies", - statOrder = { 1052, 5954 }, + statOrder = { 1052 }, tradeHashes = { [791928121] = { "Causes 20% increased Stun Buildup" }, }, + bonded = { + "40% increased Damage against Immobilised Enemies", + statOrder = { 5954 }, + }, isSocketBound = false, rank = { 0 }, }, ["wand"] = { type = "Rune", "Gain additional Stun Threshold equal to 10% of maximum Energy Shield", - "Bonded: 30% increased Immobilisation buildup", - statOrder = { 10131, 7188 }, + statOrder = { 10131 }, tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 10% of maximum Energy Shield" }, }, + bonded = { + "30% increased Immobilisation buildup", + statOrder = { 7188 }, + }, isSocketBound = false, rank = { 0 }, }, ["staff"] = { type = "Rune", "Gain additional Stun Threshold equal to 10% of maximum Energy Shield", - "Bonded: 30% increased Immobilisation buildup", - statOrder = { 10131, 7188 }, + statOrder = { 10131 }, tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 10% of maximum Energy Shield" }, }, + bonded = { + "30% increased Immobilisation buildup", + statOrder = { 7188 }, + }, isSocketBound = false, rank = { 0 }, }, ["armour"] = { type = "Rune", "+50 to Stun Threshold", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1061, 887, 892 }, + statOrder = { 1061 }, tradeHashes = { [915769802] = { "+50 to Stun Threshold" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -1479,37 +1707,49 @@ return { ["weapon"] = { type = "Rune", "+60 to Accuracy Rating", - "Bonded: Attacks have +1% to Critical Hit Chance", - statOrder = { 835, 4465 }, + statOrder = { 835 }, tradeHashes = { [691932474] = { "+60 to Accuracy Rating" }, }, + bonded = { + "Attacks have +1% to Critical Hit Chance", + statOrder = { 4465 }, + }, isSocketBound = false, rank = { 0 }, }, ["wand"] = { type = "Rune", "16% increased Critical Hit Chance for Spells", - "Bonded: 25% increased Critical Damage Bonus", - statOrder = { 978, 980 }, + statOrder = { 978 }, tradeHashes = { [737908626] = { "16% increased Critical Hit Chance for Spells" }, }, + bonded = { + "25% increased Critical Damage Bonus", + statOrder = { 980 }, + }, isSocketBound = false, rank = { 0 }, }, ["staff"] = { type = "Rune", "16% increased Critical Hit Chance for Spells", - "Bonded: 25% increased Critical Damage Bonus", - statOrder = { 978, 980 }, + statOrder = { 978 }, tradeHashes = { [737908626] = { "16% increased Critical Hit Chance for Spells" }, }, + bonded = { + "25% increased Critical Damage Bonus", + statOrder = { 980 }, + }, isSocketBound = false, rank = { 0 }, }, ["armour"] = { type = "Rune", "8% increased Life and Mana Recovery from Flasks", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 6639, 887, 892 }, + statOrder = { 6639 }, tradeHashes = { [2310741722] = { "8% increased Life and Mana Recovery from Flasks" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -1518,37 +1758,49 @@ return { ["weapon"] = { type = "Rune", "Adds 13 to 16 Fire Damage", - "Bonded: 30% increased Ignite Magnitude", - statOrder = { 832, 1077 }, + statOrder = { 832 }, tradeHashes = { [709508406] = { "Adds 13 to 16 Fire Damage" }, }, + bonded = { + "30% increased Ignite Magnitude", + statOrder = { 1077 }, + }, isSocketBound = false, rank = { 30 }, }, ["wand"] = { type = "Rune", "Gain 10% of Damage as Extra Fire Damage", - "Bonded: 30% increased Ignite Magnitude", - statOrder = { 863, 1077 }, + statOrder = { 863 }, tradeHashes = { [3015669065] = { "Gain 10% of Damage as Extra Fire Damage" }, }, + bonded = { + "30% increased Ignite Magnitude", + statOrder = { 1077 }, + }, isSocketBound = false, rank = { 30 }, }, ["staff"] = { type = "Rune", "Gain 10% of Damage as Extra Fire Damage", - "Bonded: 30% increased Ignite Magnitude", - statOrder = { 863, 1077 }, + statOrder = { 863 }, tradeHashes = { [3015669065] = { "Gain 10% of Damage as Extra Fire Damage" }, }, + bonded = { + "30% increased Ignite Magnitude", + statOrder = { 1077 }, + }, isSocketBound = false, rank = { 30 }, }, ["armour"] = { type = "Rune", "+18% to Fire Resistance", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1014, 887, 892 }, + statOrder = { 1014 }, tradeHashes = { [3372524247] = { "+18% to Fire Resistance" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -1557,37 +1809,49 @@ return { ["weapon"] = { type = "Rune", "Adds 9 to 15 Cold Damage", - "Bonded: 30% increased Freeze Buildup", - statOrder = { 833, 1057 }, + statOrder = { 833 }, tradeHashes = { [1037193709] = { "Adds 9 to 15 Cold Damage" }, }, + bonded = { + "30% increased Freeze Buildup", + statOrder = { 1057 }, + }, isSocketBound = false, rank = { 30 }, }, ["wand"] = { type = "Rune", "Gain 10% of Damage as Extra Cold Damage", - "Bonded: 30% increased Freeze Buildup", - statOrder = { 866, 1057 }, + statOrder = { 866 }, tradeHashes = { [2505884597] = { "Gain 10% of Damage as Extra Cold Damage" }, }, + bonded = { + "30% increased Freeze Buildup", + statOrder = { 1057 }, + }, isSocketBound = false, rank = { 30 }, }, ["staff"] = { type = "Rune", "Gain 10% of Damage as Extra Cold Damage", - "Bonded: 30% increased Freeze Buildup", - statOrder = { 866, 1057 }, + statOrder = { 866 }, tradeHashes = { [2505884597] = { "Gain 10% of Damage as Extra Cold Damage" }, }, + bonded = { + "30% increased Freeze Buildup", + statOrder = { 1057 }, + }, isSocketBound = false, rank = { 30 }, }, ["armour"] = { type = "Rune", "+18% to Cold Resistance", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1020, 887, 892 }, + statOrder = { 1020 }, tradeHashes = { [4220027924] = { "+18% to Cold Resistance" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -1596,37 +1860,49 @@ return { ["weapon"] = { type = "Rune", "Adds 1 to 30 Lightning Damage", - "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 834, 9839 }, + statOrder = { 834 }, tradeHashes = { [3336890334] = { "Adds 1 to 30 Lightning Damage" }, }, + bonded = { + "30% increased Magnitude of Shock you inflict", + statOrder = { 9839 }, + }, isSocketBound = false, rank = { 30 }, }, ["wand"] = { type = "Rune", "Gain 10% of Damage as Extra Lightning Damage", - "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 869, 9839 }, + statOrder = { 869 }, tradeHashes = { [3278136794] = { "Gain 10% of Damage as Extra Lightning Damage" }, }, + bonded = { + "30% increased Magnitude of Shock you inflict", + statOrder = { 9839 }, + }, isSocketBound = false, rank = { 30 }, }, ["staff"] = { type = "Rune", "Gain 10% of Damage as Extra Lightning Damage", - "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 869, 9839 }, + statOrder = { 869 }, tradeHashes = { [3278136794] = { "Gain 10% of Damage as Extra Lightning Damage" }, }, + bonded = { + "30% increased Magnitude of Shock you inflict", + statOrder = { 9839 }, + }, isSocketBound = false, rank = { 30 }, }, ["armour"] = { type = "Rune", "+18% to Lightning Resistance", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1023, 887, 892 }, + statOrder = { 1023 }, tradeHashes = { [1671376347] = { "+18% to Lightning Resistance" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -1635,37 +1911,49 @@ return { ["weapon"] = { type = "Rune", "18% increased Physical Damage", - "Bonded: 20% increased effect of Fully Broken Armour", - statOrder = { 830, 5232 }, + statOrder = { 830 }, tradeHashes = { [1805374733] = { "18% increased Physical Damage" }, }, + bonded = { + "20% increased effect of Fully Broken Armour", + statOrder = { 5232 }, + }, isSocketBound = false, rank = { 30 }, }, ["wand"] = { type = "Rune", "30% increased Spell Damage", - "Bonded: Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", - statOrder = { 871, 4411 }, + statOrder = { 871 }, tradeHashes = { [2974417149] = { "30% increased Spell Damage" }, }, + bonded = { + "Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", + statOrder = { 4411 }, + }, isSocketBound = false, rank = { 30 }, }, ["staff"] = { type = "Rune", "30% increased Spell Damage", - "Bonded: Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", - statOrder = { 871, 4411 }, + statOrder = { 871 }, tradeHashes = { [2974417149] = { "30% increased Spell Damage" }, }, + bonded = { + "Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", + statOrder = { 4411 }, + }, isSocketBound = false, rank = { 30 }, }, ["armour"] = { type = "Rune", "18% increased Armour, Evasion and Energy Shield", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 854, 887, 892 }, + statOrder = { 854 }, tradeHashes = { [3523867985] = { "18% increased Armour, Evasion and Energy Shield" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -1674,37 +1962,49 @@ return { ["weapon"] = { type = "Rune", "Leeches 5% of Physical Damage as Life", - "Bonded: 5% increased maximum Life", - statOrder = { 1039, 889 }, + statOrder = { 1039 }, tradeHashes = { [55876295] = { "Leeches 5% of Physical Damage as Life" }, }, + bonded = { + "5% increased maximum Life", + statOrder = { 889 }, + }, isSocketBound = false, rank = { 30 }, }, ["wand"] = { type = "Rune", "+50 to maximum Energy Shield", - "Bonded: 5% increased maximum Life", - statOrder = { 885, 889 }, + statOrder = { 885 }, tradeHashes = { [3489782002] = { "+50 to maximum Energy Shield" }, }, + bonded = { + "5% increased maximum Life", + statOrder = { 889 }, + }, isSocketBound = false, rank = { 30 }, }, ["staff"] = { type = "Rune", "+50 to maximum Energy Shield", - "Bonded: 5% increased maximum Life", - statOrder = { 885, 889 }, + statOrder = { 885 }, tradeHashes = { [3489782002] = { "+50 to maximum Energy Shield" }, }, + bonded = { + "5% increased maximum Life", + statOrder = { 889 }, + }, isSocketBound = false, rank = { 30 }, }, ["armour"] = { type = "Rune", "+60 to maximum Life", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 887, 887, 892 }, + statOrder = { 887 }, tradeHashes = { [3299347043] = { "+60 to maximum Life" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -1713,37 +2013,49 @@ return { ["weapon"] = { type = "Rune", "Leeches 4% of Physical Damage as Mana", - "Bonded: 5% increased maximum Mana", - statOrder = { 1045, 894 }, + statOrder = { 1045 }, tradeHashes = { [669069897] = { "Leeches 4% of Physical Damage as Mana" }, }, + bonded = { + "5% increased maximum Mana", + statOrder = { 894 }, + }, isSocketBound = false, rank = { 30 }, }, ["wand"] = { type = "Rune", "+75 to maximum Mana", - "Bonded: 5% increased maximum Mana", - statOrder = { 892, 894 }, + statOrder = { 892 }, tradeHashes = { [1050105434] = { "+75 to maximum Mana" }, }, + bonded = { + "5% increased maximum Mana", + statOrder = { 894 }, + }, isSocketBound = false, rank = { 30 }, }, ["staff"] = { type = "Rune", "+75 to maximum Mana", - "Bonded: 5% increased maximum Mana", - statOrder = { 892, 894 }, + statOrder = { 892 }, tradeHashes = { [1050105434] = { "+75 to maximum Mana" }, }, + bonded = { + "5% increased maximum Mana", + statOrder = { 894 }, + }, isSocketBound = false, rank = { 30 }, }, ["armour"] = { type = "Rune", "+40 to maximum Mana", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 892, 887, 892 }, + statOrder = { 892 }, tradeHashes = { [1050105434] = { "+40 to maximum Mana" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -1752,37 +2064,49 @@ return { ["weapon"] = { type = "Rune", "Gain 35 Life per enemy killed", - "Bonded: Regenerate 0.4% of maximum Life per second", - statOrder = { 1042, 1691 }, + statOrder = { 1042 }, tradeHashes = { [3695891184] = { "Gain 35 Life per enemy killed" }, }, + bonded = { + "Regenerate 0.4% of maximum Life per second", + statOrder = { 1691 }, + }, isSocketBound = false, rank = { 30 }, }, ["wand"] = { type = "Rune", "10% increased Energy Shield Recharge Rate", - "Bonded: 8% of Damage taken Recouped as Life", - statOrder = { 1032, 1037 }, + statOrder = { 1032 }, tradeHashes = { [2339757871] = { "10% increased Energy Shield Recharge Rate" }, }, + bonded = { + "8% of Damage taken Recouped as Life", + statOrder = { 1037 }, + }, isSocketBound = false, rank = { 30 }, }, ["staff"] = { type = "Rune", "10% increased Energy Shield Recharge Rate", - "Bonded: 8% of Damage taken Recouped as Life", - statOrder = { 1032, 1037 }, + statOrder = { 1032 }, tradeHashes = { [2339757871] = { "10% increased Energy Shield Recharge Rate" }, }, + bonded = { + "8% of Damage taken Recouped as Life", + statOrder = { 1037 }, + }, isSocketBound = false, rank = { 30 }, }, ["armour"] = { type = "Rune", "Regenerate 0.45% of maximum Life per second", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1691, 887, 892 }, + statOrder = { 1691 }, tradeHashes = { [836936635] = { "Regenerate 0.45% of maximum Life per second" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -1791,37 +2115,49 @@ return { ["weapon"] = { type = "Rune", "Gain 30 Mana per enemy killed", - "Bonded: 12% of Skill Mana Costs Converted to Life Costs", - statOrder = { 1047, 4742 }, + statOrder = { 1047 }, tradeHashes = { [1368271171] = { "Gain 30 Mana per enemy killed" }, }, + bonded = { + "12% of Skill Mana Costs Converted to Life Costs", + statOrder = { 4742 }, + }, isSocketBound = false, rank = { 30 }, }, ["wand"] = { type = "Rune", "30% increased Mana Regeneration Rate", - "Bonded: 16% increased Mana Cost Efficiency", - statOrder = { 1043, 4716 }, + statOrder = { 1043 }, tradeHashes = { [789117908] = { "30% increased Mana Regeneration Rate" }, }, + bonded = { + "16% increased Mana Cost Efficiency", + statOrder = { 4716 }, + }, isSocketBound = false, rank = { 30 }, }, ["staff"] = { type = "Rune", "30% increased Mana Regeneration Rate", - "Bonded: 16% increased Mana Cost Efficiency", - statOrder = { 1043, 4716 }, + statOrder = { 1043 }, tradeHashes = { [789117908] = { "30% increased Mana Regeneration Rate" }, }, + bonded = { + "16% increased Mana Cost Efficiency", + statOrder = { 4716 }, + }, isSocketBound = false, rank = { 30 }, }, ["armour"] = { type = "Rune", "18% increased Mana Regeneration Rate", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1043, 887, 892 }, + statOrder = { 1043 }, tradeHashes = { [789117908] = { "18% increased Mana Regeneration Rate" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -1830,37 +2166,49 @@ return { ["weapon"] = { type = "Rune", "Causes 40% increased Stun Buildup", - "Bonded: 40% increased Damage against Immobilised Enemies", - statOrder = { 1052, 5954 }, + statOrder = { 1052 }, tradeHashes = { [791928121] = { "Causes 40% increased Stun Buildup" }, }, + bonded = { + "40% increased Damage against Immobilised Enemies", + statOrder = { 5954 }, + }, isSocketBound = false, rank = { 30 }, }, ["wand"] = { type = "Rune", "Gain additional Stun Threshold equal to 14% of maximum Energy Shield", - "Bonded: 30% increased Immobilisation buildup", - statOrder = { 10131, 7188 }, + statOrder = { 10131 }, tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 14% of maximum Energy Shield" }, }, + bonded = { + "30% increased Immobilisation buildup", + statOrder = { 7188 }, + }, isSocketBound = false, rank = { 30 }, }, ["staff"] = { type = "Rune", "Gain additional Stun Threshold equal to 14% of maximum Energy Shield", - "Bonded: 30% increased Immobilisation buildup", - statOrder = { 10131, 7188 }, + statOrder = { 10131 }, tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 14% of maximum Energy Shield" }, }, + bonded = { + "30% increased Immobilisation buildup", + statOrder = { 7188 }, + }, isSocketBound = false, rank = { 30 }, }, ["armour"] = { type = "Rune", "+100 to Stun Threshold", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1061, 887, 892 }, + statOrder = { 1061 }, tradeHashes = { [915769802] = { "+100 to Stun Threshold" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -1869,37 +2217,49 @@ return { ["weapon"] = { type = "Rune", "+120 to Accuracy Rating", - "Bonded: Attacks have +1% to Critical Hit Chance", - statOrder = { 835, 4465 }, + statOrder = { 835 }, tradeHashes = { [691932474] = { "+120 to Accuracy Rating" }, }, + bonded = { + "Attacks have +1% to Critical Hit Chance", + statOrder = { 4465 }, + }, isSocketBound = false, rank = { 30 }, }, ["wand"] = { type = "Rune", "24% increased Critical Hit Chance for Spells", - "Bonded: 25% increased Critical Damage Bonus", - statOrder = { 978, 980 }, + statOrder = { 978 }, tradeHashes = { [737908626] = { "24% increased Critical Hit Chance for Spells" }, }, + bonded = { + "25% increased Critical Damage Bonus", + statOrder = { 980 }, + }, isSocketBound = false, rank = { 30 }, }, ["staff"] = { type = "Rune", "24% increased Critical Hit Chance for Spells", - "Bonded: 25% increased Critical Damage Bonus", - statOrder = { 978, 980 }, + statOrder = { 978 }, tradeHashes = { [737908626] = { "24% increased Critical Hit Chance for Spells" }, }, + bonded = { + "25% increased Critical Damage Bonus", + statOrder = { 980 }, + }, isSocketBound = false, rank = { 30 }, }, ["armour"] = { type = "Rune", "16% increased Life and Mana Recovery from Flasks", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 6639, 887, 892 }, + statOrder = { 6639 }, tradeHashes = { [2310741722] = { "16% increased Life and Mana Recovery from Flasks" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -1908,37 +2268,49 @@ return { ["weapon"] = { type = "Rune", "Adds 17 to 20 Fire Damage", - "Bonded: 30% increased Ignite Magnitude", - statOrder = { 832, 1077 }, + statOrder = { 832 }, tradeHashes = { [709508406] = { "Adds 17 to 20 Fire Damage" }, }, + bonded = { + "30% increased Ignite Magnitude", + statOrder = { 1077 }, + }, isSocketBound = false, rank = { 50 }, }, ["wand"] = { type = "Rune", "Gain 12% of Damage as Extra Fire Damage", - "Bonded: 30% increased Ignite Magnitude", - statOrder = { 863, 1077 }, + statOrder = { 863 }, tradeHashes = { [3015669065] = { "Gain 12% of Damage as Extra Fire Damage" }, }, + bonded = { + "30% increased Ignite Magnitude", + statOrder = { 1077 }, + }, isSocketBound = false, rank = { 50 }, }, ["staff"] = { type = "Rune", "Gain 12% of Damage as Extra Fire Damage", - "Bonded: 30% increased Ignite Magnitude", - statOrder = { 863, 1077 }, + statOrder = { 863 }, tradeHashes = { [3015669065] = { "Gain 12% of Damage as Extra Fire Damage" }, }, + bonded = { + "30% increased Ignite Magnitude", + statOrder = { 1077 }, + }, isSocketBound = false, rank = { 50 }, }, ["armour"] = { type = "Rune", "+22% to Fire Resistance", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1014, 887, 892 }, + statOrder = { 1014 }, tradeHashes = { [3372524247] = { "+22% to Fire Resistance" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -1947,37 +2319,49 @@ return { ["weapon"] = { type = "Rune", "Adds 16 to 20 Cold Damage", - "Bonded: 30% increased Freeze Buildup", - statOrder = { 833, 1057 }, + statOrder = { 833 }, tradeHashes = { [1037193709] = { "Adds 16 to 20 Cold Damage" }, }, + bonded = { + "30% increased Freeze Buildup", + statOrder = { 1057 }, + }, isSocketBound = false, rank = { 50 }, }, ["wand"] = { type = "Rune", "Gain 12% of Damage as Extra Cold Damage", - "Bonded: 30% increased Freeze Buildup", - statOrder = { 866, 1057 }, + statOrder = { 866 }, tradeHashes = { [2505884597] = { "Gain 12% of Damage as Extra Cold Damage" }, }, + bonded = { + "30% increased Freeze Buildup", + statOrder = { 1057 }, + }, isSocketBound = false, rank = { 50 }, }, ["staff"] = { type = "Rune", "Gain 12% of Damage as Extra Cold Damage", - "Bonded: 30% increased Freeze Buildup", - statOrder = { 866, 1057 }, + statOrder = { 866 }, tradeHashes = { [2505884597] = { "Gain 12% of Damage as Extra Cold Damage" }, }, + bonded = { + "30% increased Freeze Buildup", + statOrder = { 1057 }, + }, isSocketBound = false, rank = { 50 }, }, ["armour"] = { type = "Rune", "+22% to Cold Resistance", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1020, 887, 892 }, + statOrder = { 1020 }, tradeHashes = { [4220027924] = { "+22% to Cold Resistance" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -1986,37 +2370,49 @@ return { ["weapon"] = { type = "Rune", "Adds 1 to 40 Lightning Damage", - "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 834, 9839 }, + statOrder = { 834 }, tradeHashes = { [3336890334] = { "Adds 1 to 40 Lightning Damage" }, }, + bonded = { + "30% increased Magnitude of Shock you inflict", + statOrder = { 9839 }, + }, isSocketBound = false, rank = { 50 }, }, ["wand"] = { type = "Rune", "Gain 12% of Damage as Extra Lightning Damage", - "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 869, 9839 }, + statOrder = { 869 }, tradeHashes = { [3278136794] = { "Gain 12% of Damage as Extra Lightning Damage" }, }, + bonded = { + "30% increased Magnitude of Shock you inflict", + statOrder = { 9839 }, + }, isSocketBound = false, rank = { 50 }, }, ["staff"] = { type = "Rune", "Gain 12% of Damage as Extra Lightning Damage", - "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 869, 9839 }, + statOrder = { 869 }, tradeHashes = { [3278136794] = { "Gain 12% of Damage as Extra Lightning Damage" }, }, + bonded = { + "30% increased Magnitude of Shock you inflict", + statOrder = { 9839 }, + }, isSocketBound = false, rank = { 50 }, }, ["armour"] = { type = "Rune", "+22% to Lightning Resistance", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1023, 887, 892 }, + statOrder = { 1023 }, tradeHashes = { [1671376347] = { "+22% to Lightning Resistance" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2025,37 +2421,49 @@ return { ["weapon"] = { type = "Rune", "20% increased Physical Damage", - "Bonded: 20% increased effect of Fully Broken Armour", - statOrder = { 830, 5232 }, + statOrder = { 830 }, tradeHashes = { [1805374733] = { "20% increased Physical Damage" }, }, + bonded = { + "20% increased effect of Fully Broken Armour", + statOrder = { 5232 }, + }, isSocketBound = false, rank = { 50 }, }, ["wand"] = { type = "Rune", "35% increased Spell Damage", - "Bonded: Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", - statOrder = { 871, 4411 }, + statOrder = { 871 }, tradeHashes = { [2974417149] = { "35% increased Spell Damage" }, }, + bonded = { + "Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", + statOrder = { 4411 }, + }, isSocketBound = false, rank = { 50 }, }, ["staff"] = { type = "Rune", "35% increased Spell Damage", - "Bonded: Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", - statOrder = { 871, 4411 }, + statOrder = { 871 }, tradeHashes = { [2974417149] = { "35% increased Spell Damage" }, }, + bonded = { + "Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", + statOrder = { 4411 }, + }, isSocketBound = false, rank = { 50 }, }, ["armour"] = { type = "Rune", "20% increased Armour, Evasion and Energy Shield", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 854, 887, 892 }, + statOrder = { 854 }, tradeHashes = { [3523867985] = { "20% increased Armour, Evasion and Energy Shield" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2064,37 +2472,49 @@ return { ["weapon"] = { type = "Rune", "Leeches 6% of Physical Damage as Life", - "Bonded: 5% increased maximum Life", - statOrder = { 1039, 889 }, + statOrder = { 1039 }, tradeHashes = { [55876295] = { "Leeches 6% of Physical Damage as Life" }, }, + bonded = { + "5% increased maximum Life", + statOrder = { 889 }, + }, isSocketBound = false, rank = { 50 }, }, ["wand"] = { type = "Rune", "+60 to maximum Energy Shield", - "Bonded: 5% increased maximum Life", - statOrder = { 885, 889 }, + statOrder = { 885 }, tradeHashes = { [3489782002] = { "+60 to maximum Energy Shield" }, }, + bonded = { + "5% increased maximum Life", + statOrder = { 889 }, + }, isSocketBound = false, rank = { 50 }, }, ["staff"] = { type = "Rune", "+60 to maximum Energy Shield", - "Bonded: 5% increased maximum Life", - statOrder = { 885, 889 }, + statOrder = { 885 }, tradeHashes = { [3489782002] = { "+60 to maximum Energy Shield" }, }, + bonded = { + "5% increased maximum Life", + statOrder = { 889 }, + }, isSocketBound = false, rank = { 50 }, }, ["armour"] = { type = "Rune", "+75 to maximum Life", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 887, 887, 892 }, + statOrder = { 887 }, tradeHashes = { [3299347043] = { "+75 to maximum Life" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2103,37 +2523,49 @@ return { ["weapon"] = { type = "Rune", "Leeches 5% of Physical Damage as Mana", - "Bonded: 5% increased maximum Mana", - statOrder = { 1045, 894 }, + statOrder = { 1045 }, tradeHashes = { [669069897] = { "Leeches 5% of Physical Damage as Mana" }, }, + bonded = { + "5% increased maximum Mana", + statOrder = { 894 }, + }, isSocketBound = false, rank = { 50 }, }, ["wand"] = { type = "Rune", "+90 to maximum Mana", - "Bonded: 5% increased maximum Mana", - statOrder = { 892, 894 }, + statOrder = { 892 }, tradeHashes = { [1050105434] = { "+90 to maximum Mana" }, }, + bonded = { + "5% increased maximum Mana", + statOrder = { 894 }, + }, isSocketBound = false, rank = { 50 }, }, ["staff"] = { type = "Rune", "+90 to maximum Mana", - "Bonded: 5% increased maximum Mana", - statOrder = { 892, 894 }, + statOrder = { 892 }, tradeHashes = { [1050105434] = { "+90 to maximum Mana" }, }, + bonded = { + "5% increased maximum Mana", + statOrder = { 894 }, + }, isSocketBound = false, rank = { 50 }, }, ["armour"] = { type = "Rune", "+50 to maximum Mana", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 892, 887, 892 }, + statOrder = { 892 }, tradeHashes = { [1050105434] = { "+50 to maximum Mana" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2142,37 +2574,49 @@ return { ["weapon"] = { type = "Rune", "Gain 45 Life per enemy killed", - "Bonded: Regenerate 0.4% of maximum Life per second", - statOrder = { 1042, 1691 }, + statOrder = { 1042 }, tradeHashes = { [3695891184] = { "Gain 45 Life per enemy killed" }, }, + bonded = { + "Regenerate 0.4% of maximum Life per second", + statOrder = { 1691 }, + }, isSocketBound = false, rank = { 50 }, }, ["wand"] = { type = "Rune", "12% increased Energy Shield Recharge Rate", - "Bonded: 8% of Damage taken Recouped as Life", - statOrder = { 1032, 1037 }, + statOrder = { 1032 }, tradeHashes = { [2339757871] = { "12% increased Energy Shield Recharge Rate" }, }, + bonded = { + "8% of Damage taken Recouped as Life", + statOrder = { 1037 }, + }, isSocketBound = false, rank = { 50 }, }, ["staff"] = { type = "Rune", "12% increased Energy Shield Recharge Rate", - "Bonded: 8% of Damage taken Recouped as Life", - statOrder = { 1032, 1037 }, + statOrder = { 1032 }, tradeHashes = { [2339757871] = { "12% increased Energy Shield Recharge Rate" }, }, + bonded = { + "8% of Damage taken Recouped as Life", + statOrder = { 1037 }, + }, isSocketBound = false, rank = { 50 }, }, ["armour"] = { type = "Rune", "Regenerate 0.5% of maximum Life per second", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1691, 887, 892 }, + statOrder = { 1691 }, tradeHashes = { [836936635] = { "Regenerate 0.5% of maximum Life per second" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2181,37 +2625,49 @@ return { ["weapon"] = { type = "Rune", "Gain 40 Mana per enemy killed", - "Bonded: 12% of Skill Mana Costs Converted to Life Costs", - statOrder = { 1047, 4742 }, + statOrder = { 1047 }, tradeHashes = { [1368271171] = { "Gain 40 Mana per enemy killed" }, }, + bonded = { + "12% of Skill Mana Costs Converted to Life Costs", + statOrder = { 4742 }, + }, isSocketBound = false, rank = { 50 }, }, ["wand"] = { type = "Rune", "35% increased Mana Regeneration Rate", - "Bonded: 16% increased Mana Cost Efficiency", - statOrder = { 1043, 4716 }, + statOrder = { 1043 }, tradeHashes = { [789117908] = { "35% increased Mana Regeneration Rate" }, }, + bonded = { + "16% increased Mana Cost Efficiency", + statOrder = { 4716 }, + }, isSocketBound = false, rank = { 50 }, }, ["staff"] = { type = "Rune", "35% increased Mana Regeneration Rate", - "Bonded: 16% increased Mana Cost Efficiency", - statOrder = { 1043, 4716 }, + statOrder = { 1043 }, tradeHashes = { [789117908] = { "35% increased Mana Regeneration Rate" }, }, + bonded = { + "16% increased Mana Cost Efficiency", + statOrder = { 4716 }, + }, isSocketBound = false, rank = { 50 }, }, ["armour"] = { type = "Rune", "21% increased Mana Regeneration Rate", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1043, 887, 892 }, + statOrder = { 1043 }, tradeHashes = { [789117908] = { "21% increased Mana Regeneration Rate" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2220,37 +2676,49 @@ return { ["weapon"] = { type = "Rune", "Causes 50% increased Stun Buildup", - "Bonded: 40% increased Damage against Immobilised Enemies", - statOrder = { 1052, 5954 }, + statOrder = { 1052 }, tradeHashes = { [791928121] = { "Causes 50% increased Stun Buildup" }, }, + bonded = { + "40% increased Damage against Immobilised Enemies", + statOrder = { 5954 }, + }, isSocketBound = false, rank = { 50 }, }, ["wand"] = { type = "Rune", "Gain additional Stun Threshold equal to 16% of maximum Energy Shield", - "Bonded: 30% increased Immobilisation buildup", - statOrder = { 10131, 7188 }, + statOrder = { 10131 }, tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 16% of maximum Energy Shield" }, }, + bonded = { + "30% increased Immobilisation buildup", + statOrder = { 7188 }, + }, isSocketBound = false, rank = { 50 }, }, ["staff"] = { type = "Rune", "Gain additional Stun Threshold equal to 16% of maximum Energy Shield", - "Bonded: 30% increased Immobilisation buildup", - statOrder = { 10131, 7188 }, + statOrder = { 10131 }, tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 16% of maximum Energy Shield" }, }, + bonded = { + "30% increased Immobilisation buildup", + statOrder = { 7188 }, + }, isSocketBound = false, rank = { 50 }, }, ["armour"] = { type = "Rune", "+125 to Stun Threshold", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 1061, 887, 892 }, + statOrder = { 1061 }, tradeHashes = { [915769802] = { "+125 to Stun Threshold" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2259,37 +2727,49 @@ return { ["weapon"] = { type = "Rune", "+150 to Accuracy Rating", - "Bonded: Attacks have +1% to Critical Hit Chance", - statOrder = { 835, 4465 }, + statOrder = { 835 }, tradeHashes = { [691932474] = { "+150 to Accuracy Rating" }, }, + bonded = { + "Attacks have +1% to Critical Hit Chance", + statOrder = { 4465 }, + }, isSocketBound = false, rank = { 50 }, }, ["wand"] = { type = "Rune", "28% increased Critical Hit Chance for Spells", - "Bonded: 25% increased Critical Damage Bonus", - statOrder = { 978, 980 }, + statOrder = { 978 }, tradeHashes = { [737908626] = { "28% increased Critical Hit Chance for Spells" }, }, + bonded = { + "25% increased Critical Damage Bonus", + statOrder = { 980 }, + }, isSocketBound = false, rank = { 50 }, }, ["staff"] = { type = "Rune", "28% increased Critical Hit Chance for Spells", - "Bonded: 25% increased Critical Damage Bonus", - statOrder = { 978, 980 }, + statOrder = { 978 }, tradeHashes = { [737908626] = { "28% increased Critical Hit Chance for Spells" }, }, + bonded = { + "25% increased Critical Damage Bonus", + statOrder = { 980 }, + }, isSocketBound = false, rank = { 50 }, }, ["armour"] = { type = "Rune", "20% increased Life and Mana Recovery from Flasks", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 6639, 887, 892 }, + statOrder = { 6639 }, tradeHashes = { [2310741722] = { "20% increased Life and Mana Recovery from Flasks" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2300,6 +2780,11 @@ return { "+6 to Strength", statOrder = { 992 }, tradeHashes = { [4080418644] = { "+6 to Strength" }, }, + bonded = { + "Adds 6 to 10 Physical Damage to Attacks", + "Adds 6 to 10 Fire damage to Attacks", + statOrder = { 858, 859 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -2308,6 +2793,11 @@ return { "+6 to Strength", statOrder = { 992 }, tradeHashes = { [4080418644] = { "+6 to Strength" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -2319,6 +2809,26 @@ return { isSocketBound = false, rank = { 0 }, }, + ["wand"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+100 to Armour", + statOrder = { 881 }, + }, + isSocketBound = false, + rank = { 0 }, + }, + ["staff"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+100 to Armour", + statOrder = { 881 }, + }, + isSocketBound = false, + rank = { 0 }, + }, }, ["Robust Rune"] = { ["weapon"] = { @@ -2326,6 +2836,11 @@ return { "+9 to Strength", statOrder = { 992 }, tradeHashes = { [4080418644] = { "+9 to Strength" }, }, + bonded = { + "Adds 6 to 10 Physical Damage to Attacks", + "Adds 6 to 10 Fire damage to Attacks", + statOrder = { 858, 859 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -2334,6 +2849,11 @@ return { "+9 to Strength", statOrder = { 992 }, tradeHashes = { [4080418644] = { "+9 to Strength" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -2345,6 +2865,26 @@ return { isSocketBound = false, rank = { 15 }, }, + ["wand"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+100 to Armour", + statOrder = { 881 }, + }, + isSocketBound = false, + rank = { 15 }, + }, + ["staff"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+100 to Armour", + statOrder = { 881 }, + }, + isSocketBound = false, + rank = { 15 }, + }, }, ["Greater Robust Rune"] = { ["weapon"] = { @@ -2352,6 +2892,11 @@ return { "+12 to Strength", statOrder = { 992 }, tradeHashes = { [4080418644] = { "+12 to Strength" }, }, + bonded = { + "Adds 6 to 10 Physical Damage to Attacks", + "Adds 6 to 10 Fire damage to Attacks", + statOrder = { 858, 859 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -2360,6 +2905,11 @@ return { "+12 to Strength", statOrder = { 992 }, tradeHashes = { [4080418644] = { "+12 to Strength" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -2371,6 +2921,26 @@ return { isSocketBound = false, rank = { 30 }, }, + ["wand"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+100 to Armour", + statOrder = { 881 }, + }, + isSocketBound = false, + rank = { 30 }, + }, + ["staff"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+100 to Armour", + statOrder = { 881 }, + }, + isSocketBound = false, + rank = { 30 }, + }, }, ["Perfect Robust Rune"] = { ["weapon"] = { @@ -2378,6 +2948,11 @@ return { "+15 to Strength", statOrder = { 992 }, tradeHashes = { [4080418644] = { "+15 to Strength" }, }, + bonded = { + "Adds 6 to 10 Physical Damage to Attacks", + "Adds 6 to 10 Fire damage to Attacks", + statOrder = { 858, 859 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2386,6 +2961,11 @@ return { "+15 to Strength", statOrder = { 992 }, tradeHashes = { [4080418644] = { "+15 to Strength" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2397,6 +2977,26 @@ return { isSocketBound = false, rank = { 50 }, }, + ["wand"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+100 to Armour", + statOrder = { 881 }, + }, + isSocketBound = false, + rank = { 50 }, + }, + ["staff"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+100 to Armour", + statOrder = { 881 }, + }, + isSocketBound = false, + rank = { 50 }, + }, }, ["Lesser Adept Rune"] = { ["weapon"] = { @@ -2404,6 +3004,11 @@ return { "+6 to Dexterity", statOrder = { 993 }, tradeHashes = { [3261801346] = { "+6 to Dexterity" }, }, + bonded = { + "Adds 6 to 10 Physical Damage to Attacks", + "Adds 1 to 16 Lightning damage to Attacks", + statOrder = { 858, 861 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -2412,6 +3017,11 @@ return { "+6 to Dexterity", statOrder = { 993 }, tradeHashes = { [3261801346] = { "+6 to Dexterity" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -2423,6 +3033,26 @@ return { isSocketBound = false, rank = { 0 }, }, + ["wand"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+80 to Evasion Rating", + statOrder = { 883 }, + }, + isSocketBound = false, + rank = { 0 }, + }, + ["staff"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+80 to Evasion Rating", + statOrder = { 883 }, + }, + isSocketBound = false, + rank = { 0 }, + }, }, ["Adept Rune"] = { ["weapon"] = { @@ -2430,6 +3060,11 @@ return { "+9 to Dexterity", statOrder = { 993 }, tradeHashes = { [3261801346] = { "+9 to Dexterity" }, }, + bonded = { + "Adds 6 to 10 Physical Damage to Attacks", + "Adds 1 to 16 Lightning damage to Attacks", + statOrder = { 858, 861 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -2438,6 +3073,11 @@ return { "+9 to Dexterity", statOrder = { 993 }, tradeHashes = { [3261801346] = { "+9 to Dexterity" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -2449,6 +3089,26 @@ return { isSocketBound = false, rank = { 15 }, }, + ["wand"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+80 to Evasion Rating", + statOrder = { 883 }, + }, + isSocketBound = false, + rank = { 15 }, + }, + ["staff"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+80 to Evasion Rating", + statOrder = { 883 }, + }, + isSocketBound = false, + rank = { 15 }, + }, }, ["Greater Adept Rune"] = { ["weapon"] = { @@ -2456,6 +3116,11 @@ return { "+12 to Dexterity", statOrder = { 993 }, tradeHashes = { [3261801346] = { "+12 to Dexterity" }, }, + bonded = { + "Adds 6 to 10 Physical Damage to Attacks", + "Adds 1 to 16 Lightning damage to Attacks", + statOrder = { 858, 861 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -2464,6 +3129,11 @@ return { "+12 to Dexterity", statOrder = { 993 }, tradeHashes = { [3261801346] = { "+12 to Dexterity" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -2475,6 +3145,26 @@ return { isSocketBound = false, rank = { 30 }, }, + ["wand"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+80 to Evasion Rating", + statOrder = { 883 }, + }, + isSocketBound = false, + rank = { 30 }, + }, + ["staff"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+80 to Evasion Rating", + statOrder = { 883 }, + }, + isSocketBound = false, + rank = { 30 }, + }, }, ["Perfect Adept Rune"] = { ["weapon"] = { @@ -2482,6 +3172,11 @@ return { "+15 to Dexterity", statOrder = { 993 }, tradeHashes = { [3261801346] = { "+15 to Dexterity" }, }, + bonded = { + "Adds 6 to 10 Physical Damage to Attacks", + "Adds 1 to 16 Lightning damage to Attacks", + statOrder = { 858, 861 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2490,6 +3185,11 @@ return { "+15 to Dexterity", statOrder = { 993 }, tradeHashes = { [3261801346] = { "+15 to Dexterity" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2501,6 +3201,26 @@ return { isSocketBound = false, rank = { 50 }, }, + ["wand"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+80 to Evasion Rating", + statOrder = { 883 }, + }, + isSocketBound = false, + rank = { 50 }, + }, + ["staff"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+80 to Evasion Rating", + statOrder = { 883 }, + }, + isSocketBound = false, + rank = { 50 }, + }, }, ["Lesser Resolve Rune"] = { ["weapon"] = { @@ -2508,6 +3228,11 @@ return { "+6 to Intelligence", statOrder = { 994 }, tradeHashes = { [328541901] = { "+6 to Intelligence" }, }, + bonded = { + "Adds 6 to 10 Physical Damage to Attacks", + "Adds 5 to 8 Cold damage to Attacks", + statOrder = { 858, 860 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -2516,6 +3241,11 @@ return { "+6 to Intelligence", statOrder = { 994 }, tradeHashes = { [328541901] = { "+6 to Intelligence" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -2527,6 +3257,26 @@ return { isSocketBound = false, rank = { 0 }, }, + ["wand"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+50 to maximum Energy Shield", + statOrder = { 885 }, + }, + isSocketBound = false, + rank = { 0 }, + }, + ["staff"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+50 to maximum Energy Shield", + statOrder = { 885 }, + }, + isSocketBound = false, + rank = { 0 }, + }, }, ["Resolve Rune"] = { ["weapon"] = { @@ -2534,6 +3284,11 @@ return { "+9 to Intelligence", statOrder = { 994 }, tradeHashes = { [328541901] = { "+9 to Intelligence" }, }, + bonded = { + "Adds 6 to 10 Physical Damage to Attacks", + "Adds 5 to 8 Cold damage to Attacks", + statOrder = { 858, 860 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -2542,6 +3297,11 @@ return { "+9 to Intelligence", statOrder = { 994 }, tradeHashes = { [328541901] = { "+9 to Intelligence" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -2553,6 +3313,26 @@ return { isSocketBound = false, rank = { 15 }, }, + ["wand"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+50 to maximum Energy Shield", + statOrder = { 885 }, + }, + isSocketBound = false, + rank = { 15 }, + }, + ["staff"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+50 to maximum Energy Shield", + statOrder = { 885 }, + }, + isSocketBound = false, + rank = { 15 }, + }, }, ["Greater Resolve Rune"] = { ["weapon"] = { @@ -2560,6 +3340,11 @@ return { "+12 to Intelligence", statOrder = { 994 }, tradeHashes = { [328541901] = { "+12 to Intelligence" }, }, + bonded = { + "Adds 6 to 10 Physical Damage to Attacks", + "Adds 5 to 8 Cold damage to Attacks", + statOrder = { 858, 860 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -2568,6 +3353,11 @@ return { "+12 to Intelligence", statOrder = { 994 }, tradeHashes = { [328541901] = { "+12 to Intelligence" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -2579,6 +3369,26 @@ return { isSocketBound = false, rank = { 30 }, }, + ["wand"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+50 to maximum Energy Shield", + statOrder = { 885 }, + }, + isSocketBound = false, + rank = { 30 }, + }, + ["staff"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+50 to maximum Energy Shield", + statOrder = { 885 }, + }, + isSocketBound = false, + rank = { 30 }, + }, }, ["Perfect Resolve Rune"] = { ["weapon"] = { @@ -2586,6 +3396,11 @@ return { "+15 to Intelligence", statOrder = { 994 }, tradeHashes = { [328541901] = { "+15 to Intelligence" }, }, + bonded = { + "Adds 6 to 10 Physical Damage to Attacks", + "Adds 5 to 8 Cold damage to Attacks", + statOrder = { 858, 860 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2594,6 +3409,11 @@ return { "+15 to Intelligence", statOrder = { 994 }, tradeHashes = { [328541901] = { "+15 to Intelligence" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2605,6 +3425,26 @@ return { isSocketBound = false, rank = { 50 }, }, + ["wand"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+50 to maximum Energy Shield", + statOrder = { 885 }, + }, + isSocketBound = false, + rank = { 50 }, + }, + ["staff"] = { + type = "Rune", + tradeHashes = { }, + bonded = { + "+50 to maximum Energy Shield", + statOrder = { 885 }, + }, + isSocketBound = false, + rank = { 50 }, + }, }, ["Lesser Tempered Rune"] = { ["weapon"] = { @@ -2664,18 +3504,24 @@ return { ["weapon"] = { type = "Rune", "Minions gain 10% of their Physical Damage as Extra Lightning Damage", - "Bonded: Minions deal 20% increased Damage", - statOrder = { 9069, 1720 }, + statOrder = { 9069 }, tradeHashes = { [1433756169] = { "Minions gain 10% of their Physical Damage as Extra Lightning Damage" }, }, + bonded = { + "Minions deal 20% increased Damage", + statOrder = { 1720 }, + }, isSocketBound = false, rank = { 0 }, }, ["armour"] = { type = "Rune", "Minions take 10% of Physical Damage as Lightning Damage", - "Bonded: Minions have +10% to all Elemental Resistances", - statOrder = { 9070, 2667 }, + statOrder = { 9070 }, tradeHashes = { [889552744] = { "Minions take 10% of Physical Damage as Lightning Damage" }, }, + bonded = { + "Minions have +10% to all Elemental Resistances", + statOrder = { 2667 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -2684,18 +3530,24 @@ return { ["weapon"] = { type = "Rune", "Meta Skills gain 10% increased Energy", - "Bonded: Invocated Spells have 25% chance to consume half as much Energy", - statOrder = { 6405, 7381 }, + statOrder = { 6405 }, tradeHashes = { [4236566306] = { "Meta Skills gain 10% increased Energy" }, }, + bonded = { + "Invocated Spells have 25% chance to consume half as much Energy", + statOrder = { 7381 }, + }, isSocketBound = false, rank = { 0 }, }, ["armour"] = { type = "Rune", "1 to 100 Lightning Thorns damage", - "Bonded: 15% increased Thorns damage", - statOrder = { 10253, 10247 }, + statOrder = { 10253 }, tradeHashes = { [757050353] = { "1 to 100 Lightning Thorns damage" }, }, + bonded = { + "15% increased Thorns damage", + statOrder = { 10247 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -2704,18 +3556,24 @@ return { ["weapon"] = { type = "Rune", "8% increased Skill Speed", - "Bonded: 15% increased Reservation Efficiency of Herald Skills", - statOrder = { 837, 9759 }, + statOrder = { 837 }, tradeHashes = { [970213192] = { "8% increased Skill Speed" }, }, + bonded = { + "15% increased Reservation Efficiency of Herald Skills", + statOrder = { 9759 }, + }, isSocketBound = false, rank = { 0 }, }, ["armour"] = { type = "Rune", "Debuffs on you expire 8% faster", - "Bonded: 15% increased Elemental Ailment Threshold", - statOrder = { 6094, 4266 }, + statOrder = { 6094 }, tradeHashes = { [1238227257] = { "Debuffs on you expire 8% faster" }, }, + bonded = { + "15% increased Elemental Ailment Threshold", + statOrder = { 4266 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -2724,18 +3582,24 @@ return { ["weapon"] = { type = "Rune", "Attacks with this Weapon have 10% chance to inflict Exposure", - "Bonded: 20% increased Exposure Effect", - statOrder = { 7731, 6528 }, + statOrder = { 7731 }, tradeHashes = { [3678845069] = { "Attacks with this Weapon have 10% chance to inflict Exposure" }, }, + bonded = { + "20% increased Exposure Effect", + statOrder = { 6528 }, + }, isSocketBound = false, rank = { 0 }, }, ["armour"] = { type = "Rune", "10% reduced effect of Shock on you", - "Bonded: 10% reduced Shock duration on you", - statOrder = { 9853, 1066 }, + statOrder = { 9853 }, tradeHashes = { [3801067695] = { "10% reduced effect of Shock on you" }, }, + bonded = { + "10% reduced Shock duration on you", + statOrder = { 1066 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -2744,18 +3608,24 @@ return { ["wand"] = { type = "Rune", "+1 to Level of all Spell Skills", - "Bonded: Archon recovery period expires 30% faster", - statOrder = { 950, 4343 }, + statOrder = { 950 }, tradeHashes = { [124131830] = { "+1 to Level of all Spell Skills" }, }, + bonded = { + "Archon recovery period expires 30% faster", + statOrder = { 4343 }, + }, isSocketBound = false, rank = { 50 }, }, ["staff"] = { type = "Rune", "+1 to Level of all Spell Skills", - "Bonded: Archon recovery period expires 30% faster", - statOrder = { 950, 4343 }, + statOrder = { 950 }, tradeHashes = { [124131830] = { "+1 to Level of all Spell Skills" }, }, + bonded = { + "Archon recovery period expires 30% faster", + statOrder = { 4343 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2764,29 +3634,38 @@ return { ["weapon"] = { type = "Rune", "Gain 5% of Damage as Extra Damage of all Elements", - "Bonded: 8% chance to gain an additional random Charge when you gain a Charge", - statOrder = { 9258, 5518 }, + statOrder = { 9258 }, tradeHashes = { [731403740] = { "Gain 5% of Damage as Extra Damage of all Elements" }, }, + bonded = { + "8% chance to gain an additional random Charge when you gain a Charge", + statOrder = { 5518 }, + }, isSocketBound = false, rank = { 50 }, }, ["wand"] = { type = "Rune", "Gain 5% of Damage as Extra Damage of all Elements", - "Bonded: 12% chance when collecting an Elemental Infusion to gain an", - "Bonded: additional Elemental Infusion of the same type", - statOrder = { 9258, 4193, 4193.1 }, + statOrder = { 9258 }, tradeHashes = { [731403740] = { "Gain 5% of Damage as Extra Damage of all Elements" }, }, + bonded = { + "12% chance when collecting an Elemental Infusion to gain an", + "additional Elemental Infusion of the same type", + statOrder = { 4193, 4193.1 }, + }, isSocketBound = false, rank = { 50 }, }, ["staff"] = { type = "Rune", "Gain 5% of Damage as Extra Damage of all Elements", - "Bonded: 12% chance when collecting an Elemental Infusion to gain an", - "Bonded: additional Elemental Infusion of the same type", - statOrder = { 9258, 4193, 4193.1 }, + statOrder = { 9258 }, tradeHashes = { [731403740] = { "Gain 5% of Damage as Extra Damage of all Elements" }, }, + bonded = { + "12% chance when collecting an Elemental Infusion to gain an", + "additional Elemental Infusion of the same type", + statOrder = { 4193, 4193.1 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2795,27 +3674,36 @@ return { ["weapon"] = { type = "Rune", "Gain 13% of Damage as Extra Chaos Damage", - "Bonded: Gain 8% of Damage as Extra Physical Damage", - statOrder = { 1672, 1671 }, + statOrder = { 1672 }, tradeHashes = { [3398787959] = { "Gain 13% of Damage as Extra Chaos Damage" }, }, + bonded = { + "Gain 8% of Damage as Extra Physical Damage", + statOrder = { 1671 }, + }, isSocketBound = false, rank = { 50 }, }, ["wand"] = { type = "Rune", "Gain 13% of Damage as Extra Chaos Damage", - "Bonded: Gain 8% of Damage as Extra Physical Damage", - statOrder = { 1672, 1671 }, + statOrder = { 1672 }, tradeHashes = { [3398787959] = { "Gain 13% of Damage as Extra Chaos Damage" }, }, + bonded = { + "Gain 8% of Damage as Extra Physical Damage", + statOrder = { 1671 }, + }, isSocketBound = false, rank = { 50 }, }, ["staff"] = { type = "Rune", "Gain 13% of Damage as Extra Chaos Damage", - "Bonded: Gain 8% of Damage as Extra Physical Damage", - statOrder = { 1672, 1671 }, + statOrder = { 1672 }, tradeHashes = { [3398787959] = { "Gain 13% of Damage as Extra Chaos Damage" }, }, + bonded = { + "Gain 8% of Damage as Extra Physical Damage", + statOrder = { 1671 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2824,9 +3712,12 @@ return { ["boots"] = { type = "Rune", "8% increased Deflection Rating while moving", - "Bonded: Prevent +3% of Damage from Deflected Hits", - statOrder = { 6115, 4677 }, + statOrder = { 6115 }, tradeHashes = { [1382805233] = { "8% increased Deflection Rating while moving" }, }, + bonded = { + "Prevent +3% of Damage from Deflected Hits", + statOrder = { 4677 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2835,9 +3726,12 @@ return { ["boots"] = { type = "Rune", "5% increased Movement Speed", - "Bonded: 10% increased Cooldown Recovery Rate", - statOrder = { 836, 4103 }, + statOrder = { 836 }, tradeHashes = { [2250533757] = { "5% increased Movement Speed" }, }, + bonded = { + "10% increased Cooldown Recovery Rate", + statOrder = { 4103 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2846,9 +3740,12 @@ return { ["body armour"] = { type = "Rune", "50% reduced effect of Curses on you", - "Bonded: 8% increased Curse Magnitudes", - statOrder = { 1911, 2376 }, + statOrder = { 1911 }, tradeHashes = { [3407849389] = { "50% reduced effect of Curses on you" }, }, + bonded = { + "8% increased Curse Magnitudes", + statOrder = { 2376 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2857,9 +3754,12 @@ return { ["helmet"] = { type = "Rune", "2% increased Experience gain", - "Bonded: +10% to all Elemental Resistances", - statOrder = { 1471, 1013 }, + statOrder = { 1471 }, tradeHashes = { [3666934677] = { "2% increased Experience gain" }, }, + bonded = { + "+10% to all Elemental Resistances", + statOrder = { 1013 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2868,9 +3768,12 @@ return { ["helmet"] = { type = "Rune", "25% increased Exposure Effect", - "Bonded: 15% increased Magnitude of Non-Damaging Ailments you inflict", - statOrder = { 6528, 9218 }, + statOrder = { 6528 }, tradeHashes = { [2074866941] = { "25% increased Exposure Effect" }, }, + bonded = { + "15% increased Magnitude of Non-Damaging Ailments you inflict", + statOrder = { 9218 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2879,9 +3782,12 @@ return { ["weapon"] = { type = "Rune", "50% increased Attack Damage against Rare or Unique Enemies", - "Bonded: +1 to Level of all Attack Skills", - statOrder = { 4514, 967 }, + statOrder = { 4514 }, tradeHashes = { [2077615515] = { "50% increased Attack Damage against Rare or Unique Enemies" }, }, + bonded = { + "+1 to Level of all Attack Skills", + statOrder = { 967 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2890,10 +3796,13 @@ return { ["body armour"] = { type = "Rune", "30% increased Energy Shield Recharge Rate", - "Bonded: Gain additional Ailment Threshold equal to 50% of maximum Energy Shield", - "Bonded: Gain additional Stun Threshold equal to 50% of maximum Energy Shield", - statOrder = { 1032, 4265, 10131 }, + statOrder = { 1032 }, tradeHashes = { [2339757871] = { "30% increased Energy Shield Recharge Rate" }, }, + bonded = { + "Gain additional Ailment Threshold equal to 50% of maximum Energy Shield", + "Gain additional Stun Threshold equal to 50% of maximum Energy Shield", + statOrder = { 4265, 10131 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2902,9 +3811,12 @@ return { ["gloves"] = { type = "Rune", "20% increased Magnitude of Damaging Ailments you inflict", - "Bonded: 15% increased Duration of Damaging Ailments on Enemies", - statOrder = { 6062, 6060 }, + statOrder = { 6062 }, tradeHashes = { [1381474422] = { "20% increased Magnitude of Damaging Ailments you inflict" }, }, + bonded = { + "15% increased Duration of Damaging Ailments on Enemies", + statOrder = { 6060 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2913,9 +3825,12 @@ return { ["gloves"] = { type = "Rune", "30% increased Magnitude of Non-Damaging Ailments you inflict", - "Bonded: 15% increased Duration of Elemental Ailments on Enemies", - statOrder = { 9218, 1617 }, + statOrder = { 9218 }, tradeHashes = { [782230869] = { "30% increased Magnitude of Non-Damaging Ailments you inflict" }, }, + bonded = { + "15% increased Duration of Elemental Ailments on Enemies", + statOrder = { 1617 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2924,9 +3839,12 @@ return { ["gloves"] = { type = "Rune", "8% increased Cast Speed", - "Bonded: 20% increased Mana Cost Efficiency while on Low Mana", - statOrder = { 987, 4721 }, + statOrder = { 987 }, tradeHashes = { [2891184298] = { "8% increased Cast Speed" }, }, + bonded = { + "20% increased Mana Cost Efficiency while on Low Mana", + statOrder = { 4721 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2935,9 +3853,12 @@ return { ["bow"] = { type = "Rune", "Bow Attacks fire an additional Arrow", - "Bonded: 20% increased Projectile Speed", - statOrder = { 990, 897 }, + statOrder = { 990 }, tradeHashes = { [3885405204] = { "Bow Attacks fire an additional Arrow" }, }, + bonded = { + "20% increased Projectile Speed", + statOrder = { 897 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2946,18 +3867,24 @@ return { ["wand"] = { type = "Rune", "25% chance for Spell Skills to fire 2 additional Projectiles", - "Bonded: Every Rage also grants 1% increased Spell Damage", - statOrder = { 10027, 10001 }, + statOrder = { 10027 }, tradeHashes = { [2910761524] = { "25% chance for Spell Skills to fire 2 additional Projectiles" }, }, + bonded = { + "Every Rage also grants 1% increased Spell Damage", + statOrder = { 10001 }, + }, isSocketBound = false, rank = { 50 }, }, ["staff"] = { type = "Rune", "25% chance for Spell Skills to fire 2 additional Projectiles", - "Bonded: Every Rage also grants 1% increased Spell Damage", - statOrder = { 10027, 10001 }, + statOrder = { 10027 }, tradeHashes = { [2910761524] = { "25% chance for Spell Skills to fire 2 additional Projectiles" }, }, + bonded = { + "Every Rage also grants 1% increased Spell Damage", + statOrder = { 10001 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2966,9 +3893,12 @@ return { ["gloves"] = { type = "Rune", "20% increased Withered Magnitude", - "Bonded: +7% to Chaos Resistance", - statOrder = { 10549, 1024 }, + statOrder = { 10549 }, tradeHashes = { [3973629633] = { "20% increased Withered Magnitude" }, }, + bonded = { + "+7% to Chaos Resistance", + statOrder = { 1024 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2977,9 +3907,12 @@ return { ["weapon"] = { type = "Rune", "Adds 23 to 34 Fire Damage to Attacks against Ignited Enemies", - "Bonded: +2% to Maximum Fire Resistance", - statOrder = { 1212, 1009 }, + statOrder = { 1212 }, tradeHashes = { [627339348] = { "Adds 23 to 34 Fire Damage to Attacks against Ignited Enemies" }, }, + bonded = { + "+2% to Maximum Fire Resistance", + statOrder = { 1009 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2988,9 +3921,12 @@ return { ["weapon"] = { type = "Rune", "Adds 19 to 28 Cold Damage against Chilled Enemies", - "Bonded: +2% to Maximum Cold Resistance", - statOrder = { 8957, 1010 }, + statOrder = { 8957 }, tradeHashes = { [3734640451] = { "Adds 19 to 28 Cold Damage against Chilled Enemies" }, }, + bonded = { + "+2% to Maximum Cold Resistance", + statOrder = { 1010 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -2999,9 +3935,12 @@ return { ["weapon"] = { type = "Rune", "Adds 1 to 60 Lightning Damage against Shocked Enemies", - "Bonded: +2% to Maximum Lightning Resistance", - statOrder = { 6905, 1011 }, + statOrder = { 6905 }, tradeHashes = { [90012347] = { "Adds 1 to 60 Lightning Damage against Shocked Enemies" }, }, + bonded = { + "+2% to Maximum Lightning Resistance", + statOrder = { 1011 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -3010,9 +3949,12 @@ return { ["gloves"] = { type = "Rune", "Adds 5 to 12 Physical Damage to Attacks", - "Bonded: Fissure Skills have +2 to Limit", - statOrder = { 858, 6611 }, + statOrder = { 858 }, tradeHashes = { [3032590688] = { "Adds 5 to 12 Physical Damage to Attacks" }, }, + bonded = { + "Fissure Skills have +2 to Limit", + statOrder = { 6611 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -3021,9 +3963,12 @@ return { ["body armour"] = { type = "Rune", "15% of Damage is taken from Mana before Life", - "Bonded: 8% of Maximum Life Converted to Energy Shield", - statOrder = { 2472, 8879 }, + statOrder = { 2472 }, tradeHashes = { [458438597] = { "15% of Damage is taken from Mana before Life" }, }, + bonded = { + "8% of Maximum Life Converted to Energy Shield", + statOrder = { 8879 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -3058,9 +4003,12 @@ return { ["armour"] = { type = "Rune", "+15 to maximum Runic Ward", - "Bonded: 15% increased Global Armour, Evasion and Energy Shield", - statOrder = { 845, 2588 }, + statOrder = { 845 }, tradeHashes = { [774059442] = { "+15 to maximum Runic Ward" }, }, + bonded = { + "15% increased Global Armour, Evasion and Energy Shield", + statOrder = { 2588 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -3069,9 +4017,12 @@ return { ["armour"] = { type = "Rune", "+20 to maximum Runic Ward", - "Bonded: 15% increased Global Armour, Evasion and Energy Shield", - statOrder = { 845, 2588 }, + statOrder = { 845 }, tradeHashes = { [774059442] = { "+20 to maximum Runic Ward" }, }, + bonded = { + "15% increased Global Armour, Evasion and Energy Shield", + statOrder = { 2588 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3080,9 +4031,12 @@ return { ["armour"] = { type = "Rune", "+25 to maximum Runic Ward", - "Bonded: 15% increased Global Armour, Evasion and Energy Shield", - statOrder = { 845, 2588 }, + statOrder = { 845 }, tradeHashes = { [774059442] = { "+25 to maximum Runic Ward" }, }, + bonded = { + "15% increased Global Armour, Evasion and Energy Shield", + statOrder = { 2588 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3091,9 +4045,12 @@ return { ["armour"] = { type = "Rune", "+30 to maximum Runic Ward", - "Bonded: 15% increased Global Armour, Evasion and Energy Shield", - statOrder = { 845, 2588 }, + statOrder = { 845 }, tradeHashes = { [774059442] = { "+30 to maximum Runic Ward" }, }, + bonded = { + "15% increased Global Armour, Evasion and Energy Shield", + statOrder = { 2588 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -3102,9 +4059,12 @@ return { ["armour"] = { type = "Rune", "8% increased Runic Ward Regeneration Rate", - "Bonded: Regenerate 10 Runic Ward per second", - statOrder = { 10513, 4761 }, + statOrder = { 10513 }, tradeHashes = { [2392260628] = { "8% increased Runic Ward Regeneration Rate" }, }, + bonded = { + "Regenerate 10 Runic Ward per second", + statOrder = { 4761 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -3113,9 +4073,12 @@ return { ["armour"] = { type = "Rune", "12% increased Runic Ward Regeneration Rate", - "Bonded: Regenerate 15 Runic Ward per second", - statOrder = { 10513, 4761 }, + statOrder = { 10513 }, tradeHashes = { [2392260628] = { "12% increased Runic Ward Regeneration Rate" }, }, + bonded = { + "Regenerate 15 Runic Ward per second", + statOrder = { 4761 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3124,9 +4087,12 @@ return { ["armour"] = { type = "Rune", "16% increased Runic Ward Regeneration Rate", - "Bonded: Regenerate 20 Runic Ward per second", - statOrder = { 10513, 4761 }, + statOrder = { 10513 }, tradeHashes = { [2392260628] = { "16% increased Runic Ward Regeneration Rate" }, }, + bonded = { + "Regenerate 20 Runic Ward per second", + statOrder = { 4761 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3135,9 +4101,12 @@ return { ["armour"] = { type = "Rune", "20% increased Runic Ward Regeneration Rate", - "Bonded: Regenerate 25 Runic Ward per second", - statOrder = { 10513, 4761 }, + statOrder = { 10513 }, tradeHashes = { [2392260628] = { "20% increased Runic Ward Regeneration Rate" }, }, + bonded = { + "Regenerate 25 Runic Ward per second", + statOrder = { 4761 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -3146,9 +4115,12 @@ return { ["armour"] = { type = "Rune", "20% increased Runic Ward", - "Bonded: Gain 2% of maximum Life as Extra maximum Runic Ward", - statOrder = { 855, 1430 }, + statOrder = { 855 }, tradeHashes = { [830161081] = { "20% increased Runic Ward" }, }, + bonded = { + "Gain 2% of maximum Life as Extra maximum Runic Ward", + statOrder = { 1430 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3157,9 +4129,12 @@ return { ["armour"] = { type = "Rune", "Every 4 seconds, gain Guard equal to 20% of maximum Runic Ward for 2 seconds", - "Bonded: 8% increased Guard gained", - statOrder = { 6797, 6946 }, + statOrder = { 6797 }, tradeHashes = { [1963589548] = { "Every 4 seconds, gain Guard equal to 20% of maximum Runic Ward for 2 seconds" }, }, + bonded = { + "8% increased Guard gained", + statOrder = { 6946 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3168,9 +4143,12 @@ return { ["weapon"] = { type = "Rune", "Attacks Break Armour equal to 15% of maximum Runic Ward", - "Bonded: Break 10% increased Armour", - statOrder = { 5011, 4407 }, + statOrder = { 5011 }, tradeHashes = { [2608793552] = { "Attacks Break Armour equal to 15% of maximum Runic Ward" }, }, + bonded = { + "Break 10% increased Armour", + statOrder = { 4407 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3179,18 +4157,24 @@ return { ["wand"] = { type = "Rune", "Spell damage Penetrates 25% of enemy Elemental Resistances while on Low Runic Ward", - "Bonded: 12% increased Elemental Damage", - statOrder = { 10035, 1726 }, + statOrder = { 10035 }, tradeHashes = { [267552601] = { "Spell damage Penetrates 25% of enemy Elemental Resistances while on Low Runic Ward" }, }, + bonded = { + "12% increased Elemental Damage", + statOrder = { 1726 }, + }, isSocketBound = false, rank = { 15 }, }, ["staff"] = { type = "Rune", "Spell damage Penetrates 25% of enemy Elemental Resistances while on Low Runic Ward", - "Bonded: 12% increased Elemental Damage", - statOrder = { 10035, 1726 }, + statOrder = { 10035 }, tradeHashes = { [267552601] = { "Spell damage Penetrates 25% of enemy Elemental Resistances while on Low Runic Ward" }, }, + bonded = { + "12% increased Elemental Damage", + statOrder = { 1726 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3199,9 +4183,12 @@ return { ["boots"] = { type = "Rune", "1% increased Energy Shield Recharge Rate per 30 maximum Runic Ward", - "Bonded: Regenerate 1% of maximum Energy Shield per second", - statOrder = { 6437, 2420 }, + statOrder = { 6437 }, tradeHashes = { [162036024] = { "1% increased Energy Shield Recharge Rate per 30 maximum Runic Ward" }, }, + bonded = { + "Regenerate 1% of maximum Energy Shield per second", + statOrder = { 2420 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3210,9 +4197,12 @@ return { ["helmet"] = { type = "Rune", "25% increased Armour and Evasion Rating while on Low Runic Ward", - "Bonded: 20% increased Armour and Evasion Rating when on Low Life", - statOrder = { 4402, 2930 }, + statOrder = { 4402 }, tradeHashes = { [1392112423] = { "25% increased Armour and Evasion Rating while on Low Runic Ward" }, }, + bonded = { + "20% increased Armour and Evasion Rating when on Low Life", + statOrder = { 2930 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3221,18 +4211,24 @@ return { ["shield"] = { type = "Rune", "+4 to Stun Threshold per 10 maximum Runic Ward", - "Bonded: 15% increased Stun buildup while Shapeshifted", - statOrder = { 10127, 7200 }, + statOrder = { 10127 }, tradeHashes = { [2838678452] = { "+4 to Stun Threshold per 10 maximum Runic Ward" }, }, + bonded = { + "15% increased Stun buildup while Shapeshifted", + statOrder = { 7200 }, + }, isSocketBound = false, rank = { 30 }, }, ["buckler"] = { type = "Rune", "+4 to Stun Threshold per 10 maximum Runic Ward", - "Bonded: 15% increased Stun buildup while Shapeshifted", - statOrder = { 10127, 7200 }, + statOrder = { 10127 }, tradeHashes = { [2838678452] = { "+4 to Stun Threshold per 10 maximum Runic Ward" }, }, + bonded = { + "15% increased Stun buildup while Shapeshifted", + statOrder = { 7200 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3241,9 +4237,12 @@ return { ["body armour"] = { type = "Rune", "+3 to Deflection Rating per 10 maximum Runic Ward", - "Bonded: Prevent +1% of Damage from Deflected Hits", - statOrder = { 9, 4677 }, + statOrder = { 9 }, tradeHashes = { [282990844] = { "+3 to Deflection Rating per 10 maximum Runic Ward" }, }, + bonded = { + "Prevent +1% of Damage from Deflected Hits", + statOrder = { 4677 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3252,9 +4251,12 @@ return { ["body armour"] = { type = "Rune", "Gain 5% of maximum Life as Extra maximum Runic Ward", - "Bonded: 1% more Runic Ward Regeneration rate per 2% of maximum Runic Ward lost from Hits Recently, up to 100% more", - statOrder = { 1430, 10516 }, + statOrder = { 1430 }, tradeHashes = { [386720106] = { "Gain 5% of maximum Life as Extra maximum Runic Ward" }, }, + bonded = { + "1% more Runic Ward Regeneration rate per 2% of maximum Runic Ward lost from Hits Recently, up to 100% more", + statOrder = { 10516 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3263,9 +4265,12 @@ return { ["armour"] = { type = "Rune", "15% Life Recovery from Flasks also applies to Runic Ward", - "Bonded: 15% increased Life Recovery from Flasks", - statOrder = { 7469, 1794 }, + statOrder = { 7469 }, tradeHashes = { [2650263616] = { "15% Life Recovery from Flasks also applies to Runic Ward" }, }, + bonded = { + "15% increased Life Recovery from Flasks", + statOrder = { 1794 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3274,9 +4279,12 @@ return { ["weapon"] = { type = "Rune", "Attacks spend 5% of your maximum Runic Ward if possible to gain that much added Physical damage", - "Bonded: 10% reduced Runic Ward Cost Efficiency", - statOrder = { 4580, 4760 }, + statOrder = { 4580 }, tradeHashes = { [3035971497] = { "Attacks spend 5% of your maximum Runic Ward if possible to gain that much added Physical damage" }, }, + bonded = { + "10% reduced Runic Ward Cost Efficiency", + statOrder = { 4760 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3285,9 +4293,12 @@ return { ["weapon"] = { type = "Rune", "Gain maximum Runic Ward equal to 15% of this Weapon's maximum damage", - "Bonded: 5% increased Attack Speed while missing Runic Ward", - statOrder = { 7824, 4558 }, + statOrder = { 7824 }, tradeHashes = { [1995345015] = { "Gain maximum Runic Ward equal to 15% of this Weapon's maximum damage" }, }, + bonded = { + "5% increased Attack Speed while missing Runic Ward", + statOrder = { 4558 }, + }, isSocketBound = false, rank = { 45 }, }, @@ -3297,9 +4308,12 @@ return { type = "Rune", "All damage taken bypasses Runic Ward", "Runic Ward Regeneration Rate is doubled", - "Bonded: 12% increased maximum Runic Ward", - statOrder = { 5960, 10518, 891 }, + statOrder = { 5960, 10518 }, tradeHashes = { [2579974553] = { "Runic Ward Regeneration Rate is doubled" }, [3814102597] = { "All damage taken bypasses Runic Ward" }, }, + bonded = { + "12% increased maximum Runic Ward", + statOrder = { 891 }, + }, isSocketBound = false, rank = { 45 }, }, @@ -3309,9 +4323,12 @@ return { type = "Rune", "40% less Mana Regeneration Rate", "Mana Recovery from Regeneration is also applied to Runic Ward", - "Bonded: 20% increased Runic Ward Regeneration Rate if you've dealt a Critical Hit Recently", - statOrder = { 7994, 9699, 10514 }, + statOrder = { 7994, 9699 }, tradeHashes = { [762761075] = { "40% less Mana Regeneration Rate" }, [3145796865] = { "Mana Recovery from Regeneration is also applied to Runic Ward" }, }, + bonded = { + "20% increased Runic Ward Regeneration Rate if you've dealt a Critical Hit Recently", + statOrder = { 10514 }, + }, isSocketBound = false, rank = { 45 }, }, @@ -3320,9 +4337,12 @@ return { ["sceptre"] = { type = "Rune", "Recover 3% of maximum Runic Ward when one of your Reviving Minions is Killed", - "Bonded: Recover 3% of maximum Life when one of your Minions is Revived", - statOrder = { 9701, 10589 }, + statOrder = { 9701 }, tradeHashes = { [3515226849] = { "Recover 3% of maximum Runic Ward when one of your Reviving Minions is Killed" }, }, + bonded = { + "Recover 3% of maximum Life when one of your Minions is Revived", + statOrder = { 10589 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3331,10 +4351,13 @@ return { ["sceptre"] = { type = "Rune", "Minions in your Presence have Onslaught while you are on Low Runic Ward", - "Bonded: Damage of Enemies Hitting you is Unlucky if", - "Bonded: your Runic Ward has been damaged Recently", - statOrder = { 9104, 6037, 6037.1 }, + statOrder = { 9104 }, tradeHashes = { [540694930] = { "Minions in your Presence have Onslaught while you are on Low Runic Ward" }, }, + bonded = { + "Damage of Enemies Hitting you is Unlucky if", + "your Runic Ward has been damaged Recently", + statOrder = { 6037, 6037.1 }, + }, isSocketBound = false, rank = { 45 }, }, @@ -3344,9 +4367,12 @@ return { type = "Rune", "Gain 15% of maximum Life as Extra maximum Runic Ward", "15% less maximum Life", - "Bonded: +1% to all Maximum Elemental Resistances while on full Runic Ward", - statOrder = { 1430, 8873, 4200 }, + statOrder = { 1430, 8873 }, tradeHashes = { [386720106] = { "Gain 15% of maximum Life as Extra maximum Runic Ward" }, [1020945697] = { "15% less maximum Life" }, }, + bonded = { + "+1% to all Maximum Elemental Resistances while on full Runic Ward", + statOrder = { 4200 }, + }, isSocketBound = false, rank = { 45 }, }, @@ -3355,18 +4381,24 @@ return { ["weapon"] = { type = "Rune", "Transforms all Cold and Lightning modifiers on the item into equivalent Fire modifiers", - "Bonded: 25% increased Fire Damage", - statOrder = { 6237, 873 }, + statOrder = { 6237 }, tradeHashes = { [602344904] = { "Transforms all Cold and Lightning modifiers on the item into equivalent Fire modifiers" }, }, + bonded = { + "25% increased Fire Damage", + statOrder = { 873 }, + }, isSocketBound = true, rank = { 0 }, }, ["caster"] = { type = "Rune", "Transforms all Cold and Lightning modifiers on the item into equivalent Fire modifiers", - "Bonded: 25% increased Fire Damage", - statOrder = { 6237, 873 }, + statOrder = { 6237 }, tradeHashes = { [602344904] = { "Transforms all Cold and Lightning modifiers on the item into equivalent Fire modifiers" }, }, + bonded = { + "25% increased Fire Damage", + statOrder = { 873 }, + }, isSocketBound = true, rank = { 0 }, }, @@ -3375,18 +4407,24 @@ return { ["weapon"] = { type = "Rune", "When socketed, transforms all Fire and Lightning modifiers to equivalent Cold modifiers", - "Bonded: 25% increased Cold Damage", - statOrder = { 6234, 874 }, + statOrder = { 6234 }, tradeHashes = { [2390027291] = { "When socketed, transforms all Fire and Lightning modifiers to equivalent Cold modifiers" }, }, + bonded = { + "25% increased Cold Damage", + statOrder = { 874 }, + }, isSocketBound = true, rank = { 0 }, }, ["caster"] = { type = "Rune", "When socketed, transforms all Fire and Lightning modifiers to equivalent Cold modifiers", - "Bonded: 25% increased Cold Damage", - statOrder = { 6234, 874 }, + statOrder = { 6234 }, tradeHashes = { [2390027291] = { "When socketed, transforms all Fire and Lightning modifiers to equivalent Cold modifiers" }, }, + bonded = { + "25% increased Cold Damage", + statOrder = { 874 }, + }, isSocketBound = true, rank = { 0 }, }, @@ -3395,18 +4433,24 @@ return { ["weapon"] = { type = "Rune", "Transforms all Fire and Cold modifiers on the item into equivalent Lightning modifiers", - "Bonded: 25% increased Lightning Damage", - statOrder = { 6238, 875 }, + statOrder = { 6238 }, tradeHashes = { [1433896639] = { "Transforms all Fire and Cold modifiers on the item into equivalent Lightning modifiers" }, }, + bonded = { + "25% increased Lightning Damage", + statOrder = { 875 }, + }, isSocketBound = true, rank = { 0 }, }, ["caster"] = { type = "Rune", "Transforms all Fire and Cold modifiers on the item into equivalent Lightning modifiers", - "Bonded: 25% increased Lightning Damage", - statOrder = { 6238, 875 }, + statOrder = { 6238 }, tradeHashes = { [1433896639] = { "Transforms all Fire and Cold modifiers on the item into equivalent Lightning modifiers" }, }, + bonded = { + "25% increased Lightning Damage", + statOrder = { 875 }, + }, isSocketBound = true, rank = { 0 }, }, @@ -3415,18 +4459,24 @@ return { ["weapon"] = { type = "Rune", "Transforms all Fire, Cold and Lightning modifiers on the item into equivalent Chaos modifiers", - "Bonded: 25% increased Chaos Damage", - statOrder = { 6233, 876 }, + statOrder = { 6233 }, tradeHashes = { [1624833382] = { "Transforms all Fire, Cold and Lightning modifiers on the item into equivalent Chaos modifiers" }, }, + bonded = { + "25% increased Chaos Damage", + statOrder = { 876 }, + }, isSocketBound = true, rank = { 0 }, }, ["caster"] = { type = "Rune", "Transforms all Fire, Cold and Lightning modifiers on the item into equivalent Chaos modifiers", - "Bonded: 25% increased Chaos Damage", - statOrder = { 6233, 876 }, + statOrder = { 6233 }, tradeHashes = { [1624833382] = { "Transforms all Fire, Cold and Lightning modifiers on the item into equivalent Chaos modifiers" }, }, + bonded = { + "25% increased Chaos Damage", + statOrder = { 876 }, + }, isSocketBound = true, rank = { 0 }, }, @@ -3435,9 +4485,12 @@ return { ["bow"] = { type = "Rune", "+50% Surpassing chance to fire an additional Arrow", - "Bonded: 30% increased Projectile Speed", - statOrder = { 5509, 897 }, + statOrder = { 5509 }, tradeHashes = { [2463230181] = { "+50% Surpassing chance to fire an additional Arrow" }, }, + bonded = { + "30% increased Projectile Speed", + statOrder = { 897 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3446,9 +4499,12 @@ return { ["buckler"] = { type = "Rune", "30% increased Parried Debuff Magnitude", - "Bonded: 15% increased Block chance", - statOrder = { 9373, 1133 }, + statOrder = { 9373 }, tradeHashes = { [818877178] = { "30% increased Parried Debuff Magnitude" }, }, + bonded = { + "15% increased Block chance", + statOrder = { 1133 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3457,9 +4513,12 @@ return { ["two hand mace"] = { type = "Rune", "10% chance for Slam Skills you use yourself to cause an additional Aftershock", - "Bonded: 15% increased Area of Effect for Attacks", - statOrder = { 10619, 4493 }, + statOrder = { 10619 }, tradeHashes = { [2045949233] = { "10% chance for Slam Skills you use yourself to cause an additional Aftershock" }, }, + bonded = { + "15% increased Area of Effect for Attacks", + statOrder = { 4493 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3468,9 +4527,12 @@ return { ["one hand mace"] = { type = "Rune", "40% increased effect of Fully Broken Armour", - "Bonded: Break 50% increased Armour", - statOrder = { 5232, 4407 }, + statOrder = { 5232 }, tradeHashes = { [1879206848] = { "40% increased effect of Fully Broken Armour" }, }, + bonded = { + "Break 50% increased Armour", + statOrder = { 4407 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3479,9 +4541,12 @@ return { ["spear"] = { type = "Rune", "30% chance when you gain a Charge to gain an additional Charge", - "Bonded: 30% increased Endurance, Frenzy and Power Charge Duration", - statOrder = { 5514, 2761 }, + statOrder = { 5514 }, tradeHashes = { [1555237944] = { "30% chance when you gain a Charge to gain an additional Charge" }, }, + bonded = { + "30% increased Endurance, Frenzy and Power Charge Duration", + statOrder = { 2761 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3490,9 +4555,12 @@ return { ["quarterstaff"] = { type = "Rune", "50% increased Immobilisation buildup", - "Bonded: 30% increased Damage against Immobilised Enemies", - statOrder = { 7188, 5954 }, + statOrder = { 7188 }, tradeHashes = { [330530785] = { "50% increased Immobilisation buildup" }, }, + bonded = { + "30% increased Damage against Immobilised Enemies", + statOrder = { 5954 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3501,9 +4569,12 @@ return { ["staff"] = { type = "Rune", "30% chance to create an additional Remnant", - "Bonded: +1 to maximum number of Elemental Infusions", - statOrder = { 5405, 8870 }, + statOrder = { 5405 }, tradeHashes = { [2328443419] = { "30% chance to create an additional Remnant" }, }, + bonded = { + "+1 to maximum number of Elemental Infusions", + statOrder = { 8870 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3512,9 +4583,12 @@ return { ["wand"] = { type = "Rune", "25% increased Withered Magnitude", - "Bonded: 15% chance that when Volatility on you explodes, you regain an equivalent amount of Volatility", - statOrder = { 10549, 10478 }, + statOrder = { 10549 }, tradeHashes = { [3973629633] = { "25% increased Withered Magnitude" }, }, + bonded = { + "15% chance that when Volatility on you explodes, you regain an equivalent amount of Volatility", + statOrder = { 10478 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3523,9 +4597,12 @@ return { ["focus"] = { type = "Rune", "40% increased Area of Effect of Curses", - "Bonded: 15% faster Curse Activation", - statOrder = { 1950, 5920 }, + statOrder = { 1950 }, tradeHashes = { [153777645] = { "40% increased Area of Effect of Curses" }, }, + bonded = { + "15% faster Curse Activation", + statOrder = { 5920 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3534,9 +4611,12 @@ return { ["sceptre"] = { type = "Rune", "Minions have 8% increased Attack and Cast Speed", - "Bonded: Minions have 10% increased Movement Speed", - statOrder = { 8998, 1528 }, + statOrder = { 8998 }, tradeHashes = { [3091578504] = { "Minions have 8% increased Attack and Cast Speed" }, }, + bonded = { + "Minions have 10% increased Movement Speed", + statOrder = { 1528 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3545,9 +4625,12 @@ return { ["talisman"] = { type = "Rune", "Gain 2 Druidic Prowess when you Heavy Stun a Rare or Unique Enemy", - "Bonded: 40% increased Stun Buildup", - statOrder = { 6708, 1051 }, + statOrder = { 6708 }, tradeHashes = { [3444646646] = { "Gain 2 Druidic Prowess when you Heavy Stun a Rare or Unique Enemy" }, }, + bonded = { + "40% increased Stun Buildup", + statOrder = { 1051 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3556,9 +4639,12 @@ return { ["crossbow"] = { type = "Rune", "Grenades have 10% chance to activate a second time", - "Bonded: 40% increased Crossbow Reload Speed", - statOrder = { 6934, 9728 }, + statOrder = { 6934 }, tradeHashes = { [538981065] = { "Grenades have 10% chance to activate a second time" }, }, + bonded = { + "40% increased Crossbow Reload Speed", + statOrder = { 9728 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3567,9 +4653,12 @@ return { ["shield"] = { type = "Rune", "8% increased Attack Speed if you have Blocked Recently", - "Bonded: +3% to maximum Block chance", - statOrder = { 4565, 1734 }, + statOrder = { 4565 }, tradeHashes = { [3203854378] = { "8% increased Attack Speed if you have Blocked Recently" }, }, + bonded = { + "+3% to maximum Block chance", + statOrder = { 1734 }, + }, isSocketBound = false, rank = { 30 }, }, @@ -3578,36 +4667,48 @@ return { ["weapon"] = { type = "Rune", "+80 to maximum Life", - "Bonded: 15% increased amount of Life Leeched", - statOrder = { 887, 1895 }, + statOrder = { 887 }, tradeHashes = { [3299347043] = { "+80 to maximum Life" }, }, + bonded = { + "15% increased amount of Life Leeched", + statOrder = { 1895 }, + }, isSocketBound = false, rank = { 15 }, }, ["caster"] = { type = "Rune", "+80 to maximum Life", - "Bonded: 15% increased amount of Life Leeched", - statOrder = { 887, 1895 }, + statOrder = { 887 }, tradeHashes = { [3299347043] = { "+80 to maximum Life" }, }, + bonded = { + "15% increased amount of Life Leeched", + statOrder = { 1895 }, + }, isSocketBound = false, rank = { 15 }, }, ["shield"] = { type = "Rune", "Recover 15 Life when you Block", - "Bonded: 5% increased maximum Life", - statOrder = { 1522, 889 }, + statOrder = { 1522 }, tradeHashes = { [1678831767] = { "Recover 15 Life when you Block" }, }, + bonded = { + "5% increased maximum Life", + statOrder = { 889 }, + }, isSocketBound = false, rank = { 15 }, }, ["buckler"] = { type = "Rune", "Recover 15 Life when you Block", - "Bonded: 5% increased maximum Life", - statOrder = { 1522, 889 }, + statOrder = { 1522 }, tradeHashes = { [1678831767] = { "Recover 15 Life when you Block" }, }, + bonded = { + "5% increased maximum Life", + statOrder = { 889 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3616,18 +4717,24 @@ return { ["boots"] = { type = "Rune", "8% increased Movement Speed while Sprinting", - "Bonded: 50% increased Stun Recovery", - statOrder = { 10062, 1060 }, + statOrder = { 10062 }, tradeHashes = { [3107707789] = { "8% increased Movement Speed while Sprinting" }, }, + bonded = { + "50% increased Stun Recovery", + statOrder = { 1060 }, + }, isSocketBound = false, rank = { 15 }, }, ["sceptre"] = { type = "Rune", "Companions deal 30% increased Damage", - "Bonded: 8% increased Mana Recovery rate while your Companion is in your Presence", - statOrder = { 5718, 7991 }, + statOrder = { 5718 }, tradeHashes = { [234296660] = { "Companions deal 30% increased Damage" }, }, + bonded = { + "8% increased Mana Recovery rate while your Companion is in your Presence", + statOrder = { 7991 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3636,27 +4743,36 @@ return { ["weapon"] = { type = "Rune", "Flasks gain 0.2 charges per Second", - "Bonded: Charms gain 0.25 charges per Second", - statOrder = { 6883, 6884 }, + statOrder = { 6883 }, tradeHashes = { [731781020] = { "Flasks gain 0.2 charges per Second" }, }, + bonded = { + "Charms gain 0.25 charges per Second", + statOrder = { 6884 }, + }, isSocketBound = false, rank = { 15 }, }, ["caster"] = { type = "Rune", "Flasks gain 0.2 charges per Second", - "Bonded: Charms gain 0.25 charges per Second", - statOrder = { 6883, 6884 }, + statOrder = { 6883 }, tradeHashes = { [731781020] = { "Flasks gain 0.2 charges per Second" }, }, + bonded = { + "Charms gain 0.25 charges per Second", + statOrder = { 6884 }, + }, isSocketBound = false, rank = { 15 }, }, ["boots"] = { type = "Rune", "+0.3 metres to Dodge Roll distance", - "Bonded: 30% increased Armour if you haven't Dodge Rolled Recently", - statOrder = { 6195, 4390 }, + statOrder = { 6195 }, tradeHashes = { [258119672] = { "+0.3 metres to Dodge Roll distance" }, }, + bonded = { + "30% increased Armour if you haven't Dodge Rolled Recently", + statOrder = { 4390 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3665,27 +4781,36 @@ return { ["gloves"] = { type = "Rune", "50% chance to build an additional Combo on Hit", - "Bonded: 5% increased Attack Speed", - statOrder = { 4185, 985 }, + statOrder = { 4185 }, tradeHashes = { [4258524206] = { "50% chance to build an additional Combo on Hit" }, }, + bonded = { + "5% increased Attack Speed", + statOrder = { 985 }, + }, isSocketBound = false, rank = { 15 }, }, ["one hand mace"] = { type = "Rune", "Rolls only the minimum or maximum Damage value for Physical Damage", - "Bonded: 20% increased Bleeding Duration", - statOrder = { 7806, 4660 }, + statOrder = { 7806 }, tradeHashes = { [103706408] = { "Rolls only the minimum or maximum Damage value for Physical Damage" }, }, + bonded = { + "20% increased Bleeding Duration", + statOrder = { 4660 }, + }, isSocketBound = false, rank = { 15 }, }, ["quarterstaff"] = { type = "Rune", "Rolls only the minimum or maximum Damage value for Physical Damage", - "Bonded: 20% increased Bleeding Duration", - statOrder = { 7806, 4660 }, + statOrder = { 7806 }, tradeHashes = { [103706408] = { "Rolls only the minimum or maximum Damage value for Physical Damage" }, }, + bonded = { + "20% increased Bleeding Duration", + statOrder = { 4660 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3694,18 +4819,24 @@ return { ["gloves"] = { type = "Rune", "50% increased Glory generation", - "Bonded: Banner Skills have 20% increased Aura Magnitudes", - statOrder = { 6909, 3066 }, + statOrder = { 6909 }, tradeHashes = { [3143918757] = { "50% increased Glory generation" }, }, + bonded = { + "Banner Skills have 20% increased Aura Magnitudes", + statOrder = { 3066 }, + }, isSocketBound = false, rank = { 15 }, }, ["caster"] = { type = "Rune", "Archon recovery period expires 30% faster", - "Bonded: 30% increased Archon Buff duration", - statOrder = { 4343, 4344 }, + statOrder = { 4343 }, tradeHashes = { [2586152168] = { "Archon recovery period expires 30% faster" }, }, + bonded = { + "30% increased Archon Buff duration", + statOrder = { 4344 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3715,37 +4846,49 @@ return { type = "Rune", "Gain 3 Life per Enemy Hit with Attacks", "Gain 1 Mana per Enemy Hit with Attacks", - "Bonded: +30 to maximum Life", - "Bonded: +30 to maximum Mana", - statOrder = { 1040, 1507, 887, 892 }, + statOrder = { 1040, 1507 }, tradeHashes = { [2797971005] = { "Gain 3 Life per Enemy Hit with Attacks" }, [820939409] = { "Gain 1 Mana per Enemy Hit with Attacks" }, }, + bonded = { + "+30 to maximum Life", + "+30 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 15 }, }, ["crossbow"] = { type = "Rune", "On Hitting an enemy, gains maximum added Cold damage equal to the enemy's Power for 20 seconds, up to a total of 32", - "Bonded: 30% increased Freeze Buildup", - statOrder = { 7794, 1057 }, + statOrder = { 7794 }, tradeHashes = { [2616640048] = { "On Hitting an enemy, gains maximum added Cold damage equal to the enemy's Power for 20 seconds, up to a total of 32" }, }, + bonded = { + "30% increased Freeze Buildup", + statOrder = { 1057 }, + }, isSocketBound = false, rank = { 15 }, }, ["bow"] = { type = "Rune", "On Hitting an enemy, gains maximum added Cold damage equal to the enemy's Power for 20 seconds, up to a total of 32", - "Bonded: 30% increased Freeze Buildup", - statOrder = { 7794, 1057 }, + statOrder = { 7794 }, tradeHashes = { [2616640048] = { "On Hitting an enemy, gains maximum added Cold damage equal to the enemy's Power for 20 seconds, up to a total of 32" }, }, + bonded = { + "30% increased Freeze Buildup", + statOrder = { 1057 }, + }, isSocketBound = false, rank = { 15 }, }, ["spear"] = { type = "Rune", "On Hitting an enemy, gains maximum added Cold damage equal to the enemy's Power for 20 seconds, up to a total of 32", - "Bonded: 30% increased Freeze Buildup", - statOrder = { 7794, 1057 }, + statOrder = { 7794 }, tradeHashes = { [2616640048] = { "On Hitting an enemy, gains maximum added Cold damage equal to the enemy's Power for 20 seconds, up to a total of 32" }, }, + bonded = { + "30% increased Freeze Buildup", + statOrder = { 1057 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3756,10 +4899,13 @@ return { "+30 to Armour", "+30 to Evasion Rating", "+10 to maximum Energy Shield", - "Bonded: +20 to maximum Life", - "Bonded: +20 to maximum Mana", - statOrder = { 840, 841, 843, 887, 892 }, + statOrder = { 840, 841, 843 }, tradeHashes = { [3484657501] = { "+30 to Armour" }, [53045048] = { "+30 to Evasion Rating" }, [4052037485] = { "+10 to maximum Energy Shield" }, }, + bonded = { + "+20 to maximum Life", + "+20 to maximum Mana", + statOrder = { 887, 892 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3769,9 +4915,12 @@ return { type = "Rune", "-10% to all Maximum Elemental Resistances", "+20% to all Elemental Resistances", - "Bonded: 20% of Damage is taken from Mana before Life", - statOrder = { 1007, 1013, 2472 }, + statOrder = { 1007, 1013 }, tradeHashes = { [2901986750] = { "+20% to all Elemental Resistances" }, [1978899297] = { "-10% to all Maximum Elemental Resistances" }, }, + bonded = { + "20% of Damage is taken from Mana before Life", + statOrder = { 2472 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3781,9 +4930,12 @@ return { type = "Rune", "+50 to Spirit", "-1 to Spirit per 2 Levels", - "Bonded: 5% increased Spirit Reservation Efficiency", - statOrder = { 895, 10051, 4752 }, + statOrder = { 895, 10051 }, tradeHashes = { [2704225257] = { "+50 to Spirit" }, [610569665] = { "-1 to Spirit per 2 Levels" }, }, + bonded = { + "5% increased Spirit Reservation Efficiency", + statOrder = { 4752 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3793,18 +4945,24 @@ return { type = "Rune", "200% increased Critical Hit Chance", "You have no Critical Damage Bonus", - "Bonded: Hits against you have 25% reduced Critical Damage Bonus", - statOrder = { 976, 1405, 1005 }, + statOrder = { 976, 1405 }, tradeHashes = { [587431675] = { "200% increased Critical Hit Chance" }, [4058681894] = { "You have no Critical Damage Bonus" }, }, + bonded = { + "Hits against you have 25% reduced Critical Damage Bonus", + statOrder = { 1005 }, + }, isSocketBound = false, rank = { 15 }, }, ["caster"] = { type = "Rune", "50% increased Spell Damage while your Companion is in your Presence", - "Bonded: 8% increased Mana Recovery rate while your Companion is in your Presence", - statOrder = { 10002, 7991 }, + statOrder = { 10002 }, tradeHashes = { [4063732952] = { "50% increased Spell Damage while your Companion is in your Presence" }, }, + bonded = { + "8% increased Mana Recovery rate while your Companion is in your Presence", + statOrder = { 7991 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3813,9 +4971,12 @@ return { ["helmet"] = { type = "Rune", "Remnants you create have 15% increased effect", - "Bonded: Recover 3% of Maximum Mana when you collect a Remnant", - statOrder = { 9730, 9734 }, + statOrder = { 9730 }, tradeHashes = { [1999910726] = { "Remnants you create have 15% increased effect" }, }, + bonded = { + "Recover 3% of Maximum Mana when you collect a Remnant", + statOrder = { 9734 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3823,9 +4984,12 @@ return { type = "Rune", "Remnants you create have 25% reduced effect", "Remnants can be collected from 50% further away", - "Bonded: 20% increased Exposure Effect", - statOrder = { 9730, 9732, 6528 }, + statOrder = { 9730, 9732 }, tradeHashes = { [1999910726] = { "Remnants you create have 25% reduced effect" }, [3482326075] = { "Remnants can be collected from 50% further away" }, }, + bonded = { + "20% increased Exposure Effect", + statOrder = { 6528 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3833,9 +4997,12 @@ return { type = "Rune", "Remnants you create have 25% reduced effect", "Remnants can be collected from 50% further away", - "Bonded: 20% increased Exposure Effect", - statOrder = { 9730, 9732, 6528 }, + statOrder = { 9730, 9732 }, tradeHashes = { [1999910726] = { "Remnants you create have 25% reduced effect" }, [3482326075] = { "Remnants can be collected from 50% further away" }, }, + bonded = { + "20% increased Exposure Effect", + statOrder = { 6528 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3845,9 +5012,12 @@ return { type = "Rune", "Adds 13 to 16 Fire Damage", "15% of Skill Mana Costs Converted to Life Costs", - "Bonded: 30% increased Ignite Magnitude", - statOrder = { 832, 4742, 1077 }, + statOrder = { 832, 4742 }, tradeHashes = { [2480498143] = { "15% of Skill Mana Costs Converted to Life Costs" }, [709508406] = { "Adds 13 to 16 Fire Damage" }, }, + bonded = { + "30% increased Ignite Magnitude", + statOrder = { 1077 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3855,9 +5025,12 @@ return { type = "Rune", "Adds 13 to 16 Fire Damage", "15% of Skill Mana Costs Converted to Life Costs", - "Bonded: 30% increased Ignite Magnitude", - statOrder = { 832, 4742, 1077 }, + statOrder = { 832, 4742 }, tradeHashes = { [2480498143] = { "15% of Skill Mana Costs Converted to Life Costs" }, [709508406] = { "Adds 13 to 16 Fire Damage" }, }, + bonded = { + "30% increased Ignite Magnitude", + statOrder = { 1077 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3865,9 +5038,12 @@ return { type = "Rune", "Adds 13 to 16 Fire Damage", "15% of Skill Mana Costs Converted to Life Costs", - "Bonded: 30% increased Ignite Magnitude", - statOrder = { 832, 4742, 1077 }, + statOrder = { 832, 4742 }, tradeHashes = { [2480498143] = { "15% of Skill Mana Costs Converted to Life Costs" }, [709508406] = { "Adds 13 to 16 Fire Damage" }, }, + bonded = { + "30% increased Ignite Magnitude", + statOrder = { 1077 }, + }, isSocketBound = false, rank = { 15 }, }, @@ -3958,9 +5134,12 @@ return { ["boots"] = { type = "Rune", "Can roll Chronomancy modifiers", - "Bonded: 10% increased Cooldown Recovery Rate", - statOrder = { 10519, 4103 }, + statOrder = { 10519 }, tradeHashes = { [3132681620] = { "Can roll Chronomancy modifiers" }, }, + bonded = { + "10% increased Cooldown Recovery Rate", + statOrder = { 4103 }, + }, isSocketBound = true, rank = { 0 }, }, @@ -3969,9 +5148,12 @@ return { ["gloves"] = { type = "Rune", "Can roll Marksman modifiers", - "Bonded: 20% increased Projectile Damage", - statOrder = { 10522, 1738 }, + statOrder = { 10522 }, tradeHashes = { [201332984] = { "Can roll Marksman modifiers" }, }, + bonded = { + "20% increased Projectile Damage", + statOrder = { 1738 }, + }, isSocketBound = true, rank = { 0 }, }, @@ -3980,9 +5162,12 @@ return { ["helmet"] = { type = "Rune", "Can roll Berserking modifiers", - "Bonded: Gain 2 Rage on Melee Hit", - statOrder = { 10521, 6868 }, + statOrder = { 10521 }, tradeHashes = { [1770091046] = { "Can roll Berserking modifiers" }, }, + bonded = { + "Gain 2 Rage on Melee Hit", + statOrder = { 6868 }, + }, isSocketBound = true, rank = { 0 }, }, @@ -3991,18 +5176,24 @@ return { ["weapon"] = { type = "Rune", "Can roll Destruction modifiers", - "Bonded: +5% to all Elemental Resistances", - statOrder = { 10524, 1013 }, + statOrder = { 10524 }, tradeHashes = { [1676950499] = { "Can roll Destruction modifiers" }, }, + bonded = { + "+5% to all Elemental Resistances", + statOrder = { 1013 }, + }, isSocketBound = true, rank = { 0 }, }, ["caster"] = { type = "Rune", "Can roll Destruction modifiers", - "Bonded: +5% to all Elemental Resistances", - statOrder = { 10524, 1013 }, + statOrder = { 10524 }, tradeHashes = { [1676950499] = { "Can roll Destruction modifiers" }, }, + bonded = { + "+5% to all Elemental Resistances", + statOrder = { 1013 }, + }, isSocketBound = true, rank = { 0 }, }, @@ -4011,10 +5202,13 @@ return { ["body armour"] = { type = "Rune", "Can roll Soul modifiers", - "Bonded: 3% increased maximum Life", - "Bonded: 3% increased maximum Mana", - statOrder = { 10520, 889, 894 }, + statOrder = { 10520 }, tradeHashes = { [1927467683] = { "Can roll Soul modifiers" }, }, + bonded = { + "3% increased maximum Life", + "3% increased maximum Mana", + statOrder = { 889, 894 }, + }, isSocketBound = true, rank = { 0 }, }, @@ -4023,9 +5217,12 @@ return { ["gloves"] = { type = "Rune", "Can roll Decay modifiers", - "Bonded: 25% reduced Effect of Non-Damaging Ailments on you", - statOrder = { 10523, 9219 }, + statOrder = { 10523 }, tradeHashes = { [2547063279] = { "Can roll Decay modifiers" }, }, + bonded = { + "25% reduced Effect of Non-Damaging Ailments on you", + statOrder = { 9219 }, + }, isSocketBound = true, rank = { 0 }, }, @@ -4060,9 +5257,12 @@ return { ["body armour"] = { type = "Rune", "250% of Melee Physical Damage taken reflected to Attacker", - "Bonded: Regenerate 3% of maximum Life per second while Surrounded", - statOrder = { 2241, 7505 }, + statOrder = { 2241 }, tradeHashes = { [1092987622] = { "250% of Melee Physical Damage taken reflected to Attacker" }, }, + bonded = { + "Regenerate 3% of maximum Life per second while Surrounded", + statOrder = { 7505 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4071,9 +5271,12 @@ return { ["body armour"] = { type = "Rune", "+50% of Armour also applies to Elemental Damage", - "Bonded: +15% to all Elemental Resistances", - statOrder = { 1027, 1013 }, + statOrder = { 1027 }, tradeHashes = { [3362812763] = { "+50% of Armour also applies to Elemental Damage" }, }, + bonded = { + "+15% to all Elemental Resistances", + statOrder = { 1013 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4083,9 +5286,12 @@ return { type = "Rune", "50% chance to inflict Bleeding on Hit", "50% reduced Slowing Potency of Debuffs on You", - "Bonded: 35% increased Thorns damage", - statOrder = { 4671, 4745, 10247 }, + statOrder = { 4671, 4745 }, tradeHashes = { [2174054121] = { "50% chance to inflict Bleeding on Hit" }, [924253255] = { "50% reduced Slowing Potency of Debuffs on You" }, }, + bonded = { + "35% increased Thorns damage", + statOrder = { 10247 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4094,9 +5300,12 @@ return { ["body armour"] = { type = "Rune", "Recover 5% of maximum Life for each Endurance Charge consumed", - "Bonded: +30 to maximum Life", - statOrder = { 9660, 887 }, + statOrder = { 9660 }, tradeHashes = { [939832726] = { "Recover 5% of maximum Life for each Endurance Charge consumed" }, }, + bonded = { + "+30 to maximum Life", + statOrder = { 887 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4106,9 +5315,12 @@ return { type = "Rune", "Gain 5 Rage when Hit by an Enemy", "Gain 10 Rage when Critically Hit by an Enemy", - "Bonded: +3 to Maximum Rage", - statOrder = { 6870, 6871, 9603 }, + statOrder = { 6870, 6871 }, tradeHashes = { [3292710273] = { "Gain 5 Rage when Hit by an Enemy" }, [1466716929] = { "Gain 10 Rage when Critically Hit by an Enemy" }, }, + bonded = { + "+3 to Maximum Rage", + statOrder = { 9603 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4118,9 +5330,12 @@ return { type = "Rune", "10% increased Movement Speed when on Full Life", "100% increased Evasion Rating when on Full Life", - "Bonded: 20% increased Evasion Rating", - statOrder = { 1555, 6504, 884 }, + statOrder = { 1555, 6504 }, tradeHashes = { [88817332] = { "100% increased Evasion Rating when on Full Life" }, [3393547195] = { "10% increased Movement Speed when on Full Life" }, }, + bonded = { + "20% increased Evasion Rating", + statOrder = { 884 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4130,9 +5345,12 @@ return { type = "Rune", "Cannot be Ignited", "-10 Physical Damage taken from Attack Hits", - "Bonded: +35% to Fire Resistance", - statOrder = { 1595, 1959, 1014 }, + statOrder = { 1595, 1959 }, tradeHashes = { [331731406] = { "Cannot be Ignited" }, [3441651621] = { "-10 Physical Damage taken from Attack Hits" }, }, + bonded = { + "+35% to Fire Resistance", + statOrder = { 1014 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4141,9 +5359,12 @@ return { ["body armour"] = { type = "Rune", "Gain Deflection Rating equal to 30% of Evasion Rating", - "Bonded: 35% increased Flask Mana Recovery rate", - statOrder = { 1028, 899 }, + statOrder = { 1028 }, tradeHashes = { [3033371881] = { "Gain Deflection Rating equal to 30% of Evasion Rating" }, }, + bonded = { + "35% increased Flask Mana Recovery rate", + statOrder = { 899 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4152,9 +5373,12 @@ return { ["body armour"] = { type = "Rune", "25% of Damage taken from Hits bypasses Energy Shield if Energy Shield is below half", - "Bonded: 20% increased Armour while Shapeshifted", - statOrder = { 1459, 4393 }, + statOrder = { 1459 }, tradeHashes = { [1311130924] = { "25% of Damage taken from Hits bypasses Energy Shield if Energy Shield is below half" }, }, + bonded = { + "20% increased Armour while Shapeshifted", + statOrder = { 4393 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4164,9 +5388,12 @@ return { type = "Rune", "Gain 1 Rage on Melee Hit", "Every Rage also grants 1% increased Armour", - "Bonded: +3 to Maximum Rage", - statOrder = { 6868, 10637, 9603 }, + statOrder = { 6868, 10637 }, tradeHashes = { [2709367754] = { "Gain 1 Rage on Melee Hit" }, [2995914769] = { "Every Rage also grants 1% increased Armour" }, }, + bonded = { + "+3 to Maximum Rage", + statOrder = { 9603 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4176,9 +5403,12 @@ return { type = "Rune", "Gain 1 Rage on Melee Hit", "Every Rage also grants 1% increased Stun Threshold", - "Bonded: Every five Rage also grants you 1% increased Movement Speed", - statOrder = { 6868, 10649, 9140 }, + statOrder = { 6868, 10649 }, tradeHashes = { [2709367754] = { "Gain 1 Rage on Melee Hit" }, [352044736] = { "Every Rage also grants 1% increased Stun Threshold" }, }, + bonded = { + "Every five Rage also grants you 1% increased Movement Speed", + statOrder = { 9140 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4188,9 +5418,12 @@ return { type = "Rune", "15% increased Area of Effect", "Unwavering Stance", - "Bonded: 50% reduced Slowing Potency of Debuffs on You", - statOrder = { 1630, 10725, 4745 }, + statOrder = { 1630, 10725 }, tradeHashes = { [1683578560] = { "Unwavering Stance" }, [280731498] = { "15% increased Area of Effect" }, }, + bonded = { + "50% reduced Slowing Potency of Debuffs on You", + statOrder = { 4745 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4199,9 +5432,12 @@ return { ["helmet"] = { type = "Rune", "Warcries Explode Corpses dealing 10% of their Life as Physical Damage", - "Bonded: Warcry Skills have 20% increased Area of Effect", - statOrder = { 5776, 10507 }, + statOrder = { 5776 }, tradeHashes = { [11014011] = { "Warcries Explode Corpses dealing 10% of their Life as Physical Damage" }, }, + bonded = { + "Warcry Skills have 20% increased Area of Effect", + statOrder = { 10507 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4211,9 +5447,12 @@ return { type = "Rune", "Charms gain 1 charge per Second", "+1 Charm Slot", - "Bonded: Charms gain 0.5 charges per Second", - statOrder = { 6884, 9310, 6884 }, + statOrder = { 6884, 9310 }, tradeHashes = { [185580205] = { "Charms gain 1 charge per Second" }, [554899692] = { "+1 Charm Slot" }, }, + bonded = { + "Charms gain 0.5 charges per Second", + statOrder = { 6884 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4223,9 +5462,12 @@ return { type = "Rune", "100% increased Global Evasion Rating when on Low Life", "5% of Damage from Hits is taken from your Damageable Companion's Life before you", - "Bonded: 5% of Damage from Hits is taken from your Damageable Companion's Life before you", - statOrder = { 2315, 5726, 5726 }, + statOrder = { 2315, 5726 }, tradeHashes = { [1150343007] = { "5% of Damage from Hits is taken from your Damageable Companion's Life before you" }, [2695354435] = { "100% increased Global Evasion Rating when on Low Life" }, }, + bonded = { + "5% of Damage from Hits is taken from your Damageable Companion's Life before you", + statOrder = { 5726 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4234,9 +5476,12 @@ return { ["helmet"] = { type = "Rune", "Pain Attunement", - "Bonded: 17 to 26 Physical Thorns damage", - statOrder = { 10718, 10254 }, + statOrder = { 10718 }, tradeHashes = { [98977150] = { "Pain Attunement" }, }, + bonded = { + "17 to 26 Physical Thorns damage", + statOrder = { 10254 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4245,9 +5490,12 @@ return { ["helmet"] = { type = "Rune", "+50 to all Attributes", - "Bonded: +1 Maximum Life per Level", - statOrder = { 1145, 7465 }, + statOrder = { 1145 }, tradeHashes = { [2897413282] = { "+50 to all Attributes" }, }, + bonded = { + "+1 Maximum Life per Level", + statOrder = { 7465 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4263,11 +5511,14 @@ return { "+5 to all Attributes", "+5% to all Elemental Resistances", "3 Life Regeneration per second", - "Bonded: +20 to Armour", - "Bonded: +20 to Evasion Rating", - "Bonded: +20 to maximum Energy Shield", - statOrder = { 880, 887, 892, 941, 976, 991, 1013, 1034, 881, 883, 885 }, + statOrder = { 880, 887, 892, 941, 976, 991, 1013, 1034 }, tradeHashes = { [3325883026] = { "3 Life Regeneration per second" }, [3299347043] = { "+10 to maximum Life" }, [1050105434] = { "+10 to maximum Mana" }, [2901986750] = { "+5% to all Elemental Resistances" }, [1379411836] = { "+5 to all Attributes" }, [587431675] = { "10% increased Critical Hit Chance" }, [3917489142] = { "10% increased Rarity of Items found" }, [803737631] = { "+30 to Accuracy Rating" }, }, + bonded = { + "+20 to Armour", + "+20 to Evasion Rating", + "+20 to maximum Energy Shield", + statOrder = { 881, 883, 885 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4276,9 +5527,12 @@ return { ["helmet"] = { type = "Rune", "Aggravate Bleeding on targets you Critically Hit with Attacks", - "Bonded: 20% increased Critical Hit Chance", - statOrder = { 4239, 976 }, + statOrder = { 4239 }, tradeHashes = { [2438634449] = { "Aggravate Bleeding on targets you Critically Hit with Attacks" }, }, + bonded = { + "20% increased Critical Hit Chance", + statOrder = { 976 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4287,9 +5541,12 @@ return { ["helmet"] = { type = "Rune", "Deal 4% increased Damage with Hits to Rare or Unique Enemies for each second they've ever been in your Presence, up to a maximum of 200%", - "Bonded: 20% increased Presence Area of Effect", - statOrder = { 10389, 1069 }, + statOrder = { 10389 }, tradeHashes = { [4258409981] = { "Deal 4% increased Damage with Hits to Rare or Unique Enemies for each second they've ever been in your Presence, up to a maximum of 200%" }, }, + bonded = { + "20% increased Presence Area of Effect", + statOrder = { 1069 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4298,9 +5555,12 @@ return { ["gloves"] = { type = "Rune", "Base Critical Hit Chance for Attacks with Weapons is 7%", - "Bonded: 15% increased Critical Damage Bonus", - statOrder = { 9370, 980 }, + statOrder = { 9370 }, tradeHashes = { [2635559734] = { "Base Critical Hit Chance for Attacks with Weapons is 7%" }, }, + bonded = { + "15% increased Critical Damage Bonus", + statOrder = { 980 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4310,9 +5570,12 @@ return { type = "Rune", "40% increased Fire Damage", "Flammability Magnitude is doubled", - "Bonded: 20% increased Ignite Duration on Enemies", - statOrder = { 873, 5542, 1615 }, + statOrder = { 873, 5542 }, tradeHashes = { [1540254896] = { "Flammability Magnitude is doubled" }, [3962278098] = { "40% increased Fire Damage" }, }, + bonded = { + "20% increased Ignite Duration on Enemies", + statOrder = { 1615 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4321,9 +5584,12 @@ return { ["gloves"] = { type = "Rune", "Culling Strike", - "Bonded: Gain 30 Life per enemy killed", - statOrder = { 1775, 1042 }, + statOrder = { 1775 }, tradeHashes = { [2524254339] = { "Culling Strike" }, }, + bonded = { + "Gain 30 Life per enemy killed", + statOrder = { 1042 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4332,9 +5598,12 @@ return { ["boots"] = { type = "Rune", "+10% to Block chance", - "Bonded: 10% reduced Damage taken from Projectile Hits", - statOrder = { 1123, 2511 }, + statOrder = { 1123 }, tradeHashes = { [1702195217] = { "+10% to Block chance" }, }, + bonded = { + "10% reduced Damage taken from Projectile Hits", + statOrder = { 2511 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4343,9 +5612,12 @@ return { ["boots"] = { type = "Rune", "Deal 10% of Overkill damage to enemies within 2 metres of the enemy killed", - "Bonded: 15% increased Global Physical Damage", - statOrder = { 9368, 1185 }, + statOrder = { 9368 }, tradeHashes = { [2301852600] = { "Deal 10% of Overkill damage to enemies within 2 metres of the enemy killed" }, }, + bonded = { + "15% increased Global Physical Damage", + statOrder = { 1185 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4354,9 +5626,12 @@ return { ["boots"] = { type = "Rune", "+15% to Thorns Critical Hit Chance", - "Bonded: 15% increased Thorns Critical Damage Bonus", - statOrder = { 4755, 4756 }, + statOrder = { 4755 }, tradeHashes = { [2715190555] = { "+15% to Thorns Critical Hit Chance" }, }, + bonded = { + "15% increased Thorns Critical Damage Bonus", + statOrder = { 4756 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4365,9 +5640,12 @@ return { ["boots"] = { type = "Rune", "Physical Damage is Pinning", - "Bonded: +20 to Dexterity", - statOrder = { 4733, 993 }, + statOrder = { 4733 }, tradeHashes = { [2041668411] = { "Physical Damage is Pinning" }, }, + bonded = { + "+20 to Dexterity", + statOrder = { 993 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4376,9 +5654,12 @@ return { ["boots"] = { type = "Rune", "Your speed is unaffected by Slows", - "Bonded: 5% increased Movement Speed", - statOrder = { 9930, 836 }, + statOrder = { 9930 }, tradeHashes = { [50721145] = { "Your speed is unaffected by Slows" }, }, + bonded = { + "5% increased Movement Speed", + statOrder = { 836 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4387,9 +5668,12 @@ return { ["boots"] = { type = "Rune", "Iron Reflexes", - "Bonded: 25% increased Elemental Ailment Threshold", - statOrder = { 10712, 4266 }, + statOrder = { 10712 }, tradeHashes = { [326965591] = { "Iron Reflexes" }, }, + bonded = { + "25% increased Elemental Ailment Threshold", + statOrder = { 4266 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4398,10 +5682,13 @@ return { ["boots"] = { type = "Rune", "200% increased Stun Recovery", - "Bonded: 40% reduced Chill Duration on you", - "Bonded: 40% reduced Freeze Duration on you", - statOrder = { 1060, 1064, 1065 }, + statOrder = { 1060 }, tradeHashes = { [2511217560] = { "200% increased Stun Recovery" }, }, + bonded = { + "40% reduced Chill Duration on you", + "40% reduced Freeze Duration on you", + statOrder = { 1064, 1065 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4410,9 +5697,12 @@ return { ["shield"] = { type = "Rune", "Double Stun Threshold while Shield is Raised", - "Bonded: 15% increased Stun Threshold", - statOrder = { 7823, 2983 }, + statOrder = { 7823 }, tradeHashes = { [3686997387] = { "Double Stun Threshold while Shield is Raised" }, }, + bonded = { + "15% increased Stun Threshold", + statOrder = { 2983 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4421,9 +5711,12 @@ return { ["shield"] = { type = "Rune", "Intimidate Enemies on Block for 8 seconds", - "Bonded: +25 to Strength", - statOrder = { 7374, 992 }, + statOrder = { 7374 }, tradeHashes = { [3703496511] = { "Intimidate Enemies on Block for 8 seconds" }, }, + bonded = { + "+25 to Strength", + statOrder = { 992 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4432,9 +5725,12 @@ return { ["shield"] = { type = "Rune", "Gain 1% of damage as Fire damage per 2% Chance to Block", - "Bonded: +30% to Chaos Resistance", - statOrder = { 9228, 1024 }, + statOrder = { 9228 }, tradeHashes = { [3170380905] = { "Gain 1% of damage as Fire damage per 2% Chance to Block" }, }, + bonded = { + "+30% to Chaos Resistance", + statOrder = { 1024 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4443,9 +5739,12 @@ return { ["shield"] = { type = "Rune", "30% of damage Blocked is Recouped as Mana", - "Bonded: 20% of damage Blocked is Recouped as Mana", - statOrder = { 5959, 5959 }, + statOrder = { 5959 }, tradeHashes = { [2875218423] = { "30% of damage Blocked is Recouped as Mana" }, }, + bonded = { + "20% of damage Blocked is Recouped as Mana", + statOrder = { 5959 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4454,9 +5753,12 @@ return { ["shield"] = { type = "Rune", "50% increased Life Regeneration rate", - "Bonded: 50 Life Regeneration per second", - statOrder = { 1036, 1034 }, + statOrder = { 1036 }, tradeHashes = { [44972811] = { "50% increased Life Regeneration rate" }, }, + bonded = { + "50 Life Regeneration per second", + statOrder = { 1034 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4465,9 +5767,12 @@ return { ["buckler"] = { type = "Rune", "50% increased Parried Debuff Magnitude", - "Bonded: 50% increased Parry Damage", - statOrder = { 9373, 9378 }, + statOrder = { 9373 }, tradeHashes = { [818877178] = { "50% increased Parried Debuff Magnitude" }, }, + bonded = { + "50% increased Parry Damage", + statOrder = { 9378 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4476,9 +5781,12 @@ return { ["buckler"] = { type = "Rune", "Curse Enemies with Enfeeble on Block", - "Bonded: 100% increased Block chance against Projectiles", - statOrder = { 5929, 4933 }, + statOrder = { 5929 }, tradeHashes = { [3830953767] = { "Curse Enemies with Enfeeble on Block" }, }, + bonded = { + "100% increased Block chance against Projectiles", + statOrder = { 4933 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4487,9 +5795,12 @@ return { ["one hand mace"] = { type = "Rune", "Causes Double Stun Buildup", - "Bonded: Adds 14 to 20 Physical Damage", - statOrder = { 7690, 1207 }, + statOrder = { 7690 }, tradeHashes = { [769129523] = { "Causes Double Stun Buildup" }, }, + bonded = { + "Adds 14 to 20 Physical Damage", + statOrder = { 1207 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4498,9 +5809,12 @@ return { ["one hand mace"] = { type = "Rune", "Increases and Reductions to Minion Attack Speed also affect you", - "Bonded: +1 to Level of all Minion Skills", - statOrder = { 3428, 972 }, + statOrder = { 3428 }, tradeHashes = { [2293111154] = { "Increases and Reductions to Minion Attack Speed also affect you" }, }, + bonded = { + "+1 to Level of all Minion Skills", + statOrder = { 972 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4510,9 +5824,12 @@ return { type = "Rune", "+200 Intelligence Requirement", "+3 to Level of all Lightning Skills", - "Bonded: +1 to Level of all Lightning Skills", - statOrder = { 820, 962, 962 }, + statOrder = { 820, 962 }, tradeHashes = { [2153364323] = { "+200 Intelligence Requirement" }, [1147690586] = { "+3 to Level of all Lightning Skills" }, }, + bonded = { + "+1 to Level of all Lightning Skills", + statOrder = { 962 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4521,9 +5838,12 @@ return { ["two hand mace"] = { type = "Rune", "Attacks with this Weapon have Added Cold Damage equal to 6% to 10% of maximum Mana", - "Bonded: 15% of Damage is taken from Mana before Life", - statOrder = { 7621, 2472 }, + statOrder = { 7621 }, tradeHashes = { [1699409732] = { "Attacks with this Weapon have Added Cold Damage equal to 0% to 10% of maximum Mana" }, [3867147347] = { "Attacks with this Weapon have Added Cold Damage equal to 6% to 0% of maximum Mana" }, }, + bonded = { + "15% of Damage is taken from Mana before Life", + statOrder = { 2472 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4533,9 +5853,12 @@ return { type = "Rune", "+5% to Critical Hit Chance", "Maim on Critical Hit", - "Bonded: 25% increased Attack Damage against Maimed Enemies", - statOrder = { 944, 7609, 4528 }, + statOrder = { 944, 7609 }, tradeHashes = { [518292764] = { "+5% to Critical Hit Chance" }, [2895144208] = { "Maim on Critical Hit" }, }, + bonded = { + "25% increased Attack Damage against Maimed Enemies", + statOrder = { 4528 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4544,9 +5867,12 @@ return { ["two hand mace"] = { type = "Rune", "25% chance for Slam Skills you use yourself to cause an additional Aftershock", - "Bonded: 15% chance for Slam Skills you use yourself to cause an additional Aftershock", - statOrder = { 10619, 10619 }, + statOrder = { 10619 }, tradeHashes = { [2045949233] = { "25% chance for Slam Skills you use yourself to cause an additional Aftershock" }, }, + bonded = { + "15% chance for Slam Skills you use yourself to cause an additional Aftershock", + statOrder = { 10619 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4555,9 +5881,12 @@ return { ["two hand mace"] = { type = "Rune", "All damage with this Weapon causes Electrocution buildup", - "Bonded: Damage Penetrates 10% Lightning Resistance", - statOrder = { 7604, 2726 }, + statOrder = { 7604 }, tradeHashes = { [1910743684] = { "All damage with this Weapon causes Electrocution buildup" }, }, + bonded = { + "Damage Penetrates 10% Lightning Resistance", + statOrder = { 2726 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4566,9 +5895,12 @@ return { ["wand"] = { type = "Rune", "+2 to Level of all Spell Skills", - "Bonded: Leeches 1% of maximum Life when you Cast a Spell", - statOrder = { 950, 7454 }, + statOrder = { 950 }, tradeHashes = { [124131830] = { "+2 to Level of all Spell Skills" }, }, + bonded = { + "Leeches 1% of maximum Life when you Cast a Spell", + statOrder = { 7454 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4577,9 +5909,12 @@ return { ["quarterstaff"] = { type = "Rune", "Gain 250 Guard for 0.5 seconds per Combo expended when using Skills", - "Bonded: Gain Finality for 0.2 seconds per Combo expended when using Skills", - statOrder = { 10393, 6780 }, + statOrder = { 10393 }, tradeHashes = { [2443032293] = { "Gain 250 Guard for 0.5 seconds per Combo expended when using Skills" }, }, + bonded = { + "Gain Finality for 0.2 seconds per Combo expended when using Skills", + statOrder = { 6780 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4588,9 +5923,12 @@ return { ["spear"] = { type = "Rune", "Strikes deal Splash Damage", - "Bonded: Knocks Enemies Back on Hit", - statOrder = { 1137, 1409 }, + statOrder = { 1137 }, tradeHashes = { [3675300253] = { "Strikes deal Splash Damage" }, }, + bonded = { + "Knocks Enemies Back on Hit", + statOrder = { 1409 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4600,9 +5938,12 @@ return { type = "Rune", "Adds 23 to 34 Fire damage to Attacks", "100% increased Flammability Magnitude", - "Bonded: +2% to Maximum Fire Resistance", - statOrder = { 859, 1055, 1009 }, + statOrder = { 859, 1055 }, tradeHashes = { [2968503605] = { "100% increased Flammability Magnitude" }, [1573130764] = { "Adds 23 to 34 Fire damage to Attacks" }, }, + bonded = { + "+2% to Maximum Fire Resistance", + statOrder = { 1009 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4611,9 +5952,12 @@ return { ["wand"] = { type = "Rune", "+1 to Maximum Power Charges", - "Bonded: +65 to maximum Mana", - statOrder = { 1569, 892 }, + statOrder = { 1569 }, tradeHashes = { [227523295] = { "+1 to Maximum Power Charges" }, }, + bonded = { + "+65 to maximum Mana", + statOrder = { 892 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4622,9 +5966,12 @@ return { ["wand"] = { type = "Rune", "+3 to Level of all Curse Skills", - "Bonded: 35% increased Mana Regeneration Rate", - statOrder = { 971, 1043 }, + statOrder = { 971 }, tradeHashes = { [805298720] = { "+3 to Level of all Curse Skills" }, }, + bonded = { + "35% increased Mana Regeneration Rate", + statOrder = { 1043 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4633,9 +5980,12 @@ return { ["staff"] = { type = "Rune", "Gain 30% of Physical Damage as Extra Fire Damage", - "Bonded: Triggered Spells deal 20% increased Spell Damage", - statOrder = { 1674, 10316 }, + statOrder = { 1674 }, tradeHashes = { [1936645603] = { "Gain 30% of Physical Damage as Extra Fire Damage" }, }, + bonded = { + "Triggered Spells deal 20% increased Spell Damage", + statOrder = { 10316 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4645,9 +5995,12 @@ return { type = "Rune", "Adds 4 to 8 Physical Damage", "Causes Bleeding on Hit", - "Bonded: 10% increased Magnitude of Bleeding you inflict", - statOrder = { 831, 2261, 4806 }, + statOrder = { 831, 2261 }, tradeHashes = { [2091621414] = { "Causes Bleeding on Hit" }, [1940865751] = { "Adds 4 to 8 Physical Damage" }, }, + bonded = { + "10% increased Magnitude of Bleeding you inflict", + statOrder = { 4806 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4657,9 +6010,12 @@ return { type = "Rune", "50% increased Attack Speed", "20% less Attack Damage", - "Bonded: 70% increased Arrow Speed", - statOrder = { 946, 2240, 1552 }, + statOrder = { 946, 2240 }, tradeHashes = { [210067635] = { "50% increased Attack Speed" }, [412462523] = { "20% less Attack Damage" }, }, + bonded = { + "70% increased Arrow Speed", + statOrder = { 1552 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4668,9 +6024,12 @@ return { ["bow"] = { type = "Rune", "Hits with this weapon have 1 to 3 Added Physical Damage per 1% Block Chance", - "Bonded: 3% increased Block chance per 100 total Item Armour on Equipped Armour Items", - statOrder = { 2676, 1134 }, + statOrder = { 2676 }, tradeHashes = { [2036307261] = { "Hits with this weapon have 1 to 3 Added Physical Damage per 1% Block Chance" }, }, + bonded = { + "3% increased Block chance per 100 total Item Armour on Equipped Armour Items", + statOrder = { 1134 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4679,9 +6038,12 @@ return { ["talisman"] = { type = "Rune", "Gain 1 Druidic Prowess for every 20 total Rage spent", - "Bonded: Enemies in your Presence are Hindered", - statOrder = { 6769, 4693 }, + statOrder = { 6769 }, tradeHashes = { [1273508088] = { "Gain 1 Druidic Prowess for every 20 total Rage spent" }, }, + bonded = { + "Enemies in your Presence are Hindered", + statOrder = { 4693 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4690,9 +6052,12 @@ return { ["talisman"] = { type = "Rune", "Every 5 Rage also grants 5% of Damage taken Recouped as Life", - "Bonded: Attacks have 20% chance to cause Bleeding", - statOrder = { 10555, 2270 }, + statOrder = { 10555 }, tradeHashes = { [1895552497] = { "Every 5 Rage also grants 5% of Damage taken Recouped as Life" }, }, + bonded = { + "Attacks have 20% chance to cause Bleeding", + statOrder = { 2270 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4702,9 +6067,12 @@ return { type = "Rune", "Chance to Block Damage is Lucky", "You take 20% of damage from Blocked Hits", - "Bonded: +50 to maximum Runic Ward", - statOrder = { 4662, 4663, 890 }, + statOrder = { 4662, 4663 }, tradeHashes = { [2905515354] = { "You take 20% of damage from Blocked Hits" }, [2957287092] = { "Chance to Block Damage is Lucky" }, }, + bonded = { + "+50 to maximum Runic Ward", + statOrder = { 890 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4715,9 +6083,12 @@ return { "Alternating every 5 seconds:", "Take 20% less Damage from Hits", "Take 20% less Damage over time", - "Bonded: 25% increased Mana Regeneration Rate", - statOrder = { 6960, 6960.1, 6960.2, 1043 }, + statOrder = { 6960, 6960.1, 6960.2 }, tradeHashes = { [258955603] = { "Alternating every 5 seconds:", "Take 20% less Damage from Hits", "Take 20% less Damage over time" }, }, + bonded = { + "25% increased Mana Regeneration Rate", + statOrder = { 1043 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4727,9 +6098,12 @@ return { type = "Rune", "On Hitting an enemy, gains maximum added Lightning damage equal to", "the enemy's Power for 20 seconds, up to a total of 120", - "Bonded: 15% increased Attack Speed", - statOrder = { 7795, 7795.1, 985 }, + statOrder = { 7795, 7795.1 }, tradeHashes = { [3538915253] = { "On Hitting an enemy, gains maximum added Lightning damage equal to", "the enemy's Power for 20 seconds, up to a total of 120" }, }, + bonded = { + "15% increased Attack Speed", + statOrder = { 985 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4738,9 +6112,12 @@ return { ["shield"] = { type = "Rune", "Off-hand Hits inflict Runefather's Challenge", - "Bonded: +45% to Cold Resistance", - statOrder = { 10559, 1020 }, + statOrder = { 10559 }, tradeHashes = { [3430033313] = { "Off-hand Hits inflict Runefather's Challenge" }, }, + bonded = { + "+45% to Cold Resistance", + statOrder = { 1020 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4749,9 +6126,12 @@ return { ["one hand mace"] = { type = "Rune", "Maximum Quality is 40%", - "Bonded: Skills which Empower an Attack have 20% chance to not count that Attack", - statOrder = { 614, 5400 }, + statOrder = { 614 }, tradeHashes = { [275498888] = { "Maximum Quality is 40%" }, }, + bonded = { + "Skills which Empower an Attack have 20% chance to not count that Attack", + statOrder = { 5400 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4760,9 +6140,12 @@ return { ["wand"] = { type = "Rune", "75% increased effect of Socketed Runes", - "Bonded: +100 to maximum Mana", - statOrder = { 176, 892 }, + statOrder = { 176 }, tradeHashes = { [704409219] = { "75% increased effect of Socketed Runes" }, }, + bonded = { + "+100 to maximum Mana", + statOrder = { 892 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4771,9 +6154,12 @@ return { ["gloves"] = { type = "Rune", "+1 to Armour per Strength", - "Bonded: 1% increased Damage per 15 Strength", - statOrder = { 6759, 5995 }, + statOrder = { 6759 }, tradeHashes = { [1291132817] = { "+1 to Armour per Strength" }, }, + bonded = { + "1% increased Damage per 15 Strength", + statOrder = { 5995 }, + }, isSocketBound = false, rank = { 65 }, }, @@ -4782,9 +6168,12 @@ return { ["helmet"] = { type = "Rune", "+1 to maximum Life per 8 Armour on Equipped Helmet", - "Bonded: +20 to Spirit", - statOrder = { 6717, 895 }, + statOrder = { 6717 }, tradeHashes = { [2785209416] = { "+1 to maximum Life per 8 Armour on Equipped Helmet" }, }, + bonded = { + "+20 to Spirit", + statOrder = { 895 }, + }, isSocketBound = false, rank = { 60 }, }, @@ -4792,18 +6181,24 @@ return { type = "Rune", "Gain Maximum Energy Shield equal to 50% of total", "Strength Requirements of Equipped Armour Items", - "Bonded: +20 to Strength", - statOrder = { 6807, 6807.1, 992 }, + statOrder = { 6807, 6807.1 }, tradeHashes = { [2444976134] = { "Gain Maximum Energy Shield equal to 50% of total", "Strength Requirements of Equipped Armour Items" }, }, + bonded = { + "+20 to Strength", + statOrder = { 992 }, + }, isSocketBound = false, rank = { 60 }, }, ["boots"] = { type = "Rune", "Hits against you have no Critical Damage Bonus while on Consecrated Ground", - "Bonded: 20% increased Effect of Consecrated Ground you create", - statOrder = { 9812, 5744 }, + statOrder = { 9812 }, tradeHashes = { [1800433827] = { "Hits against you have no Critical Damage Bonus while on Consecrated Ground" }, }, + bonded = { + "20% increased Effect of Consecrated Ground you create", + statOrder = { 5744 }, + }, isSocketBound = false, rank = { 60 }, }, @@ -4812,9 +6207,12 @@ return { ["body armour"] = { type = "Rune", "15% of Chaos Damage from Hits taken as a Damage of a random Element", - "Bonded: +13% to Chaos Resistance", - statOrder = { 2236, 1024 }, + statOrder = { 2236 }, tradeHashes = { [4217453078] = { "15% of Chaos Damage from Hits taken as a Damage of a random Element" }, }, + bonded = { + "+13% to Chaos Resistance", + statOrder = { 1024 }, + }, isSocketBound = false, rank = { 60 }, }, @@ -4822,18 +6220,24 @@ return { type = "Rune", "Gain 1% of Damage as Extra Damage of a random Element per", "Rune Socketed in Equipped Items", - "Bonded: 20% increased Elemental Damage", - statOrder = { 9255, 9255.1, 1726 }, + statOrder = { 9255, 9255.1 }, tradeHashes = { [3557924960] = { "Gain 1% of Damage as Extra Damage of a random Element per", "Rune Socketed in Equipped Items" }, }, + bonded = { + "20% increased Elemental Damage", + statOrder = { 1726 }, + }, isSocketBound = false, rank = { 60 }, }, ["boots"] = { type = "Rune", "50% increased Runic Ward Regeneration Rate while Sprinting", - "Bonded: 15% increased Runic Ward Cost Efficiency", - statOrder = { 10515, 4760 }, + statOrder = { 10515 }, tradeHashes = { [2441825294] = { "50% increased Runic Ward Regeneration Rate while Sprinting" }, }, + bonded = { + "15% increased Runic Ward Cost Efficiency", + statOrder = { 4760 }, + }, isSocketBound = false, rank = { 60 }, }, @@ -4842,27 +6246,36 @@ return { ["helmet"] = { type = "Rune", "Gain 1 Endurance Charge on reaching Low Life, only once every 2 seconds", - "Bonded: 40% increased Endurance Charge Duration", - statOrder = { 6774, 1864 }, + statOrder = { 6774 }, tradeHashes = { [901336307] = { "Gain 1 Endurance Charge on reaching Low Life, only once every 2 seconds" }, }, + bonded = { + "40% increased Endurance Charge Duration", + statOrder = { 1864 }, + }, isSocketBound = false, rank = { 60 }, }, ["gloves"] = { type = "Rune", "Banners also grant 2% of Life Regenerated per second to affected targets", - "Bonded: Regenerate 0.5% of maximum Life per second", - statOrder = { 4657, 1691 }, + statOrder = { 4657 }, tradeHashes = { [119336587] = { "Banners also grant 2% of Life Regenerated per second to affected targets" }, }, + bonded = { + "Regenerate 0.5% of maximum Life per second", + statOrder = { 1691 }, + }, isSocketBound = false, rank = { 60 }, }, ["boots"] = { type = "Rune", "When you stop Sprinting, gain Guard equal to 4% of maximum Life per second spent Sprinting, up to a maximum of 20%, for 4 seconds", - "Bonded: 20% increased Guard gained", - statOrder = { 6799, 6946 }, + statOrder = { 6799 }, tradeHashes = { [293832783] = { "When you stop Sprinting, gain Guard equal to 4% of maximum Life per second spent Sprinting, up to a maximum of 20%, for 4 seconds" }, }, + bonded = { + "20% increased Guard gained", + statOrder = { 6946 }, + }, isSocketBound = false, rank = { 60 }, }, @@ -4871,27 +6284,36 @@ return { ["helmet"] = { type = "Rune", "Targets that are Blinded, Maimed, and Bleeding cannot Evade your Hits", - "Bonded: 30% increased Immobilisation buildup", - statOrder = { 7207, 7188 }, + statOrder = { 7207 }, tradeHashes = { [2889034188] = { "Targets that are Blinded, Maimed, and Bleeding cannot Evade your Hits" }, }, + bonded = { + "30% increased Immobilisation buildup", + statOrder = { 7188 }, + }, isSocketBound = false, rank = { 60 }, }, ["gloves"] = { type = "Rune", "Regenerate 5% of maximum Life per Second if you have used a Command Skill Recently", - "Bonded: 20% increased Life Regeneration rate", - statOrder = { 7482, 1036 }, + statOrder = { 7482 }, tradeHashes = { [445996047] = { "Regenerate 5% of maximum Life per Second if you have used a Command Skill Recently" }, }, + bonded = { + "20% increased Life Regeneration rate", + statOrder = { 1036 }, + }, isSocketBound = false, rank = { 60 }, }, ["body armour"] = { type = "Rune", "Thorns Damage is Lucky against targets with Fully Broken Armour", - "Bonded: 30% increased Thorns damage", - statOrder = { 10246, 10247 }, + statOrder = { 10246 }, tradeHashes = { [1871622140] = { "Thorns Damage is Lucky against targets with Fully Broken Armour" }, }, + bonded = { + "30% increased Thorns damage", + statOrder = { 10247 }, + }, isSocketBound = false, rank = { 60 }, }, @@ -4900,18 +6322,24 @@ return { ["gloves"] = { type = "Idol", "8% increased Attack Speed", - "Bonded: 20% reduced Slowing Potency of Debuffs on You", - statOrder = { 985, 4745 }, + statOrder = { 985 }, tradeHashes = { [681332047] = { "8% increased Attack Speed" }, }, + bonded = { + "20% reduced Slowing Potency of Debuffs on You", + statOrder = { 4745 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "Allies in your Presence have 8% increased Movement Speed", - "Bonded: 4% increased Movement Speed", - statOrder = { 4287, 836 }, + statOrder = { 4287 }, tradeHashes = { [632743438] = { "Allies in your Presence have 8% increased Movement Speed" }, }, + bonded = { + "4% increased Movement Speed", + statOrder = { 836 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -4921,18 +6349,24 @@ return { type = "Idol", "25% reduced Poison Duration", "Targets can be affected by +1 of your Poisons at the same time", - "Bonded: Gain 13% of Physical Damage as extra Chaos Damage", - statOrder = { 2896, 9321, 1677 }, + statOrder = { 2896, 9321 }, tradeHashes = { [1755296234] = { "Targets can be affected by +1 of your Poisons at the same time" }, [2011656677] = { "25% reduced Poison Duration" }, }, + bonded = { + "Gain 13% of Physical Damage as extra Chaos Damage", + statOrder = { 1677 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "Allies in your Presence deal 13 to 27 added Attack Chaos Damage", - "Bonded: 15% increased Withered Magnitude", - statOrder = { 911, 10549 }, + statOrder = { 911 }, tradeHashes = { [262946222] = { "Allies in your Presence deal 13 to 27 added Attack Chaos Damage" }, }, + bonded = { + "15% increased Withered Magnitude", + statOrder = { 10549 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -4941,18 +6375,24 @@ return { ["boots"] = { type = "Idol", "50% increased total Power counted by Warcries", - "Bonded: 30% increased Glory generation", - statOrder = { 10505, 6909 }, + statOrder = { 10505 }, tradeHashes = { [2663359259] = { "50% increased total Power counted by Warcries" }, }, + bonded = { + "30% increased Glory generation", + statOrder = { 6909 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "15% increased Damage per each different Companion in your Presence", - "Bonded: 15% increased Reservation Efficiency of Companion Skills", - statOrder = { 5948, 9758 }, + statOrder = { 5948 }, tradeHashes = { [3151560620] = { "15% increased Damage per each different Companion in your Presence" }, }, + bonded = { + "15% increased Reservation Efficiency of Companion Skills", + statOrder = { 9758 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -4961,18 +6401,24 @@ return { ["helmet"] = { type = "Idol", "15% increased Cost Efficiency", - "Bonded: Meta Skills have 15% increased Reservation Efficiency", - statOrder = { 4741, 9760 }, + statOrder = { 4741 }, tradeHashes = { [263495202] = { "15% increased Cost Efficiency" }, }, + bonded = { + "Meta Skills have 15% increased Reservation Efficiency", + statOrder = { 9760 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "15% increased Mana Recovery rate while your Companion is in your Presence", - "Bonded: 8% increased Life Recovery Rate while your Companion is in your Presence", - statOrder = { 7991, 7480 }, + statOrder = { 7991 }, tradeHashes = { [1779262102] = { "15% increased Mana Recovery rate while your Companion is in your Presence" }, }, + bonded = { + "8% increased Life Recovery Rate while your Companion is in your Presence", + statOrder = { 7480 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -4981,18 +6427,24 @@ return { ["helmet"] = { type = "Idol", "Enemies you Curse take 6% increased Damage", - "Bonded: 20% increased Area of Effect of Curses", - statOrder = { 3433, 1950 }, + statOrder = { 3433 }, tradeHashes = { [1984310483] = { "Enemies you Curse take 6% increased Damage" }, }, + bonded = { + "20% increased Area of Effect of Curses", + statOrder = { 1950 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "20% increased Curse Duration", - "Bonded: Curse zones erupt after 20% reduced delay", - statOrder = { 1540, 4676 }, + statOrder = { 1540 }, tradeHashes = { [3824372849] = { "20% increased Curse Duration" }, }, + bonded = { + "Curse zones erupt after 20% reduced delay", + statOrder = { 4676 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5001,18 +6453,24 @@ return { ["body armour"] = { type = "Idol", "+1 Charm Slot", - "Bonded: Storm Skills have +1 to Limit", - statOrder = { 9310, 10103 }, + statOrder = { 9310 }, tradeHashes = { [554899692] = { "+1 Charm Slot" }, }, + bonded = { + "Storm Skills have +1 to Limit", + statOrder = { 10103 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "Flasks gain 0.2 charges per Second", - "Bonded: 20% increased Life and Mana Recovery from Flasks", - statOrder = { 6883, 6639 }, + statOrder = { 6883 }, tradeHashes = { [731781020] = { "Flasks gain 0.2 charges per Second" }, }, + bonded = { + "20% increased Life and Mana Recovery from Flasks", + statOrder = { 6639 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5021,18 +6479,24 @@ return { ["helmet"] = { type = "Idol", "8% increased Reservation Efficiency of Minion Skills", - "Bonded: Minions Revive 8% faster", - statOrder = { 9761, 9080 }, + statOrder = { 9761 }, tradeHashes = { [1805633363] = { "8% increased Reservation Efficiency of Minion Skills" }, }, + bonded = { + "Minions Revive 8% faster", + statOrder = { 9080 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "40% increased Armour, Evasion and Energy Shield while your Companion is in your Presence", - "Bonded: Companions have 25% increased maximum Life", - statOrder = { 6899, 5722 }, + statOrder = { 6899 }, tradeHashes = { [2829985691] = { "40% increased Armour, Evasion and Energy Shield while your Companion is in your Presence" }, }, + bonded = { + "Companions have 25% increased maximum Life", + statOrder = { 5722 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5041,18 +6505,24 @@ return { ["gloves"] = { type = "Idol", "8% increased Curse Magnitudes", - "Bonded: Remnants you create have 15% increased effect", - statOrder = { 2376, 9730 }, + statOrder = { 2376 }, tradeHashes = { [2353576063] = { "8% increased Curse Magnitudes" }, }, + bonded = { + "Remnants you create have 15% increased effect", + statOrder = { 9730 }, + }, isSocketBound = false, rank = { 0 }, }, ["sceptre"] = { type = "Idol", "Allies in your Presence have 10% increased Attack Speed", - "Bonded: 10% increased Skill Speed while Shapeshifted", - statOrder = { 918, 9909 }, + statOrder = { 918 }, tradeHashes = { [1998951374] = { "Allies in your Presence have 10% increased Attack Speed" }, }, + bonded = { + "10% increased Skill Speed while Shapeshifted", + statOrder = { 9909 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -5061,18 +6531,24 @@ return { ["helmet"] = { type = "Idol", "Minions have 15% increased maximum Life", - "Bonded: Remnants can be collected from 30% further away", - statOrder = { 1026, 9732 }, + statOrder = { 1026 }, tradeHashes = { [770672621] = { "Minions have 15% increased maximum Life" }, }, + bonded = { + "Remnants can be collected from 30% further away", + statOrder = { 9732 }, + }, isSocketBound = false, rank = { 0 }, }, ["sceptre"] = { type = "Idol", "Allies in your Presence deal 40% increased Damage", - "Bonded: 40% increased Damage while Shapeshifted", - statOrder = { 906, 5957 }, + statOrder = { 906 }, tradeHashes = { [1798257884] = { "Allies in your Presence deal 40% increased Damage" }, }, + bonded = { + "40% increased Damage while Shapeshifted", + statOrder = { 5957 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -5081,18 +6557,24 @@ return { ["focus"] = { type = "Idol", "12% increased Cooldown Recovery Rate", - "Bonded: 20% increased effect of Archon Buffs on you", - statOrder = { 4103, 4345 }, + statOrder = { 4103 }, tradeHashes = { [1004011302] = { "12% increased Cooldown Recovery Rate" }, }, + bonded = { + "20% increased effect of Archon Buffs on you", + statOrder = { 4345 }, + }, isSocketBound = false, rank = { 0 }, }, ["sceptre"] = { type = "Idol", "Allies in your Presence have 10% increased Cast Speed", - "Bonded: 10% increased Skill Speed while Shapeshifted", - statOrder = { 919, 9909 }, + statOrder = { 919 }, tradeHashes = { [289128254] = { "Allies in your Presence have 10% increased Cast Speed" }, }, + bonded = { + "10% increased Skill Speed while Shapeshifted", + statOrder = { 9909 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -5101,18 +6583,24 @@ return { ["gloves"] = { type = "Idol", "25% increased Accuracy Rating", - "Bonded: 30% increased Charm Charges gained", - statOrder = { 1332, 5601 }, + statOrder = { 1332 }, tradeHashes = { [624954515] = { "25% increased Accuracy Rating" }, }, + bonded = { + "30% increased Charm Charges gained", + statOrder = { 5601 }, + }, isSocketBound = false, rank = { 0 }, }, ["sceptre"] = { type = "Idol", "Allies in your Presence have 14% increased Critical Hit Chance", - "Bonded: 25% increased Critical Hit Chance while Shapeshifted", - statOrder = { 916, 5831 }, + statOrder = { 916 }, tradeHashes = { [1250712710] = { "Allies in your Presence have 14% increased Critical Hit Chance" }, }, + bonded = { + "25% increased Critical Hit Chance while Shapeshifted", + statOrder = { 5831 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -5121,18 +6609,24 @@ return { ["gloves"] = { type = "Idol", "15% increased Magnitude of Bleeding you inflict", - "Bonded: 25% reduced Magnitude of Bleeding on You", - statOrder = { 4806, 4661 }, + statOrder = { 4806 }, tradeHashes = { [3166958180] = { "15% increased Magnitude of Bleeding you inflict" }, }, + bonded = { + "25% reduced Magnitude of Bleeding on You", + statOrder = { 4661 }, + }, isSocketBound = false, rank = { 0 }, }, ["sceptre"] = { type = "Idol", "Allies in your Presence have 20% increased Critical Damage Bonus", - "Bonded: 25% increased Critical Hit Chance while Shapeshifted", - statOrder = { 917, 5831 }, + statOrder = { 917 }, tradeHashes = { [3057012405] = { "Allies in your Presence have 20% increased Critical Damage Bonus" }, }, + bonded = { + "25% increased Critical Hit Chance while Shapeshifted", + statOrder = { 5831 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -5141,18 +6635,24 @@ return { ["helmet"] = { type = "Idol", "Projectiles have 15% chance to Fork", - "Bonded: Projectiles have 25% chance for an additional Projectile when Forking", - statOrder = { 9538, 5511 }, + statOrder = { 9538 }, tradeHashes = { [1549287843] = { "Projectiles have 15% chance to Fork" }, }, + bonded = { + "Projectiles have 25% chance for an additional Projectile when Forking", + statOrder = { 5511 }, + }, isSocketBound = false, rank = { 0 }, }, ["sceptre"] = { type = "Idol", "Allies in your Presence deal 1 to 40 added Attack Lightning Damage", - "Bonded: 40% increased Attack Damage while Shapeshifted", - statOrder = { 910, 4519 }, + statOrder = { 910 }, tradeHashes = { [2854751904] = { "Allies in your Presence deal 1 to 40 added Attack Lightning Damage" }, }, + bonded = { + "40% increased Attack Damage while Shapeshifted", + statOrder = { 4519 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -5161,18 +6661,24 @@ return { ["gloves"] = { type = "Idol", "Gain 1 Rage on Melee Hit", - "Bonded: 25% increased Warcry Cooldown Recovery Rate", - statOrder = { 6868, 3035 }, + statOrder = { 6868 }, tradeHashes = { [2709367754] = { "Gain 1 Rage on Melee Hit" }, }, + bonded = { + "25% increased Warcry Cooldown Recovery Rate", + statOrder = { 3035 }, + }, isSocketBound = false, rank = { 0 }, }, ["sceptre"] = { type = "Idol", "Allies in your Presence Regenerate 0.5% of your Maximum Life per second", - "Bonded: 25% increased Life Regeneration rate while Shapeshifted", - statOrder = { 923, 7499 }, + statOrder = { 923 }, tradeHashes = { [1911097163] = { "Allies in your Presence Regenerate 0.5% of your Maximum Life per second" }, }, + bonded = { + "25% increased Life Regeneration rate while Shapeshifted", + statOrder = { 7499 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -5181,18 +6687,24 @@ return { ["helmet"] = { type = "Idol", "10% increased Area of Effect", - "Bonded: 12% increased Reservation Efficiency of Companion Skills", - statOrder = { 1630, 9758 }, + statOrder = { 1630 }, tradeHashes = { [280731498] = { "10% increased Area of Effect" }, }, + bonded = { + "12% increased Reservation Efficiency of Companion Skills", + statOrder = { 9758 }, + }, isSocketBound = false, rank = { 0 }, }, ["sceptre"] = { type = "Idol", "Allies in your Presence deal 12 to 18 added Attack Physical Damage", - "Bonded: 40% increased Attack Damage while Shapeshifted", - statOrder = { 907, 4519 }, + statOrder = { 907 }, tradeHashes = { [1574590649] = { "Allies in your Presence deal 12 to 18 added Attack Physical Damage" }, }, + bonded = { + "40% increased Attack Damage while Shapeshifted", + statOrder = { 4519 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -5201,27 +6713,36 @@ return { ["shield"] = { type = "Idol", "15% increased Block chance", - "Bonded: 15% chance for Damage of Enemies Hitting you to be Unlucky", - statOrder = { 839, 6398 }, + statOrder = { 839 }, tradeHashes = { [2481353198] = { "15% increased Block chance" }, }, + bonded = { + "15% chance for Damage of Enemies Hitting you to be Unlucky", + statOrder = { 6398 }, + }, isSocketBound = false, rank = { 0 }, }, ["buckler"] = { type = "Idol", "15% increased Block chance", - "Bonded: 15% chance for Damage of Enemies Hitting you to be Unlucky", - statOrder = { 839, 6398 }, + statOrder = { 839 }, tradeHashes = { [2481353198] = { "15% increased Block chance" }, }, + bonded = { + "15% chance for Damage of Enemies Hitting you to be Unlucky", + statOrder = { 6398 }, + }, isSocketBound = false, rank = { 0 }, }, ["sceptre"] = { type = "Idol", "Allies in your Presence have +12% to all Elemental Resistances", - "Bonded: +20% of Armour also applies to Elemental Damage while Shapeshifted", - statOrder = { 920, 10557 }, + statOrder = { 920 }, tradeHashes = { [3850614073] = { "Allies in your Presence have +12% to all Elemental Resistances" }, }, + bonded = { + "+20% of Armour also applies to Elemental Damage while Shapeshifted", + statOrder = { 10557 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -5230,18 +6751,24 @@ return { ["body armour"] = { type = "Idol", "12% increased Rarity of Items found", - "Bonded: 10% increased Quantity of Gold Dropped by Slain Enemies", - statOrder = { 941, 6912 }, + statOrder = { 941 }, tradeHashes = { [3917489142] = { "12% increased Rarity of Items found" }, }, + bonded = { + "10% increased Quantity of Gold Dropped by Slain Enemies", + statOrder = { 6912 }, + }, isSocketBound = false, rank = { 0 }, }, ["sceptre"] = { type = "Idol", "15% increased Spirit", - "Bonded: Minions have 30% increased Cooldown Recovery Rate for Command Skills", - statOrder = { 857, 9019 }, + statOrder = { 857 }, tradeHashes = { [3984865854] = { "15% increased Spirit" }, }, + bonded = { + "Minions have 30% increased Cooldown Recovery Rate for Command Skills", + statOrder = { 9019 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -5250,18 +6777,24 @@ return { ["body armour"] = { type = "Idol", "Idols socketed in this item gain the benefits of their Bonded modifiers", - "Bonded: +5% to Quality of all Skills", - statOrder = { 7728, 975 }, + statOrder = { 7728 }, tradeHashes = { [3843204282] = { "" }, [726496846] = { "Idols socketed in this item gain the benefits of their Bonded modifiers" }, }, + bonded = { + "+5% to Quality of all Skills", + statOrder = { 975 }, + }, isSocketBound = false, rank = { 0 }, }, ["sceptre"] = { type = "Idol", "50% increased Presence Area of Effect", - "Bonded: Minions have 30% increased Area of Effect", - statOrder = { 1069, 2759 }, + statOrder = { 1069 }, tradeHashes = { [101878827] = { "50% increased Presence Area of Effect" }, }, + bonded = { + "Minions have 30% increased Area of Effect", + statOrder = { 2759 }, + }, isSocketBound = false, rank = { 0 }, }, @@ -5270,27 +6803,36 @@ return { ["shield"] = { type = "Idol", "+25% of Armour also applies to Elemental Damage", - "Bonded: 12% increased Damage for each type of Elemental Ailment on Enemy", - statOrder = { 1027, 5949 }, + statOrder = { 1027 }, tradeHashes = { [3362812763] = { "+25% of Armour also applies to Elemental Damage" }, }, + bonded = { + "12% increased Damage for each type of Elemental Ailment on Enemy", + statOrder = { 5949 }, + }, isSocketBound = false, rank = { 50 }, }, ["buckler"] = { type = "Idol", "Gain Deflection Rating equal to 20% of Evasion Rating", - "Bonded: 12% increased Damage for each type of Elemental Ailment on Enemy", - statOrder = { 1028, 5949 }, + statOrder = { 1028 }, tradeHashes = { [3033371881] = { "Gain Deflection Rating equal to 20% of Evasion Rating" }, }, + bonded = { + "12% increased Damage for each type of Elemental Ailment on Enemy", + statOrder = { 5949 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "Companions deal 10% more Damage for each different type of dead Companion you have", - "Bonded: Recover 3% of maximum Life when one of your Minions is Revived", - statOrder = { 5715, 10589 }, + statOrder = { 5715 }, tradeHashes = { [2882351629] = { "Companions deal 10% more Damage for each different type of dead Companion you have" }, }, + bonded = { + "Recover 3% of maximum Life when one of your Minions is Revived", + statOrder = { 10589 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5299,18 +6841,24 @@ return { ["boots"] = { type = "Idol", "30% increased Skill Effect Duration with Plant Skills", - "Bonded: Plants have a 25% chance to immediately Overgrow when they enter your Presence for the first time", - statOrder = { 9481, 5361 }, + statOrder = { 9481 }, tradeHashes = { [4065951768] = { "30% increased Skill Effect Duration with Plant Skills" }, }, + bonded = { + "Plants have a 25% chance to immediately Overgrow when they enter your Presence for the first time", + statOrder = { 5361 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "Plants have a 25% chance to immediately Overgrow when they enter your Presence for the first time", - "Bonded: 30% increased Skill Effect Duration with Plant Skills", - statOrder = { 5361, 9481 }, + statOrder = { 5361 }, tradeHashes = { [2681952497] = { "Plants have a 25% chance to immediately Overgrow when they enter your Presence for the first time" }, }, + bonded = { + "30% increased Skill Effect Duration with Plant Skills", + statOrder = { 9481 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5319,18 +6867,24 @@ return { ["body armour"] = { type = "Idol", "Skills have 10% chance to not remove Charges but still count as consuming them", - "Bonded: 15% chance for Charms you use to not consume Charges", - statOrder = { 5599, 5630 }, + statOrder = { 5599 }, tradeHashes = { [2942439603] = { "Skills have 10% chance to not remove Charges but still count as consuming them" }, }, + bonded = { + "15% chance for Charms you use to not consume Charges", + statOrder = { 5630 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "Allies in your Presence share Charges with you", - "Bonded: 25% increased Endurance, Frenzy and Power Charge Duration", - statOrder = { 4290, 2761 }, + statOrder = { 4290 }, tradeHashes = { [3329501096] = { "Allies in your Presence share Charges with you" }, }, + bonded = { + "25% increased Endurance, Frenzy and Power Charge Duration", + statOrder = { 2761 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5339,18 +6893,24 @@ return { ["boots"] = { type = "Idol", "15% chance when you gain an Endurance Charge to gain an additional Endurance Charge", - "Bonded: +1 to Maximum Endurance Charges", - statOrder = { 5515, 1559 }, + statOrder = { 5515 }, tradeHashes = { [1228682002] = { "15% chance when you gain an Endurance Charge to gain an additional Endurance Charge" }, }, + bonded = { + "+1 to Maximum Endurance Charges", + statOrder = { 1559 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "If you would gain an Endurance Charge, Allies in your Presence gain that Charge instead", - "Bonded: 40% increased Armour if you've consumed an Endurance Charge Recently", - statOrder = { 2010, 4387 }, + statOrder = { 2010 }, tradeHashes = { [1881314095] = { "If you would gain an Endurance Charge, Allies in your Presence gain that Charge instead" }, }, + bonded = { + "40% increased Armour if you've consumed an Endurance Charge Recently", + statOrder = { 4387 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5359,18 +6919,24 @@ return { ["helmet"] = { type = "Idol", "15% chance when you gain a Power Charge to gain an additional Power Charge", - "Bonded: +1 to Maximum Power Charges", - statOrder = { 5517, 1569 }, + statOrder = { 5517 }, tradeHashes = { [3537994888] = { "15% chance when you gain a Power Charge to gain an additional Power Charge" }, }, + bonded = { + "+1 to Maximum Power Charges", + statOrder = { 1569 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "If you would gain a Power Charge, Allies in your Presence gain that Charge instead", - "Bonded: 40% increased maximum Energy Shield if you've consumed a Power Charge Recently", - statOrder = { 2012, 6412 }, + statOrder = { 2012 }, tradeHashes = { [4226127445] = { "If you would gain a Power Charge, Allies in your Presence gain that Charge instead" }, }, + bonded = { + "40% increased maximum Energy Shield if you've consumed a Power Charge Recently", + statOrder = { 6412 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5379,18 +6945,24 @@ return { ["gloves"] = { type = "Idol", "15% chance when you gain a Frenzy Charge to gain an additional Frenzy Charge", - "Bonded: +1 to Maximum Frenzy Charges", - statOrder = { 5516, 1564 }, + statOrder = { 5516 }, tradeHashes = { [2916861134] = { "15% chance when you gain a Frenzy Charge to gain an additional Frenzy Charge" }, }, + bonded = { + "+1 to Maximum Frenzy Charges", + statOrder = { 1564 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "If you would gain a Frenzy Charge, Allies in your Presence gain that Charge instead", - "Bonded: 40% increased Evasion Rating if you've consumed a Frenzy Charge Recently", - statOrder = { 2011, 6483 }, + statOrder = { 2011 }, tradeHashes = { [2211478554] = { "If you would gain a Frenzy Charge, Allies in your Presence gain that Charge instead" }, }, + bonded = { + "40% increased Evasion Rating if you've consumed a Frenzy Charge Recently", + statOrder = { 6483 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5399,26 +6971,34 @@ return { ["shield"] = { type = "Idol", "15% increased Block chance while your Companion is in your Presence", - "Bonded: +3% to maximum Block chance", - statOrder = { 4936, 1734 }, + statOrder = { 4936 }, tradeHashes = { [3087034595] = { "15% increased Block chance while your Companion is in your Presence" }, }, + bonded = { + "+3% to maximum Block chance", + statOrder = { 1734 }, + }, isSocketBound = false, rank = { 50 }, }, ["buckler"] = { type = "Idol", - "Bonded: 30% increased Parry Range", - statOrder = { 4152 }, tradeHashes = { [2057883179] = { "" }, }, + bonded = { + "30% increased Parry Range", + statOrder = { 4152 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "Companions in your Presence gain 1 Rage on hit", - "Bonded: Companions have 30% increased Area of Effect", - statOrder = { 5735, 5711 }, + statOrder = { 5735 }, tradeHashes = { [2652394701] = { "Companions in your Presence gain 1 Rage on hit" }, }, + bonded = { + "Companions have 30% increased Area of Effect", + statOrder = { 5711 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5428,10 +7008,13 @@ return { type = "Idol", "-20% to all Elemental Resistances", "Gain 20% of Damage as Extra Damage of a random Element", - "Bonded: -20% to Chaos Resistance", - "Bonded: Gain 20% of Damage as Extra Chaos Damage", - statOrder = { 1013, 9254, 1024, 1672 }, + statOrder = { 1013, 9254 }, tradeHashes = { [3617669804] = { "Gain 20% of Damage as Extra Damage of a random Element" }, [2901986750] = { "-20% to all Elemental Resistances" }, }, + bonded = { + "-20% to Chaos Resistance", + "Gain 20% of Damage as Extra Chaos Damage", + statOrder = { 1024, 1672 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5439,10 +7022,13 @@ return { type = "Idol", "Companions in your Presence have -20% to all Elemental Resistances", "Companions in your Presence Gain 20% of Damage as Extra Damage of a random Element", - "Bonded: Allies in your Presence Gain 20% of Damage as Extra Chaos Damage", - "Bonded: Companions in your Presence have -20% to Chaos Resistance", - statOrder = { 5733, 5738, 4288, 5732 }, + statOrder = { 5733, 5738 }, tradeHashes = { [1539508682] = { "Companions in your Presence have -20% to all Elemental Resistances" }, [4200448078] = { "Companions in your Presence Gain 20% of Damage as Extra Damage of a random Element" }, }, + bonded = { + "Allies in your Presence Gain 20% of Damage as Extra Chaos Damage", + "Companions in your Presence have -20% to Chaos Resistance", + statOrder = { 4288, 5732 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5452,10 +7038,13 @@ return { type = "Idol", "25% reduced Spirit", "Meta Skills gain 40% increased Energy", - "Bonded: Invocated skills have 25% increased Maximum Energy", - "Bonded: Meta Skills have 25% reduced Reservation Efficiency", - statOrder = { 1417, 6405, 7380, 9760 }, + statOrder = { 1417, 6405 }, tradeHashes = { [4236566306] = { "Meta Skills gain 40% increased Energy" }, [1416406066] = { "25% reduced Spirit" }, }, + bonded = { + "Invocated skills have 25% increased Maximum Energy", + "Meta Skills have 25% reduced Reservation Efficiency", + statOrder = { 7380, 9760 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5463,10 +7052,13 @@ return { type = "Idol", "40% reduced Presence Area of Effect", "Aura Skills have 25% increased Magnitudes", - "Bonded: Allies in your Presence Regenerate 3% of your Maximum Life per second", - "Bonded: 25% reduced Life Regeneration rate", - statOrder = { 1069, 2574, 923, 1036 }, + statOrder = { 1069, 2574 }, tradeHashes = { [101878827] = { "40% reduced Presence Area of Effect" }, [315791320] = { "Aura Skills have 25% increased Magnitudes" }, }, + bonded = { + "Allies in your Presence Regenerate 3% of your Maximum Life per second", + "25% reduced Life Regeneration rate", + statOrder = { 923, 1036 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5476,10 +7068,13 @@ return { type = "Idol", "30% reduced maximum Mana", "Gain 2% of Damage as Extra Physical Damage per ten percent missing Mana", - "Bonded: 30% reduced Mana Cost Efficiency", - "Bonded: 12% increased Skill Speed while on Low Mana", - statOrder = { 894, 9253, 4716, 9908 }, + statOrder = { 894, 9253 }, tradeHashes = { [2748665614] = { "30% reduced maximum Mana" }, [1693515857] = { "Gain 2% of Damage as Extra Physical Damage per ten percent missing Mana" }, }, + bonded = { + "30% reduced Mana Cost Efficiency", + "12% increased Skill Speed while on Low Mana", + statOrder = { 4716, 9908 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5487,10 +7082,13 @@ return { type = "Idol", "30% reduced Mana Cost Efficiency of Command Skills", "Minions deal 60% increased Damage with Command Skills", - "Bonded: 25% reduced Reservation Efficiency of Minion Skills", - "Bonded: Temporary Minion Skills have +2 to Limit of Minions summoned", - statOrder = { 4717, 9022, 9761, 10240 }, + statOrder = { 4717, 9022 }, tradeHashes = { [3742865955] = { "Minions deal 60% increased Damage with Command Skills" }, [553018427] = { "30% reduced Mana Cost Efficiency of Command Skills" }, }, + bonded = { + "25% reduced Reservation Efficiency of Minion Skills", + "Temporary Minion Skills have +2 to Limit of Minions summoned", + statOrder = { 9761, 10240 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5499,18 +7097,24 @@ return { ["body armour"] = { type = "Idol", "+10% of Armour also applies to Chaos Damage", - "Bonded: +8% to Chaos Resistance", - statOrder = { 4645, 1024 }, + statOrder = { 4645 }, tradeHashes = { [3972229254] = { "+10% of Armour also applies to Chaos Damage" }, }, + bonded = { + "+8% to Chaos Resistance", + statOrder = { 1024 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "Minions have +20% to Chaos Resistance", - "Bonded: Minions have 20% additional Physical Damage Reduction", - statOrder = { 2668, 2022 }, + statOrder = { 2668 }, tradeHashes = { [3837707023] = { "Minions have +20% to Chaos Resistance" }, }, + bonded = { + "Minions have 20% additional Physical Damage Reduction", + statOrder = { 2022 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5519,18 +7123,24 @@ return { ["body armour"] = { type = "Idol", "10% increased Deflection Rating", - "Bonded: +12% to Cold Resistance", - statOrder = { 6114, 1020 }, + statOrder = { 6114 }, tradeHashes = { [3040571529] = { "10% increased Deflection Rating" }, }, + bonded = { + "+12% to Cold Resistance", + statOrder = { 1020 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "Companions have 12% increased Attack Speed", - "Bonded: 8% increased Attack Speed while your Companion is in your Presence", - statOrder = { 5712, 4556 }, + statOrder = { 5712 }, tradeHashes = { [666077204] = { "Companions have 12% increased Attack Speed" }, }, + bonded = { + "8% increased Attack Speed while your Companion is in your Presence", + statOrder = { 4556 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5539,18 +7149,24 @@ return { ["body armour"] = { type = "Idol", "5% of Damage taken bypasses Energy Shield", - "Bonded: +12% to Lightning Resistance", - statOrder = { 1456, 1023 }, + statOrder = { 1456 }, tradeHashes = { [2448633171] = { "5% of Damage taken bypasses Energy Shield" }, }, + bonded = { + "+12% to Lightning Resistance", + statOrder = { 1023 }, + }, isSocketBound = false, rank = { 50 }, }, ["sceptre"] = { type = "Idol", "Companions have 25% increased maximum Life", - "Bonded: 25% increased Damage while your Companion is in your Presence", - statOrder = { 5722, 5956 }, + statOrder = { 5722 }, tradeHashes = { [1805182458] = { "Companions have 25% increased maximum Life" }, }, + bonded = { + "25% increased Damage while your Companion is in your Presence", + statOrder = { 5956 }, + }, isSocketBound = false, rank = { 50 }, }, @@ -5559,9 +7175,12 @@ return { ["helmet"] = { type = "Idol", "Enemies which are on Full Life cannot Evade your Hits", - "Bonded: 30% increased Accuracy Rating", - statOrder = { 5301, 1332 }, + statOrder = { 5301 }, tradeHashes = { [4111745607] = { "Enemies which are on Full Life cannot Evade your Hits" }, }, + bonded = { + "30% increased Accuracy Rating", + statOrder = { 1332 }, + }, isSocketBound = false, rank = { 60 }, }, @@ -5569,18 +7188,24 @@ return { type = "Idol", "Prevent +5% of Damage from Deflected Hits if you've", "Deflected no Hits Recently", - "Bonded: 8% increased Deflection Rating", - statOrder = { 4678, 4678.1, 6114 }, + statOrder = { 4678, 4678.1 }, tradeHashes = { [967155385] = { "Prevent +5% of Damage from Deflected Hits if you've", "Deflected no Hits Recently" }, }, + bonded = { + "8% increased Deflection Rating", + statOrder = { 6114 }, + }, isSocketBound = false, rank = { 60 }, }, ["boots"] = { type = "Idol", "Gain Onslaught for 4 seconds when your Marks Activate", - "Bonded: Buffs on you expire 10% slower", - statOrder = { 6820, 5236 }, + statOrder = { 6820 }, tradeHashes = { [1811977226] = { "Gain Onslaught for 4 seconds when your Marks Activate" }, }, + bonded = { + "Buffs on you expire 10% slower", + statOrder = { 5236 }, + }, isSocketBound = false, rank = { 60 }, }, @@ -5589,27 +7214,36 @@ return { ["body armour"] = { type = "Idol", "+3 to Spirit per Idol socketed in your Equipment", - "Bonded: 5% increased Spirit", - statOrder = { 4751, 1417 }, + statOrder = { 4751 }, tradeHashes = { [1073847159] = { "+3 to Spirit per Idol socketed in your Equipment" }, }, + bonded = { + "5% increased Spirit", + statOrder = { 1417 }, + }, isSocketBound = false, rank = { 60 }, }, ["gloves"] = { type = "Idol", "Companions gain Onslaught for 4 seconds on Hitting your Marked targets", - "Bonded: Companions deal 30% increased Damage", - statOrder = { 5729, 5718 }, + statOrder = { 5729 }, tradeHashes = { [226999623] = { "Companions gain Onslaught for 4 seconds on Hitting your Marked targets" }, }, + bonded = { + "Companions deal 30% increased Damage", + statOrder = { 5718 }, + }, isSocketBound = false, rank = { 60 }, }, ["boots"] = { type = "Idol", "1% increased Movement Speed while Sprinting per Persistent Minion", - "Bonded: Minions have 12% increased maximum Life", - statOrder = { 10063, 1026 }, + statOrder = { 10063 }, tradeHashes = { [3639405795] = { "1% increased Movement Speed while Sprinting per Persistent Minion" }, }, + bonded = { + "Minions have 12% increased maximum Life", + statOrder = { 1026 }, + }, isSocketBound = false, rank = { 60 }, }, @@ -5618,27 +7252,36 @@ return { ["helmet"] = { type = "Idol", "Gain Guard equal to 10% of maximum Life for 4 seconds on taking Savage Hit", - "Bonded: Buffs on you expire 10% slower", - statOrder = { 6798, 5236 }, + statOrder = { 6798 }, tradeHashes = { [3863682550] = { "Gain Guard equal to 10% of maximum Life for 4 seconds on taking Savage Hit" }, }, + bonded = { + "Buffs on you expire 10% slower", + statOrder = { 5236 }, + }, isSocketBound = false, rank = { 60 }, }, ["gloves"] = { type = "Idol", "+5% to maximum Block chance if you've Blocked with a raised Shield Recently", - "Bonded: 20% increased Block chance", - statOrder = { 4207, 1133 }, + statOrder = { 4207 }, tradeHashes = { [3617372509] = { "+5% to maximum Block chance if you've Blocked with a raised Shield Recently" }, }, + bonded = { + "20% increased Block chance", + statOrder = { 1133 }, + }, isSocketBound = false, rank = { 60 }, }, ["body armour"] = { type = "Idol", "200% increased Stun Threshold if you've been Stunned Recently", - "Bonded: 25% increased Stun Threshold", - statOrder = { 10125, 2983 }, + statOrder = { 10125 }, tradeHashes = { [751944209] = { "200% increased Stun Threshold if you've been Stunned Recently" }, }, + bonded = { + "25% increased Stun Threshold", + statOrder = { 2983 }, + }, isSocketBound = false, rank = { 60 }, }, @@ -5647,27 +7290,36 @@ return { ["helmet"] = { type = "Idol", "Enemies have no Critical Damage Bonus for 4 seconds after you Blind them", - "Bonded: 20% increased Blind Effect", - statOrder = { 6383, 4925 }, + statOrder = { 6383 }, tradeHashes = { [25786091] = { "Enemies have no Critical Damage Bonus for 4 seconds after you Blind them" }, }, + bonded = { + "20% increased Blind Effect", + statOrder = { 4925 }, + }, isSocketBound = false, rank = { 60 }, }, ["gloves"] = { type = "Idol", "Enemies you Critically Hit get 100% reduced Life Regeneration Rate for 4 seconds", - "Bonded: 15% increased Critical Hit Chance", - statOrder = { 5818, 976 }, + statOrder = { 5818 }, tradeHashes = { [3370077792] = { "Enemies you Critically Hit get 100% reduced Life Regeneration Rate for 4 seconds" }, }, + bonded = { + "15% increased Critical Hit Chance", + statOrder = { 976 }, + }, isSocketBound = false, rank = { 60 }, }, ["boots"] = { type = "Idol", "Your speed is Unaffected by Slows while Sprinting", - "Bonded: 8% increased Movement Speed while Sprinting", - statOrder = { 9932, 10062 }, + statOrder = { 9932 }, tradeHashes = { [3128773415] = { "Your speed is Unaffected by Slows while Sprinting" }, }, + bonded = { + "8% increased Movement Speed while Sprinting", + statOrder = { 10062 }, + }, isSocketBound = false, rank = { 60 }, }, diff --git a/src/Export/Scripts/soulcores.lua b/src/Export/Scripts/soulcores.lua index c605d9ad79..0c82bd531a 100644 --- a/src/Export/Scripts/soulcores.lua +++ b/src/Export/Scripts/soulcores.lua @@ -51,37 +51,16 @@ directiveTable.base = function(state, args, out) displayName = displayName:gsub("\195\182","o") displayName = displayName:gsub("^%s*(.-)%s*$", "%1") -- trim spaces GGG might leave in by accident - local function writeModLines(modLines, out) - for _, modLine in ipairs(modLines) do - out:write('\t\t["'..modLine.slotType..'"] = {\n') - out:write('\t\t\t\ttype = "' .. modLine.type .. '",\n') - -- only write labels/statOrder if present - if modLine.label and #modLine.label > 0 then - out:write('\t\t\t\t"'..table.concat(modLine.label, '",\n\t\t\t\t"')..'",\n') - local statOrder = modLine.statOrder or {} - out:write('\t\t\t\tstatOrder = { '..table.concat(statOrder, ', ')..' },\n') - out:write('\t\t\t\ttradeHashes = { ') - for hash, desc in pairs(modLine.tradeHashes) do - local descriptionLines = '"'..table.concat(desc, '", "')..'"' - out:write(string.format('[%d] = { %s }, ', hash, descriptionLines)) - end - out:write(' },\n') - end - out:write(string.format('\t\t\t\tisSocketBound = %s,\n', modLine.isSocketBound)) - out:write('\t\t\t\trank = { '..(modLine.rank or 0)..' },\n') - out:write('\t\t},\n') - end - end - -- Check for Standard Weapon, Armour, Caster Runes local soulCores = dat("SoulCores"):GetRow("BaseItemTypes", baseItemType) local soulCoreStats = dat("SoulCoreStats"):GetRowList("Id", soulCores) out:write('\t["', displayName, '"] = {\n') + -- Regular and Bonded stats may be separate data rows for the same slot. Keep an + -- ordered output list and a slot lookup so each Lua key is emitted exactly once. local modLines = { } - local rank = 0 + local modLinesBySlot = { } + local rank = soulCores.LevelReq or 0 for _, soulCoreStat in ipairs(soulCoreStats) do - rank = soulCores.LevelReq or 0 - local stats = { } local statHashes = {} for i, statKey in ipairs(soulCoreStat.Stats) do @@ -94,7 +73,7 @@ directiveTable.base = function(state, args, out) local statValue = soulCoreStat["BondedValues"][i] bondedStats[statKey.Id] = { min = statValue, max = statValue, bonded = true } end - if next(stats) then + if next(stats) or next(bondedStats) then for _, class in ipairs(classMap[soulCoreStat.Category.Id] or { string.lower(soulCoreStat.Category.Id) }) do local statsCopy = {} for k, v in pairs(stats) do statsCopy[k] = { min = v.min, max = v.max } end @@ -102,16 +81,7 @@ directiveTable.base = function(state, args, out) for k, v in pairs(bondedStats) do bondedStatsCopy[k] = { min = v.min, max = v.max, bonded = v.bonded } end local descStats, orders = describeStats(statsCopy) local descBondedStats, bondedOrders = describeStats(bondedStatsCopy) - for i, stat in ipairs(descBondedStats) do - descBondedStats[i] = "Bonded: " .. stat - end - for _, stat in ipairs(descBondedStats) do - table.insert(descStats, stat) - end - for _, order in ipairs(bondedOrders) do - table.insert(orders, order) - end - if #orders > 0 then + if #orders > 0 or #bondedOrders > 0 then local modIdx = 1 local tradeHashes = {} while soulCoreStat.Stats[modIdx] do @@ -136,22 +106,56 @@ directiveTable.base = function(state, args, out) tradeHashes[murmurHash2(bytes, 0x02312233)] = description modIdx = modIdx + 1 end - local out = { - type = soulCores.Type.Id, - slotType = class, - label = descStats, - statOrder = orders, - rank = rank, - tradeHashes = tradeHashes, - isSocketBound = soulCores.IsSocketBound - } - table.insert(modLines, out) + local modLine = modLinesBySlot[class] + if not modLine then + modLine = { + type = soulCores.Type.Id, + slotType = class, + label = descStats, + statOrder = orders, + bondedLabel = descBondedStats, + bondedStatOrder = bondedOrders, + rank = rank, + tradeHashes = tradeHashes, + isSocketBound = soulCores.IsSocketBound + } + modLinesBySlot[class] = modLine + table.insert(modLines, modLine) + else + for _, line in ipairs(descStats) do table.insert(modLine.label, line) end + for _, order in ipairs(orders) do table.insert(modLine.statOrder, order) end + for _, line in ipairs(descBondedStats) do table.insert(modLine.bondedLabel, line) end + for _, order in ipairs(bondedOrders) do table.insert(modLine.bondedStatOrder, order) end + for hash, desc in pairs(tradeHashes) do modLine.tradeHashes[hash] = desc end + end end end end end - writeModLines(modLines, out) + for _, modLine in ipairs(modLines) do + out:write('\t\t["'..modLine.slotType..'"] = {\n') + out:write('\t\t\t\ttype = "' .. modLine.type .. '",\n') + if #modLine.label > 0 then + out:write('\t\t\t\t"'..table.concat(modLine.label, '",\n\t\t\t\t"')..'",\n') + out:write('\t\t\t\tstatOrder = { '..table.concat(modLine.statOrder, ', ')..' },\n') + end + out:write('\t\t\t\ttradeHashes = { ') + for hash, desc in pairs(modLine.tradeHashes) do + local descriptionLines = '"'..table.concat(desc, '", "')..'"' + out:write(string.format('[%d] = { %s }, ', hash, descriptionLines)) + end + out:write(' },\n') + if #modLine.bondedLabel > 0 then + out:write('\t\t\t\tbonded = {\n') + out:write('\t\t\t\t\t"'..table.concat(modLine.bondedLabel, '",\n\t\t\t\t\t"')..'",\n') + out:write('\t\t\t\t\tstatOrder = { '..table.concat(modLine.bondedStatOrder, ', ')..' },\n') + out:write('\t\t\t\t},\n') + end + out:write(string.format('\t\t\t\tisSocketBound = %s,\n', modLine.isSocketBound)) + out:write('\t\t\t\trank = { '..modLine.rank..' },\n') + out:write('\t\t},\n') + end out:write('\t},\n') end diff --git a/src/Modules/CalcSetup.lua b/src/Modules/CalcSetup.lua index 724b4e8ea5..1286c52803 100644 --- a/src/Modules/CalcSetup.lua +++ b/src/Modules/CalcSetup.lua @@ -924,6 +924,7 @@ function calcs.initEnv(build, mode, override, specEnv) local nodesModsList = calcs.buildModListForNodeList(env, env.allocNodes, true, true) env.useAltGemQualityStats = nodesModsList:Flag(nil, "GemlingQuality") + local canUseBonded = nodesModsList:Flag(nil, "CanUseBonded") if allocatedNotableCount and allocatedNotableCount > 0 then modDB:NewMod("Multiplier:AllocatedNotable", "BASE", allocatedNotableCount) @@ -1138,7 +1139,7 @@ function calcs.initEnv(build, mode, override, specEnv) for _, slot in pairs(build.itemsTab.orderedSlots) do local slotName = slot.slotName if items[slotName] then - local srcList = items[slotName].modList or items[slotName].slotModList[slot.slotNum] or {} + local srcList = items[slotName]:GetActiveModListForSlotNum(slot.slotNum, canUseBonded) for _, mod in ipairs(srcList) do -- checks if it disables another slot for _, tag in ipairs(mod) do @@ -1235,7 +1236,7 @@ function calcs.initEnv(build, mode, override, specEnv) if item then env.player.itemList[slotName] = item -- Merge mods for this item - local srcList = item.modList or (item.slotModList and item.slotModList[slot.slotNum]) or {} + local srcList = item:GetActiveModListForSlotNum(slot.slotNum, canUseBonded) local corruptedJewelEffect = slot.nodeId and getCorruptedJewelEffect(env, item, node) or 0 -- Remove Spirit Base if CannotGainSpiritFromEquipment flag is true @@ -1543,7 +1544,7 @@ function calcs.initEnv(build, mode, override, specEnv) if env.player.itemList["Weapon 2"] and env.player.itemList["Weapon 2"].type == "Quiver" then local quiverEffectMod = env.modDB:Sum("INC", nil, "EffectOfBonusesFromQuiver") / 100 - local modList = env.player.itemList["Weapon 2"].modList + local modList = env.player.itemList["Weapon 2"]:GetActiveModListForSlotNum(2, canUseBonded) for _, mod in ipairs(modList) do local modCopy = copyTable(mod) modCopy.source = "Many Sources:".. colorCodes.SOURCE .. tostring(quiverEffectMod * 100) .. "% Quiver Bonus Effect" @@ -1553,7 +1554,7 @@ function calcs.initEnv(build, mode, override, specEnv) if env.player.itemList["Amulet"] and env.player.itemList["Amulet"].type == "Amulet" then local amuletEffectMod = env.modDB:Sum("INC", nil, "EffectOfBonusesFromAmulet") / 100 - local modList = env.player.itemList["Amulet"].modList + local modList = env.player.itemList["Amulet"]:GetActiveModListForSlotNum(nil, canUseBonded) for _, mod in ipairs(modList) do local modCopy = copyTable(mod) modCopy.source = "Many Sources:".. colorCodes.SOURCE .. tostring(amuletEffectMod * 100) .. "% Amulet Bonus Effect" diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 880dcdb41f..f180ec7750 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -1442,8 +1442,6 @@ local preFlagList = { ["^enemies in your presence "] = { applyToEnemy = true, tag = { type = "ActorCondition", actor = "enemy", var = "EnemyInPresence" } }, ["^enemies in your presence [hgd][ae][via][enl] "] = { applyToEnemy = true, tag = { type = "ActorCondition", actor = "enemy", var = "EnemyInPresence" } }, ["^body armour grants "] = { tag = { type = "ItemCondition", itemSlot = "Body Armour", rarityCond = "NORMAL" } }, - -- Bonded - ["^bonded: "] = { tag = { type = "Condition", var = "CanUseBondedModifiers" } }, } -- List of modifier tags @@ -3443,7 +3441,10 @@ local specialModList = { ["inevitable critical hits"] = { flag("InevitableCriticalHits") }, ["walk the paths not taken"] = { }, ["gain the benefits of bonded modifiers on runes and idols"] = { - flag("Condition:CanUseBondedModifiers"), + flag("CanUseBonded"), + }, + ["idols socketed in this item gain the benefits of their bonded modifiers"] = { + flag("SocketedIdolsUseBondedModifiers"), }, -- Item local modifiers ["has no sockets"] = { flag("NoSockets") },