diff --git a/spec/System/TestItemParse_spec.lua b/spec/System/TestItemParse_spec.lua index 40bd27167..0f928ae66 100644 --- a/spec/System/TestItemParse_spec.lua +++ b/spec/System/TestItemParse_spec.lua @@ -438,7 +438,7 @@ describe("TestItemParse", function() ]]) assert.are.equals(3, item.itemSocketCount) - assert.are.same({ "Greater Glacial Rune", "Greater Body Rune" }, item.runes) + 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) diff --git a/spec/System/TestSocketables_spec.lua b/spec/System/TestSocketables_spec.lua index 215549523..afe9334b0 100644 --- a/spec/System/TestSocketables_spec.lua +++ b/spec/System/TestSocketables_spec.lua @@ -3,25 +3,6 @@ describe("TestSocketables", function() newBuild() end) - it("ModRunes matches Data/Soulcores", function() - local modRunes = LoadModule("../src/Data/ModRunes") - local soulCores = {} - LoadModule("../src/Data/Bases/soulcore", soulCores) - local soulCoreCount = 0 - for name, _ in pairs(soulCores) do - assert.is_not.equals(modRunes[name], nil) - soulCoreCount = soulCoreCount + 1 - end - - local modRunesCount = 0 - for name, _ in pairs(modRunes) do - assert.is_not.equals(soulCores[name], nil) - modRunesCount = modRunesCount + 1 - end - -- Final check that Bases/soulcore has same number of entries as ModRunes - assert.are.equals(modRunesCount, soulCoreCount) - end) - -- Item Tab display Tests -- Also checks slot type runes diff --git a/src/Classes/Item.lua b/src/Classes/Item.lua index 6a4da19a2..6c54e83ec 100644 --- a/src/Classes/Item.lua +++ b/src/Classes/Item.lua @@ -60,7 +60,7 @@ end local ItemClass = newClass("Item", function(self, raw, rarity, highQuality) if raw then self:ParseRaw(sanitiseText(raw), rarity, highQuality) - end + end end) local lineFlags = { @@ -395,7 +395,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) local linePrefix = "" local linePostfix = "" - while self.rawLines[l] do + while self.rawLines[l] do local line = self.rawLines[l] if flaskBuffLines and flaskBuffLines[line] then flaskBuffLines[line] = nil @@ -687,8 +687,8 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) self.requirements[specName:sub(1,3):lower()] = specToNumber(specVal) elseif specName == "Critical Hit Range" or specName == "Attacks per Second" or specName == "Weapon Range" or specName == "Critical Hit Chance" or specName == "Physical Damage" or specName == "Elemental Damage" or - specName == "Chaos Damage" or specName == "Fire Damage" or specName == "Cold Damage" or specName == "Lightning Damage" or - specName == "Reload Time" or specName == "Chance to Block" or specName == "Block chance" or + specName == "Chaos Damage" or specName == "Fire Damage" or specName == "Cold Damage" or specName == "Lightning Damage" or + specName == "Reload Time" or specName == "Chance to Block" or specName == "Block chance" or specName == "Armour" or specName == "Energy Shield" or specName == "Evasion" or specName == "Requires" then self.hidden_specs = true -- Anything else is an explicit with a colon in it (Fortress Covenant, Pure Talent, etc) unless it's part of the custom name @@ -869,7 +869,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) self.pendingAffixList = { pendingAffix } break end - end + end end end -- Use rolling Delta/Range in case one range is 1-3 and another is 1-100 so we get the finest precision possible @@ -894,7 +894,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) -- Use rolling Delta/Range in case one range is 1-3 and another is 1-100 so we get the finest precision possible local bestPrecisionDelta = -1 local bestPrecisionRange = -1 - + -- Replace non-number ranges as unsupported line = line:gsub("(%a+)%([%a%s]+%-[%a%s]+%)", "%1") @@ -1128,7 +1128,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) if result then -- we have found a valid combo for that rune category remainingRunes = remainingRunes - numRunes - -- this code should probably be refactored to based off stored self.runes rather than the recomputed amounts off the runeModLines this + -- this code should probably be refactored to based off stored self.runes rather than the recomputed amounts off the runeModLines this -- is too avoid having to run the relatively expensive recomputation every time the item is parsed even if we know the runes on the item already. modLine.soulCore = groupedRunes[1].name:match("Soul Core") ~= nil modLine.runeCount = numRunes @@ -1149,7 +1149,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) self.runes = { } end end - + if self.base and not self.requirements.level then if importedLevelReq and #self.sockets == 0 then -- Requirements on imported items can only be trusted for items with no sockets @@ -1173,7 +1173,7 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) end self.affixLimit = 0 if self.crafted then - if not self.affixes then + if not self.affixes then self.crafted = false elseif self.rarity == "MAGIC" then if self.prefixes.limit or self.suffixes.limit then @@ -1255,7 +1255,7 @@ function ItemClass:NormaliseQuality() elseif not self.uniqueID and not self.corrupted and not self.mirrored and not (self.base.type == "Charm") and self.quality < self.base.quality then -- charms cannot be modified by quality currency. self.quality = main.defaultItemQuality end - end + end end function ItemClass:GetModSpawnWeight(mod, includeTags, excludeTags) @@ -1389,7 +1389,7 @@ function ItemClass:BuildRaw() if baseLine.variantList then writeModLine(baseLine) end - end + end if self.hasAltVariant then t_insert(rawLines, "Has Alt Variant: true") t_insert(rawLines, "Selected Alt Variant: " .. self.variantAlt) @@ -1483,7 +1483,7 @@ end -- Rebuild rune modifiers using the item's runes function ItemClass:UpdateRunes() wipeTable(self.runeModLines) - local getModRunesForTypes = function(runeName, baseType, specificType) + local getModRunesForTypes = function(runeName, baseType, specificType) local rune = data.itemMods.Runes[runeName] local gatheredRuneMods = { } if rune then @@ -1492,7 +1492,7 @@ function ItemClass:UpdateRunes() t_insert(gatheredRuneMods, rune[baseType]) -- end end - if rune[specificType] then + if rune[specificType] then -- for _, mod in pairs(rune[specificType]) do t_insert(gatheredRuneMods, rune[specificType]) -- end @@ -1500,13 +1500,18 @@ function ItemClass:UpdateRunes() end return gatheredRuneMods end - + local statOrder = {} for i = 1, self.itemSocketCount do local name = self.runes[i] if name and name ~= "None" then - local baseType = self.base.weapon and "weapon" or self.base.armour and "armour" or (self.base.tags.wand or self.base.tags.staff) and "caster" - local specificType = self.base.type:lower() + local subType = self.base.subType and self.base.subType:lower() + local itemType = self.base.type:lower() + local baseType = self.base.weapon and "weapon" or self.base.armour and "armour" or (self.base.tags.wand or self.base.tags.staff or self.base.tags.sceptre) and "caster" + local specificType = + (subType == "warstaff" and "warstaff") or + (itemType == "shield" and subType == "evasion" and "buckler") or + itemType local gatheredMods = getModRunesForTypes(name, baseType, specificType) for _, mod in ipairs(gatheredMods) do for i, modLine in ipairs(mod) do @@ -1528,12 +1533,11 @@ function ItemClass:UpdateRunes() end end statOrder[order] = modLine - end + end end end end end - end -- Rebuild explicit modifiers using the item's affixes @@ -1586,7 +1590,7 @@ function ItemClass:Craft() end end statOrder[order] = modLine - end + end end end end @@ -1601,7 +1605,7 @@ function ItemClass:Craft() end function ItemClass:CheckModLineVariant(modLine) - return not modLine.variantList + return not modLine.variantList or modLine.variantList[self.variant] or (self.hasAltVariant and modLine.variantList[self.variantAlt]) or (self.hasAltVariant2 and modLine.variantList[self.variantAlt2]) @@ -1718,7 +1722,7 @@ function ItemClass:BuildModListForSlotNum(baseList, slotNum) weaponData.AttackRate = round(self.base.weapon.AttackRateBase * (1 + weaponData.AttackSpeedInc / 100), 2) weaponData.rangeBonus = calcLocal(modList, "WeaponRange", "BASE", 0) + 10 * calcLocal(modList, "WeaponRangeMetre", "BASE", 0) + m_floor(self.quality / 10 * calcLocal(modList, "AlternateQualityLocalWeaponRangePer10Quality", "BASE", 0)) weaponData.range = self.base.weapon.Range + weaponData.rangeBonus - if self.base.weapon.ReloadTimeBase then + if self.base.weapon.ReloadTimeBase then weaponData.ReloadSpeedInc = calcLocal(modList, "ReloadSpeed", "INC", ModFlag.Attack) + weaponData.AttackSpeedInc weaponData.ReloadTime = round(self.base.weapon.ReloadTimeBase / (1 + weaponData.ReloadSpeedInc / 100), 2) end @@ -1898,11 +1902,11 @@ function ItemClass:BuildModListForSlotNum(baseList, slotNum) if jewelData.clusterJewelSkill and not self.clusterJewel.skills[jewelData.clusterJewelSkill] then jewelData.clusterJewelSkill = nil end - jewelData.clusterJewelValid = jewelData.clusterJewelKeystone - or ((jewelData.clusterJewelSkill or jewelData.clusterJewelSmallsAreNothingness) and jewelData.clusterJewelNodeCount) + jewelData.clusterJewelValid = jewelData.clusterJewelKeystone + or ((jewelData.clusterJewelSkill or jewelData.clusterJewelSmallsAreNothingness) and jewelData.clusterJewelNodeCount) or (jewelData.clusterJewelSocketCountOverride and jewelData.clusterJewelNothingnessCount) end - end + end return { unpack(modList) } end @@ -1947,7 +1951,7 @@ function ItemClass:BuildModList() if modLine.range then -- Check if line actually has a range if modLine.line:find("%((%-?%d+%.?%d*)%-(%-?%d+%.?%d*)%)") then - local strippedModeLine = modLine.line:gsub("\n"," ") + local strippedModeLine = modLine.line:gsub("\n"," ") local catalystScalar = getCatalystScalar(self.catalyst, modLine, self.catalystQuality) -- Put the modified value into the string local line = itemLib.applyRange(strippedModeLine, modLine.range, catalystScalar, modLine.corruptedRange) @@ -2058,9 +2062,9 @@ function ItemClass:BuildModList() self.requirements.dexMod = 0 self.requirements.intMod = 0 elseif calcLocal(baseList, "AttributeRequirementsConverted", "FLAG", 0) then - local strConversion = calcLocal(baseList, "AttributeRequirementsConvertedToStrength", "BASE", 0) / 100 - local dexConversion = calcLocal(baseList, "AttributeRequirementsConvertedToDexterity", "BASE", 0) / 100 - local intConversion = calcLocal(baseList, "AttributeRequirementsConvertedToIntelligence", "BASE", 0) / 100 + local strConversion = calcLocal(baseList, "AttributeRequirementsConvertedToStrength", "BASE", 0) / 100 + local dexConversion = calcLocal(baseList, "AttributeRequirementsConvertedToDexterity", "BASE", 0) / 100 + local intConversion = calcLocal(baseList, "AttributeRequirementsConvertedToIntelligence", "BASE", 0) / 100 self.requirements.intBase = intConversion * (self.requirements.str + self.requirements.dex) + (self.requirements.int + calcLocal(baseList, "IntRequirement", "BASE", 0)) - self.requirements.int * (strConversion + dexConversion) self.requirements.intMod = m_floor(self.requirements.intBase * (1 + calcLocal(baseList, "IntRequirement", "INC", 0) / 100)) self.requirements.dexBase = dexConversion * (self.requirements.str + self.requirements.int) + (self.requirements.dex + calcLocal(baseList, "DexRequirement", "BASE", 0)) - self.requirements.dex * (strConversion + intConversion) diff --git a/src/Classes/ItemsTab.lua b/src/Classes/ItemsTab.lua index 6ae291da3..f61e72ae4 100644 --- a/src/Classes/ItemsTab.lua +++ b/src/Classes/ItemsTab.lua @@ -15,7 +15,7 @@ local m_ceil = math.ceil local m_floor = math.floor local m_modf = math.modf -local rarityDropList = { +local rarityDropList = { { label = colorCodes.NORMAL.."Normal", rarity = "NORMAL" }, { label = colorCodes.MAGIC.."Magic", rarity = "MAGIC" }, { label = colorCodes.RARE.."Rare", rarity = "RARE" }, @@ -138,7 +138,7 @@ local ItemsTabClass = newClass("ItemsTab", "UndoHandler", "ControlHost", "Contro self.Control() self.build = build - + self.socketViewer = new("PassiveTreeView") self.items = { } @@ -336,13 +336,13 @@ local ItemsTabClass = newClass("ItemsTab", "UndoHandler", "ControlHost", "Contro self.selectedDB = "UNIQUE" end) self.controls.uniqueButton.locked = function() return self.selectedDB == "UNIQUE" end - + -- Rare Templates Button self.controls.rareButton = new("ButtonControl", {"LEFT",self.controls.selectDBLabel,"RIGHT"}, {120, 0, 110, 18}, "Rare Templates", function() self.selectedDB = "RARE" end) self.controls.rareButton.locked = function() return self.selectedDB == "RARE" end - + -- Unique database self.controls.uniqueDB = new("ItemDBControl", {"TOPLEFT",self.controls.itemList,"BOTTOMLEFT"}, {0, 76, 360, function(c) return m_min(244, self.maxY - select(2, c:GetPos())) end}, self, main.uniqueDB, "UNIQUE") self.controls.uniqueDB.y = function() @@ -351,7 +351,7 @@ local ItemsTabClass = newClass("ItemsTab", "UndoHandler", "ControlHost", "Contro self.controls.uniqueDB.shown = function() return not self.controls.selectDBLabel:IsShown() or self.selectedDB == "UNIQUE" end - + -- Rare template database self.controls.rareDB = new("ItemDBControl", {"TOPLEFT",self.controls.itemList,"BOTTOMLEFT"}, {0, 76, 360, function(c) return m_min(284, self.maxY - select(2, c:GetPos())) end}, self, main.rareDB, "RARE") self.controls.rareDB.y = function() @@ -359,30 +359,30 @@ local ItemsTabClass = newClass("ItemsTab", "UndoHandler", "ControlHost", "Contro end self.controls.rareDB.shown = function() return not self.controls.selectDBLabel:IsShown() or self.selectedDB == "RARE" - end + end -- Create/import item self.controls.craftDisplayItem = new("ButtonControl", {"TOPLEFT",main.portraitMode and self.controls.setManage or self.controls.itemList,"TOPRIGHT"}, {20, main.portraitMode and 0 or -20, 120, 20}, "Craft item...", function() self:CraftItem() end) self.controls.craftDisplayItem.shown = function() - return self.displayItem == nil + return self.displayItem == nil end self.controls.newDisplayItem = new("ButtonControl", {"TOPLEFT",self.controls.craftDisplayItem,"TOPRIGHT"}, {8, 0, 120, 20}, "Create custom...", function() self:EditDisplayItemText() end) - self.controls.displayItemTip = new("LabelControl", {"TOPLEFT",self.controls.craftDisplayItem,"BOTTOMLEFT"}, {0, 8, 100, 16}, + self.controls.displayItemTip = new("LabelControl", {"TOPLEFT",self.controls.craftDisplayItem,"BOTTOMLEFT"}, {0, 8, 100, 16}, [[^7Double-click an item from one of the lists, or copy and paste an item from in game (hover over the item and Ctrl+C) to view or edit -the item and add it to your build. You can -also clone an item within Path of Building by +the item and add it to your build. You can +also clone an item within Path of Building by copying and pasting it with Ctrl+C and Ctrl+V. -You can Control + Click an item to equip it, or -drag it onto the slot. This will also add it to +You can Control + Click an item to equip it, or +drag it onto the slot. This will also add it to your build if it's from the unique/template list. -If there's 2 slots an item can go in, +If there's 2 slots an item can go in, holding Shift will put it in the second.]]) self.controls.sharedItemList = new("SharedItemListControl", {"TOPLEFT",self.controls.craftDisplayItem, "BOTTOMLEFT"}, {0, 232, 340, 308}, self, true) @@ -412,11 +412,11 @@ holding Shift will put it in the second.]]) if not self.controls.displayItemVariant:IsShown() then return 0 end - return (28 + - (self.displayItem.hasAltVariant and 24 or 0) + - (self.displayItem.hasAltVariant2 and 24 or 0) + + return (28 + + (self.displayItem.hasAltVariant and 24 or 0) + + (self.displayItem.hasAltVariant2 and 24 or 0) + (self.displayItem.hasAltVariant3 and 24 or 0) + - (self.displayItem.hasAltVariant4 and 24 or 0) + + (self.displayItem.hasAltVariant4 and 24 or 0) + (self.displayItem.hasAltVariant5 and 24 or 0)) end}) self.controls.displayItemVariant = new("DropDownControl", {"TOPLEFT", self.controls.displayItemSectionVariant,"TOPLEFT"}, {0, 0, 300, 20}, nil, function(index, value) @@ -514,7 +514,7 @@ holding Shift will put it in the second.]]) self.displayItem:BuildAndParseRaw() self:UpdateDisplayItemTooltip() end) - + -- Section: Enchant / Anoint / Corrupt self.controls.displayItemSectionEnchant = new("Control", {"TOPLEFT",self.controls.displayItemSectionSockets,"BOTTOMLEFT"}, {0, 0, 0, function() return (self.controls.displayItemAnoint:IsShown() or self.controls.displayItemCorrupt:IsShown() ) and 28 or 0 @@ -593,11 +593,11 @@ holding Shift will put it in the second.]]) function(index, value) self.displayItem.catalyst = index - 1 if not self.displayItem.catalystQuality then - if string.match(self.displayItem.name, "Breach Ring") then - self.displayItem.catalystQuality = 50 - else - self.displayItem.catalystQuality = 20 - end + if string.match(self.displayItem.name, "Breach Ring") then + self.displayItem.catalystQuality = 50 + else + self.displayItem.catalystQuality = 20 + end self.controls.displayItemCatalystQualityEdit:SetText(self.displayItem.catalystQuality) end if self.displayItem.crafted then @@ -641,7 +641,7 @@ holding Shift will put it in the second.]]) return self.displayItem and self.displayItem.crafted and self.displayItem.clusterJewel end } - + self.controls.displayItemClusterJewelNodeCountLabel = new("LabelControl", {"TOPLEFT",self.controls.displayItemClusterJewelSkill,"BOTTOMLEFT"}, {0, 7, 0, 14}, "^7Added Passives:") self.controls.displayItemClusterJewelNodeCount = new("SliderControl", {"LEFT",self.controls.displayItemClusterJewelNodeCountLabel,"RIGHT"}, {2, 0, 150, 20}, function(val) local divVal = self.controls.displayItemClusterJewelNodeCount:GetDivVal() @@ -693,7 +693,7 @@ holding Shift will put it in the second.]]) drop.shown = function() return self.displayItem and i <= self.displayItem.itemSocketCount and (self.displayItem.base.weapon or self.displayItem.base.armour or self.displayItem.base.tags.wand or self.displayItem.base.tags.staff or self.displayItem.base.tags.sceptre) end - + self.controls["displayItemRune"..i] = drop self.controls["displayItemRuneLabel"..i] = new("LabelControl", {"RIGHT",drop,"LEFT"}, {-4, 0, 0, 14}, "^7Rune #"..i) end @@ -745,7 +745,7 @@ holding Shift will put it in the second.]]) end return false end - + if priorMod then if flipRange(priorMod, self.displayItem.affixes[drop.list[drop.selIndex].modList[index]]) then range = 1 - range @@ -883,7 +883,7 @@ holding Shift will put it in the second.]]) else mod = self.displayItem.affixes[modList[1 + round((#modList - 1) * main.defaultItemAffixQuality)]] end - + -- Adding Mod self:AddModComparisonTooltip(tooltip, mod) end @@ -1165,17 +1165,17 @@ function ItemsTabClass:Save(xml) } for _, id in ipairs(self.itemOrderList) do local item = self.items[id] - local child = { - elem = "Item", - attrib = { - id = tostring(id), - variant = item.variant and tostring(item.variant), - variantAlt = item.variantAlt and tostring(item.variantAlt), + local child = { + elem = "Item", + attrib = { + id = tostring(id), + variant = item.variant and tostring(item.variant), + variantAlt = item.variantAlt and tostring(item.variantAlt), variantAlt2 = item.variantAlt2 and tostring(item.variantAlt2), - variantAlt3 = item.variantAlt3 and tostring(item.variantAlt3), - variantAlt4 = item.variantAlt4 and tostring(item.variantAlt4), + variantAlt3 = item.variantAlt3 and tostring(item.variantAlt3), + variantAlt4 = item.variantAlt4 and tostring(item.variantAlt4), variantAlt5 = item.variantAlt5 and tostring(item.variantAlt5) - } + } } item:BuildAndParseRaw() t_insert(child, item.raw) @@ -1282,9 +1282,9 @@ function ItemsTabClass:Draw(viewPort, inputEvents) end self.x = self.x - self.controls.scrollBarH.offset self.y = self.y - self.controls.scrollBarV.offset - + for _, event in ipairs(inputEvents) do - if event.type == "KeyDown" then + if event.type == "KeyDown" then if event.key == "v" and IsKeyDown("CTRL") then local newItem = Paste() if newItem then @@ -1359,7 +1359,7 @@ function ItemsTabClass:Draw(viewPort, inputEvents) -- Update weapon slots in case we got Giant's Blood from somewhere self.slots["Weapon 2"]:Populate() self.slots["Weapon 2 Swap"]:Populate() - + if main.portraitMode then self.controls.itemList:SetAnchor("TOPRIGHT", self.lastSlot, "BOTTOMRIGHT", 0, 40) else @@ -1560,12 +1560,12 @@ function ItemsTabClass:AddItem(item, noAutoEquip, index) end end end - + -- Add it to the list local replacing = self.items[item.id] self.items[item.id] = item item:BuildModList() - + if replacing and (replacing.clusterJewel or item.clusterJewel or replacing.baseName == "Timeless Jewel") then -- We're replacing an existing item, and either the new or old one is a cluster jewel if isValueInTable(self.build.spec.jewels, item.id) then @@ -1697,7 +1697,7 @@ function ItemsTabClass:CopyAnointsAndAugments(newItem, copyAugments, overwrite, local currentAnoint = currentItem.enchantModLines newItem.enchantModLines = currentAnoint end - + --https://www.poe2wiki.net/wiki/Augment_socket -- augments, given there are enough sockets @@ -1878,7 +1878,7 @@ function ItemsTabClass:UpdateAffixControls() else self:UpdateAffixControl(self.controls["displayItemAffix"..i], item, "Suffix", "suffixes", i - prefixLimit) end - end + end -- The custom affixes may have had their indexes changed, so the custom control UI is also rebuilt so that it will -- reference the correct affix index. self:UpdateCustomControls() @@ -1906,12 +1906,26 @@ function ItemsTabClass:UpdateRuneControls() -- Build rune selection for item local runes = { } for _, rune in pairs(runeModLines) do - if rune.slot == "None" or -- Needed "None" for Items Tab - item.base.type:lower() == rune.slot or - item.base.type == rune.slot or - item.base.weapon and rune.slot == "weapon" or - item.base.armour and rune.slot == "armour" or - (item.base.tags.wand or item.base.tags.staff) and rune.slot == "caster" then + local subType = item.base.subType and item.base.subType:lower() + local itemType = item.base.type:lower() + local function isRuneValidForSlot(runeSlot) + if runeSlot == "None" then + return true + elseif runeSlot == "warstaff" then + return subType == "warstaff" + elseif runeSlot == "buckler" then + return itemType == "shield" and subType == "evasion" + elseif runeSlot == "weapon" then + return item.base.weapon + elseif runeSlot == "armour" then + return item.base.armour + elseif runeSlot == "caster" then + return item.base.tags.wand or item.base.tags.staff or item.base.tags.sceptre + else + return itemType == runeSlot + end + end + if isRuneValidForSlot(rune.slot) then if item.title == "Atziri's Splendour" then if rune.slot == "None" or rune.type == "SoulCore" then table.insert(runes, rune) @@ -1956,7 +1970,7 @@ function ItemsTabClass:UpdateAffixControl(control, item, type, outputTable, outp end end end - if item.clusterJewel and item.clusterJewelSkill then + if item.clusterJewel and item.clusterJewelSkill then local skill = item.clusterJewel.skills[item.clusterJewelSkill] if skill then extraTags[skill.tag] = true @@ -2081,7 +2095,7 @@ function ItemsTabClass:UpdateCustomControls() local id = item.id self:CreateDisplayItemFromRaw(item:BuildRaw()) self.displayItem.id = id - end + end i = i + 1 end end @@ -2124,7 +2138,7 @@ end function ItemsTabClass:AddModComparisonTooltip(tooltip, mod) local slotName = self.displayItem:GetPrimarySlot() local newItem = new("Item", self.displayItem:BuildRaw()) - + for _, subMod in ipairs(mod) do t_insert(newItem.explicitModLines, { line = checkLineForAllocates(subMod, self.build.spec.nodes), modTags = mod.modTags, [mod.type or "Suffix"] = true }) end @@ -2134,7 +2148,7 @@ function ItemsTabClass:AddModComparisonTooltip(tooltip, mod) local calcFunc = self.build.calcsTab:GetMiscCalculator() local outputBase = calcFunc({ repSlotName = slotName, repItem = self.displayItem }) local outputNew = calcFunc({ repSlotName = slotName, repItem = newItem }) - self.build:AddStatComparesToTooltip(tooltip, outputBase, outputNew, "\nAdding this mod will give: ") + self.build:AddStatComparesToTooltip(tooltip, outputBase, outputNew, "\nAdding this mod will give: ") end -- Returns the first slot in which the given item is equipped @@ -2436,7 +2450,7 @@ function ItemsTabClass:EditDisplayItemText(alsoAddItem) tooltip:AddLine(14, "For Normal and Magic items, the base name must be somewhere in the first line. E.g.:") tooltip:AddLine(14, "Scholar's Platinum Kris of Joy") end - end + end controls.cancel = new("ButtonControl", nil, {45, 470, 80, 20}, "Cancel", function() main:ClosePopup() end) @@ -2540,7 +2554,7 @@ end function ItemsTabClass:AnointDisplayItem(enchantSlot) self.anointEnchantSlot = enchantSlot or 1 - local controls = { } + local controls = { } controls.notableDB = new("NotableDBControl", {"TOPLEFT",nil,"TOPLEFT"}, {10, 20, 360, 400}, self, self.build.spec.tree.nodes, "ANOINT") local function saveLabel() @@ -2569,7 +2583,7 @@ function ItemsTabClass:AnointDisplayItem(enchantSlot) controls.save.tooltipFunc = function(tooltip) tooltip:Clear() self:AppendAnointTooltip(tooltip, controls.notableDB.selValue) - end + end controls.close = new("ButtonControl", {"TOPLEFT", controls.save, "TOPRIGHT" }, {10, 0, 80, 20}, "Cancel", function() main:ClosePopup() end) @@ -2880,7 +2894,7 @@ function ItemsTabClass:CorruptDisplayItem() -- todo implement vaal orb new outco controls.save.tooltipFunc = function(tooltip) tooltip:Clear() self:AddItemTooltip(tooltip, corruptItem(controls.enchant1.shown), nil, true) - end + end controls.close = new("ButtonControl", nil, {45, 69 + enchantNum * 20, 80, 20}, "Cancel", function() main:ClosePopup() end) @@ -3110,11 +3124,11 @@ function ItemsTabClass:AddCustomModifierToDisplayItem() controls.save.tooltipFunc = function(tooltip) tooltip:Clear() self:AddItemTooltip(tooltip, addModifier()) - end + end controls.close = new("ButtonControl", nil, {45, 75, 80, 20}, "Cancel", function() main:ClosePopup() end) - main:OpenPopup(710, 105, "Add Modifier to Item", controls, "save", sourceList[controls.source.selIndex].sourceId == "CUSTOM" and "custom") + main:OpenPopup(710, 105, "Add Modifier to Item", controls, "save", sourceList[controls.source.selIndex].sourceId == "CUSTOM" and "custom") end function ItemsTabClass:AddItemSetTooltip(tooltip, itemSet) @@ -3242,7 +3256,7 @@ function ItemsTabClass:AddItemTooltip(tooltip, item, slot, dbMode, maxWidth) end tooltip:AddLine(fontSizeBig, elemLine, "FONTIN SC") tooltip:AddLine(fontSizeBig, s_format("^x7F7F7FElemental DPS: "..colorCodes.MAGIC.."%.1f", weaponData.ElementalDPS), "FONTIN SC") - totalDamageTypes = totalDamageTypes + 1 + totalDamageTypes = totalDamageTypes + 1 end if weaponData.ChaosDPS then tooltip:AddLine(fontSizeBig, s_format("^x7F7F7FChaos Damage: "..colorCodes.CHAOS.."%d-%d "..colorCodes.MAGIC.."(%.1f DPS)", weaponData.ChaosMin, weaponData.ChaosMax, weaponData.ChaosDPS), "FONTIN SC") @@ -3318,7 +3332,7 @@ function ItemsTabClass:AddItemTooltip(tooltip, item, slot, dbMode, maxWidth) elseif base.charm then -- Charm-specific info local charmData = item.charmData - + tooltip:AddLine(fontSizeBig, s_format("^x7F7F7FLasts %s%.2f ^x7F7F7FSeconds", main:StatColor(charmData.duration, base.charm.duration), charmData.duration), "FONTIN SC") tooltip:AddLine(fontSizeBig, s_format("^x7F7F7FConsumes %s%d ^x7F7F7Fof %s%d ^x7F7F7FCharges on use", main:StatColor(charmData.chargesUsed, base.charm.chargesUsed), charmData.chargesUsed, @@ -3358,7 +3372,7 @@ function ItemsTabClass:AddItemTooltip(tooltip, item, slot, dbMode, maxWidth) end end end - + if item.catalyst and item.catalyst > 0 and item.catalyst <= #catalystQualityFormat and item.catalystQuality and item.catalystQuality > 0 then tooltip:AddLine(fontSizeBig, s_format(catalystQualityFormat[item.catalyst], item.catalystQuality), "FONTIN SC") tooltip:AddSeparator(10) @@ -3388,8 +3402,8 @@ function ItemsTabClass:AddItemTooltip(tooltip, item, slot, dbMode, maxWidth) end -- Requirements - self.build:AddRequirementsToTooltip(tooltip, item.requirements.level, - item.requirements.strMod, item.requirements.dexMod, item.requirements.intMod, + self.build:AddRequirementsToTooltip(tooltip, item.requirements.level, + item.requirements.strMod, item.requirements.dexMod, item.requirements.intMod, item.requirements.str or 0, item.requirements.dex or 0, item.requirements.int or 0) -- Modifiers @@ -3401,14 +3415,14 @@ function ItemsTabClass:AddItemTooltip(tooltip, item, slot, dbMode, maxWidth) local node = self.build.spec.nodes[slot.nodeId] if node and node.containJewelSocket then local jewelEffect = node.modList:Sum("INC", nil, "SocketedJewelEffect") - extraTooltip = "^x7F7F7FSocketed Jewel Effect: " + extraTooltip = "^x7F7F7FSocketed Jewel Effect: " if jewelEffect > 0 then extraTooltip = extraTooltip .. s_format(colorCodes.MAGIC.."+%d%%", jewelEffect) tooltip:AddSeparator(10) tooltip:AddLine(fontSizeBig, extraTooltip, "FONTIN SC") tooltip:AddSeparator(10) end - + scale = scale + (jewelEffect / 100) end end diff --git a/src/Data/Bases/soulcore.lua b/src/Data/Bases/soulcore.lua deleted file mode 100644 index 394ff14f1..000000000 --- a/src/Data/Bases/soulcore.lua +++ /dev/null @@ -1,744 +0,0 @@ --- This file is automatically generated, do not edit! --- Item data (c) Grinding Gear Games -local itemBases = ... - -itemBases["Hayoxi's Soul Core of Heatproofing"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier3 = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Zalatl's Soul Core of Insulation"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier3 = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Topotante's Soul Core of Dampening"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier3 = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Atmohua's Soul Core of Retreat"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier3 = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Quipolatl's Soul Core of Flow"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier3 = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Tzamoto's Soul Core of Ferocity"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier3 = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Uromoti's Soul Core of Attenuation"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier3 = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Opiloti's Soul Core of Assault"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier3 = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Guatelitzi's Soul Core of Endurance"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier3 = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Xopec's Soul Core of Power"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier3 = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Estazunti's Soul Core of Convalescence"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier3 = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Tacati's Soul Core of Affliction"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier3 = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Cholotl's Soul Core of War"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier3 = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Citaqualotl's Soul Core of Foulness"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier3 = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Xipocado's Soul Core of Dominion"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier3 = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Soul Core of Tacati"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier1 = true, }, - implicitModTypes = { }, - req = { level = 35, }, -} -itemBases["Soul Core of Opiloti"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier1 = true, }, - implicitModTypes = { }, - req = { level = 35, }, -} -itemBases["Soul Core of Jiquani"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier2 = true, }, - implicitModTypes = { }, - req = { level = 35, }, -} -itemBases["Soul Core of Zalatl"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier2 = true, }, - implicitModTypes = { }, - req = { level = 35, }, -} -itemBases["Soul Core of Citaqualotl"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier1 = true, }, - implicitModTypes = { }, - req = { level = 35, }, -} -itemBases["Soul Core of Puhuarte"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier2 = true, }, - implicitModTypes = { }, - req = { level = 35, }, -} -itemBases["Soul Core of Tzamoto"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier2 = true, }, - implicitModTypes = { }, - req = { level = 35, }, -} -itemBases["Soul Core of Xopec"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier2 = true, }, - implicitModTypes = { }, - req = { level = 35, }, -} -itemBases["Soul Core of Azcapa"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier2 = true, }, - implicitModTypes = { }, - req = { level = 35, }, -} -itemBases["Soul Core of Topotante"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier1 = true, }, - implicitModTypes = { }, - req = { level = 35, }, -} -itemBases["Soul Core of Quipolatl"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier2 = true, }, - implicitModTypes = { }, - req = { level = 35, }, -} -itemBases["Soul Core of Ticaba"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier2 = true, }, - implicitModTypes = { }, - req = { level = 35, }, -} -itemBases["Soul Core of Atmohua"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier2 = true, }, - implicitModTypes = { }, - req = { level = 35, }, -} -itemBases["Soul Core of Cholotl"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier2 = true, }, - implicitModTypes = { }, - req = { level = 35, }, -} -itemBases["Soul Core of Zantipi"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_tier2 = true, }, - implicitModTypes = { }, - req = { level = 35, }, -} -itemBases["Amanamu's Gaze"] = { - type = "SoulCore", - tags = { abyssal_eye = true, default = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Kurgal's Gaze"] = { - type = "SoulCore", - tags = { abyssal_eye = true, default = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Tecrod's Gaze"] = { - type = "SoulCore", - tags = { abyssal_eye = true, default = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Ulaman's Gaze"] = { - type = "SoulCore", - tags = { abyssal_eye = true, default = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Jiquani's Thesis"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_vaal = true }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Quipolatl's Thesis"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_vaal = true }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Guatelitzi's Thesis"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_vaal = true }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Citaqualotl's Thesis"] = { - type = "SoulCore", - tags = { default = true, soul_core = true, soul_core_vaal = true }, - implicitModTypes = { }, - req = { level = 65, }, -} - -itemBases["Desert Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_normal = true, }, - implicitModTypes = { }, - req = { level = 31, }, -} -itemBases["Glacial Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_normal = true, }, - implicitModTypes = { }, - req = { level = 31, }, -} -itemBases["Storm Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_normal = true, }, - implicitModTypes = { }, - req = { level = 31, }, -} -itemBases["Iron Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_normal = true, }, - implicitModTypes = { }, - req = { level = 31, }, -} -itemBases["Body Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_normal = true, }, - implicitModTypes = { }, - req = { level = 37, }, -} -itemBases["Mind Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_normal = true, }, - implicitModTypes = { }, - req = { level = 37, }, -} -itemBases["Rebirth Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_normal = true, }, - implicitModTypes = { }, - req = { level = 45, }, -} -itemBases["Inspiration Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_normal = true, }, - implicitModTypes = { }, - req = { level = 45, }, -} -itemBases["Stone Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_normal = true, }, - implicitModTypes = { }, - req = { level = 41, }, -} -itemBases["Vision Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_normal = true, }, - implicitModTypes = { }, - req = { level = 41, }, -} -itemBases["Lesser Desert Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_lesser = true, }, - implicitModTypes = { }, - req = { level = 5, }, -} -itemBases["Lesser Glacial Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_lesser = true, }, - implicitModTypes = { }, - req = { level = 5, }, -} -itemBases["Lesser Storm Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_lesser = true, }, - implicitModTypes = { }, - req = { level = 5, }, -} -itemBases["Lesser Iron Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_lesser = true, }, - implicitModTypes = { }, - req = { level = 5, }, -} -itemBases["Lesser Body Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_lesser = true, }, - implicitModTypes = { }, - req = { level = 11, }, -} -itemBases["Lesser Mind Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_lesser = true, }, - implicitModTypes = { }, - req = { level = 11, }, -} -itemBases["Lesser Rebirth Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_lesser = true, }, - implicitModTypes = { }, - req = { level = 21, }, -} -itemBases["Lesser Inspiration Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_lesser = true, }, - implicitModTypes = { }, - req = { level = 21, }, -} -itemBases["Lesser Stone Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_lesser = true, }, - implicitModTypes = { }, - req = { level = 16, }, -} -itemBases["Lesser Vision Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_lesser = true, }, - implicitModTypes = { }, - req = { level = 16, }, -} -itemBases["Greater Desert Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_greater = true, }, - implicitModTypes = { }, - req = { level = 52, }, -} -itemBases["Greater Glacial Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_greater = true, }, - implicitModTypes = { }, - req = { level = 52, }, -} -itemBases["Greater Storm Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_greater = true, }, - implicitModTypes = { }, - req = { level = 52, }, -} -itemBases["Greater Iron Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_greater = true, }, - implicitModTypes = { }, - req = { level = 52, }, -} -itemBases["Greater Body Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_greater = true, }, - implicitModTypes = { }, - req = { level = 57, }, -} -itemBases["Greater Mind Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_greater = true, }, - implicitModTypes = { }, - req = { level = 57, }, -} -itemBases["Greater Rebirth Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_greater = true, }, - implicitModTypes = { }, - req = { level = 62, }, -} -itemBases["Greater Inspiration Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_greater = true, }, - implicitModTypes = { }, - req = { level = 62, }, -} -itemBases["Greater Stone Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_greater = true, }, - implicitModTypes = { }, - req = { level = 59, }, -} -itemBases["Greater Vision Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_greater = true, }, - implicitModTypes = { }, - req = { level = 59, }, -} -itemBases["Lesser Robust Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_lesser = true, }, - implicitModTypes = { }, - req = { level = 5, }, -} -itemBases["Robust Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_normal = true, }, - implicitModTypes = { }, - req = { level = 31, }, -} -itemBases["Greater Robust Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_greater = true, }, - implicitModTypes = { }, - req = { level = 52, }, -} -itemBases["Lesser Adept Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_lesser = true, }, - implicitModTypes = { }, - req = { level = 5, }, -} -itemBases["Adept Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_normal = true, }, - implicitModTypes = { }, - req = { level = 31, }, -} -itemBases["Greater Adept Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_greater = true, }, - implicitModTypes = { }, - req = { level = 52, }, -} -itemBases["Lesser Resolve Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_lesser = true, }, - implicitModTypes = { }, - req = { level = 5, }, -} -itemBases["Resolve Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_normal = true, }, - implicitModTypes = { }, - req = { level = 31, }, -} -itemBases["Greater Resolve Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_greater = true, }, - implicitModTypes = { }, - req = { level = 52, }, -} -itemBases["Lesser Tempered Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_lesser = true, }, - implicitModTypes = { }, - req = { level = 5, }, -} -itemBases["Tempered Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_normal = true, }, - implicitModTypes = { }, - req = { level = 31, }, -} -itemBases["Greater Tempered Rune"] = { - type = "Rune", - tags = { default = true, rune = true, rune_greater = true, }, - implicitModTypes = { }, - req = { level = 52, }, -} -itemBases["Greater Rune of Leadership"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Greater Rune of Tithing"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Greater Rune of Alacrity"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Greater Rune of Nobility"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Hedgewitch Assandra's Rune of Wisdom"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Saqawal's Rune of the Sky"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Fenumus' Rune of Agony"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Farrul's Rune of Grace"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Farrul's Rune of the Chase"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Craiceann's Rune of Warding"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Saqawal's Rune of Memory"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Saqawal's Rune of Erosion"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Farrul's Rune of the Hunt"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Craiceann's Rune of Recovery"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Courtesan Mannan's Rune of Cruelty"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Thane Grannell's Rune of Mastery"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Fenumus' Rune of Spinning"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Countess Seske's Rune of Archery"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Thane Girt's Rune of Wildness"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Fenumus' Rune of Draining"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Thane Myrk's Rune of Summer"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Lady Hestra's Rune of Winter"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["Thane Leld's Rune of Spring"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["The Greatwolf's Rune of Claws"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} -itemBases["The Greatwolf's Rune of Willpower"] = { - type = "Rune", - tags = { default = true, rune = true, }, - implicitModTypes = { }, - req = { level = 65, }, -} - -itemBases["Idol of Sirrius"] = { - type = "Idol", - tags = { default = true, idol = true, vivid_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Idol of Thruldana"] = { - type = "Idol", - tags = { default = true, idol = true, primal_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Idol of Grold"] = { - type = "Idol", - tags = { default = true, idol = true, wild_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Idol of Eeshta"] = { - type = "Idol", - tags = { default = true, idol = true, primal_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Idol of Egrin"] = { - type = "Idol", - tags = { default = true, idol = true, vivid_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Idol of Maxarius"] = { - type = "Idol", - tags = { default = true, idol = true, vivid_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Idol of Ralakesh"] = { - type = "Idol", - tags = { default = true, idol = true, primal_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Snake Idol"] = { - type = "Idol", - tags = { default = true, idol = true, primal_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Primate Idol"] = { - type = "Idol", - tags = { default = true, idol = true, primal_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Owl Idol"] = { - type = "Idol", - tags = { default = true, idol = true, primal_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Cat Idol"] = { - type = "Idol", - tags = { default = true, idol = true, vivid_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Wolf Idol"] = { - type = "Idol", - tags = { default = true, idol = true, vivid_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Stag Idol"] = { - type = "Idol", - tags = { default = true, idol = true, vivid_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Boar Idol"] = { - type = "Idol", - tags = { default = true, idol = true, wild_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Bear Idol"] = { - type = "Idol", - tags = { default = true, idol = true, wild_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Ox Idol"] = { - type = "Idol", - tags = { default = true, idol = true, wild_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Rabbit Idol"] = { - type = "Idol", - tags = { default = true, idol = true, sacred_idol = true, }, - implicitModTypes = { }, - req = { }, -} -itemBases["Fox Idol"] = { - type = "Idol", - tags = { default = true, idol = true, sacred_idol = true, }, - implicitModTypes = { }, - req = { }, -} diff --git a/src/Data/ModRunes.lua b/src/Data/ModRunes.lua index 841a974af..788bec0d9 100644 --- a/src/Data/ModRunes.lua +++ b/src/Data/ModRunes.lua @@ -6,7 +6,7 @@ return { ["helmet"] = { type = "SoulCore", "+40% of Armour also applies to Cold Damage", - statOrder = { 4512 }, + statOrder = { 4635 }, tradeHashes = { [1947060170] = { "+40% of Armour also applies to Cold Damage" }, }, rank = { 50 }, }, @@ -15,7 +15,7 @@ return { ["boots"] = { type = "SoulCore", "+40% of Armour also applies to Lightning Damage", - statOrder = { 4514 }, + statOrder = { 4637 }, tradeHashes = { [2200571612] = { "+40% of Armour also applies to Lightning Damage" }, }, rank = { 50 }, }, @@ -24,7 +24,7 @@ return { ["gloves"] = { type = "SoulCore", "+40% of Armour also applies to Fire Damage", - statOrder = { 4513 }, + statOrder = { 4636 }, tradeHashes = { [3897831687] = { "+40% of Armour also applies to Fire Damage" }, }, rank = { 50 }, }, @@ -32,16 +32,18 @@ return { ["Atmohua's Soul Core of Retreat"] = { ["body armour"] = { type = "SoulCore", - "30% faster start of Energy Shield Recharge", - statOrder = { 967 }, - tradeHashes = { [1782086450] = { "30% faster start of Energy Shield Recharge" }, }, + "Gain additional Ailment Threshold equal to 15% of maximum Energy Shield", + "Gain additional Stun Threshold equal to 15% of maximum Energy Shield", + statOrder = { 4255, 10097 }, + tradeHashes = { [3398301358] = { "Gain additional Ailment Threshold equal to 15% of maximum Energy Shield" }, [416040624] = { "Gain additional Stun Threshold equal to 15% of maximum Energy Shield" }, }, rank = { 50 }, }, ["focus"] = { type = "SoulCore", - "30% faster start of Energy Shield Recharge", - statOrder = { 967 }, - tradeHashes = { [1782086450] = { "30% faster start of Energy Shield Recharge" }, }, + "Gain additional Ailment Threshold equal to 15% of maximum Energy Shield", + "Gain additional Stun Threshold equal to 15% of maximum Energy Shield", + statOrder = { 4255, 10097 }, + tradeHashes = { [3398301358] = { "Gain additional Ailment Threshold equal to 15% of maximum Energy Shield" }, [416040624] = { "Gain additional Stun Threshold equal to 15% of maximum Energy Shield" }, }, rank = { 50 }, }, }, @@ -50,7 +52,7 @@ return { type = "SoulCore", "8% increased Skill Effect Duration", "8% increased Cooldown Recovery Rate", - statOrder = { 1572, 4539 }, + statOrder = { 1643, 4666 }, tradeHashes = { [1004011302] = { "8% increased Cooldown Recovery Rate" }, [3377888098] = { "8% increased Skill Effect Duration" }, }, rank = { 50 }, }, @@ -59,7 +61,7 @@ return { ["helmet"] = { type = "SoulCore", "+4 to Maximum Rage", - statOrder = { 9032 }, + statOrder = { 9568 }, tradeHashes = { [1181501418] = { "+4 to Maximum Rage" }, }, rank = { 50 }, }, @@ -69,7 +71,7 @@ return { type = "SoulCore", "15% increased Curse Duration", "15% increased Poison Duration", - statOrder = { 1466, 2786 }, + statOrder = { 1538, 2894 }, tradeHashes = { [2011656677] = { "15% increased Poison Duration" }, [3824372849] = { "15% increased Curse Duration" }, }, rank = { 50 }, }, @@ -78,14 +80,21 @@ return { ["weapon"] = { type = "SoulCore", "50% chance when you gain a Frenzy Charge to gain an additional Frenzy Charge", - statOrder = { 5144 }, + statOrder = { 5507 }, tradeHashes = { [2916861134] = { "50% chance when you gain a Frenzy Charge to gain an additional Frenzy Charge" }, }, rank = { 50 }, }, - ["caster"] = { + ["wand"] = { + type = "SoulCore", + "50% chance when you gain a Frenzy Charge to gain an additional Frenzy Charge", + statOrder = { 5507 }, + tradeHashes = { [2916861134] = { "50% chance when you gain a Frenzy Charge to gain an additional Frenzy Charge" }, }, + rank = { 50 }, + }, + ["staff"] = { type = "SoulCore", "50% chance when you gain a Frenzy Charge to gain an additional Frenzy Charge", - statOrder = { 5144 }, + statOrder = { 5507 }, tradeHashes = { [2916861134] = { "50% chance when you gain a Frenzy Charge to gain an additional Frenzy Charge" }, }, rank = { 50 }, }, @@ -94,14 +103,21 @@ return { ["weapon"] = { type = "SoulCore", "50% chance when you gain an Endurance Charge to gain an additional Endurance Charge", - statOrder = { 5143 }, + statOrder = { 5506 }, tradeHashes = { [1228682002] = { "50% chance when you gain an Endurance Charge to gain an additional Endurance Charge" }, }, rank = { 50 }, }, - ["caster"] = { + ["wand"] = { + type = "SoulCore", + "50% chance when you gain an Endurance Charge to gain an additional Endurance Charge", + statOrder = { 5506 }, + tradeHashes = { [1228682002] = { "50% chance when you gain an Endurance Charge to gain an additional Endurance Charge" }, }, + rank = { 50 }, + }, + ["staff"] = { type = "SoulCore", "50% chance when you gain an Endurance Charge to gain an additional Endurance Charge", - statOrder = { 5143 }, + statOrder = { 5506 }, tradeHashes = { [1228682002] = { "50% chance when you gain an Endurance Charge to gain an additional Endurance Charge" }, }, rank = { 50 }, }, @@ -110,14 +126,21 @@ return { ["weapon"] = { type = "SoulCore", "50% chance when you gain a Power Charge to gain an additional Power Charge", - statOrder = { 5145 }, + statOrder = { 5508 }, tradeHashes = { [3537994888] = { "50% chance when you gain a Power Charge to gain an additional Power Charge" }, }, rank = { 50 }, }, - ["caster"] = { + ["wand"] = { + type = "SoulCore", + "50% chance when you gain a Power Charge to gain an additional Power Charge", + statOrder = { 5508 }, + tradeHashes = { [3537994888] = { "50% chance when you gain a Power Charge to gain an additional Power Charge" }, }, + rank = { 50 }, + }, + ["staff"] = { type = "SoulCore", "50% chance when you gain a Power Charge to gain an additional Power Charge", - statOrder = { 5145 }, + statOrder = { 5508 }, tradeHashes = { [3537994888] = { "50% chance when you gain a Power Charge to gain an additional Power Charge" }, }, rank = { 50 }, }, @@ -126,14 +149,14 @@ return { ["boots"] = { type = "SoulCore", "12% increased speed of Recoup Effects", - statOrder = { 9084 }, + statOrder = { 9622 }, tradeHashes = { [2363593824] = { "12% increased speed of Recoup Effects" }, }, rank = { 50 }, }, ["helmet"] = { type = "SoulCore", "8% of Damage taken Recouped as Life", - statOrder = { 970 }, + statOrder = { 1036 }, tradeHashes = { [1444556985] = { "8% of Damage taken Recouped as Life" }, }, rank = { 50 }, }, @@ -142,7 +165,7 @@ return { ["helmet"] = { type = "SoulCore", "Enemies you Curse have -5% to Chaos Resistance", - statOrder = { 3617 }, + statOrder = { 3714 }, tradeHashes = { [1772929282] = { "Enemies you Curse have -5% to Chaos Resistance" }, }, rank = { 50 }, }, @@ -151,7 +174,7 @@ return { ["bow"] = { type = "SoulCore", "20% increased Projectile Speed", - statOrder = { 875 }, + statOrder = { 896 }, tradeHashes = { [3759663284] = { "20% increased Projectile Speed" }, }, rank = { 50 }, }, @@ -160,23 +183,30 @@ return { ["weapon"] = { type = "SoulCore", "Adds 19 to 29 Chaos damage", - statOrder = { 1227 }, + statOrder = { 1290 }, tradeHashes = { [2223678961] = { "Adds 19 to 29 Chaos damage" }, }, rank = { 50 }, }, }, ["Xipocado's Soul Core of Dominion"] = { - ["caster"] = { + ["wand"] = { + type = "SoulCore", + "Minions deal 40% increased Damage with Command Skills", + statOrder = { 8992 }, + tradeHashes = { [3742865955] = { "Minions deal 40% increased Damage with Command Skills" }, }, + rank = { 50 }, + }, + ["staff"] = { type = "SoulCore", "Minions deal 40% increased Damage with Command Skills", - statOrder = { 8473 }, + statOrder = { 8992 }, tradeHashes = { [3742865955] = { "Minions deal 40% increased Damage with Command Skills" }, }, rank = { 50 }, }, ["sceptre"] = { type = "SoulCore", "Minions deal 40% increased Damage with Command Skills", - statOrder = { 8473 }, + statOrder = { 8992 }, tradeHashes = { [3742865955] = { "Minions deal 40% increased Damage with Command Skills" }, }, rank = { 50 }, }, @@ -185,14 +215,14 @@ return { ["weapon"] = { type = "SoulCore", "15% chance to Poison on Hit with this weapon", - statOrder = { 7334 }, + statOrder = { 7787 }, tradeHashes = { [3885634897] = { "15% chance to Poison on Hit with this weapon" }, }, rank = { 0 }, }, ["armour"] = { type = "SoulCore", "+11% to Chaos Resistance", - statOrder = { 961 }, + statOrder = { 1023 }, tradeHashes = { [2923486259] = { "+11% to Chaos Resistance" }, }, rank = { 0 }, }, @@ -201,14 +231,14 @@ return { ["weapon"] = { type = "SoulCore", "15% chance to cause Bleeding on Hit", - statOrder = { 2153 }, + statOrder = { 2262 }, tradeHashes = { [1519615863] = { "15% chance to cause Bleeding on Hit" }, }, rank = { 0 }, }, ["helmet"] = { type = "SoulCore", "20% increased Charm Charges gained", - statOrder = { 5227 }, + statOrder = { 5591 }, tradeHashes = { [3585532255] = { "20% increased Charm Charges gained" }, }, rank = { 0 }, }, @@ -217,14 +247,14 @@ return { ["weapon"] = { type = "SoulCore", "Recover 2% of maximum Life on Kill", - statOrder = { 1437 }, + statOrder = { 1509 }, tradeHashes = { [2023107756] = { "Recover 2% of maximum Life on Kill" }, }, rank = { 0 }, }, ["body armour"] = { type = "SoulCore", "3% increased maximum Life", - statOrder = { 870 }, + statOrder = { 888 }, tradeHashes = { [983749596] = { "3% increased maximum Life" }, }, rank = { 0 }, }, @@ -233,14 +263,14 @@ return { ["weapon"] = { type = "SoulCore", "Recover 2% of maximum Mana on Kill", - statOrder = { 1439 }, + statOrder = { 1511 }, tradeHashes = { [1030153674] = { "Recover 2% of maximum Mana on Kill" }, }, rank = { 0 }, }, ["helmet"] = { type = "SoulCore", "3% increased maximum Mana", - statOrder = { 872 }, + statOrder = { 893 }, tradeHashes = { [2748665614] = { "3% increased maximum Mana" }, }, rank = { 0 }, }, @@ -249,14 +279,14 @@ return { ["weapon"] = { type = "SoulCore", "30% increased Elemental Damage with Attacks", - statOrder = { 859 }, + statOrder = { 876 }, tradeHashes = { [387439868] = { "30% increased Elemental Damage with Attacks" }, }, rank = { 0 }, }, ["armour"] = { type = "SoulCore", "+5% to all Elemental Resistances", - statOrder = { 957 }, + statOrder = { 1012 }, tradeHashes = { [2901986750] = { "+5% to all Elemental Resistances" }, }, rank = { 0 }, }, @@ -265,14 +295,14 @@ return { ["weapon"] = { type = "SoulCore", "30% increased Flammability Magnitude", - statOrder = { 988 }, + statOrder = { 1054 }, tradeHashes = { [2968503605] = { "30% increased Flammability Magnitude" }, }, rank = { 0 }, }, ["gloves"] = { type = "SoulCore", "+1% to Maximum Fire Resistance", - statOrder = { 953 }, + statOrder = { 1008 }, tradeHashes = { [4095671657] = { "+1% to Maximum Fire Resistance" }, }, rank = { 0 }, }, @@ -281,14 +311,14 @@ return { ["weapon"] = { type = "SoulCore", "30% increased Freeze Buildup", - statOrder = { 990 }, + statOrder = { 1056 }, tradeHashes = { [473429811] = { "30% increased Freeze Buildup" }, }, rank = { 0 }, }, ["helmet"] = { type = "SoulCore", "+1% to Maximum Cold Resistance", - statOrder = { 954 }, + statOrder = { 1009 }, tradeHashes = { [3676141501] = { "+1% to Maximum Cold Resistance" }, }, rank = { 0 }, }, @@ -297,14 +327,14 @@ return { ["weapon"] = { type = "SoulCore", "30% increased chance to Shock", - statOrder = { 992 }, + statOrder = { 1058 }, tradeHashes = { [293638271] = { "30% increased chance to Shock" }, }, rank = { 0 }, }, ["boots"] = { type = "SoulCore", "+1% to Maximum Lightning Resistance", - statOrder = { 955 }, + statOrder = { 1010 }, tradeHashes = { [1011760251] = { "+1% to Maximum Lightning Resistance" }, }, rank = { 0 }, }, @@ -313,14 +343,14 @@ return { ["weapon"] = { type = "SoulCore", "+15 to Spirit", - statOrder = { 874 }, + statOrder = { 895 }, tradeHashes = { [3981240776] = { "+15 to Spirit" }, }, rank = { 0 }, }, ["gloves"] = { type = "SoulCore", "10% increased Quantity of Gold Dropped by Slain Enemies", - statOrder = { 6476 }, + statOrder = { 6894 }, tradeHashes = { [3175163625] = { "10% increased Quantity of Gold Dropped by Slain Enemies" }, }, rank = { 0 }, }, @@ -329,14 +359,14 @@ return { ["weapon"] = { type = "SoulCore", "Attacks with this Weapon Penetrate 15% Elemental Resistances", - statOrder = { 3330 }, + statOrder = { 3434 }, tradeHashes = { [4064396395] = { "Attacks with this Weapon Penetrate 15% Elemental Resistances" }, }, rank = { 0 }, }, ["boots"] = { type = "SoulCore", "25% increased Elemental Ailment Threshold", - statOrder = { 4147 }, + statOrder = { 4256 }, tradeHashes = { [3544800472] = { "25% increased Elemental Ailment Threshold" }, }, rank = { 0 }, }, @@ -345,14 +375,14 @@ return { ["weapon"] = { type = "SoulCore", "5% increased Attack Speed", - statOrder = { 919 }, + statOrder = { 945 }, tradeHashes = { [210067635] = { "5% increased Attack Speed" }, }, rank = { 0 }, }, ["boots"] = { type = "SoulCore", "15% reduced Slowing Potency of Debuffs on You", - statOrder = { 4608 }, + statOrder = { 4735 }, tradeHashes = { [924253255] = { "15% reduced Slowing Potency of Debuffs on You" }, }, rank = { 0 }, }, @@ -361,21 +391,28 @@ return { ["weapon"] = { type = "SoulCore", "+5% to Critical Damage Bonus", - statOrder = { 918 }, + statOrder = { 944 }, tradeHashes = { [2694482655] = { "+5% to Critical Damage Bonus" }, }, rank = { 0 }, }, ["body armour"] = { type = "SoulCore", "Hits against you have 20% reduced Critical Damage Bonus", - statOrder = { 950 }, + statOrder = { 1004 }, tradeHashes = { [3855016469] = { "Hits against you have 20% reduced Critical Damage Bonus" }, }, rank = { 0 }, }, ["shield"] = { type = "SoulCore", "Hits against you have 20% reduced Critical Damage Bonus", - statOrder = { 950 }, + statOrder = { 1004 }, + tradeHashes = { [3855016469] = { "Hits against you have 20% reduced Critical Damage Bonus" }, }, + rank = { 0 }, + }, + ["buckler"] = { + type = "SoulCore", + "Hits against you have 20% reduced Critical Damage Bonus", + statOrder = { 1004 }, tradeHashes = { [3855016469] = { "Hits against you have 20% reduced Critical Damage Bonus" }, }, rank = { 0 }, }, @@ -384,14 +421,14 @@ return { ["weapon"] = { type = "SoulCore", "Convert 20% of Requirements to Strength", - statOrder = { 7338 }, + statOrder = { 7792 }, tradeHashes = { [1556124492] = { "Convert 20% of Requirements to Strength" }, }, rank = { 0 }, }, ["armour"] = { type = "SoulCore", "Convert 20% of Requirements to Strength", - statOrder = { 7338 }, + statOrder = { 7792 }, tradeHashes = { [1556124492] = { "Convert 20% of Requirements to Strength" }, }, rank = { 0 }, }, @@ -400,14 +437,14 @@ return { ["weapon"] = { type = "SoulCore", "Convert 20% of Requirements to Dexterity", - statOrder = { 7336 }, + statOrder = { 7790 }, tradeHashes = { [1496740334] = { "Convert 20% of Requirements to Dexterity" }, }, rank = { 0 }, }, ["armour"] = { type = "SoulCore", "Convert 20% of Requirements to Dexterity", - statOrder = { 7336 }, + statOrder = { 7790 }, tradeHashes = { [1496740334] = { "Convert 20% of Requirements to Dexterity" }, }, rank = { 0 }, }, @@ -416,30 +453,125 @@ return { ["weapon"] = { type = "SoulCore", "Convert 20% of Requirements to Intelligence", - statOrder = { 7337 }, + statOrder = { 7791 }, tradeHashes = { [2913012734] = { "Convert 20% of Requirements to Intelligence" }, }, rank = { 0 }, }, ["armour"] = { type = "SoulCore", "Convert 20% of Requirements to Intelligence", - statOrder = { 7337 }, + statOrder = { 7791 }, tradeHashes = { [2913012734] = { "Convert 20% of Requirements to Intelligence" }, }, rank = { 0 }, }, }, + ["Guatelitzi's Thesis"] = { + ["helmet"] = { + type = "SoulCore", + "Gain Armour equal to 35% of Life Lost from Hits in the past 8 seconds", + statOrder = { 6742 }, + tradeHashes = { [3903510399] = { "Gain Armour equal to 35% of Life Lost from Hits in the past 8 seconds" }, }, + rank = { 60 }, + }, + ["body armour"] = { + type = "SoulCore", + "10% of Physical Damage prevented Recouped as Life", + statOrder = { 9410 }, + tradeHashes = { [1374654984] = { "10% of Physical Damage prevented Recouped as Life" }, }, + rank = { 60 }, + }, + ["boots"] = { + type = "SoulCore", + "Lose 5% of maximum Life per second while Sprinting", + "25% increased Movement Speed while Sprinting", + statOrder = { 7440, 10028 }, + tradeHashes = { [3473409233] = { "Lose 5% of maximum Life per second while Sprinting" }, [3107707789] = { "25% increased Movement Speed while Sprinting" }, }, + rank = { 60 }, + }, + }, + ["Citaqualotl's Thesis"] = { + ["body armour"] = { + type = "SoulCore", + "You Recoup 50% of Damage taken by your Offerings as Life", + statOrder = { 9646 }, + tradeHashes = { [1937310173] = { "You Recoup 50% of Damage taken by your Offerings as Life" }, }, + rank = { 60 }, + }, + ["gloves"] = { + type = "SoulCore", + "One of your Persistent Minions revives when an Offering expires", + statOrder = { 9740 }, + tradeHashes = { [1480688478] = { "One of your Persistent Minions revives when an Offering expires" }, }, + rank = { 60 }, + }, + ["boots"] = { + type = "SoulCore", + "Sacrifice 10% of maximum Life to gain that much Guard when you Dodge Roll", + statOrder = { 9747 }, + tradeHashes = { [1585886916] = { "Sacrifice 10% of maximum Life to gain that much Guard when you Dodge Roll" }, }, + rank = { 60 }, + }, + }, + ["Jiquani's Thesis"] = { + ["helmet"] = { + type = "SoulCore", + "+1 to maximum Mana per 2 Item Energy Shield on Equipped Helmet", + statOrder = { 6700 }, + tradeHashes = { [280497929] = { "+1 to maximum Mana per 2 Item Energy Shield on Equipped Helmet" }, }, + rank = { 60 }, + }, + ["gloves"] = { + type = "SoulCore", + "Energy Shield Recharge starts after spending a total of", + " 2000 Mana, no more than once every 2 seconds", + statOrder = { 6425, 6425.1 }, + tradeHashes = { [2241849004] = { "Energy Shield Recharge starts after spending a total of", " 2000 Mana, no more than once every 2 seconds" }, }, + rank = { 60 }, + }, + ["boots"] = { + type = "SoulCore", + "Increases and Reductions to Movement Speed also", + " apply to Energy Shield Recharge Rate", + statOrder = { 7303, 7303.1 }, + tradeHashes = { [4282982513] = { "Increases and Reductions to Movement Speed also", " apply to Energy Shield Recharge Rate" }, }, + rank = { 60 }, + }, + }, + ["Quipolatl's Thesis"] = { + ["helmet"] = { + type = "SoulCore", + "A random Skill that requires Glory generates 50% of its maximum Glory when your Marks Activate", + statOrder = { 8786 }, + tradeHashes = { [2231410646] = { "A random Skill that requires Glory generates 50% of its maximum Glory when your Marks Activate" }, }, + rank = { 60 }, + }, + ["gloves"] = { + type = "SoulCore", + "Your Energy Shield Recharge starts when your Minions are Reformed", + statOrder = { 6423 }, + tradeHashes = { [1919509054] = { "Your Energy Shield Recharge starts when your Minions are Reformed" }, }, + rank = { 60 }, + }, + ["body armour"] = { + type = "SoulCore", + "+75% of Armour also applies to Chaos Damage while on full Energy Shield", + statOrder = { 4374 }, + tradeHashes = { [2191621386] = { "+75% of Armour also applies to Chaos Damage while on full Energy Shield" }, }, + rank = { 60 }, + }, + }, ["Amanamu's Gaze"] = { ["helmet"] = { type = "AbyssalEye", "Remove a Damaging Ailment when you use a Command Skill", - statOrder = { 9162 }, + statOrder = { 9707 }, tradeHashes = { [594547430] = { "Remove a Damaging Ailment when you use a Command Skill" }, }, rank = { 60 }, }, ["body armour"] = { type = "AbyssalEye", "+2 to Armour per 1 Spirit", - statOrder = { 4275 }, + statOrder = { 4388 }, tradeHashes = { [1197632982] = { "+2 to Armour per 1 Spirit" }, }, rank = { 60 }, }, @@ -447,7 +579,7 @@ return { type = "AbyssalEye", "1% increased Movement Speed per 15 Spirit, up to a maximum of 40%", "Other Modifiers to Movement Speed except for Sprinting do not apply", - statOrder = { 8593, 8593.1 }, + statOrder = { 9118, 9118.1 }, tradeHashes = { [2703838669] = { "1% increased Movement Speed per 15 Spirit, up to a maximum of 40%", "Other Modifiers to Movement Speed except for Sprinting do not apply" }, }, rank = { 60 }, }, @@ -456,21 +588,21 @@ return { ["helmet"] = { type = "AbyssalEye", "Increases and Reductions to Life Regeneration Rate also apply to Mana Regeneration Rate", - statOrder = { 4115 }, + statOrder = { 4223 }, tradeHashes = { [3570773271] = { "Increases and Reductions to Life Regeneration Rate also apply to Mana Regeneration Rate" }, }, rank = { 60 }, }, ["gloves"] = { type = "AbyssalEye", "40% increased effect of Arcane Surge on you", - statOrder = { 2891 }, + statOrder = { 2994 }, tradeHashes = { [2103650854] = { "40% increased effect of Arcane Surge on you" }, }, rank = { 60 }, }, ["boots"] = { type = "AbyssalEye", "15% increased Mana Cost Efficiency if you haven't Dodge Rolled Recently", - statOrder = { 7483 }, + statOrder = { 7943 }, tradeHashes = { [2876843277] = { "15% increased Mana Cost Efficiency if you haven't Dodge Rolled Recently" }, }, rank = { 60 }, }, @@ -479,21 +611,21 @@ return { ["body armour"] = { type = "AbyssalEye", "Regenerate 1.5% of maximum Life per second", - statOrder = { 1617 }, + statOrder = { 1689 }, tradeHashes = { [836936635] = { "Regenerate 1.5% of maximum Life per second" }, }, rank = { 60 }, }, ["gloves"] = { type = "AbyssalEye", "25% increased Life Cost Efficiency", - statOrder = { 4572 }, + statOrder = { 4696 }, tradeHashes = { [310945763] = { "25% increased Life Cost Efficiency" }, }, rank = { 60 }, }, ["boots"] = { type = "AbyssalEye", "10% increased Movement Speed when on Low Life", - statOrder = { 1481 }, + statOrder = { 1552 }, tradeHashes = { [649025131] = { "10% increased Movement Speed when on Low Life" }, }, rank = { 60 }, }, @@ -502,144 +634,57 @@ return { ["helmet"] = { type = "AbyssalEye", "+1 to Accuracy Rating per 1 Item Evasion Rating on Equipped Helmet", - statOrder = { 4022 }, + statOrder = { 4129 }, tradeHashes = { [687156079] = { "+1 to Accuracy Rating per 1 Item Evasion Rating on Equipped Helmet" }, }, rank = { 60 }, }, ["gloves"] = { type = "AbyssalEye", "Critical Hit chance is Lucky against Parried enemies", - statOrder = { 5415 }, + statOrder = { 5795 }, tradeHashes = { [935518591] = { "Critical Hit chance is Lucky against Parried enemies" }, }, rank = { 60 }, }, ["body armour"] = { type = "AbyssalEye", "Prevent +3% of Damage from Deflected Hits", - statOrder = { 4541 }, + statOrder = { 4667 }, tradeHashes = { [3552135623] = { "Prevent +3% of Damage from Deflected Hits" }, }, rank = { 60 }, }, }, - ["Jiquani's Thesis"] = { - ["helmet"] = { - type = "SoulCore", - "+1 to maximum Mana per 2 Item Energy Shield on Equipped Helmet", - statOrder = { 6295 }, - tradeHashes = { [280497929] = { "+1 to maximum Mana per 2 Item Energy Shield on Equipped Helmet" }, }, - rank = { 60 }, - }, - ["gloves"] = { - type = "SoulCore", - "Energy Shield Recharge starts after spending a total of", - " 2000 Mana, no more than once every 2 seconds", - statOrder = { 6023, 6023.1 }, - tradeHashes = { [2241849004] = { "Energy Shield Recharge starts after spending a total of", " 2000 Mana, no more than once every 2 seconds" }, }, - rank = { 60 }, - }, - ["boots"] = { - type = "SoulCore", - "Increases and Reductions to Movement Speed also", - " apply to Energy Shield Recharge Rate", - statOrder = { 6874, 6874.1 }, - tradeHashes = { [4282982513] = { "Increases and Reductions to Movement Speed also", " apply to Energy Shield Recharge Rate" }, }, - rank = { 60 }, - }, - }, - ["Quipolatl's Thesis"] = { - ["helmet"] = { - type = "SoulCore", - "A random Skill that requires Glory generates 15% of its maximum Glory when your Mark Activates", - statOrder = { 8275 }, - tradeHashes = { [2231410646] = { "A random Skill that requires Glory generates 15% of its maximum Glory when your Mark Activates" }, }, - rank = { 60 }, - }, - ["gloves"] = { - type = "SoulCore", - "Each Runic Inscription from your Curse Skills causes you to Regenerate Mana per second equal to 10% of that Skill's Mana Cost", - statOrder = { 9139 }, - tradeHashes = { [426207520] = { "Each Runic Inscription from your Curse Skills causes you to Regenerate Mana per second equal to 10% of that Skill's Mana Cost" }, }, - rank = { 60 }, - }, - ["body armour"] = { - type = "SoulCore", - "+50% of Armour also applies to Chaos Damage while on full Energy Shield", - statOrder = { 4261 }, - tradeHashes = { [2191621386] = { "+50% of Armour also applies to Chaos Damage while on full Energy Shield" }, }, - rank = { 60 }, - }, - }, - ["Guatelitzi's Thesis"] = { - ["helmet"] = { - type = "SoulCore", - "Gain Armour equal to 25% of Life Lost from Hits in the past 8 seconds", - statOrder = { 6337 }, - tradeHashes = { [3903510399] = { "Gain Armour equal to 25% of Life Lost from Hits in the past 8 seconds" }, }, - rank = { 60 }, - }, - ["body armour"] = { - type = "SoulCore", - "10% of Physical Damage prevented Recouped as Life", - statOrder = { 8867 }, - tradeHashes = { [1374654984] = { "10% of Physical Damage prevented Recouped as Life" }, }, - rank = { 60 }, - }, - ["boots"] = { - type = "SoulCore", - "Lose 5% of maximum Life per second while Sprinting", - "25% increased Movement Speed while Sprinting", - statOrder = { 6999, 9465 }, - tradeHashes = { [3473409233] = { "Lose 5% of maximum Life per second while Sprinting" }, [3107707789] = { "25% increased Movement Speed while Sprinting" }, }, - rank = { 60 }, - }, - }, - ["Citaqualotl's Thesis"] = { - ["body armour"] = { - type = "SoulCore", - "You Recoup 50% of Damage taken by your Offerings as Life", - statOrder = { 9105 }, - tradeHashes = { [1937310173] = { "You Recoup 50% of Damage taken by your Offerings as Life" }, }, - rank = { 60 }, - }, - ["gloves"] = { - type = "SoulCore", - "One of your Persistent Minions revives when an Offering expires", - statOrder = { 9188 }, - tradeHashes = { [1480688478] = { "One of your Persistent Minions revives when an Offering expires" }, }, - rank = { 60 }, - }, - ["boots"] = { - type = "SoulCore", - "Sacrifice 10% of maximum Life to gain that much Guard when you Dodge Roll", - statOrder = { 9195 }, - tradeHashes = { [1585886916] = { "Sacrifice 10% of maximum Life to gain that much Guard when you Dodge Roll" }, }, - rank = { 60 }, - }, - }, ["Desert Rune"] = { ["weapon"] = { type = "Rune", "Adds 7 to 11 Fire Damage", - "Bonded: 25% increased Ignite Magnitude", - statOrder = { 823, 1009 }, + "Bonded: 30% increased Ignite Magnitude", + statOrder = { 831, 1076 }, tradeHashes = { [709508406] = { "Adds 7 to 11 Fire Damage" }, }, rank = { 15 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "Gain 8% of Damage as Extra Fire Damage", + "Bonded: 30% increased Ignite Magnitude", + statOrder = { 862, 1076 }, + tradeHashes = { [3015669065] = { "Gain 8% of Damage as Extra Fire Damage" }, }, + rank = { 15 }, + }, + ["staff"] = { type = "Rune", "Gain 8% of Damage as Extra Fire Damage", - "Bonded: 25% increased Ignite Magnitude", - statOrder = { 847, 1009 }, + "Bonded: 30% increased Ignite Magnitude", + statOrder = { 862, 1076 }, tradeHashes = { [3015669065] = { "Gain 8% of Damage as Extra Fire Damage" }, }, rank = { 15 }, }, ["armour"] = { type = "Rune", - "+12% to Fire Resistance", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 958, 869, 871 }, - tradeHashes = { [3372524247] = { "+12% to Fire Resistance" }, }, + "+14% to Fire Resistance", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1013, 886, 891 }, + tradeHashes = { [3372524247] = { "+14% to Fire Resistance" }, }, rank = { 15 }, }, }, @@ -648,25 +693,33 @@ return { type = "Rune", "Adds 6 to 10 Cold Damage", "Bonded: 30% increased Freeze Buildup", - statOrder = { 824, 990 }, + statOrder = { 832, 1056 }, tradeHashes = { [1037193709] = { "Adds 6 to 10 Cold Damage" }, }, rank = { 15 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "Gain 8% of Damage as Extra Cold Damage", + "Bonded: 30% increased Freeze Buildup", + statOrder = { 865, 1056 }, + tradeHashes = { [2505884597] = { "Gain 8% of Damage as Extra Cold Damage" }, }, + rank = { 15 }, + }, + ["staff"] = { type = "Rune", "Gain 8% of Damage as Extra Cold Damage", "Bonded: 30% increased Freeze Buildup", - statOrder = { 849, 990 }, + statOrder = { 865, 1056 }, tradeHashes = { [2505884597] = { "Gain 8% of Damage as Extra Cold Damage" }, }, rank = { 15 }, }, ["armour"] = { type = "Rune", - "+12% to Cold Resistance", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 959, 869, 871 }, - tradeHashes = { [4220027924] = { "+12% to Cold Resistance" }, }, + "+14% to Cold Resistance", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1019, 886, 891 }, + tradeHashes = { [4220027924] = { "+14% to Cold Resistance" }, }, rank = { 15 }, }, }, @@ -675,25 +728,33 @@ return { type = "Rune", "Adds 1 to 20 Lightning Damage", "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 825, 9248 }, + statOrder = { 833, 9804 }, tradeHashes = { [3336890334] = { "Adds 1 to 20 Lightning Damage" }, }, rank = { 15 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "Gain 8% of Damage as Extra Lightning Damage", + "Bonded: 30% increased Magnitude of Shock you inflict", + statOrder = { 868, 9804 }, + tradeHashes = { [3278136794] = { "Gain 8% of Damage as Extra Lightning Damage" }, }, + rank = { 15 }, + }, + ["staff"] = { type = "Rune", "Gain 8% of Damage as Extra Lightning Damage", "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 851, 9248 }, + statOrder = { 868, 9804 }, tradeHashes = { [3278136794] = { "Gain 8% of Damage as Extra Lightning Damage" }, }, rank = { 15 }, }, ["armour"] = { type = "Rune", - "+12% to Lightning Resistance", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 960, 869, 871 }, - tradeHashes = { [1671376347] = { "+12% to Lightning Resistance" }, }, + "+14% to Lightning Resistance", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1022, 886, 891 }, + tradeHashes = { [1671376347] = { "+14% to Lightning Resistance" }, }, rank = { 15 }, }, }, @@ -702,24 +763,32 @@ return { type = "Rune", "16% increased Physical Damage", "Bonded: 20% increased effect of Fully Broken Armour", - statOrder = { 821, 4868 }, + statOrder = { 829, 5224 }, tradeHashes = { [1805374733] = { "16% increased Physical Damage" }, }, rank = { 15 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "25% increased Spell Damage", + "Bonded: Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", + statOrder = { 870, 4401 }, + tradeHashes = { [2974417149] = { "25% increased Spell Damage" }, }, + 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 = { 853, 4287 }, + statOrder = { 870, 4401 }, tradeHashes = { [2974417149] = { "25% increased Spell Damage" }, }, rank = { 15 }, }, ["armour"] = { type = "Rune", "16% increased Armour, Evasion and Energy Shield", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 840, 869, 871 }, + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 853, 886, 891 }, tradeHashes = { [3523867985] = { "16% increased Armour, Evasion and Energy Shield" }, }, rank = { 15 }, }, @@ -727,107 +796,139 @@ return { ["Body Rune"] = { ["weapon"] = { type = "Rune", - "Leeches 2.5% of Physical Damage as Life", + "Leeches 4% of Physical Damage as Life", "Bonded: 5% increased maximum Life", - statOrder = { 972, 870 }, - tradeHashes = { [55876295] = { "Leeches 2.5% of Physical Damage as Life" }, }, + statOrder = { 1038, 888 }, + tradeHashes = { [55876295] = { "Leeches 4% of Physical Damage as Life" }, }, rank = { 15 }, }, - ["caster"] = { + ["wand"] = { type = "Rune", - "+30 to maximum Energy Shield", + "+40 to maximum Energy Shield", "Bonded: 5% increased maximum Life", - statOrder = { 867, 870 }, - tradeHashes = { [3489782002] = { "+30 to maximum Energy Shield" }, }, + statOrder = { 884, 888 }, + tradeHashes = { [3489782002] = { "+40 to maximum Energy Shield" }, }, + rank = { 15 }, + }, + ["staff"] = { + type = "Rune", + "+40 to maximum Energy Shield", + "Bonded: 5% increased maximum Life", + statOrder = { 884, 888 }, + tradeHashes = { [3489782002] = { "+40 to maximum Energy Shield" }, }, rank = { 15 }, }, ["armour"] = { type = "Rune", - "+30 to maximum Life", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 869, 869, 871 }, - tradeHashes = { [3299347043] = { "+30 to maximum Life" }, }, + "+45 to maximum Life", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 886, 886, 891 }, + tradeHashes = { [3299347043] = { "+45 to maximum Life" }, }, rank = { 15 }, }, }, ["Mind Rune"] = { ["weapon"] = { type = "Rune", - "Leeches 2% of Physical Damage as Mana", + "Leeches 3% of Physical Damage as Mana", "Bonded: 5% increased maximum Mana", - statOrder = { 978, 872 }, - tradeHashes = { [669069897] = { "Leeches 2% of Physical Damage as Mana" }, }, + statOrder = { 1044, 893 }, + tradeHashes = { [669069897] = { "Leeches 3% of Physical Damage as Mana" }, }, rank = { 15 }, }, - ["caster"] = { + ["wand"] = { type = "Rune", - "+40 to maximum Mana", + "+60 to maximum Mana", "Bonded: 5% increased maximum Mana", - statOrder = { 871, 872 }, - tradeHashes = { [1050105434] = { "+40 to maximum Mana" }, }, + statOrder = { 891, 893 }, + tradeHashes = { [1050105434] = { "+60 to maximum Mana" }, }, + rank = { 15 }, + }, + ["staff"] = { + type = "Rune", + "+60 to maximum Mana", + "Bonded: 5% increased maximum Mana", + statOrder = { 891, 893 }, + tradeHashes = { [1050105434] = { "+60 to maximum Mana" }, }, rank = { 15 }, }, ["armour"] = { type = "Rune", - "+25 to maximum Mana", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 871, 869, 871 }, - tradeHashes = { [1050105434] = { "+25 to maximum Mana" }, }, + "+30 to maximum Mana", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 891, 886, 891 }, + tradeHashes = { [1050105434] = { "+30 to maximum Mana" }, }, rank = { 15 }, }, }, ["Rebirth Rune"] = { ["weapon"] = { type = "Rune", - "Gain 20 Life per enemy killed", + "Gain 25 Life per enemy killed", "Bonded: Regenerate 0.4% of maximum Life per second", - statOrder = { 975, 1617 }, - tradeHashes = { [3695891184] = { "Gain 20 Life per enemy killed" }, }, + statOrder = { 1041, 1689 }, + tradeHashes = { [3695891184] = { "Gain 25 Life per enemy killed" }, }, rank = { 15 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "8% increased Energy Shield Recharge Rate", + "Bonded: 8% of Damage taken Recouped as Life", + statOrder = { 1031, 1036 }, + tradeHashes = { [2339757871] = { "8% increased Energy Shield Recharge Rate" }, }, + rank = { 15 }, + }, + ["staff"] = { type = "Rune", - "15% increased Energy Shield Recharge Rate", + "8% increased Energy Shield Recharge Rate", "Bonded: 8% of Damage taken Recouped as Life", - statOrder = { 966, 970 }, - tradeHashes = { [2339757871] = { "15% increased Energy Shield Recharge Rate" }, }, + statOrder = { 1031, 1036 }, + tradeHashes = { [2339757871] = { "8% increased Energy Shield Recharge Rate" }, }, rank = { 15 }, }, ["armour"] = { type = "Rune", - "Regenerate 0.3% of maximum Life per second", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 1617, 869, 871 }, - tradeHashes = { [836936635] = { "Regenerate 0.3% of maximum Life per second" }, }, + "Regenerate 0.4% of maximum Life per second", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1689, 886, 891 }, + tradeHashes = { [836936635] = { "Regenerate 0.4% of maximum Life per second" }, }, rank = { 15 }, }, }, ["Inspiration Rune"] = { ["weapon"] = { type = "Rune", - "Gain 16 Mana per enemy killed", + "Gain 20 Mana per enemy killed", "Bonded: 12% of Skill Mana Costs Converted to Life Costs", - statOrder = { 980, 4605 }, - tradeHashes = { [1368271171] = { "Gain 16 Mana per enemy killed" }, }, + statOrder = { 1046, 4732 }, + tradeHashes = { [1368271171] = { "Gain 20 Mana per enemy killed" }, }, rank = { 15 }, }, - ["caster"] = { + ["wand"] = { type = "Rune", - "20% increased Mana Regeneration Rate", + "25% increased Mana Regeneration Rate", "Bonded: 16% increased Mana Cost Efficiency", - statOrder = { 976, 4582 }, - tradeHashes = { [789117908] = { "20% increased Mana Regeneration Rate" }, }, + statOrder = { 1042, 4706 }, + tradeHashes = { [789117908] = { "25% increased Mana Regeneration Rate" }, }, + rank = { 15 }, + }, + ["staff"] = { + type = "Rune", + "25% increased Mana Regeneration Rate", + "Bonded: 16% increased Mana Cost Efficiency", + statOrder = { 1042, 4706 }, + tradeHashes = { [789117908] = { "25% increased Mana Regeneration Rate" }, }, rank = { 15 }, }, ["armour"] = { type = "Rune", "15% increased Mana Regeneration Rate", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 976, 869, 871 }, + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1042, 886, 891 }, tradeHashes = { [789117908] = { "15% increased Mana Regeneration Rate" }, }, rank = { 15 }, }, @@ -835,54 +936,70 @@ return { ["Stone Rune"] = { ["weapon"] = { type = "Rune", - "Causes 25% increased Stun Buildup", + "Causes 30% increased Stun Buildup", "Bonded: 40% increased Damage against Immobilised Enemies", - statOrder = { 985, 5564 }, - tradeHashes = { [791928121] = { "Causes 25% increased Stun Buildup" }, }, + statOrder = { 1051, 5945 }, + tradeHashes = { [791928121] = { "Causes 30% increased Stun Buildup" }, }, rank = { 15 }, }, - ["caster"] = { + ["wand"] = { type = "Rune", "Gain additional Stun Threshold equal to 12% of maximum Energy Shield", "Bonded: 30% increased Immobilisation buildup", - statOrder = { 9531, 6748 }, + statOrder = { 10097, 7170 }, + tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 12% of maximum Energy Shield" }, }, + rank = { 15 }, + }, + ["staff"] = { + type = "Rune", + "Gain additional Stun Threshold equal to 12% of maximum Energy Shield", + "Bonded: 30% increased Immobilisation buildup", + statOrder = { 10097, 7170 }, tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 12% of maximum Energy Shield" }, }, rank = { 15 }, }, ["armour"] = { type = "Rune", - "+60 to Stun Threshold", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 994, 869, 871 }, - tradeHashes = { [915769802] = { "+60 to Stun Threshold" }, }, + "+75 to Stun Threshold", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1060, 886, 891 }, + tradeHashes = { [915769802] = { "+75 to Stun Threshold" }, }, rank = { 15 }, }, }, ["Vision Rune"] = { ["weapon"] = { type = "Rune", - "+80 to Accuracy Rating", + "+90 to Accuracy Rating", "Bonded: Attacks have +1% to Critical Hit Chance", - statOrder = { 826, 4335 }, - tradeHashes = { [691932474] = { "+80 to Accuracy Rating" }, }, + statOrder = { 834, 4455 }, + tradeHashes = { [691932474] = { "+90 to Accuracy Rating" }, }, rank = { 15 }, }, - ["caster"] = { + ["wand"] = { type = "Rune", "20% increased Critical Hit Chance for Spells", "Bonded: 25% increased Critical Damage Bonus", - statOrder = { 935, 937 }, + statOrder = { 977, 979 }, tradeHashes = { [737908626] = { "20% increased Critical Hit Chance for Spells" }, }, rank = { 15 }, }, - ["armour"] = { + ["staff"] = { type = "Rune", - "10% increased Life and Mana Recovery from Flasks", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 6220, 869, 871 }, - tradeHashes = { [2310741722] = { "10% increased Life and Mana Recovery from Flasks" }, }, + "20% increased Critical Hit Chance for Spells", + "Bonded: 25% increased Critical Damage Bonus", + statOrder = { 977, 979 }, + tradeHashes = { [737908626] = { "20% increased Critical Hit Chance for Spells" }, }, + rank = { 15 }, + }, + ["armour"] = { + type = "Rune", + "12% increased Life and Mana Recovery from Flasks", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 6621, 886, 891 }, + tradeHashes = { [2310741722] = { "12% increased Life and Mana Recovery from Flasks" }, }, rank = { 15 }, }, }, @@ -890,25 +1007,33 @@ return { ["weapon"] = { type = "Rune", "Adds 4 to 6 Fire Damage", - "Bonded: 25% increased Ignite Magnitude", - statOrder = { 823, 1009 }, + "Bonded: 30% increased Ignite Magnitude", + statOrder = { 831, 1076 }, tradeHashes = { [709508406] = { "Adds 4 to 6 Fire Damage" }, }, rank = { 0 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "Gain 6% of Damage as Extra Fire Damage", + "Bonded: 30% increased Ignite Magnitude", + statOrder = { 862, 1076 }, + tradeHashes = { [3015669065] = { "Gain 6% of Damage as Extra Fire Damage" }, }, + rank = { 0 }, + }, + ["staff"] = { type = "Rune", "Gain 6% of Damage as Extra Fire Damage", - "Bonded: 25% increased Ignite Magnitude", - statOrder = { 847, 1009 }, + "Bonded: 30% increased Ignite Magnitude", + statOrder = { 862, 1076 }, tradeHashes = { [3015669065] = { "Gain 6% of Damage as Extra Fire Damage" }, }, rank = { 0 }, }, ["armour"] = { type = "Rune", "+10% to Fire Resistance", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 958, 869, 871 }, + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1013, 886, 891 }, tradeHashes = { [3372524247] = { "+10% to Fire Resistance" }, }, rank = { 0 }, }, @@ -918,24 +1043,32 @@ return { type = "Rune", "Adds 3 to 5 Cold Damage", "Bonded: 30% increased Freeze Buildup", - statOrder = { 824, 990 }, + statOrder = { 832, 1056 }, tradeHashes = { [1037193709] = { "Adds 3 to 5 Cold Damage" }, }, rank = { 0 }, }, - ["caster"] = { + ["wand"] = { type = "Rune", "Gain 6% of Damage as Extra Cold Damage", "Bonded: 30% increased Freeze Buildup", - statOrder = { 849, 990 }, + statOrder = { 865, 1056 }, + tradeHashes = { [2505884597] = { "Gain 6% of Damage as Extra Cold Damage" }, }, + rank = { 0 }, + }, + ["staff"] = { + type = "Rune", + "Gain 6% of Damage as Extra Cold Damage", + "Bonded: 30% increased Freeze Buildup", + statOrder = { 865, 1056 }, tradeHashes = { [2505884597] = { "Gain 6% of Damage as Extra Cold Damage" }, }, rank = { 0 }, }, ["armour"] = { type = "Rune", "+10% to Cold Resistance", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 959, 869, 871 }, + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1019, 886, 891 }, tradeHashes = { [4220027924] = { "+10% to Cold Resistance" }, }, rank = { 0 }, }, @@ -945,24 +1078,32 @@ return { type = "Rune", "Adds 1 to 10 Lightning Damage", "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 825, 9248 }, + statOrder = { 833, 9804 }, tradeHashes = { [3336890334] = { "Adds 1 to 10 Lightning Damage" }, }, rank = { 0 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "Gain 6% of Damage as Extra Lightning Damage", + "Bonded: 30% increased Magnitude of Shock you inflict", + statOrder = { 868, 9804 }, + tradeHashes = { [3278136794] = { "Gain 6% of Damage as Extra Lightning Damage" }, }, + rank = { 0 }, + }, + ["staff"] = { type = "Rune", "Gain 6% of Damage as Extra Lightning Damage", "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 851, 9248 }, + statOrder = { 868, 9804 }, tradeHashes = { [3278136794] = { "Gain 6% of Damage as Extra Lightning Damage" }, }, rank = { 0 }, }, ["armour"] = { type = "Rune", "+10% to Lightning Resistance", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 960, 869, 871 }, + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1022, 886, 891 }, tradeHashes = { [1671376347] = { "+10% to Lightning Resistance" }, }, rank = { 0 }, }, @@ -972,24 +1113,32 @@ return { type = "Rune", "14% increased Physical Damage", "Bonded: 20% increased effect of Fully Broken Armour", - statOrder = { 821, 4868 }, + statOrder = { 829, 5224 }, tradeHashes = { [1805374733] = { "14% increased Physical Damage" }, }, rank = { 0 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "20% increased Spell Damage", + "Bonded: Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", + statOrder = { 870, 4401 }, + tradeHashes = { [2974417149] = { "20% increased Spell Damage" }, }, + 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 = { 853, 4287 }, + statOrder = { 870, 4401 }, tradeHashes = { [2974417149] = { "20% increased Spell Damage" }, }, rank = { 0 }, }, ["armour"] = { type = "Rune", "14% increased Armour, Evasion and Energy Shield", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 840, 869, 871 }, + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 853, 886, 891 }, tradeHashes = { [3523867985] = { "14% increased Armour, Evasion and Energy Shield" }, }, rank = { 0 }, }, @@ -997,107 +1146,139 @@ return { ["Lesser Body Rune"] = { ["weapon"] = { type = "Rune", - "Leeches 2% of Physical Damage as Life", + "Leeches 3% of Physical Damage as Life", "Bonded: 5% increased maximum Life", - statOrder = { 972, 870 }, - tradeHashes = { [55876295] = { "Leeches 2% of Physical Damage as Life" }, }, + statOrder = { 1038, 888 }, + tradeHashes = { [55876295] = { "Leeches 3% of Physical Damage as Life" }, }, rank = { 0 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "+30 to maximum Energy Shield", + "Bonded: 5% increased maximum Life", + statOrder = { 884, 888 }, + tradeHashes = { [3489782002] = { "+30 to maximum Energy Shield" }, }, + rank = { 0 }, + }, + ["staff"] = { type = "Rune", - "+25 to maximum Energy Shield", + "+30 to maximum Energy Shield", "Bonded: 5% increased maximum Life", - statOrder = { 867, 870 }, - tradeHashes = { [3489782002] = { "+25 to maximum Energy Shield" }, }, + statOrder = { 884, 888 }, + tradeHashes = { [3489782002] = { "+30 to maximum Energy Shield" }, }, rank = { 0 }, }, ["armour"] = { type = "Rune", - "+20 to maximum Life", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 869, 869, 871 }, - tradeHashes = { [3299347043] = { "+20 to maximum Life" }, }, + "+30 to maximum Life", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 886, 886, 891 }, + tradeHashes = { [3299347043] = { "+30 to maximum Life" }, }, rank = { 0 }, }, }, ["Lesser Mind Rune"] = { ["weapon"] = { type = "Rune", - "Leeches 1.5% of Physical Damage as Mana", + "Leeches 2% of Physical Damage as Mana", "Bonded: 5% increased maximum Mana", - statOrder = { 978, 872 }, - tradeHashes = { [669069897] = { "Leeches 1.5% of Physical Damage as Mana" }, }, + statOrder = { 1044, 893 }, + tradeHashes = { [669069897] = { "Leeches 2% of Physical Damage as Mana" }, }, rank = { 0 }, }, - ["caster"] = { + ["wand"] = { type = "Rune", - "+30 to maximum Mana", + "+45 to maximum Mana", "Bonded: 5% increased maximum Mana", - statOrder = { 871, 872 }, - tradeHashes = { [1050105434] = { "+30 to maximum Mana" }, }, + statOrder = { 891, 893 }, + tradeHashes = { [1050105434] = { "+45 to maximum Mana" }, }, + rank = { 0 }, + }, + ["staff"] = { + type = "Rune", + "+45 to maximum Mana", + "Bonded: 5% increased maximum Mana", + statOrder = { 891, 893 }, + tradeHashes = { [1050105434] = { "+45 to maximum Mana" }, }, rank = { 0 }, }, ["armour"] = { type = "Rune", - "+15 to maximum Mana", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 871, 869, 871 }, - tradeHashes = { [1050105434] = { "+15 to maximum Mana" }, }, + "+20 to maximum Mana", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 891, 886, 891 }, + tradeHashes = { [1050105434] = { "+20 to maximum Mana" }, }, rank = { 0 }, }, }, ["Lesser Rebirth Rune"] = { ["weapon"] = { type = "Rune", - "Gain 10 Life per enemy killed", + "Gain 15 Life per enemy killed", "Bonded: Regenerate 0.4% of maximum Life per second", - statOrder = { 975, 1617 }, - tradeHashes = { [3695891184] = { "Gain 10 Life per enemy killed" }, }, + statOrder = { 1041, 1689 }, + tradeHashes = { [3695891184] = { "Gain 15 Life per enemy killed" }, }, rank = { 0 }, }, - ["caster"] = { + ["wand"] = { type = "Rune", - "12% increased Energy Shield Recharge Rate", + "6% increased Energy Shield Recharge Rate", "Bonded: 8% of Damage taken Recouped as Life", - statOrder = { 966, 970 }, - tradeHashes = { [2339757871] = { "12% increased Energy Shield Recharge Rate" }, }, + statOrder = { 1031, 1036 }, + tradeHashes = { [2339757871] = { "6% increased Energy Shield Recharge Rate" }, }, + rank = { 0 }, + }, + ["staff"] = { + type = "Rune", + "6% increased Energy Shield Recharge Rate", + "Bonded: 8% of Damage taken Recouped as Life", + statOrder = { 1031, 1036 }, + tradeHashes = { [2339757871] = { "6% increased Energy Shield Recharge Rate" }, }, rank = { 0 }, }, ["armour"] = { type = "Rune", - "Regenerate 0.25% of maximum Life per second", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 1617, 869, 871 }, - tradeHashes = { [836936635] = { "Regenerate 0.25% of maximum Life per second" }, }, + "Regenerate 0.35% of maximum Life per second", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1689, 886, 891 }, + tradeHashes = { [836936635] = { "Regenerate 0.35% of maximum Life per second" }, }, rank = { 0 }, }, }, ["Lesser Inspiration Rune"] = { ["weapon"] = { type = "Rune", - "Gain 8 Mana per enemy killed", + "Gain 10 Mana per enemy killed", "Bonded: 12% of Skill Mana Costs Converted to Life Costs", - statOrder = { 980, 4605 }, - tradeHashes = { [1368271171] = { "Gain 8 Mana per enemy killed" }, }, + statOrder = { 1046, 4732 }, + tradeHashes = { [1368271171] = { "Gain 10 Mana per enemy killed" }, }, rank = { 0 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "20% increased Mana Regeneration Rate", + "Bonded: 16% increased Mana Cost Efficiency", + statOrder = { 1042, 4706 }, + tradeHashes = { [789117908] = { "20% increased Mana Regeneration Rate" }, }, + rank = { 0 }, + }, + ["staff"] = { type = "Rune", - "16% increased Mana Regeneration Rate", + "20% increased Mana Regeneration Rate", "Bonded: 16% increased Mana Cost Efficiency", - statOrder = { 976, 4582 }, - tradeHashes = { [789117908] = { "16% increased Mana Regeneration Rate" }, }, + statOrder = { 1042, 4706 }, + tradeHashes = { [789117908] = { "20% increased Mana Regeneration Rate" }, }, rank = { 0 }, }, ["armour"] = { type = "Rune", "12% increased Mana Regeneration Rate", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 976, 869, 871 }, + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1042, 886, 891 }, tradeHashes = { [789117908] = { "12% increased Mana Regeneration Rate" }, }, rank = { 0 }, }, @@ -1107,51 +1288,67 @@ return { type = "Rune", "Causes 20% increased Stun Buildup", "Bonded: 40% increased Damage against Immobilised Enemies", - statOrder = { 985, 5564 }, + statOrder = { 1051, 5945 }, tradeHashes = { [791928121] = { "Causes 20% increased Stun Buildup" }, }, rank = { 0 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "Gain additional Stun Threshold equal to 10% of maximum Energy Shield", + "Bonded: 30% increased Immobilisation buildup", + statOrder = { 10097, 7170 }, + tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 10% of maximum Energy Shield" }, }, + rank = { 0 }, + }, + ["staff"] = { type = "Rune", "Gain additional Stun Threshold equal to 10% of maximum Energy Shield", "Bonded: 30% increased Immobilisation buildup", - statOrder = { 9531, 6748 }, + statOrder = { 10097, 7170 }, tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 10% of maximum Energy Shield" }, }, rank = { 0 }, }, ["armour"] = { type = "Rune", - "+40 to Stun Threshold", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 994, 869, 871 }, - tradeHashes = { [915769802] = { "+40 to Stun Threshold" }, }, + "+50 to Stun Threshold", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1060, 886, 891 }, + tradeHashes = { [915769802] = { "+50 to Stun Threshold" }, }, rank = { 0 }, }, }, ["Lesser Vision Rune"] = { ["weapon"] = { type = "Rune", - "+50 to Accuracy Rating", + "+60 to Accuracy Rating", "Bonded: Attacks have +1% to Critical Hit Chance", - statOrder = { 826, 4335 }, - tradeHashes = { [691932474] = { "+50 to Accuracy Rating" }, }, + statOrder = { 834, 4455 }, + tradeHashes = { [691932474] = { "+60 to Accuracy Rating" }, }, rank = { 0 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "16% increased Critical Hit Chance for Spells", + "Bonded: 25% increased Critical Damage Bonus", + statOrder = { 977, 979 }, + tradeHashes = { [737908626] = { "16% increased Critical Hit Chance for Spells" }, }, + rank = { 0 }, + }, + ["staff"] = { type = "Rune", "16% increased Critical Hit Chance for Spells", "Bonded: 25% increased Critical Damage Bonus", - statOrder = { 935, 937 }, + statOrder = { 977, 979 }, tradeHashes = { [737908626] = { "16% increased Critical Hit Chance for Spells" }, }, rank = { 0 }, }, ["armour"] = { type = "Rune", "8% increased Life and Mana Recovery from Flasks", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 6220, 869, 871 }, + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 6621, 886, 891 }, tradeHashes = { [2310741722] = { "8% increased Life and Mana Recovery from Flasks" }, }, rank = { 0 }, }, @@ -1160,26 +1357,34 @@ return { ["weapon"] = { type = "Rune", "Adds 13 to 16 Fire Damage", - "Bonded: 25% increased Ignite Magnitude", - statOrder = { 823, 1009 }, + "Bonded: 30% increased Ignite Magnitude", + statOrder = { 831, 1076 }, tradeHashes = { [709508406] = { "Adds 13 to 16 Fire Damage" }, }, rank = { 30 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "Gain 10% of Damage as Extra Fire Damage", + "Bonded: 30% increased Ignite Magnitude", + statOrder = { 862, 1076 }, + tradeHashes = { [3015669065] = { "Gain 10% of Damage as Extra Fire Damage" }, }, + rank = { 30 }, + }, + ["staff"] = { type = "Rune", "Gain 10% of Damage as Extra Fire Damage", - "Bonded: 25% increased Ignite Magnitude", - statOrder = { 847, 1009 }, + "Bonded: 30% increased Ignite Magnitude", + statOrder = { 862, 1076 }, tradeHashes = { [3015669065] = { "Gain 10% of Damage as Extra Fire Damage" }, }, rank = { 30 }, }, ["armour"] = { type = "Rune", - "+14% to Fire Resistance", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 958, 869, 871 }, - tradeHashes = { [3372524247] = { "+14% to Fire Resistance" }, }, + "+18% to Fire Resistance", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1013, 886, 891 }, + tradeHashes = { [3372524247] = { "+18% to Fire Resistance" }, }, rank = { 30 }, }, }, @@ -1188,25 +1393,33 @@ return { type = "Rune", "Adds 9 to 15 Cold Damage", "Bonded: 30% increased Freeze Buildup", - statOrder = { 824, 990 }, + statOrder = { 832, 1056 }, tradeHashes = { [1037193709] = { "Adds 9 to 15 Cold Damage" }, }, rank = { 30 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "Gain 10% of Damage as Extra Cold Damage", + "Bonded: 30% increased Freeze Buildup", + statOrder = { 865, 1056 }, + tradeHashes = { [2505884597] = { "Gain 10% of Damage as Extra Cold Damage" }, }, + rank = { 30 }, + }, + ["staff"] = { type = "Rune", "Gain 10% of Damage as Extra Cold Damage", "Bonded: 30% increased Freeze Buildup", - statOrder = { 849, 990 }, + statOrder = { 865, 1056 }, tradeHashes = { [2505884597] = { "Gain 10% of Damage as Extra Cold Damage" }, }, rank = { 30 }, }, ["armour"] = { type = "Rune", - "+14% to Cold Resistance", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 959, 869, 871 }, - tradeHashes = { [4220027924] = { "+14% to Cold Resistance" }, }, + "+18% to Cold Resistance", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1019, 886, 891 }, + tradeHashes = { [4220027924] = { "+18% to Cold Resistance" }, }, rank = { 30 }, }, }, @@ -1215,25 +1428,33 @@ return { type = "Rune", "Adds 1 to 30 Lightning Damage", "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 825, 9248 }, + statOrder = { 833, 9804 }, tradeHashes = { [3336890334] = { "Adds 1 to 30 Lightning Damage" }, }, rank = { 30 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "Gain 10% of Damage as Extra Lightning Damage", + "Bonded: 30% increased Magnitude of Shock you inflict", + statOrder = { 868, 9804 }, + tradeHashes = { [3278136794] = { "Gain 10% of Damage as Extra Lightning Damage" }, }, + rank = { 30 }, + }, + ["staff"] = { type = "Rune", "Gain 10% of Damage as Extra Lightning Damage", "Bonded: 30% increased Magnitude of Shock you inflict", - statOrder = { 851, 9248 }, + statOrder = { 868, 9804 }, tradeHashes = { [3278136794] = { "Gain 10% of Damage as Extra Lightning Damage" }, }, rank = { 30 }, }, ["armour"] = { type = "Rune", - "+14% to Lightning Resistance", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 960, 869, 871 }, - tradeHashes = { [1671376347] = { "+14% to Lightning Resistance" }, }, + "+18% to Lightning Resistance", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1022, 886, 891 }, + tradeHashes = { [1671376347] = { "+18% to Lightning Resistance" }, }, rank = { 30 }, }, }, @@ -1242,24 +1463,32 @@ return { type = "Rune", "18% increased Physical Damage", "Bonded: 20% increased effect of Fully Broken Armour", - statOrder = { 821, 4868 }, + statOrder = { 829, 5224 }, tradeHashes = { [1805374733] = { "18% increased Physical Damage" }, }, rank = { 30 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "30% increased Spell Damage", + "Bonded: Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", + statOrder = { 870, 4401 }, + tradeHashes = { [2974417149] = { "30% increased Spell Damage" }, }, + 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 = { 853, 4287 }, + statOrder = { 870, 4401 }, tradeHashes = { [2974417149] = { "30% increased Spell Damage" }, }, rank = { 30 }, }, ["armour"] = { type = "Rune", "18% increased Armour, Evasion and Energy Shield", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 840, 869, 871 }, + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 853, 886, 891 }, tradeHashes = { [3523867985] = { "18% increased Armour, Evasion and Energy Shield" }, }, rank = { 30 }, }, @@ -1267,107 +1496,139 @@ return { ["Greater Body Rune"] = { ["weapon"] = { type = "Rune", - "Leeches 3% of Physical Damage as Life", + "Leeches 5% of Physical Damage as Life", "Bonded: 5% increased maximum Life", - statOrder = { 972, 870 }, - tradeHashes = { [55876295] = { "Leeches 3% of Physical Damage as Life" }, }, + statOrder = { 1038, 888 }, + tradeHashes = { [55876295] = { "Leeches 5% of Physical Damage as Life" }, }, rank = { 30 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "+50 to maximum Energy Shield", + "Bonded: 5% increased maximum Life", + statOrder = { 884, 888 }, + tradeHashes = { [3489782002] = { "+50 to maximum Energy Shield" }, }, + rank = { 30 }, + }, + ["staff"] = { type = "Rune", - "+35 to maximum Energy Shield", + "+50 to maximum Energy Shield", "Bonded: 5% increased maximum Life", - statOrder = { 867, 870 }, - tradeHashes = { [3489782002] = { "+35 to maximum Energy Shield" }, }, + statOrder = { 884, 888 }, + tradeHashes = { [3489782002] = { "+50 to maximum Energy Shield" }, }, rank = { 30 }, }, ["armour"] = { type = "Rune", - "+40 to maximum Life", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 869, 869, 871 }, - tradeHashes = { [3299347043] = { "+40 to maximum Life" }, }, + "+60 to maximum Life", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 886, 886, 891 }, + tradeHashes = { [3299347043] = { "+60 to maximum Life" }, }, rank = { 30 }, }, }, ["Greater Mind Rune"] = { ["weapon"] = { type = "Rune", - "Leeches 2.5% of Physical Damage as Mana", + "Leeches 4% of Physical Damage as Mana", "Bonded: 5% increased maximum Mana", - statOrder = { 978, 872 }, - tradeHashes = { [669069897] = { "Leeches 2.5% of Physical Damage as Mana" }, }, + statOrder = { 1044, 893 }, + tradeHashes = { [669069897] = { "Leeches 4% of Physical Damage as Mana" }, }, rank = { 30 }, }, - ["caster"] = { + ["wand"] = { type = "Rune", - "+50 to maximum Mana", + "+75 to maximum Mana", "Bonded: 5% increased maximum Mana", - statOrder = { 871, 872 }, - tradeHashes = { [1050105434] = { "+50 to maximum Mana" }, }, + statOrder = { 891, 893 }, + tradeHashes = { [1050105434] = { "+75 to maximum Mana" }, }, + rank = { 30 }, + }, + ["staff"] = { + type = "Rune", + "+75 to maximum Mana", + "Bonded: 5% increased maximum Mana", + statOrder = { 891, 893 }, + tradeHashes = { [1050105434] = { "+75 to maximum Mana" }, }, rank = { 30 }, }, ["armour"] = { type = "Rune", - "+35 to maximum Mana", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 871, 869, 871 }, - tradeHashes = { [1050105434] = { "+35 to maximum Mana" }, }, + "+40 to maximum Mana", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 891, 886, 891 }, + tradeHashes = { [1050105434] = { "+40 to maximum Mana" }, }, rank = { 30 }, }, }, ["Greater Rebirth Rune"] = { ["weapon"] = { type = "Rune", - "Gain 30 Life per enemy killed", + "Gain 35 Life per enemy killed", "Bonded: Regenerate 0.4% of maximum Life per second", - statOrder = { 975, 1617 }, - tradeHashes = { [3695891184] = { "Gain 30 Life per enemy killed" }, }, + statOrder = { 1041, 1689 }, + tradeHashes = { [3695891184] = { "Gain 35 Life per enemy killed" }, }, rank = { 30 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "10% increased Energy Shield Recharge Rate", + "Bonded: 8% of Damage taken Recouped as Life", + statOrder = { 1031, 1036 }, + tradeHashes = { [2339757871] = { "10% increased Energy Shield Recharge Rate" }, }, + rank = { 30 }, + }, + ["staff"] = { type = "Rune", - "18% increased Energy Shield Recharge Rate", + "10% increased Energy Shield Recharge Rate", "Bonded: 8% of Damage taken Recouped as Life", - statOrder = { 966, 970 }, - tradeHashes = { [2339757871] = { "18% increased Energy Shield Recharge Rate" }, }, + statOrder = { 1031, 1036 }, + tradeHashes = { [2339757871] = { "10% increased Energy Shield Recharge Rate" }, }, rank = { 30 }, }, ["armour"] = { type = "Rune", - "Regenerate 0.35% of maximum Life per second", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 1617, 869, 871 }, - tradeHashes = { [836936635] = { "Regenerate 0.35% of maximum Life per second" }, }, + "Regenerate 0.45% of maximum Life per second", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1689, 886, 891 }, + tradeHashes = { [836936635] = { "Regenerate 0.45% of maximum Life per second" }, }, rank = { 30 }, }, }, ["Greater Inspiration Rune"] = { ["weapon"] = { type = "Rune", - "Gain 24 Mana per enemy killed", + "Gain 30 Mana per enemy killed", "Bonded: 12% of Skill Mana Costs Converted to Life Costs", - statOrder = { 980, 4605 }, - tradeHashes = { [1368271171] = { "Gain 24 Mana per enemy killed" }, }, + statOrder = { 1046, 4732 }, + tradeHashes = { [1368271171] = { "Gain 30 Mana per enemy killed" }, }, rank = { 30 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "30% increased Mana Regeneration Rate", + "Bonded: 16% increased Mana Cost Efficiency", + statOrder = { 1042, 4706 }, + tradeHashes = { [789117908] = { "30% increased Mana Regeneration Rate" }, }, + rank = { 30 }, + }, + ["staff"] = { type = "Rune", - "24% increased Mana Regeneration Rate", + "30% increased Mana Regeneration Rate", "Bonded: 16% increased Mana Cost Efficiency", - statOrder = { 976, 4582 }, - tradeHashes = { [789117908] = { "24% increased Mana Regeneration Rate" }, }, + statOrder = { 1042, 4706 }, + tradeHashes = { [789117908] = { "30% increased Mana Regeneration Rate" }, }, rank = { 30 }, }, ["armour"] = { type = "Rune", "18% increased Mana Regeneration Rate", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 976, 869, 871 }, + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1042, 886, 891 }, tradeHashes = { [789117908] = { "18% increased Mana Regeneration Rate" }, }, rank = { 30 }, }, @@ -1375,214 +1636,626 @@ return { ["Greater Stone Rune"] = { ["weapon"] = { type = "Rune", - "Causes 30% increased Stun Buildup", + "Causes 40% increased Stun Buildup", "Bonded: 40% increased Damage against Immobilised Enemies", - statOrder = { 985, 5564 }, - tradeHashes = { [791928121] = { "Causes 30% increased Stun Buildup" }, }, + statOrder = { 1051, 5945 }, + tradeHashes = { [791928121] = { "Causes 40% increased Stun Buildup" }, }, rank = { 30 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "Gain additional Stun Threshold equal to 14% of maximum Energy Shield", + "Bonded: 30% increased Immobilisation buildup", + statOrder = { 10097, 7170 }, + tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 14% of maximum Energy Shield" }, }, + rank = { 30 }, + }, + ["staff"] = { type = "Rune", "Gain additional Stun Threshold equal to 14% of maximum Energy Shield", "Bonded: 30% increased Immobilisation buildup", - statOrder = { 9531, 6748 }, + statOrder = { 10097, 7170 }, tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 14% of maximum Energy Shield" }, }, rank = { 30 }, }, ["armour"] = { type = "Rune", - "+80 to Stun Threshold", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 994, 869, 871 }, - tradeHashes = { [915769802] = { "+80 to Stun Threshold" }, }, + "+100 to Stun Threshold", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1060, 886, 891 }, + tradeHashes = { [915769802] = { "+100 to Stun Threshold" }, }, rank = { 30 }, }, }, ["Greater Vision Rune"] = { ["weapon"] = { type = "Rune", - "+110 to Accuracy Rating", + "+120 to Accuracy Rating", "Bonded: Attacks have +1% to Critical Hit Chance", - statOrder = { 826, 4335 }, - tradeHashes = { [691932474] = { "+110 to Accuracy Rating" }, }, + statOrder = { 834, 4455 }, + tradeHashes = { [691932474] = { "+120 to Accuracy Rating" }, }, rank = { 30 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "24% increased Critical Hit Chance for Spells", + "Bonded: 25% increased Critical Damage Bonus", + statOrder = { 977, 979 }, + tradeHashes = { [737908626] = { "24% increased Critical Hit Chance for Spells" }, }, + rank = { 30 }, + }, + ["staff"] = { type = "Rune", "24% increased Critical Hit Chance for Spells", "Bonded: 25% increased Critical Damage Bonus", - statOrder = { 935, 937 }, + statOrder = { 977, 979 }, tradeHashes = { [737908626] = { "24% increased Critical Hit Chance for Spells" }, }, rank = { 30 }, }, ["armour"] = { type = "Rune", - "12% increased Life and Mana Recovery from Flasks", - "Bonded: +10 to maximum Life", - "Bonded: +10 to maximum Mana", - statOrder = { 6220, 869, 871 }, - tradeHashes = { [2310741722] = { "12% increased Life and Mana Recovery from Flasks" }, }, + "16% increased Life and Mana Recovery from Flasks", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 6621, 886, 891 }, + tradeHashes = { [2310741722] = { "16% increased Life and Mana Recovery from Flasks" }, }, rank = { 30 }, }, }, - ["Lesser Robust Rune"] = { + ["Perfect Desert Rune"] = { ["weapon"] = { type = "Rune", - "+6 to Strength", - statOrder = { 947 }, - tradeHashes = { [4080418644] = { "+6 to Strength" }, }, - rank = { 0 }, - }, - ["armour"] = { - type = "Rune", - "+6 to Strength", - statOrder = { 947 }, - tradeHashes = { [4080418644] = { "+6 to Strength" }, }, - rank = { 0 }, + "Adds 17 to 20 Fire Damage", + "Bonded: 30% increased Ignite Magnitude", + statOrder = { 831, 1076 }, + tradeHashes = { [709508406] = { "Adds 17 to 20 Fire Damage" }, }, + rank = { 50 }, }, - ["caster"] = { + ["wand"] = { type = "Rune", - "+6 to Strength", - statOrder = { 947 }, - tradeHashes = { [4080418644] = { "+6 to Strength" }, }, - rank = { 0 }, + "Gain 12% of Damage as Extra Fire Damage", + "Bonded: 30% increased Ignite Magnitude", + statOrder = { 862, 1076 }, + tradeHashes = { [3015669065] = { "Gain 12% of Damage as Extra Fire Damage" }, }, + rank = { 50 }, }, - }, - ["Robust Rune"] = { - ["weapon"] = { + ["staff"] = { type = "Rune", - "+8 to Strength", - statOrder = { 947 }, - tradeHashes = { [4080418644] = { "+8 to Strength" }, }, - rank = { 15 }, + "Gain 12% of Damage as Extra Fire Damage", + "Bonded: 30% increased Ignite Magnitude", + statOrder = { 862, 1076 }, + tradeHashes = { [3015669065] = { "Gain 12% of Damage as Extra Fire Damage" }, }, + rank = { 50 }, }, ["armour"] = { type = "Rune", - "+8 to Strength", - statOrder = { 947 }, - tradeHashes = { [4080418644] = { "+8 to Strength" }, }, - rank = { 15 }, - }, - ["caster"] = { - type = "Rune", - "+8 to Strength", - statOrder = { 947 }, - tradeHashes = { [4080418644] = { "+8 to Strength" }, }, - rank = { 15 }, + "+22% to Fire Resistance", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1013, 886, 891 }, + tradeHashes = { [3372524247] = { "+22% to Fire Resistance" }, }, + rank = { 50 }, }, }, - ["Greater Robust Rune"] = { + ["Perfect Glacial Rune"] = { ["weapon"] = { type = "Rune", - "+10 to Strength", - statOrder = { 947 }, - tradeHashes = { [4080418644] = { "+10 to Strength" }, }, - rank = { 30 }, + "Adds 16 to 20 Cold Damage", + "Bonded: 30% increased Freeze Buildup", + statOrder = { 832, 1056 }, + tradeHashes = { [1037193709] = { "Adds 16 to 20 Cold Damage" }, }, + rank = { 50 }, }, - ["armour"] = { + ["wand"] = { type = "Rune", - "+10 to Strength", - statOrder = { 947 }, - tradeHashes = { [4080418644] = { "+10 to Strength" }, }, - rank = { 30 }, + "Gain 12% of Damage as Extra Cold Damage", + "Bonded: 30% increased Freeze Buildup", + statOrder = { 865, 1056 }, + tradeHashes = { [2505884597] = { "Gain 12% of Damage as Extra Cold Damage" }, }, + rank = { 50 }, }, - ["caster"] = { + ["staff"] = { type = "Rune", - "+10 to Strength", - statOrder = { 947 }, - tradeHashes = { [4080418644] = { "+10 to Strength" }, }, - rank = { 30 }, + "Gain 12% of Damage as Extra Cold Damage", + "Bonded: 30% increased Freeze Buildup", + statOrder = { 865, 1056 }, + tradeHashes = { [2505884597] = { "Gain 12% of Damage as Extra Cold Damage" }, }, + rank = { 50 }, + }, + ["armour"] = { + type = "Rune", + "+22% to Cold Resistance", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1019, 886, 891 }, + tradeHashes = { [4220027924] = { "+22% to Cold Resistance" }, }, + rank = { 50 }, }, }, - ["Lesser Adept Rune"] = { + ["Perfect Storm Rune"] = { ["weapon"] = { type = "Rune", - "+6 to Dexterity", - statOrder = { 948 }, - tradeHashes = { [3261801346] = { "+6 to Dexterity" }, }, - rank = { 0 }, + "Adds 1 to 40 Lightning Damage", + "Bonded: 30% increased Magnitude of Shock you inflict", + statOrder = { 833, 9804 }, + tradeHashes = { [3336890334] = { "Adds 1 to 40 Lightning Damage" }, }, + rank = { 50 }, }, - ["armour"] = { + ["wand"] = { type = "Rune", - "+6 to Dexterity", - statOrder = { 948 }, - tradeHashes = { [3261801346] = { "+6 to Dexterity" }, }, - rank = { 0 }, + "Gain 12% of Damage as Extra Lightning Damage", + "Bonded: 30% increased Magnitude of Shock you inflict", + statOrder = { 868, 9804 }, + tradeHashes = { [3278136794] = { "Gain 12% of Damage as Extra Lightning Damage" }, }, + rank = { 50 }, }, - ["caster"] = { + ["staff"] = { type = "Rune", - "+6 to Dexterity", - statOrder = { 948 }, - tradeHashes = { [3261801346] = { "+6 to Dexterity" }, }, - rank = { 0 }, + "Gain 12% of Damage as Extra Lightning Damage", + "Bonded: 30% increased Magnitude of Shock you inflict", + statOrder = { 868, 9804 }, + tradeHashes = { [3278136794] = { "Gain 12% of Damage as Extra Lightning Damage" }, }, + rank = { 50 }, + }, + ["armour"] = { + type = "Rune", + "+22% to Lightning Resistance", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1022, 886, 891 }, + tradeHashes = { [1671376347] = { "+22% to Lightning Resistance" }, }, + rank = { 50 }, }, }, - ["Adept Rune"] = { + ["Perfect Iron Rune"] = { ["weapon"] = { type = "Rune", - "+8 to Dexterity", - statOrder = { 948 }, - tradeHashes = { [3261801346] = { "+8 to Dexterity" }, }, - rank = { 15 }, + "20% increased Physical Damage", + "Bonded: 20% increased effect of Fully Broken Armour", + statOrder = { 829, 5224 }, + tradeHashes = { [1805374733] = { "20% increased Physical Damage" }, }, + rank = { 50 }, }, - ["armour"] = { + ["wand"] = { type = "Rune", - "+8 to Dexterity", - statOrder = { 948 }, - tradeHashes = { [3261801346] = { "+8 to Dexterity" }, }, - rank = { 15 }, + "35% increased Spell Damage", + "Bonded: Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", + statOrder = { 870, 4401 }, + tradeHashes = { [2974417149] = { "35% increased Spell Damage" }, }, + rank = { 50 }, }, - ["caster"] = { + ["staff"] = { type = "Rune", - "+8 to Dexterity", - statOrder = { 948 }, - tradeHashes = { [3261801346] = { "+8 to Dexterity" }, }, - rank = { 15 }, + "35% increased Spell Damage", + "Bonded: Break Armour on Critical Hit with Spells equal to 12% of Physical Damage dealt", + statOrder = { 870, 4401 }, + tradeHashes = { [2974417149] = { "35% increased Spell Damage" }, }, + rank = { 50 }, + }, + ["armour"] = { + type = "Rune", + "20% increased Armour, Evasion and Energy Shield", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 853, 886, 891 }, + tradeHashes = { [3523867985] = { "20% increased Armour, Evasion and Energy Shield" }, }, + rank = { 50 }, }, }, - ["Greater Adept Rune"] = { + ["Perfect Body Rune"] = { ["weapon"] = { type = "Rune", - "+10 to Dexterity", - statOrder = { 948 }, - tradeHashes = { [3261801346] = { "+10 to Dexterity" }, }, - rank = { 30 }, + "Leeches 6% of Physical Damage as Life", + "Bonded: 5% increased maximum Life", + statOrder = { 1038, 888 }, + tradeHashes = { [55876295] = { "Leeches 6% of Physical Damage as Life" }, }, + rank = { 50 }, }, - ["armour"] = { + ["wand"] = { type = "Rune", - "+10 to Dexterity", - statOrder = { 948 }, - tradeHashes = { [3261801346] = { "+10 to Dexterity" }, }, - rank = { 30 }, + "+60 to maximum Energy Shield", + "Bonded: 5% increased maximum Life", + statOrder = { 884, 888 }, + tradeHashes = { [3489782002] = { "+60 to maximum Energy Shield" }, }, + rank = { 50 }, + }, + ["staff"] = { + type = "Rune", + "+60 to maximum Energy Shield", + "Bonded: 5% increased maximum Life", + statOrder = { 884, 888 }, + tradeHashes = { [3489782002] = { "+60 to maximum Energy Shield" }, }, + rank = { 50 }, + }, + ["armour"] = { + type = "Rune", + "+75 to maximum Life", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 886, 886, 891 }, + tradeHashes = { [3299347043] = { "+75 to maximum Life" }, }, + rank = { 50 }, + }, + }, + ["Perfect Mind Rune"] = { + ["weapon"] = { + type = "Rune", + "Leeches 5% of Physical Damage as Mana", + "Bonded: 5% increased maximum Mana", + statOrder = { 1044, 893 }, + tradeHashes = { [669069897] = { "Leeches 5% of Physical Damage as Mana" }, }, + rank = { 50 }, + }, + ["wand"] = { + type = "Rune", + "+90 to maximum Mana", + "Bonded: 5% increased maximum Mana", + statOrder = { 891, 893 }, + tradeHashes = { [1050105434] = { "+90 to maximum Mana" }, }, + rank = { 50 }, + }, + ["staff"] = { + type = "Rune", + "+90 to maximum Mana", + "Bonded: 5% increased maximum Mana", + statOrder = { 891, 893 }, + tradeHashes = { [1050105434] = { "+90 to maximum Mana" }, }, + rank = { 50 }, + }, + ["armour"] = { + type = "Rune", + "+50 to maximum Mana", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 891, 886, 891 }, + tradeHashes = { [1050105434] = { "+50 to maximum Mana" }, }, + rank = { 50 }, + }, + }, + ["Perfect Rebirth Rune"] = { + ["weapon"] = { + type = "Rune", + "Gain 45 Life per enemy killed", + "Bonded: Regenerate 0.4% of maximum Life per second", + statOrder = { 1041, 1689 }, + tradeHashes = { [3695891184] = { "Gain 45 Life per enemy killed" }, }, + rank = { 50 }, + }, + ["wand"] = { + type = "Rune", + "12% increased Energy Shield Recharge Rate", + "Bonded: 8% of Damage taken Recouped as Life", + statOrder = { 1031, 1036 }, + tradeHashes = { [2339757871] = { "12% increased Energy Shield Recharge Rate" }, }, + rank = { 50 }, + }, + ["staff"] = { + type = "Rune", + "12% increased Energy Shield Recharge Rate", + "Bonded: 8% of Damage taken Recouped as Life", + statOrder = { 1031, 1036 }, + tradeHashes = { [2339757871] = { "12% increased Energy Shield Recharge Rate" }, }, + rank = { 50 }, + }, + ["armour"] = { + type = "Rune", + "Regenerate 0.5% of maximum Life per second", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1689, 886, 891 }, + tradeHashes = { [836936635] = { "Regenerate 0.5% of maximum Life per second" }, }, + rank = { 50 }, + }, + }, + ["Perfect Inspiration Rune"] = { + ["weapon"] = { + type = "Rune", + "Gain 40 Mana per enemy killed", + "Bonded: 12% of Skill Mana Costs Converted to Life Costs", + statOrder = { 1046, 4732 }, + tradeHashes = { [1368271171] = { "Gain 40 Mana per enemy killed" }, }, + rank = { 50 }, + }, + ["wand"] = { + type = "Rune", + "35% increased Mana Regeneration Rate", + "Bonded: 16% increased Mana Cost Efficiency", + statOrder = { 1042, 4706 }, + tradeHashes = { [789117908] = { "35% increased Mana Regeneration Rate" }, }, + rank = { 50 }, + }, + ["staff"] = { + type = "Rune", + "35% increased Mana Regeneration Rate", + "Bonded: 16% increased Mana Cost Efficiency", + statOrder = { 1042, 4706 }, + tradeHashes = { [789117908] = { "35% increased Mana Regeneration Rate" }, }, + rank = { 50 }, + }, + ["armour"] = { + type = "Rune", + "21% increased Mana Regeneration Rate", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1042, 886, 891 }, + tradeHashes = { [789117908] = { "21% increased Mana Regeneration Rate" }, }, + rank = { 50 }, + }, + }, + ["Perfect Stone Rune"] = { + ["weapon"] = { + type = "Rune", + "Causes 50% increased Stun Buildup", + "Bonded: 40% increased Damage against Immobilised Enemies", + statOrder = { 1051, 5945 }, + tradeHashes = { [791928121] = { "Causes 50% increased Stun Buildup" }, }, + rank = { 50 }, + }, + ["wand"] = { + type = "Rune", + "Gain additional Stun Threshold equal to 16% of maximum Energy Shield", + "Bonded: 30% increased Immobilisation buildup", + statOrder = { 10097, 7170 }, + tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 16% of maximum Energy Shield" }, }, + rank = { 50 }, + }, + ["staff"] = { + type = "Rune", + "Gain additional Stun Threshold equal to 16% of maximum Energy Shield", + "Bonded: 30% increased Immobilisation buildup", + statOrder = { 10097, 7170 }, + tradeHashes = { [416040624] = { "Gain additional Stun Threshold equal to 16% of maximum Energy Shield" }, }, + rank = { 50 }, + }, + ["armour"] = { + type = "Rune", + "+125 to Stun Threshold", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 1060, 886, 891 }, + tradeHashes = { [915769802] = { "+125 to Stun Threshold" }, }, + rank = { 50 }, + }, + }, + ["Perfect Vision Rune"] = { + ["weapon"] = { + type = "Rune", + "+150 to Accuracy Rating", + "Bonded: Attacks have +1% to Critical Hit Chance", + statOrder = { 834, 4455 }, + tradeHashes = { [691932474] = { "+150 to Accuracy Rating" }, }, + rank = { 50 }, + }, + ["wand"] = { + type = "Rune", + "28% increased Critical Hit Chance for Spells", + "Bonded: 25% increased Critical Damage Bonus", + statOrder = { 977, 979 }, + tradeHashes = { [737908626] = { "28% increased Critical Hit Chance for Spells" }, }, + rank = { 50 }, + }, + ["staff"] = { + type = "Rune", + "28% increased Critical Hit Chance for Spells", + "Bonded: 25% increased Critical Damage Bonus", + statOrder = { 977, 979 }, + tradeHashes = { [737908626] = { "28% increased Critical Hit Chance for Spells" }, }, + rank = { 50 }, + }, + ["armour"] = { + type = "Rune", + "20% increased Life and Mana Recovery from Flasks", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 6621, 886, 891 }, + tradeHashes = { [2310741722] = { "20% increased Life and Mana Recovery from Flasks" }, }, + rank = { 50 }, + }, + }, + ["Lesser Robust Rune"] = { + ["weapon"] = { + type = "Rune", + "+6 to Strength", + statOrder = { 991 }, + tradeHashes = { [4080418644] = { "+6 to Strength" }, }, + rank = { 0 }, + }, + ["armour"] = { + type = "Rune", + "+6 to Strength", + statOrder = { 991 }, + tradeHashes = { [4080418644] = { "+6 to Strength" }, }, + rank = { 0 }, + }, + ["caster"] = { + type = "Rune", + "+6 to Strength", + statOrder = { 991 }, + tradeHashes = { [4080418644] = { "+6 to Strength" }, }, + rank = { 0 }, + }, + }, + ["Robust Rune"] = { + ["weapon"] = { + type = "Rune", + "+9 to Strength", + statOrder = { 991 }, + tradeHashes = { [4080418644] = { "+9 to Strength" }, }, + rank = { 15 }, + }, + ["armour"] = { + type = "Rune", + "+9 to Strength", + statOrder = { 991 }, + tradeHashes = { [4080418644] = { "+9 to Strength" }, }, + rank = { 15 }, + }, + ["caster"] = { + type = "Rune", + "+9 to Strength", + statOrder = { 991 }, + tradeHashes = { [4080418644] = { "+9 to Strength" }, }, + rank = { 15 }, + }, + }, + ["Greater Robust Rune"] = { + ["weapon"] = { + type = "Rune", + "+12 to Strength", + statOrder = { 991 }, + tradeHashes = { [4080418644] = { "+12 to Strength" }, }, + rank = { 30 }, + }, + ["armour"] = { + type = "Rune", + "+12 to Strength", + statOrder = { 991 }, + tradeHashes = { [4080418644] = { "+12 to Strength" }, }, + rank = { 30 }, + }, + ["caster"] = { + type = "Rune", + "+12 to Strength", + statOrder = { 991 }, + tradeHashes = { [4080418644] = { "+12 to Strength" }, }, + rank = { 30 }, + }, + }, + ["Perfect Robust Rune"] = { + ["weapon"] = { + type = "Rune", + "+15 to Strength", + statOrder = { 991 }, + tradeHashes = { [4080418644] = { "+15 to Strength" }, }, + rank = { 50 }, + }, + ["armour"] = { + type = "Rune", + "+15 to Strength", + statOrder = { 991 }, + tradeHashes = { [4080418644] = { "+15 to Strength" }, }, + rank = { 50 }, + }, + ["caster"] = { + type = "Rune", + "+15 to Strength", + statOrder = { 991 }, + tradeHashes = { [4080418644] = { "+15 to Strength" }, }, + rank = { 50 }, + }, + }, + ["Lesser Adept Rune"] = { + ["weapon"] = { + type = "Rune", + "+6 to Dexterity", + statOrder = { 992 }, + tradeHashes = { [3261801346] = { "+6 to Dexterity" }, }, + rank = { 0 }, + }, + ["armour"] = { + type = "Rune", + "+6 to Dexterity", + statOrder = { 992 }, + tradeHashes = { [3261801346] = { "+6 to Dexterity" }, }, + rank = { 0 }, + }, + ["caster"] = { + type = "Rune", + "+6 to Dexterity", + statOrder = { 992 }, + tradeHashes = { [3261801346] = { "+6 to Dexterity" }, }, + rank = { 0 }, + }, + }, + ["Adept Rune"] = { + ["weapon"] = { + type = "Rune", + "+9 to Dexterity", + statOrder = { 992 }, + tradeHashes = { [3261801346] = { "+9 to Dexterity" }, }, + rank = { 15 }, + }, + ["armour"] = { + type = "Rune", + "+9 to Dexterity", + statOrder = { 992 }, + tradeHashes = { [3261801346] = { "+9 to Dexterity" }, }, + rank = { 15 }, + }, + ["caster"] = { + type = "Rune", + "+9 to Dexterity", + statOrder = { 992 }, + tradeHashes = { [3261801346] = { "+9 to Dexterity" }, }, + rank = { 15 }, + }, + }, + ["Greater Adept Rune"] = { + ["weapon"] = { + type = "Rune", + "+12 to Dexterity", + statOrder = { 992 }, + tradeHashes = { [3261801346] = { "+12 to Dexterity" }, }, + rank = { 30 }, + }, + ["armour"] = { + type = "Rune", + "+12 to Dexterity", + statOrder = { 992 }, + tradeHashes = { [3261801346] = { "+12 to Dexterity" }, }, + rank = { 30 }, }, ["caster"] = { type = "Rune", - "+10 to Dexterity", - statOrder = { 948 }, - tradeHashes = { [3261801346] = { "+10 to Dexterity" }, }, + "+12 to Dexterity", + statOrder = { 992 }, + tradeHashes = { [3261801346] = { "+12 to Dexterity" }, }, rank = { 30 }, }, }, + ["Perfect Adept Rune"] = { + ["weapon"] = { + type = "Rune", + "+15 to Dexterity", + statOrder = { 992 }, + tradeHashes = { [3261801346] = { "+15 to Dexterity" }, }, + rank = { 50 }, + }, + ["armour"] = { + type = "Rune", + "+15 to Dexterity", + statOrder = { 992 }, + tradeHashes = { [3261801346] = { "+15 to Dexterity" }, }, + rank = { 50 }, + }, + ["caster"] = { + type = "Rune", + "+15 to Dexterity", + statOrder = { 992 }, + tradeHashes = { [3261801346] = { "+15 to Dexterity" }, }, + rank = { 50 }, + }, + }, ["Lesser Resolve Rune"] = { ["weapon"] = { type = "Rune", "+6 to Intelligence", - statOrder = { 949 }, + statOrder = { 993 }, tradeHashes = { [328541901] = { "+6 to Intelligence" }, }, rank = { 0 }, }, ["armour"] = { type = "Rune", "+6 to Intelligence", - statOrder = { 949 }, + statOrder = { 993 }, tradeHashes = { [328541901] = { "+6 to Intelligence" }, }, rank = { 0 }, }, ["caster"] = { type = "Rune", "+6 to Intelligence", - statOrder = { 949 }, + statOrder = { 993 }, tradeHashes = { [328541901] = { "+6 to Intelligence" }, }, rank = { 0 }, }, @@ -1590,61 +2263,84 @@ return { ["Resolve Rune"] = { ["weapon"] = { type = "Rune", - "+8 to Intelligence", - statOrder = { 949 }, - tradeHashes = { [328541901] = { "+8 to Intelligence" }, }, + "+9 to Intelligence", + statOrder = { 993 }, + tradeHashes = { [328541901] = { "+9 to Intelligence" }, }, rank = { 15 }, }, ["armour"] = { type = "Rune", - "+8 to Intelligence", - statOrder = { 949 }, - tradeHashes = { [328541901] = { "+8 to Intelligence" }, }, + "+9 to Intelligence", + statOrder = { 993 }, + tradeHashes = { [328541901] = { "+9 to Intelligence" }, }, rank = { 15 }, }, ["caster"] = { type = "Rune", - "+8 to Intelligence", - statOrder = { 949 }, - tradeHashes = { [328541901] = { "+8 to Intelligence" }, }, + "+9 to Intelligence", + statOrder = { 993 }, + tradeHashes = { [328541901] = { "+9 to Intelligence" }, }, rank = { 15 }, }, }, ["Greater Resolve Rune"] = { ["weapon"] = { type = "Rune", - "+10 to Intelligence", - statOrder = { 949 }, - tradeHashes = { [328541901] = { "+10 to Intelligence" }, }, + "+12 to Intelligence", + statOrder = { 993 }, + tradeHashes = { [328541901] = { "+12 to Intelligence" }, }, rank = { 30 }, }, ["armour"] = { type = "Rune", - "+10 to Intelligence", - statOrder = { 949 }, - tradeHashes = { [328541901] = { "+10 to Intelligence" }, }, + "+12 to Intelligence", + statOrder = { 993 }, + tradeHashes = { [328541901] = { "+12 to Intelligence" }, }, rank = { 30 }, }, ["caster"] = { type = "Rune", - "+10 to Intelligence", - statOrder = { 949 }, - tradeHashes = { [328541901] = { "+10 to Intelligence" }, }, + "+12 to Intelligence", + statOrder = { 993 }, + tradeHashes = { [328541901] = { "+12 to Intelligence" }, }, rank = { 30 }, }, }, + ["Perfect Resolve Rune"] = { + ["weapon"] = { + type = "Rune", + "+15 to Intelligence", + statOrder = { 993 }, + tradeHashes = { [328541901] = { "+15 to Intelligence" }, }, + rank = { 50 }, + }, + ["armour"] = { + type = "Rune", + "+15 to Intelligence", + statOrder = { 993 }, + tradeHashes = { [328541901] = { "+15 to Intelligence" }, }, + rank = { 50 }, + }, + ["caster"] = { + type = "Rune", + "+15 to Intelligence", + statOrder = { 993 }, + tradeHashes = { [328541901] = { "+15 to Intelligence" }, }, + rank = { 50 }, + }, + }, ["Lesser Tempered Rune"] = { ["weapon"] = { type = "Rune", "Adds 3 to 4 Physical Damage", - statOrder = { 822 }, + statOrder = { 830 }, tradeHashes = { [1940865751] = { "Adds 3 to 4 Physical Damage" }, }, rank = { 0 }, }, ["armour"] = { type = "Rune", "6 to 9 Physical Thorns damage", - statOrder = { 9653 }, + statOrder = { 10220 }, tradeHashes = { [2881298780] = { "6 to 9 Physical Thorns damage" }, }, rank = { 0 }, }, @@ -1653,14 +2349,14 @@ return { ["weapon"] = { type = "Rune", "Adds 6 to 9 Physical Damage", - statOrder = { 822 }, + statOrder = { 830 }, tradeHashes = { [1940865751] = { "Adds 6 to 9 Physical Damage" }, }, rank = { 15 }, }, ["armour"] = { type = "Rune", "14 to 21 Physical Thorns damage", - statOrder = { 9653 }, + statOrder = { 10220 }, tradeHashes = { [2881298780] = { "14 to 21 Physical Thorns damage" }, }, rank = { 15 }, }, @@ -1669,14 +2365,14 @@ return { ["weapon"] = { type = "Rune", "Adds 9 to 12 Physical Damage", - statOrder = { 822 }, + statOrder = { 830 }, tradeHashes = { [1940865751] = { "Adds 9 to 12 Physical Damage" }, }, rank = { 30 }, }, ["armour"] = { type = "Rune", "31 to 52 Physical Thorns damage", - statOrder = { 9653 }, + statOrder = { 10220 }, tradeHashes = { [2881298780] = { "31 to 52 Physical Thorns damage" }, }, rank = { 30 }, }, @@ -1686,7 +2382,7 @@ return { type = "Rune", "Minions gain 10% of their Physical Damage as Extra Lightning Damage", "Bonded: Minions deal 20% increased Damage", - statOrder = { 8518, 1646 }, + statOrder = { 9039, 1718 }, tradeHashes = { [1433756169] = { "Minions gain 10% of their Physical Damage as Extra Lightning Damage" }, }, rank = { 0 }, }, @@ -1694,7 +2390,7 @@ return { type = "Rune", "Minions take 10% of Physical Damage as Lightning Damage", "Bonded: Minions have +10% to all Elemental Resistances", - statOrder = { 8519, 2558 }, + statOrder = { 9040, 2665 }, tradeHashes = { [889552744] = { "Minions take 10% of Physical Damage as Lightning Damage" }, }, rank = { 0 }, }, @@ -1704,7 +2400,7 @@ return { type = "Rune", "Meta Skills gain 10% increased Energy", "Bonded: Invocated Spells have 25% chance to consume half as much Energy", - statOrder = { 5987, 6924 }, + statOrder = { 6387, 7362 }, tradeHashes = { [4236566306] = { "Meta Skills gain 10% increased Energy" }, }, rank = { 0 }, }, @@ -1712,7 +2408,7 @@ return { type = "Rune", "1 to 100 Lightning Thorns damage", "Bonded: 15% increased Thorns damage", - statOrder = { 9652, 9646 }, + statOrder = { 10219, 10213 }, tradeHashes = { [757050353] = { "1 to 100 Lightning Thorns damage" }, }, rank = { 0 }, }, @@ -1722,7 +2418,7 @@ return { type = "Rune", "8% increased Skill Speed", "Bonded: 15% increased Reservation Efficiency of Herald Skills", - statOrder = { 828, 9179 }, + statOrder = { 836, 9724 }, tradeHashes = { [970213192] = { "8% increased Skill Speed" }, }, rank = { 0 }, }, @@ -1730,7 +2426,7 @@ return { type = "Rune", "Debuffs on you expire 8% faster", "Bonded: 15% increased Elemental Ailment Threshold", - statOrder = { 5703, 4147 }, + statOrder = { 6085, 4256 }, tradeHashes = { [1238227257] = { "Debuffs on you expire 8% faster" }, }, rank = { 0 }, }, @@ -1740,7 +2436,7 @@ return { type = "Rune", "Attacks with this Weapon have 10% chance to inflict Exposure", "Bonded: 20% increased Exposure Effect", - statOrder = { 7269, 6106 }, + statOrder = { 7710, 6510 }, tradeHashes = { [3678845069] = { "Attacks with this Weapon have 10% chance to inflict Exposure" }, }, rank = { 0 }, }, @@ -1748,17 +2444,25 @@ return { type = "Rune", "10% reduced effect of Shock on you", "Bonded: 10% reduced Shock duration on you", - statOrder = { 9261, 999 }, + statOrder = { 9818, 1065 }, tradeHashes = { [3801067695] = { "10% reduced effect of Shock on you" }, }, rank = { 0 }, }, }, ["Hedgewitch Assandra's Rune of Wisdom"] = { - ["caster"] = { + ["wand"] = { + type = "Rune", + "+1 to Level of all Spell Skills", + "Bonded: Archon recovery period expires 30% faster", + statOrder = { 949, 4333 }, + tradeHashes = { [124131830] = { "+1 to Level of all Spell Skills" }, }, + rank = { 50 }, + }, + ["staff"] = { type = "Rune", "+1 to Level of all Spell Skills", "Bonded: Archon recovery period expires 30% faster", - statOrder = { 922, 4221 }, + statOrder = { 949, 4333 }, tradeHashes = { [124131830] = { "+1 to Level of all Spell Skills" }, }, rank = { 50 }, }, @@ -1768,16 +2472,25 @@ return { 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 = { 8691, 5146 }, + statOrder = { 9223, 5509 }, tradeHashes = { [731403740] = { "Gain 5% of Damage as Extra Damage of all Elements" }, }, rank = { 50 }, }, - ["caster"] = { + ["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 = { 9223, 4183, 4183.1 }, + tradeHashes = { [731403740] = { "Gain 5% of Damage as Extra Damage of all Elements" }, }, + 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 = { 8691, 4077, 4077.1 }, + statOrder = { 9223, 4183, 4183.1 }, tradeHashes = { [731403740] = { "Gain 5% of Damage as Extra Damage of all Elements" }, }, rank = { 50 }, }, @@ -1787,15 +2500,23 @@ return { type = "Rune", "Gain 13% of Damage as Extra Chaos Damage", "Bonded: Gain 8% of Damage as Extra Physical Damage", - statOrder = { 1602, 1601 }, + statOrder = { 1670, 1669 }, tradeHashes = { [3398787959] = { "Gain 13% of Damage as Extra Chaos Damage" }, }, rank = { 50 }, }, - ["caster"] = { + ["wand"] = { + type = "Rune", + "Gain 13% of Damage as Extra Chaos Damage", + "Bonded: Gain 8% of Damage as Extra Physical Damage", + statOrder = { 1670, 1669 }, + tradeHashes = { [3398787959] = { "Gain 13% of Damage as Extra Chaos Damage" }, }, + rank = { 50 }, + }, + ["staff"] = { type = "Rune", "Gain 13% of Damage as Extra Chaos Damage", "Bonded: Gain 8% of Damage as Extra Physical Damage", - statOrder = { 1602, 1601 }, + statOrder = { 1670, 1669 }, tradeHashes = { [3398787959] = { "Gain 13% of Damage as Extra Chaos Damage" }, }, rank = { 50 }, }, @@ -1805,7 +2526,7 @@ return { type = "Rune", "8% increased Deflection Rating while moving", "Bonded: Prevent +3% of Damage from Deflected Hits", - statOrder = { 5722, 4541 }, + statOrder = { 6106, 4667 }, tradeHashes = { [1382805233] = { "8% increased Deflection Rating while moving" }, }, rank = { 50 }, }, @@ -1815,7 +2536,7 @@ return { type = "Rune", "5% increased Movement Speed", "Bonded: 10% increased Cooldown Recovery Rate", - statOrder = { 827, 4539 }, + statOrder = { 835, 4666 }, tradeHashes = { [2250533757] = { "5% increased Movement Speed" }, }, rank = { 50 }, }, @@ -1825,7 +2546,7 @@ return { type = "Rune", "50% reduced effect of Curses on you", "Bonded: 8% increased Curse Magnitudes", - statOrder = { 1835, 2266 }, + statOrder = { 1909, 2374 }, tradeHashes = { [3407849389] = { "50% reduced effect of Curses on you" }, }, rank = { 50 }, }, @@ -1835,7 +2556,7 @@ return { type = "Rune", "2% increased Experience gain", "Bonded: +10% to all Elemental Resistances", - statOrder = { 1397, 957 }, + statOrder = { 1470, 1012 }, tradeHashes = { [3666934677] = { "2% increased Experience gain" }, }, rank = { 50 }, }, @@ -1845,179 +2566,1911 @@ return { type = "Rune", "25% increased Exposure Effect", "Bonded: 15% increased Magnitude of Non-Damaging Ailments you inflict", - statOrder = { 6106, 8659 }, + statOrder = { 6510, 9183 }, tradeHashes = { [2074866941] = { "25% increased Exposure Effect" }, }, rank = { 50 }, }, }, - ["Farrul's Rune of the Hunt"] = { - ["weapon"] = { + ["Farrul's Rune of the Hunt"] = { + ["weapon"] = { + type = "Rune", + "50% increased Attack Damage against Rare or Unique Enemies", + "Bonded: +1 to Level of all Attack Skills", + statOrder = { 4504, 966 }, + tradeHashes = { [2077615515] = { "50% increased Attack Damage against Rare or Unique Enemies" }, }, + rank = { 50 }, + }, + }, + ["Craiceann's Rune of Recovery"] = { + ["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 = { 1031, 4255, 10097 }, + tradeHashes = { [2339757871] = { "30% increased Energy Shield Recharge Rate" }, }, + rank = { 50 }, + }, + }, + ["Courtesan Mannan's Rune of Cruelty"] = { + ["gloves"] = { + type = "Rune", + "20% increased Magnitude of Damaging Ailments you inflict", + "Bonded: 15% increased Duration of Damaging Ailments on Enemies", + statOrder = { 6053, 6051 }, + tradeHashes = { [1381474422] = { "20% increased Magnitude of Damaging Ailments you inflict" }, }, + rank = { 50 }, + }, + }, + ["Thane Grannell's Rune of Mastery"] = { + ["gloves"] = { + type = "Rune", + "30% increased Magnitude of Non-Damaging Ailments you inflict", + "Bonded: 15% increased Duration of Elemental Ailments on Enemies", + statOrder = { 9183, 1615 }, + tradeHashes = { [782230869] = { "30% increased Magnitude of Non-Damaging Ailments you inflict" }, }, + rank = { 50 }, + }, + }, + ["Fenumus' Rune of Spinning"] = { + ["gloves"] = { + type = "Rune", + "8% increased Cast Speed", + "Bonded: 20% increased Mana Cost Efficiency while on Low Mana", + statOrder = { 986, 4711 }, + tradeHashes = { [2891184298] = { "8% increased Cast Speed" }, }, + rank = { 50 }, + }, + }, + ["Countess Seske's Rune of Archery"] = { + ["bow"] = { + type = "Rune", + "Bow Attacks fire an additional Arrow", + "Bonded: 20% increased Projectile Speed", + statOrder = { 989, 896 }, + tradeHashes = { [3885405204] = { "Bow Attacks fire an additional Arrow" }, }, + rank = { 50 }, + }, + }, + ["Thane Girt's Rune of Wildness"] = { + ["wand"] = { + type = "Rune", + "25% chance for Spell Skills to fire 2 additional Projectiles", + "Bonded: Every Rage also grants 1% increased Spell Damage", + statOrder = { 9993, 9967 }, + tradeHashes = { [2910761524] = { "25% chance for Spell Skills to fire 2 additional Projectiles" }, }, + 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 = { 9993, 9967 }, + tradeHashes = { [2910761524] = { "25% chance for Spell Skills to fire 2 additional Projectiles" }, }, + rank = { 50 }, + }, + }, + ["Fenumus' Rune of Draining"] = { + ["gloves"] = { + type = "Rune", + "20% increased Withered Magnitude", + "Bonded: +7% to Chaos Resistance", + statOrder = { 10514, 1023 }, + tradeHashes = { [3973629633] = { "20% increased Withered Magnitude" }, }, + rank = { 50 }, + }, + }, + ["Thane Myrk's Rune of Summer"] = { + ["weapon"] = { + type = "Rune", + "Adds 23 to 34 Fire Damage to Attacks against Ignited Enemies", + "Bonded: +2% to Maximum Fire Resistance", + statOrder = { 1211, 1008 }, + tradeHashes = { [627339348] = { "Adds 23 to 34 Fire Damage to Attacks against Ignited Enemies" }, }, + rank = { 50 }, + }, + }, + ["Lady Hestra's Rune of Winter"] = { + ["weapon"] = { + type = "Rune", + "Adds 19 to 28 Cold Damage against Chilled Enemies", + "Bonded: +2% to Maximum Cold Resistance", + statOrder = { 8927, 1009 }, + tradeHashes = { [3734640451] = { "Adds 19 to 28 Cold Damage against Chilled Enemies" }, }, + rank = { 50 }, + }, + }, + ["Thane Leld's Rune of Spring"] = { + ["weapon"] = { + type = "Rune", + "Adds 1 to 60 Lightning Damage against Shocked Enemies", + "Bonded: +2% to Maximum Lightning Resistance", + statOrder = { 6887, 1010 }, + tradeHashes = { [90012347] = { "Adds 1 to 60 Lightning Damage against Shocked Enemies" }, }, + rank = { 50 }, + }, + }, + ["The Greatwolf's Rune of Claws"] = { + ["gloves"] = { + type = "Rune", + "Adds 5 to 12 Physical Damage to Attacks", + "Bonded: Fissure Skills have +2 to Limit", + statOrder = { 857, 6593 }, + tradeHashes = { [3032590688] = { "Adds 5 to 12 Physical Damage to Attacks" }, }, + rank = { 50 }, + }, + }, + ["The Greatwolf's Rune of Willpower"] = { + ["body armour"] = { + type = "Rune", + "15% of Damage is taken from Mana before Life", + "Bonded: 8% of Maximum Life Converted to Energy Shield", + statOrder = { 2470, 8849 }, + tradeHashes = { [458438597] = { "15% of Damage is taken from Mana before Life" }, }, + rank = { 50 }, + }, + }, + ["Masterwork Rune"] = { + ["weapon"] = { + type = "Rune", + "Upgrades a socketed Rune", + statOrder = { 6230 }, + tradeHashes = { [4044077288] = { "Upgrades a socketed Rune" }, }, + rank = { 0 }, + }, + ["armour"] = { + type = "Rune", + "Upgrades a socketed Rune", + statOrder = { 6230 }, + tradeHashes = { [4044077288] = { "Upgrades a socketed Rune" }, }, + rank = { 0 }, + }, + ["caster"] = { + type = "Rune", + "Upgrades a socketed Rune", + statOrder = { 6230 }, + tradeHashes = { [4044077288] = { "Upgrades a socketed Rune" }, }, + rank = { 0 }, + }, + }, + ["Lesser Ward Rune"] = { + ["armour"] = { + type = "Rune", + "+15 to maximum Runic Ward", + "Bonded: 15% increased Global Armour, Evasion and Energy Shield", + statOrder = { 844, 2586 }, + tradeHashes = { [774059442] = { "+15 to maximum Runic Ward" }, }, + rank = { 0 }, + }, + }, + ["Ward Rune"] = { + ["armour"] = { + type = "Rune", + "+20 to maximum Runic Ward", + "Bonded: 15% increased Global Armour, Evasion and Energy Shield", + statOrder = { 844, 2586 }, + tradeHashes = { [774059442] = { "+20 to maximum Runic Ward" }, }, + rank = { 15 }, + }, + }, + ["Greater Ward Rune"] = { + ["armour"] = { + type = "Rune", + "+25 to maximum Runic Ward", + "Bonded: 15% increased Global Armour, Evasion and Energy Shield", + statOrder = { 844, 2586 }, + tradeHashes = { [774059442] = { "+25 to maximum Runic Ward" }, }, + rank = { 30 }, + }, + }, + ["Perfect Ward Rune"] = { + ["armour"] = { + type = "Rune", + "+30 to maximum Runic Ward", + "Bonded: 15% increased Global Armour, Evasion and Energy Shield", + statOrder = { 844, 2586 }, + tradeHashes = { [774059442] = { "+30 to maximum Runic Ward" }, }, + rank = { 50 }, + }, + }, + ["Lesser Charging Rune"] = { + ["armour"] = { + type = "Rune", + "8% increased Runic Ward Regeneration Rate", + "Bonded: Regenerate 10 Runic Ward per second", + statOrder = { 10478, 4752 }, + tradeHashes = { [2392260628] = { "8% increased Runic Ward Regeneration Rate" }, }, + rank = { 0 }, + }, + }, + ["Charging Rune"] = { + ["armour"] = { + type = "Rune", + "12% increased Runic Ward Regeneration Rate", + "Bonded: Regenerate 15 Runic Ward per second", + statOrder = { 10478, 4752 }, + tradeHashes = { [2392260628] = { "12% increased Runic Ward Regeneration Rate" }, }, + rank = { 15 }, + }, + }, + ["Greater Charging Rune"] = { + ["armour"] = { + type = "Rune", + "16% increased Runic Ward Regeneration Rate", + "Bonded: Regenerate 20 Runic Ward per second", + statOrder = { 10478, 4752 }, + tradeHashes = { [2392260628] = { "16% increased Runic Ward Regeneration Rate" }, }, + rank = { 30 }, + }, + }, + ["Perfect Charging Rune"] = { + ["armour"] = { + type = "Rune", + "20% increased Runic Ward Regeneration Rate", + "Bonded: Regenerate 25 Runic Ward per second", + statOrder = { 10478, 4752 }, + tradeHashes = { [2392260628] = { "20% increased Runic Ward Regeneration Rate" }, }, + rank = { 50 }, + }, + }, + ["Warding Rune of Reinforcement"] = { + ["armour"] = { + type = "Rune", + "20% increased Runic Ward", + "Bonded: Gain 2% of maximum Life as Extra maximum Runic Ward", + statOrder = { 854, 1429 }, + tradeHashes = { [830161081] = { "20% increased Runic Ward" }, }, + rank = { 15 }, + }, + }, + ["Warding Rune of Protection"] = { + ["armour"] = { + type = "Rune", + "Every 4 seconds, gain Guard equal to 20% of maximum Runic Ward for 2 seconds", + "Bonded: 8% increased Guard gained", + statOrder = { 6779, 6928 }, + tradeHashes = { [1963589548] = { "Every 4 seconds, gain Guard equal to 20% of maximum Runic Ward for 2 seconds" }, }, + rank = { 15 }, + }, + }, + ["Warding Rune of Disintegration"] = { + ["weapon"] = { + type = "Rune", + "Attacks Break Armour equal to 15% of maximum Runic Ward", + "Bonded: Break 10% increased Armour", + statOrder = { 5003, 4397 }, + tradeHashes = { [2608793552] = { "Attacks Break Armour equal to 15% of maximum Runic Ward" }, }, + rank = { 15 }, + }, + }, + ["Warding Rune of Desperation"] = { + ["wand"] = { + type = "Rune", + "Spell damage Penetrates 25% of enemy Elemental Resistances while on Low Runic Ward", + "Bonded: 12% increased Elemental Damage", + statOrder = { 10001, 1724 }, + tradeHashes = { [267552601] = { "Spell damage Penetrates 25% of enemy Elemental Resistances while on Low Runic Ward" }, }, + rank = { 15 }, + }, + ["staff"] = { + type = "Rune", + "Spell damage Penetrates 25% of enemy Elemental Resistances while on Low Runic Ward", + "Bonded: 12% increased Elemental Damage", + statOrder = { 10001, 1724 }, + tradeHashes = { [267552601] = { "Spell damage Penetrates 25% of enemy Elemental Resistances while on Low Runic Ward" }, }, + rank = { 15 }, + }, + }, + ["Warding Rune of Symbiosis"] = { + ["boots"] = { + type = "Rune", + "1% increased Energy Shield Recharge Rate per 30 maximum Runic Ward", + "Bonded: Regenerate 1% of maximum Energy Shield per second", + statOrder = { 6419, 2418 }, + tradeHashes = { [162036024] = { "1% increased Energy Shield Recharge Rate per 30 maximum Runic Ward" }, }, + rank = { 30 }, + }, + }, + ["Warding Rune of Courage"] = { + ["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 = { 4392, 2928 }, + tradeHashes = { [1392112423] = { "25% increased Armour and Evasion Rating while on Low Runic Ward" }, }, + rank = { 15 }, + }, + }, + ["Warding Rune of Stability"] = { + ["shield"] = { + type = "Rune", + "+4 to Stun Threshold per 10 maximum Runic Ward", + "Bonded: 15% increased Stun buildup while Shapeshifted", + statOrder = { 10093, 7182 }, + tradeHashes = { [2838678452] = { "+4 to Stun Threshold per 10 maximum Runic Ward" }, }, + rank = { 30 }, + }, + ["buckler"] = { + type = "Rune", + "+4 to Stun Threshold per 10 maximum Runic Ward", + "Bonded: 15% increased Stun buildup while Shapeshifted", + statOrder = { 10093, 7182 }, + tradeHashes = { [2838678452] = { "+4 to Stun Threshold per 10 maximum Runic Ward" }, }, + rank = { 30 }, + }, + }, + ["Warding Rune of Glancing"] = { + ["body armour"] = { + type = "Rune", + "+3 to Deflection Rating per 10 maximum Runic Ward", + "Bonded: Prevent +1% of Damage from Deflected Hits", + statOrder = { 9, 4667 }, + tradeHashes = { [282990844] = { "+3 to Deflection Rating per 10 maximum Runic Ward" }, }, + rank = { 30 }, + }, + }, + ["Warding Rune of Heart"] = { + ["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 = { 1429, 10481 }, + tradeHashes = { [386720106] = { "Gain 5% of maximum Life as Extra maximum Runic Ward" }, }, + rank = { 30 }, + }, + }, + ["Warding Rune of Nourishment"] = { + ["armour"] = { + type = "Rune", + "15% Life Recovery from Flasks also applies to Runic Ward", + "Bonded: 15% increased Life Recovery from Flasks", + statOrder = { 7450, 1792 }, + tradeHashes = { [2650263616] = { "15% Life Recovery from Flasks also applies to Runic Ward" }, }, + rank = { 15 }, + }, + }, + ["Warding Rune of Annihilation"] = { + ["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 = { 4570, 4751 }, + tradeHashes = { [3035971497] = { "Attacks spend 5% of your maximum Runic Ward if possible to gain that much added Physical damage" }, }, + rank = { 30 }, + }, + }, + ["Warding Rune of Armature"] = { + ["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 = { 7803, 4548 }, + tradeHashes = { [1995345015] = { "Gain maximum Runic Ward equal to 15% of this Weapon's maximum damage" }, }, + rank = { 45 }, + }, + }, + ["Warding Rune of Obsession"] = { + ["wand"] = { + type = "Rune", + "All damage taken bypasses Runic Ward", + "Runic Ward Regeneration Rate is doubled", + "Bonded: 12% increased maximum Runic Ward", + statOrder = { 5951, 10483, 890 }, + tradeHashes = { [2579974553] = { "Runic Ward Regeneration Rate is doubled" }, [3814102597] = { "All damage taken bypasses Runic Ward" }, }, + rank = { 45 }, + }, + }, + ["Warding Rune of Equinox"] = { + ["caster"] = { + 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 = { 7972, 9664, 10479 }, + tradeHashes = { [762761075] = { "40% less Mana Regeneration Rate" }, [3145796865] = { "Mana Recovery from Regeneration is also applied to Runic Ward" }, }, + rank = { 45 }, + }, + }, + ["Warding Rune of Salvaging"] = { + ["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 = { 9666, 10554 }, + tradeHashes = { [3515226849] = { "Recover 3% of maximum Runic Ward when one of your Reviving Minions is Killed" }, }, + rank = { 30 }, + }, + }, + ["Warding Rune of Bodyguards"] = { + ["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 = { 9074, 6028, 6028.1 }, + tradeHashes = { [540694930] = { "Minions in your Presence have Onslaught while you are on Low Runic Ward" }, }, + rank = { 45 }, + }, + }, + ["Warding Rune of Hollowing"] = { + ["caster"] = { + 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 = { 1429, 8843, 4190 }, + tradeHashes = { [386720106] = { "Gain 15% of maximum Life as Extra maximum Runic Ward" }, [1020945697] = { "15% less maximum Life" }, }, + rank = { 45 }, + }, + }, + ["Passion of Aldur"] = { + ["weapon"] = { + type = "Rune", + "Transforms all Cold and Lightning modifiers on the item into equivalent Fire modifiers", + "Bonded: 25% increased Fire Damage", + statOrder = { 6226, 872 }, + tradeHashes = { [602344904] = { "Transforms all Cold and Lightning modifiers on the item into equivalent Fire modifiers" }, }, + rank = { 0 }, + }, + ["caster"] = { + type = "Rune", + "Transforms all Cold and Lightning modifiers on the item into equivalent Fire modifiers", + "Bonded: 25% increased Fire Damage", + statOrder = { 6226, 872 }, + tradeHashes = { [602344904] = { "Transforms all Cold and Lightning modifiers on the item into equivalent Fire modifiers" }, }, + rank = { 0 }, + }, + }, + ["Breath of Aldur"] = { + ["weapon"] = { + type = "Rune", + "When socketed, transforms all Fire and Lightning modifiers to equivalent Cold modifiers", + "Bonded: 25% increased Cold Damage", + statOrder = { 6223, 873 }, + tradeHashes = { [2390027291] = { "When socketed, transforms all Fire and Lightning modifiers to equivalent Cold modifiers" }, }, + rank = { 0 }, + }, + ["caster"] = { + type = "Rune", + "When socketed, transforms all Fire and Lightning modifiers to equivalent Cold modifiers", + "Bonded: 25% increased Cold Damage", + statOrder = { 6223, 873 }, + tradeHashes = { [2390027291] = { "When socketed, transforms all Fire and Lightning modifiers to equivalent Cold modifiers" }, }, + rank = { 0 }, + }, + }, + ["Ire of Aldur"] = { + ["weapon"] = { + type = "Rune", + "Transforms all Fire and Cold modifiers on the item into equivalent Lightning modifiers", + "Bonded: 25% increased Lightning Damage", + statOrder = { 6227, 874 }, + tradeHashes = { [1433896639] = { "Transforms all Fire and Cold modifiers on the item into equivalent Lightning modifiers" }, }, + rank = { 0 }, + }, + ["caster"] = { + type = "Rune", + "Transforms all Fire and Cold modifiers on the item into equivalent Lightning modifiers", + "Bonded: 25% increased Lightning Damage", + statOrder = { 6227, 874 }, + tradeHashes = { [1433896639] = { "Transforms all Fire and Cold modifiers on the item into equivalent Lightning modifiers" }, }, + rank = { 0 }, + }, + }, + ["Betrayal of Aldur"] = { + ["weapon"] = { + type = "Rune", + "Transforms all Fire, Cold and Lightning modifiers on the item into equivalent Chaos modifiers", + "Bonded: 25% increased Chaos Damage", + statOrder = { 6222, 875 }, + tradeHashes = { [1624833382] = { "Transforms all Fire, Cold and Lightning modifiers on the item into equivalent Chaos modifiers" }, }, + 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 = { 6222, 875 }, + tradeHashes = { [1624833382] = { "Transforms all Fire, Cold and Lightning modifiers on the item into equivalent Chaos modifiers" }, }, + rank = { 0 }, + }, + }, + ["Ancient Rune of Splinters"] = { + ["bow"] = { + type = "Rune", + "+50% Surpassing chance to fire an additional Arrow", + "Bonded: 30% increased Projectile Speed", + statOrder = { 5500, 896 }, + tradeHashes = { [2463230181] = { "+50% Surpassing chance to fire an additional Arrow" }, }, + rank = { 30 }, + }, + }, + ["Ancient Rune of Dueling"] = { + ["buckler"] = { + type = "Rune", + "30% increased Parried Debuff Magnitude", + "Bonded: 15% increased Block chance", + statOrder = { 9338, 1132 }, + tradeHashes = { [818877178] = { "30% increased Parried Debuff Magnitude" }, }, + rank = { 30 }, + }, + }, + ["Ancient Rune of the Titan"] = { + ["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 = { 10584, 4483 }, + tradeHashes = { [2045949233] = { "10% chance for Slam Skills you use yourself to cause an additional Aftershock" }, }, + rank = { 30 }, + }, + }, + ["Ancient Rune of Shattering"] = { + ["one hand mace"] = { + type = "Rune", + "40% increased effect of Fully Broken Armour", + "Bonded: Break 50% increased Armour", + statOrder = { 5224, 4397 }, + tradeHashes = { [1879206848] = { "40% increased effect of Fully Broken Armour" }, }, + rank = { 30 }, + }, + }, + ["Ancient Rune of Prowess"] = { + ["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 = { 5505, 2759 }, + tradeHashes = { [1555237944] = { "30% chance when you gain a Charge to gain an additional Charge" }, }, + rank = { 30 }, + }, + }, + ["Ancient Rune of Control"] = { + ["quarterstaff"] = { + type = "Rune", + "50% increased Immobilisation buildup", + "Bonded: 30% increased Damage against Immobilised Enemies", + statOrder = { 7170, 5945 }, + tradeHashes = { [330530785] = { "50% increased Immobilisation buildup" }, }, + rank = { 30 }, + }, + }, + ["Ancient Rune of Discovery"] = { + ["staff"] = { + type = "Rune", + "30% chance to create an additional Remnant", + "Bonded: +1 to maximum number of Elemental Infusions", + statOrder = { 5396, 8840 }, + tradeHashes = { [2328443419] = { "30% chance to create an additional Remnant" }, }, + rank = { 30 }, + }, + }, + ["Ancient Rune of Decay"] = { + ["wand"] = { + type = "Rune", + "25% increased Withered Magnitude", + "Bonded: 15% chance that when Volatility on you explodes, you regain an equivalent amount of Volatility", + statOrder = { 10514, 10443 }, + tradeHashes = { [3973629633] = { "25% increased Withered Magnitude" }, }, + rank = { 30 }, + }, + }, + ["Ancient Rune of Witchcraft"] = { + ["focus"] = { + type = "Rune", + "40% increased Area of Effect of Curses", + "Bonded: 15% faster Curse Activation", + statOrder = { 1948, 5910 }, + tradeHashes = { [153777645] = { "40% increased Area of Effect of Curses" }, }, + rank = { 30 }, + }, + }, + ["Ancient Rune of the Horde"] = { + ["sceptre"] = { + type = "Rune", + "Minions have 8% increased Attack and Cast Speed", + "Bonded: Minions have 10% increased Movement Speed", + statOrder = { 8968, 1526 }, + tradeHashes = { [3091578504] = { "Minions have 8% increased Attack and Cast Speed" }, }, + rank = { 30 }, + }, + }, + ["Ancient Rune of Animosity"] = { + ["talisman"] = { + type = "Rune", + "Gain 2 Druidic Prowess when you Heavy Stun a Rare or Unique Enemy", + "Bonded: 40% increased Stun Buildup", + statOrder = { 6690, 1050 }, + tradeHashes = { [3444646646] = { "Gain 2 Druidic Prowess when you Heavy Stun a Rare or Unique Enemy" }, }, + rank = { 30 }, + }, + }, + ["Ancient Rune of Detonation"] = { + ["crossbow"] = { + type = "Rune", + "Grenades have 10% chance to activate a second time", + "Bonded: 40% increased Crossbow Reload Speed", + statOrder = { 6916, 9693 }, + tradeHashes = { [538981065] = { "Grenades have 10% chance to activate a second time" }, }, + rank = { 30 }, + }, + }, + ["Ancient Rune of Retaliation"] = { + ["shield"] = { + type = "Rune", + "8% increased Attack Speed if you have Blocked Recently", + "Bonded: +3% to maximum Block chance", + statOrder = { 4555, 1732 }, + tradeHashes = { [3203854378] = { "8% increased Attack Speed if you have Blocked Recently" }, }, + rank = { 30 }, + }, + }, + ["Rune of Vitality"] = { + ["weapon"] = { + type = "Rune", + "+80 to maximum Life", + "Bonded: 15% increased amount of Life Leeched", + statOrder = { 886, 1893 }, + tradeHashes = { [3299347043] = { "+80 to maximum Life" }, }, + rank = { 15 }, + }, + ["caster"] = { + type = "Rune", + "+80 to maximum Life", + "Bonded: 15% increased amount of Life Leeched", + statOrder = { 886, 1893 }, + tradeHashes = { [3299347043] = { "+80 to maximum Life" }, }, + rank = { 15 }, + }, + ["shield"] = { + type = "Rune", + "Recover 15 Life when you Block", + "Bonded: 5% increased maximum Life", + statOrder = { 1520, 888 }, + tradeHashes = { [1678831767] = { "Recover 15 Life when you Block" }, }, + rank = { 15 }, + }, + ["buckler"] = { + type = "Rune", + "Recover 15 Life when you Block", + "Bonded: 5% increased maximum Life", + statOrder = { 1520, 888 }, + tradeHashes = { [1678831767] = { "Recover 15 Life when you Block" }, }, + rank = { 15 }, + }, + }, + ["Rune of the Hunt"] = { + ["boots"] = { + type = "Rune", + "8% increased Movement Speed while Sprinting", + "Bonded: 50% increased Stun Recovery", + statOrder = { 10028, 1059 }, + tradeHashes = { [3107707789] = { "8% increased Movement Speed while Sprinting" }, }, + rank = { 15 }, + }, + ["sceptre"] = { + type = "Rune", + "Companions deal 30% increased Damage", + "Bonded: 8% increased Mana Recovery rate while your Companion is in your Presence", + statOrder = { 5708, 7969 }, + tradeHashes = { [234296660] = { "Companions deal 30% increased Damage" }, }, + rank = { 15 }, + }, + }, + ["Rune of Acrobatics"] = { + ["weapon"] = { + type = "Rune", + "Flasks gain 0.2 charges per Second", + "Bonded: Charms gain 0.25 charges per Second", + statOrder = { 6865, 6866 }, + tradeHashes = { [731781020] = { "Flasks gain 0.2 charges per Second" }, }, + rank = { 15 }, + }, + ["caster"] = { + type = "Rune", + "Flasks gain 0.2 charges per Second", + "Bonded: Charms gain 0.25 charges per Second", + statOrder = { 6865, 6866 }, + tradeHashes = { [731781020] = { "Flasks gain 0.2 charges per Second" }, }, + rank = { 15 }, + }, + ["boots"] = { + type = "Rune", + "+0.3 metres to Dodge Roll distance", + "Bonded: 30% increased Armour if you haven't Dodge Rolled Recently", + statOrder = { 6186, 4380 }, + tradeHashes = { [258119672] = { "+0.3 metres to Dodge Roll distance" }, }, + rank = { 15 }, + }, + }, + ["Rune of Culmination"] = { + ["gloves"] = { + type = "Rune", + "50% chance to build an additional Combo on Hit", + "Bonded: 5% increased Attack Speed", + statOrder = { 4175, 984 }, + tradeHashes = { [4258524206] = { "50% chance to build an additional Combo on Hit" }, }, + rank = { 15 }, + }, + ["one hand mace"] = { + type = "Rune", + "Rolls only the minimum or maximum Damage value for Physical Damage", + statOrder = { 7785 }, + tradeHashes = { [103706408] = { "Rolls only the minimum or maximum Damage value for Physical Damage" }, }, + rank = { 15 }, + }, + ["warstaff"] = { + type = "Rune", + "Rolls only the minimum or maximum Damage value for Physical Damage", + statOrder = { 7785 }, + tradeHashes = { [103706408] = { "Rolls only the minimum or maximum Damage value for Physical Damage" }, }, + rank = { 15 }, + }, + }, + ["Rune of Renown"] = { + ["gloves"] = { + type = "Rune", + "50% increased Glory generation", + "Bonded: Banner Skills have 20% increased Aura Magnitudes", + statOrder = { 6891, 3064 }, + tradeHashes = { [3143918757] = { "50% increased Glory generation" }, }, + rank = { 15 }, + }, + ["caster"] = { + type = "Rune", + "Archon recovery period expires 30% faster", + "Bonded: 30% increased Archon Buff duration", + statOrder = { 4333, 4334 }, + tradeHashes = { [2586152168] = { "Archon recovery period expires 30% faster" }, }, + rank = { 15 }, + }, + }, + ["Rune of Accumulation"] = { + ["gloves"] = { + 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 = { 1039, 1505, 886, 891 }, + tradeHashes = { [2797971005] = { "Gain 3 Life per Enemy Hit with Attacks" }, [820939409] = { "Gain 1 Mana per Enemy Hit with Attacks" }, }, + 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 = { 7773, 1056 }, + 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" }, }, + 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 = { 7773, 1056 }, + 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" }, }, + 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 = { 7773, 1056 }, + 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" }, }, + rank = { 15 }, + }, + }, + ["Rune of Foundations"] = { + ["body armour"] = { + type = "Rune", + "+30 to Armour", + "+30 to Evasion Rating", + "+10 to maximum Energy Shield", + "Bonded: +20 to maximum Life", + "Bonded: +20 to maximum Mana", + statOrder = { 839, 840, 842, 886, 891 }, + tradeHashes = { [3484657501] = { "+30 to Armour" }, [53045048] = { "+30 to Evasion Rating" }, [4052037485] = { "+10 to maximum Energy Shield" }, }, + rank = { 15 }, + }, + }, + ["Rune of the Prism"] = { + ["body armour"] = { + type = "Rune", + "-10% to all Maximum Elemental Resistances", + "+20% to all Elemental Resistances", + statOrder = { 1006, 1012 }, + tradeHashes = { [2901986750] = { "+20% to all Elemental Resistances" }, [1978899297] = { "-10% to all Maximum Elemental Resistances" }, }, + rank = { 15 }, + }, + }, + ["Rune of the Blossom"] = { + ["body armour"] = { + type = "Rune", + "+50 to Spirit", + "-1 to Spirit per 2 Levels", + "Bonded: 5% increased Spirit Reservation Efficiency", + statOrder = { 894, 10017, 4743 }, + tradeHashes = { [2704225257] = { "+50 to Spirit" }, [610569665] = { "-1 to Spirit per 2 Levels" }, }, + rank = { 15 }, + }, + }, + ["Rune of Consistency"] = { + ["helmet"] = { + type = "Rune", + "200% increased Critical Hit Chance", + "You have no Critical Damage Bonus", + "Bonded: Hits against you have 25% reduced Critical Damage Bonus", + statOrder = { 975, 1404, 1004 }, + tradeHashes = { [587431675] = { "200% increased Critical Hit Chance" }, [4058681894] = { "You have no Critical Damage Bonus" }, }, + 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 = { 9968, 7969 }, + tradeHashes = { [4063732952] = { "50% increased Spell Damage while your Companion is in your Presence" }, }, + rank = { 15 }, + }, + }, + ["Rune of Reach"] = { + ["helmet"] = { + type = "Rune", + "Remnants you create have 15% increased effect", + "Bonded: Recover 3% of Maximum Mana when you collect a Remnant", + statOrder = { 9695, 9699 }, + tradeHashes = { [1999910726] = { "Remnants you create have 15% increased effect" }, }, + rank = { 15 }, + }, + ["wand"] = { + type = "Rune", + "Remnants you create have 25% reduced effect", + "Remnants can be collected from 50% further away", + "Bonded: 20% increased Exposure Effect", + statOrder = { 9695, 9697, 6510 }, + tradeHashes = { [1999910726] = { "Remnants you create have 25% reduced effect" }, [3482326075] = { "Remnants can be collected from 50% further away" }, }, + rank = { 15 }, + }, + ["staff"] = { + type = "Rune", + "Remnants you create have 25% reduced effect", + "Remnants can be collected from 50% further away", + "Bonded: 20% increased Exposure Effect", + statOrder = { 9695, 9697, 6510 }, + tradeHashes = { [1999910726] = { "Remnants you create have 25% reduced effect" }, [3482326075] = { "Remnants can be collected from 50% further away" }, }, + rank = { 15 }, + }, + }, + ["Rune of Vital Flame"] = { + ["one hand mace"] = { + type = "Rune", + "Adds 13 to 16 Fire Damage", + "15% of Skill Mana Costs Converted to Life Costs", + "Bonded: 30% increased Ignite Magnitude", + statOrder = { 831, 4732, 1076 }, + tradeHashes = { [2480498143] = { "15% of Skill Mana Costs Converted to Life Costs" }, [709508406] = { "Adds 13 to 16 Fire Damage" }, }, + rank = { 15 }, + }, + ["two hand mace"] = { + type = "Rune", + "Adds 13 to 16 Fire Damage", + "15% of Skill Mana Costs Converted to Life Costs", + "Bonded: 30% increased Ignite Magnitude", + statOrder = { 831, 4732, 1076 }, + tradeHashes = { [2480498143] = { "15% of Skill Mana Costs Converted to Life Costs" }, [709508406] = { "Adds 13 to 16 Fire Damage" }, }, + rank = { 15 }, + }, + ["talisman"] = { + type = "Rune", + "Adds 13 to 16 Fire Damage", + "15% of Skill Mana Costs Converted to Life Costs", + "Bonded: 30% increased Ignite Magnitude", + statOrder = { 831, 4732, 1076 }, + tradeHashes = { [2480498143] = { "15% of Skill Mana Costs Converted to Life Costs" }, [709508406] = { "Adds 13 to 16 Fire Damage" }, }, + rank = { 15 }, + }, + }, + ["Rune of Confrontation"] = { + ["warstaff"] = { + type = "Rune", + "Gain 4 Rage on Melee Hit", + "-10 to Maximum Rage", + statOrder = { 6850, 9568 }, + tradeHashes = { [1181501418] = { "-10 to Maximum Rage" }, [2709367754] = { "Gain 4 Rage on Melee Hit" }, }, + rank = { 15 }, + }, + ["spear"] = { + type = "Rune", + "Gain 4 Rage on Melee Hit", + "-10 to Maximum Rage", + statOrder = { 6850, 9568 }, + tradeHashes = { [1181501418] = { "-10 to Maximum Rage" }, [2709367754] = { "Gain 4 Rage on Melee Hit" }, }, + rank = { 15 }, + }, + }, + ["Serle's Triumph"] = { + ["weapon"] = { + type = "Rune", + "+1 Suffix Modifier allowed", + statOrder = { 19 }, + tradeHashes = { [718638445] = { "+1 Suffix Modifier allowed" }, [1950607759] = { "" }, }, + rank = { 0 }, + }, + ["armour"] = { + type = "Rune", + "+1 Suffix Modifier allowed", + statOrder = { 19 }, + tradeHashes = { [718638445] = { "+1 Suffix Modifier allowed" }, [1950607759] = { "" }, }, + rank = { 0 }, + }, + ["caster"] = { + type = "Rune", + "+1 Suffix Modifier allowed", + statOrder = { 19 }, + tradeHashes = { [718638445] = { "+1 Suffix Modifier allowed" }, [1950607759] = { "" }, }, + rank = { 0 }, + }, + }, + ["Cadigan's Epiphany"] = { + ["gloves"] = { + type = "Rune", + "Destroys all Augment Sockets on the item to create a Jewel Socket", + statOrder = { 6224 }, + tradeHashes = { [1933674044] = { "Destroys all Augment Sockets on the item to create a Jewel Socket" }, }, + rank = { 0 }, + }, + }, + ["Astrid's Creativity"] = { + ["weapon"] = { + type = "Rune", + "Can have 1 additional Crafted Modifier", + statOrder = { 29 }, + tradeHashes = { [1963398329] = { "Can have 1 additional Crafted Modifier" }, }, + rank = { 0 }, + }, + ["armour"] = { + type = "Rune", + "Can have 1 additional Crafted Modifier", + statOrder = { 29 }, + tradeHashes = { [1963398329] = { "Can have 1 additional Crafted Modifier" }, }, + rank = { 0 }, + }, + ["caster"] = { + type = "Rune", + "Can have 1 additional Crafted Modifier", + statOrder = { 29 }, + tradeHashes = { [1963398329] = { "Can have 1 additional Crafted Modifier" }, }, + rank = { 0 }, + }, + }, + ["Uhtred's Sidereus"] = { + ["boots"] = { + type = "Rune", + "Can roll Chronomancy modifiers", + "Bonded: 10% increased Cooldown Recovery Rate", + statOrder = { 10484, 4666 }, + tradeHashes = { [3132681620] = { "Can roll Chronomancy modifiers" }, }, + rank = { 0 }, + }, + }, + ["Kolr's Hunt"] = { + ["gloves"] = { + type = "Rune", + "Can roll Marksman modifiers", + "Bonded: 20% increased Projectile Damage", + statOrder = { 10487, 1736 }, + tradeHashes = { [201332984] = { "Can roll Marksman modifiers" }, }, + rank = { 0 }, + }, + }, + ["Vorana's Carnage"] = { + ["helmet"] = { + type = "Rune", + "Can roll Berserking modifiers", + "Bonded: Gain 2 Rage on Melee Hit", + statOrder = { 10486, 6850 }, + tradeHashes = { [1770091046] = { "Can roll Berserking modifiers" }, }, + rank = { 0 }, + }, + }, + ["Thrud's Might"] = { + ["weapon"] = { + type = "Rune", + "Can roll Destruction modifiers", + "Bonded: +5% to all Elemental Resistances", + statOrder = { 10489, 1012 }, + tradeHashes = { [1676950499] = { "Can roll Destruction modifiers" }, }, + rank = { 0 }, + }, + ["caster"] = { + type = "Rune", + "Can roll Destruction modifiers", + "Bonded: +5% to all Elemental Resistances", + statOrder = { 10489, 1012 }, + tradeHashes = { [1676950499] = { "Can roll Destruction modifiers" }, }, + rank = { 0 }, + }, + }, + ["Medved's Tending"] = { + ["body armour"] = { + type = "Rune", + "Can roll Soul modifiers", + "Bonded: 3% increased maximum Life", + "Bonded: 3% increased maximum Mana", + statOrder = { 10485, 888, 893 }, + tradeHashes = { [1927467683] = { "Can roll Soul modifiers" }, }, + rank = { 0 }, + }, + }, + ["Katla's Gloom"] = { + ["gloves"] = { + type = "Rune", + "Can roll Decay modifiers", + "Bonded: 25% reduced Effect of Non-Damaging Ailments on you", + statOrder = { 10488, 9184 }, + tradeHashes = { [2547063279] = { "Can roll Decay modifiers" }, }, + rank = { 0 }, + }, + }, + ["Aldur's Legacy"] = { + ["weapon"] = { + type = "Rune", + "When socketed into a Unique Kalguuran or Ezomyte item, destroys the item to create a Rune imbued with that item's power", + statOrder = { 6228 }, + tradeHashes = { [1797890657] = { "When socketed into a Unique Kalguuran or Ezomyte item, destroys the item to create a Rune imbued with that item's power" }, }, + rank = { 0 }, + }, + ["armour"] = { + type = "Rune", + "When socketed into a Unique Kalguuran or Ezomyte item, destroys the item to create a Rune imbued with that item's power", + statOrder = { 6228 }, + tradeHashes = { [1797890657] = { "When socketed into a Unique Kalguuran or Ezomyte item, destroys the item to create a Rune imbued with that item's power" }, }, + rank = { 0 }, + }, + ["caster"] = { + type = "Rune", + "When socketed into a Unique Kalguuran or Ezomyte item, destroys the item to create a Rune imbued with that item's power", + statOrder = { 6228 }, + tradeHashes = { [1797890657] = { "When socketed into a Unique Kalguuran or Ezomyte item, destroys the item to create a Rune imbued with that item's power" }, }, + rank = { 0 }, + }, + }, + ["Legacy of Bramblejack"] = { + ["body armour"] = { + type = "Rune", + "250% of Melee Physical Damage taken reflected to Attacker", + "Bonded: Regenerate 3% of maximum Life per second while Surrounded", + statOrder = { 2239, 7485 }, + tradeHashes = { [1092987622] = { "250% of Melee Physical Damage taken reflected to Attacker" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Blackbraid"] = { + ["body armour"] = { + type = "Rune", + "+50% of Armour also applies to Elemental Damage", + "Bonded: +15% to all Elemental Resistances", + statOrder = { 1026, 1012 }, + tradeHashes = { [3362812763] = { "+50% of Armour also applies to Elemental Damage" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Edyrns Tusks"] = { + ["body armour"] = { + type = "Rune", + "50% chance to inflict Bleeding on Hit", + "50% reduced Slowing Potency of Debuffs on You", + "Bonded: 35% increased Thorns damage", + statOrder = { 4660, 4735, 10213 }, + tradeHashes = { [2174054121] = { "50% chance to inflict Bleeding on Hit" }, [924253255] = { "50% reduced Slowing Potency of Debuffs on You" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Kingsguard"] = { + ["body armour"] = { + type = "Rune", + "Recover 5% of maximum Life for each Endurance Charge consumed", + "Bonded: +30 to maximum Life", + statOrder = { 9625, 886 }, + tradeHashes = { [939832726] = { "Recover 5% of maximum Life for each Endurance Charge consumed" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Bristleboar"] = { + ["body armour"] = { + 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 = { 6852, 6853, 9568 }, + tradeHashes = { [3292710273] = { "Gain 5 Rage when Hit by an Enemy" }, [1466716929] = { "Gain 10 Rage when Critically Hit by an Enemy" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Foxshade"] = { + ["body armour"] = { + type = "Rune", + "10% increased Movement Speed when on Full Life", + "100% increased Evasion Rating when on Full Life", + "Bonded: 20% increased Evasion Rating", + statOrder = { 1553, 6486, 883 }, + tradeHashes = { [88817332] = { "100% increased Evasion Rating when on Full Life" }, [3393547195] = { "10% increased Movement Speed when on Full Life" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Ashrend"] = { + ["body armour"] = { + type = "Rune", + "Cannot be Ignited", + "-10 Physical Damage taken from Attack Hits", + "Bonded: +35% to Fire Resistance", + statOrder = { 1593, 1957, 1013 }, + tradeHashes = { [331731406] = { "Cannot be Ignited" }, [3441651621] = { "-10 Physical Damage taken from Attack Hits" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Briskwrap"] = { + ["body armour"] = { + type = "Rune", + "Gain Deflection Rating equal to 30% of Evasion Rating", + "Bonded: 35% increased Flask Mana Recovery rate", + statOrder = { 1027, 898 }, + tradeHashes = { [3033371881] = { "Gain Deflection Rating equal to 30% of Evasion Rating" }, }, + rank = { 65 }, + }, + }, + ["Legacy of The Unleashed"] = { + ["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 = { 1458, 4383 }, + tradeHashes = { [1311130924] = { "25% of Damage taken from Hits bypasses Energy Shield if Energy Shield is below half" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Horns of Bynden"] = { + ["helmet"] = { + type = "Rune", + "Gain 1 Rage on Melee Hit", + "Every Rage also grants 1% increased Armour", + "Bonded: +3 to Maximum Rage", + statOrder = { 6850, 10602, 9568 }, + tradeHashes = { [2709367754] = { "Gain 1 Rage on Melee Hit" }, [2995914769] = { "Every Rage also grants 1% increased Armour" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Wings of Caelyn"] = { + ["helmet"] = { + 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 = { 6850, 10614, 9111 }, + tradeHashes = { [2709367754] = { "Gain 1 Rage on Melee Hit" }, [352044736] = { "Every Rage also grants 1% increased Stun Threshold" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Ezomyte Peak"] = { + ["helmet"] = { + type = "Rune", + "15% increased Area of Effect", + "Unwavering Stance", + "Bonded: 50% reduced Slowing Potency of Debuffs on You", + statOrder = { 1628, 10682, 4735 }, + tradeHashes = { [1683578560] = { "Unwavering Stance" }, [280731498] = { "15% increased Area of Effect" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Deidbell"] = { + ["helmet"] = { + type = "Rune", + "Warcries Explode Corpses dealing 10% of their Life as Physical Damage", + "Bonded: Warcry Skills have 20% increased Area of Effect", + statOrder = { 5766, 10472 }, + tradeHashes = { [11014011] = { "Warcries Explode Corpses dealing 10% of their Life as Physical Damage" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Elevore"] = { + ["helmet"] = { + type = "Rune", + "Charms gain 1 charge per Second", + "+1 Charm Slot", + "Bonded: Charms gain 0.5 charges per Second", + statOrder = { 6866, 9275, 6866 }, + tradeHashes = { [185580205] = { "Charms gain 1 charge per Second" }, [554899692] = { "+1 Charm Slot" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Starkonja's Head"] = { + ["helmet"] = { + 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 = { 2313, 5716, 5716 }, + 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" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Crown of Thorns"] = { + ["helmet"] = { + type = "Rune", + "Pain Attunement", + "Bonded: 17 to 26 Physical Thorns damage", + statOrder = { 10675, 10220 }, + tradeHashes = { [98977150] = { "Pain Attunement" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Greymake"] = { + ["helmet"] = { + type = "Rune", + "+50 to all Attributes", + "Bonded: +1 Maximum Life per Level", + statOrder = { 1144, 7446 }, + tradeHashes = { [2897413282] = { "+50 to all Attributes" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Erian's Cobble"] = { + ["helmet"] = { + type = "Rune", + "+30 to Accuracy Rating", + "+10 to maximum Life", + "+10 to maximum Mana", + "10% increased Rarity of Items found", + "10% increased Critical Hit Chance", + "+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 = { 879, 886, 891, 940, 975, 990, 1012, 1033, 880, 882, 884 }, + 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" }, }, + rank = { 65 }, + }, + }, + ["Legacy of The Smiling Knight"] = { + ["helmet"] = { + type = "Rune", + "Aggravate Bleeding on targets you Critically Hit with Attacks", + "Bonded: 20% increased Critical Hit Chance", + statOrder = { 4229, 975 }, + tradeHashes = { [2438634449] = { "Aggravate Bleeding on targets you Critically Hit with Attacks" }, }, + rank = { 65 }, + }, + }, + ["Legacy of The Vile Knight"] = { + ["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 = { 10355, 1068 }, + 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%" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Northpaw"] = { + ["gloves"] = { + type = "Rune", + "Base Critical Hit Chance for Attacks with Weapons is 7%", + "Bonded: 15% increased Critical Damage Bonus", + statOrder = { 9335, 979 }, + tradeHashes = { [2635559734] = { "Base Critical Hit Chance for Attacks with Weapons is 7%" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Candlemaker"] = { + ["gloves"] = { + type = "Rune", + "40% increased Fire Damage", + "Flammability Magnitude is doubled", + "Bonded: 20% increased Ignite Duration on Enemies", + statOrder = { 872, 5533, 1613 }, + tradeHashes = { [1540254896] = { "Flammability Magnitude is doubled" }, [3962278098] = { "40% increased Fire Damage" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Deathblow"] = { + ["gloves"] = { + type = "Rune", + "Culling Strike", + "Bonded: Gain 30 Life per enemy killed", + statOrder = { 1773, 1041 }, + tradeHashes = { [2524254339] = { "Culling Strike" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Legionstride"] = { + ["boots"] = { + type = "Rune", + "+10% to Block chance", + "Bonded: 10% reduced Damage taken from Projectile Hits", + statOrder = { 1122, 2509 }, + tradeHashes = { [1702195217] = { "+10% to Block chance" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Trampletoe"] = { + ["boots"] = { + type = "Rune", + "Deal 10% of Overkill damage to enemies within 2 metres of the enemy killed", + "Bonded: 15% increased Global Physical Damage", + statOrder = { 9333, 1184 }, + tradeHashes = { [2301852600] = { "Deal 10% of Overkill damage to enemies within 2 metres of the enemy killed" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Briarpatch"] = { + ["boots"] = { + type = "Rune", + "+15% to Thorns Critical Hit Chance", + "Bonded: 15% increased Thorns Critical Damage Bonus", + statOrder = { 4746, 4747 }, + tradeHashes = { [2715190555] = { "+15% to Thorns Critical Hit Chance" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Bushwhack"] = { + ["boots"] = { + type = "Rune", + "Physical Damage is Pinning", + "Bonded: +20 to Dexterity", + statOrder = { 4723, 992 }, + tradeHashes = { [2041668411] = { "Physical Damage is Pinning" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Wanderlust"] = { + ["boots"] = { + type = "Rune", + "Your speed is unaffected by Slows", + "Bonded: 5% increased Movement Speed", + statOrder = { 9896, 835 }, + tradeHashes = { [50721145] = { "Your speed is unaffected by Slows" }, }, + rank = { 65 }, + }, + }, + ["Legacy of The Knight-errant"] = { + ["boots"] = { + type = "Rune", + "Iron Reflexes", + "Bonded: 25% increased Elemental Ailment Threshold", + statOrder = { 10669, 4256 }, + tradeHashes = { [326965591] = { "Iron Reflexes" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Obern's Bastion"] = { + ["boots"] = { + type = "Rune", + "200% increased Stun Recovery", + "Bonded: 40% reduced Chill Duration on you", + "Bonded: 40% reduced Freeze Duration on you", + statOrder = { 1059, 1063, 1064 }, + tradeHashes = { [2511217560] = { "200% increased Stun Recovery" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Dionadair"] = { + ["shield"] = { + type = "Rune", + "Double Stun Threshold while Shield is Raised", + "Bonded: 15% increased Stun Threshold", + statOrder = { 7802, 2981 }, + tradeHashes = { [3686997387] = { "Double Stun Threshold while Shield is Raised" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Wulfsbane"] = { + ["shield"] = { + type = "Rune", + "Intimidate Enemies on Block for 8 seconds", + "Bonded: +25 to Strength", + statOrder = { 7355, 991 }, + tradeHashes = { [3703496511] = { "Intimidate Enemies on Block for 8 seconds" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Chernobog's Pillar"] = { + ["shield"] = { + type = "Rune", + "Gain 1% of damage as Fire damage per 2% Chance to Block", + "Bonded: +30% to Chaos Resistance", + statOrder = { 9193, 1023 }, + tradeHashes = { [3170380905] = { "Gain 1% of damage as Fire damage per 2% Chance to Block" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Alkem Eira"] = { + ["shield"] = { + type = "Rune", + "30% of damage Blocked is Recouped as Mana", + "Bonded: 20% of damage Blocked is Recouped as Mana", + statOrder = { 5950, 5950 }, + tradeHashes = { [2875218423] = { "30% of damage Blocked is Recouped as Mana" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Oaksworn"] = { + ["shield"] = { + type = "Rune", + "50% increased Life Regeneration rate", + "Bonded: 50 Life Regeneration per second", + statOrder = { 1035, 1033 }, + tradeHashes = { [44972811] = { "50% increased Life Regeneration rate" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Dunkelhalt"] = { + ["buckler"] = { + type = "Rune", + "50% increased Parried Debuff Magnitude", + "Bonded: 50% increased Parry Damage", + statOrder = { 9338, 9343 }, + tradeHashes = { [818877178] = { "50% increased Parried Debuff Magnitude" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Rondel de Ezo"] = { + ["buckler"] = { + type = "Rune", + "Curse Enemies with Enfeeble on Block", + "Bonded: 100% increased Block chance against Projectiles", + statOrder = { 5919, 4924 }, + tradeHashes = { [3830953767] = { "Curse Enemies with Enfeeble on Block" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Brynhand's Mark"] = { + ["one hand mace"] = { + type = "Rune", + "Causes Double Stun Buildup", + "Bonded: Adds 14 to 20 Physical Damage", + statOrder = { 7670, 1206 }, + tradeHashes = { [769129523] = { "Causes Double Stun Buildup" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Trenchtimbre"] = { + ["one hand mace"] = { + type = "Rune", + "Increases and Reductions to Minion Attack Speed also affect you", + "Bonded: +1 to Level of all Minion Skills", + statOrder = { 3426, 971 }, + tradeHashes = { [2293111154] = { "Increases and Reductions to Minion Attack Speed also affect you" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Mjolner"] = { + ["one hand mace"] = { + type = "Rune", + "+200 Intelligence Requirement", + "+3 to Level of all Lightning Skills", + "Bonded: +1 to Level of all Lightning Skills", + statOrder = { 819, 961, 961 }, + tradeHashes = { [2153364323] = { "+200 Intelligence Requirement" }, [1147690586] = { "+3 to Level of all Lightning Skills" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Twisted Empyrean"] = { + ["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 = { 7601, 2470 }, + 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" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Hoghunt"] = { + ["two hand mace"] = { + type = "Rune", + "+5% to Critical Hit Chance", + "Maim on Critical Hit", + "Bonded: 25% increased Attack Damage against Maimed Enemies", + statOrder = { 943, 7589, 4518 }, + tradeHashes = { [518292764] = { "+5% to Critical Hit Chance" }, [2895144208] = { "Maim on Critical Hit" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Hrimnor's Hymn"] = { + ["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 = { 10584, 10584 }, + tradeHashes = { [2045949233] = { "25% chance for Slam Skills you use yourself to cause an additional Aftershock" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Brain Rattler"] = { + ["two hand mace"] = { + type = "Rune", + "All damage with this Weapon causes Electrocution buildup", + "Bonded: Damage Penetrates 10% Lightning Resistance", + statOrder = { 7584, 2724 }, + tradeHashes = { [1910743684] = { "All damage with this Weapon causes Electrocution buildup" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Lifesprig"] = { + ["wand"] = { + type = "Rune", + "+2 to Level of all Spell Skills", + "Bonded: Leeches 1% of maximum Life when you Cast a Spell", + statOrder = { 949, 7435 }, + tradeHashes = { [124131830] = { "+2 to Level of all Spell Skills" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Duality"] = { + ["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 = { 10359, 6762 }, + tradeHashes = { [2443032293] = { "Gain 250 Guard for 0.5 seconds per Combo expended when using Skills" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Tyranny's Grip"] = { + ["spear"] = { + type = "Rune", + "Strikes deal Splash Damage", + "Bonded: Knocks Enemies Back on Hit", + statOrder = { 1136, 1408 }, + tradeHashes = { [3675300253] = { "Strikes deal Splash Damage" }, }, + rank = { 65 }, + }, + }, + ["Legacy of The Sentry"] = { + ["quarterstaff"] = { + type = "Rune", + "Adds 23 to 34 Fire damage to Attacks", + "100% increased Flammability Magnitude", + "Bonded: +2% to Maximum Fire Resistance", + statOrder = { 858, 1054, 1008 }, + tradeHashes = { [2968503605] = { "100% increased Flammability Magnitude" }, [1573130764] = { "Adds 23 to 34 Fire damage to Attacks" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Adonia's Ego"] = { + ["wand"] = { + type = "Rune", + "+1 to Maximum Power Charges", + "Bonded: +65 to maximum Mana", + statOrder = { 1567, 891 }, + tradeHashes = { [227523295] = { "+1 to Maximum Power Charges" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Cursecarver"] = { + ["wand"] = { + type = "Rune", + "+3 to Level of all Curse Skills", + "Bonded: 35% increased Mana Regeneration Rate", + statOrder = { 970, 1042 }, + tradeHashes = { [805298720] = { "+3 to Level of all Curse Skills" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Dusk Vigil"] = { + ["staff"] = { + type = "Rune", + "Gain 30% of Physical Damage as Extra Fire Damage", + "Bonded: Triggered Spells deal 20% increased Spell Damage", + statOrder = { 1672, 10282 }, + tradeHashes = { [1936645603] = { "Gain 30% of Physical Damage as Extra Fire Damage" }, }, + rank = { 65 }, + }, + }, + ["Legacy of The Blood Thorn"] = { + ["quarterstaff"] = { + type = "Rune", + "Adds 4 to 8 Physical Damage", + "Causes Bleeding on Hit", + "Bonded: 10% increased Magnitude of Bleeding you inflict", + statOrder = { 830, 2259, 4797 }, + tradeHashes = { [2091621414] = { "Causes Bleeding on Hit" }, [1940865751] = { "Adds 4 to 8 Physical Damage" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Quill Rain"] = { + ["bow"] = { + type = "Rune", + "50% increased Attack Speed", + "20% less Attack Damage", + "Bonded: 70% increased Arrow Speed", + statOrder = { 945, 2238, 1550 }, + tradeHashes = { [210067635] = { "50% increased Attack Speed" }, [412462523] = { "20% less Attack Damage" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Ironbound"] = { + ["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 = { 2674, 1133 }, + tradeHashes = { [2036307261] = { "Hits with this weapon have 1 to 3 Added Physical Damage per 1% Block Chance" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Amor Mandragora"] = { + ["talisman"] = { + type = "Rune", + "Gain 1 Druidic Prowess for every 20 total Rage spent", + "Bonded: Enemies in your Presence are Hindered", + statOrder = { 6751, 4683 }, + tradeHashes = { [1273508088] = { "Gain 1 Druidic Prowess for every 20 total Rage spent" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Spiteful Floret"] = { + ["talisman"] = { + type = "Rune", + "Every 5 Rage also grants 5% of Damage taken Recouped as Life", + "Bonded: Attacks have 20% chance to cause Bleeding", + statOrder = { 10520, 2268 }, + tradeHashes = { [1895552497] = { "Every 5 Rage also grants 5% of Damage taken Recouped as Life" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Svalinn"] = { + ["shield"] = { + type = "Rune", + "Chance to Block Damage is Lucky", + "You take 20% of damage from Blocked Hits", + "Bonded: +50 to maximum Runic Ward", + statOrder = { 4651, 4652, 889 }, + tradeHashes = { [2905515354] = { "You take 20% of damage from Blocked Hits" }, [2957287092] = { "Chance to Block Damage is Lucky" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Keeper of the Arc"] = { + ["helmet"] = { + type = "Rune", + "Alternating every 5 seconds:", + "Take 20% less Damage from Hits", + "Take 20% less Damage over time", + "Bonded: 25% increased Mana Regeneration Rate", + statOrder = { 6942, 6942.1, 6942.2, 1042 }, + tradeHashes = { [258955603] = { "Alternating every 5 seconds:", "Take 20% less Damage from Hits", "Take 20% less Damage over time" }, }, + rank = { 65 }, + }, + }, + ["Legacy of Olrovasara"] = { + ["one hand mace"] = { + 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 = { 7774, 7774.1, 984 }, + 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" }, }, + rank = { 65 }, + }, + }, + ["Legacy of A Worthy Foe"] = { + ["shield"] = { type = "Rune", - "50% increased Attack Damage against Rare or Unique Enemies", - "Bonded: +1 to Level of all Attack Skills", - statOrder = { 4382, 929 }, - tradeHashes = { [2077615515] = { "50% increased Attack Damage against Rare or Unique Enemies" }, }, - rank = { 50 }, + "Off-hand Hits inflict Runefather's Challenge", + "Bonded: +45% to Cold Resistance", + statOrder = { 10524, 1019 }, + tradeHashes = { [3430033313] = { "Off-hand Hits inflict Runefather's Challenge" }, }, + rank = { 65 }, }, }, - ["Craiceann's Rune of Recovery"] = { - ["body armour"] = { + ["Legacy of Serle's Grit"] = { + ["one hand mace"] = { type = "Rune", - "50% increased Energy Shield Recharge Rate", - "Bonded: 20% faster start of Energy Shield Recharge", - statOrder = { 966, 967 }, - tradeHashes = { [2339757871] = { "50% increased Energy Shield Recharge Rate" }, }, - rank = { 50 }, + "Maximum Quality is 40%", + "Bonded: Skills which Empower an Attack have 20% chance to not count that Attack", + statOrder = { 613, 5391 }, + tradeHashes = { [275498888] = { "Maximum Quality is 40%" }, }, + rank = { 65 }, }, }, - ["Courtesan Mannan's Rune of Cruelty"] = { - ["gloves"] = { + ["Legacy of Runeseeker's Call"] = { + ["wand"] = { type = "Rune", - "20% increased Magnitude of Damaging Ailments you inflict", - "Bonded: 15% increased Duration of Damaging Ailments on Enemies", - statOrder = { 5670, 5668 }, - tradeHashes = { [1381474422] = { "20% increased Magnitude of Damaging Ailments you inflict" }, }, - rank = { 50 }, + "75% increased effect of Socketed Runes", + "Bonded: +100 to maximum Mana", + statOrder = { 175, 891 }, + tradeHashes = { [704409219] = { "75% increased effect of Socketed Runes" }, }, + rank = { 65 }, }, }, - ["Thane Grannell's Rune of Mastery"] = { + ["Legacy of Facebreaker"] = { ["gloves"] = { type = "Rune", - "30% increased Magnitude of Non-Damaging Ailments you inflict", - "Bonded: 15% increased Duration of Elemental Ailments on Enemies", - statOrder = { 8659, 1544 }, - tradeHashes = { [782230869] = { "30% increased Magnitude of Non-Damaging Ailments you inflict" }, }, - rank = { 50 }, + "+1 to Armour per Strength", + "Bonded: 1% increased Damage per 15 Strength", + statOrder = { 6741, 5986 }, + tradeHashes = { [1291132817] = { "+1 to Armour per Strength" }, }, + rank = { 65 }, }, }, - ["Fenumus' Rune of Spinning"] = { - ["gloves"] = { + ["Emergent Vigour"] = { + ["helmet"] = { type = "Rune", - "8% increased Cast Speed", - "Bonded: 20% increased Mana Cost Efficiency while on Low Mana", - statOrder = { 942, 4586 }, - tradeHashes = { [2891184298] = { "8% increased Cast Speed" }, }, - rank = { 50 }, + "+1 to maximum Life per 8 Armour on Equipped Helmet", + "Bonded: +20 to Spirit", + statOrder = { 6699, 894 }, + tradeHashes = { [2785209416] = { "+1 to maximum Life per 8 Armour on Equipped Helmet" }, }, + rank = { 60 }, }, - }, - ["Countess Seske's Rune of Archery"] = { - ["bow"] = { + ["body armour"] = { type = "Rune", - "Bow Attacks fire an additional Arrow", - "Bonded: 20% increased Projectile Speed", - statOrder = { 945, 875 }, - tradeHashes = { [3885405204] = { "Bow Attacks fire an additional Arrow" }, }, - rank = { 50 }, + "Gain Maximum Energy Shield equal to 50% of total", + "Strength Requirements of Equipped Armour Items", + "Bonded: +20 to Strength", + statOrder = { 6789, 6789.1, 991 }, + tradeHashes = { [2444976134] = { "Gain Maximum Energy Shield equal to 50% of total", "Strength Requirements of Equipped Armour Items" }, }, + rank = { 60 }, }, - }, - ["Thane Girt's Rune of Wildness"] = { - ["caster"] = { + ["boots"] = { type = "Rune", - "25% chance for Spell Skills to fire 2 additional Projectiles", - "Bonded: Every Rage also grants 1% increased Spell Damage", - statOrder = { 9431, 9405 }, - tradeHashes = { [2910761524] = { "25% chance for Spell Skills to fire 2 additional Projectiles" }, }, - rank = { 50 }, + "Hits against you have no Critical Damage Bonus while on Consecrated Ground", + "Bonded: 20% increased Effect of Consecrated Ground you create", + statOrder = { 9777, 5734 }, + tradeHashes = { [1800433827] = { "Hits against you have no Critical Damage Bonus while on Consecrated Ground" }, }, + rank = { 60 }, }, }, - ["Fenumus' Rune of Draining"] = { + ["Emergent Possibility"] = { + ["body armour"] = { + type = "Rune", + "15% of Chaos Damage from Hits taken as a Damage of a random Element", + "Bonded: +13% to Chaos Resistance", + statOrder = { 2234, 1023 }, + tradeHashes = { [4217453078] = { "15% of Chaos Damage from Hits taken as a Damage of a random Element" }, }, + rank = { 60 }, + }, ["gloves"] = { type = "Rune", - "20% increased Withered Magnitude", - "Bonded: +7% to Chaos Resistance", - statOrder = { 9915, 961 }, - tradeHashes = { [3973629633] = { "20% increased Withered Magnitude" }, }, - rank = { 50 }, + "Gain 1% of Damage as Extra Damage of a random Element per", + "Rune Socketed in Equipped Items", + "Bonded: 20% increased Elemental Damage", + statOrder = { 9220, 9220.1, 1724 }, + tradeHashes = { [3557924960] = { "Gain 1% of Damage as Extra Damage of a random Element per", "Rune Socketed in Equipped Items" }, }, + rank = { 60 }, }, - }, - ["Thane Myrk's Rune of Summer"] = { - ["weapon"] = { + ["boots"] = { type = "Rune", - "Adds 23 to 34 Fire Damage", - "Bonded: +2% to Maximum Fire Resistance", - statOrder = { 823, 953 }, - tradeHashes = { [709508406] = { "Adds 23 to 34 Fire Damage" }, }, - rank = { 50 }, + "50% increased Runic Ward Regeneration Rate while Sprinting", + "Bonded: 15% increased Runic Ward Cost Efficiency", + statOrder = { 10480, 4751 }, + tradeHashes = { [2441825294] = { "50% increased Runic Ward Regeneration Rate while Sprinting" }, }, + rank = { 60 }, }, }, - ["Lady Hestra's Rune of Winter"] = { - ["weapon"] = { + ["Emergent Protection"] = { + ["helmet"] = { type = "Rune", - "Adds 19 to 28 Cold Damage", - "Bonded: +2% to Maximum Cold Resistance", - statOrder = { 824, 954 }, - tradeHashes = { [1037193709] = { "Adds 19 to 28 Cold Damage" }, }, - rank = { 50 }, + "Gain 1 Endurance Charge on reaching Low Life, only once every 2 seconds", + "Bonded: 40% increased Endurance Charge Duration", + statOrder = { 6756, 1862 }, + tradeHashes = { [901336307] = { "Gain 1 Endurance Charge on reaching Low Life, only once every 2 seconds" }, }, + rank = { 60 }, }, - }, - ["Thane Leld's Rune of Spring"] = { - ["weapon"] = { + ["gloves"] = { type = "Rune", - "Adds 1 to 60 Lightning Damage", - "Bonded: +2% to Maximum Lightning Resistance", - statOrder = { 825, 955 }, - tradeHashes = { [3336890334] = { "Adds 1 to 60 Lightning Damage" }, }, - rank = { 50 }, + "Banners also grant 2% of Life Regenerated per second to affected targets", + "Bonded: Regenerate 0.5% of maximum Life per second", + statOrder = { 4646, 1689 }, + tradeHashes = { [119336587] = { "Banners also grant 2% of Life Regenerated per second to affected targets" }, }, + 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 = { 6781, 6928 }, + 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" }, }, + rank = { 60 }, }, }, - ["The Greatwolf's Rune of Claws"] = { + ["Emergent Instinct"] = { + ["helmet"] = { + type = "Rune", + "Targets that are Blinded, Maimed, and Bleeding cannot Evade your Hits", + "Bonded: 30% increased Immobilisation buildup", + statOrder = { 7189, 7170 }, + tradeHashes = { [2889034188] = { "Targets that are Blinded, Maimed, and Bleeding cannot Evade your Hits" }, }, + rank = { 60 }, + }, ["gloves"] = { type = "Rune", - "Adds 5 to 12 Physical Damage to Attacks", - "Bonded: Fissure Skills have +2 to Limit", - statOrder = { 843, 6192 }, - tradeHashes = { [3032590688] = { "Adds 5 to 12 Physical Damage to Attacks" }, }, - rank = { 50 }, + "Recover 10% of maximum Life over 2 Seconds when you use a Command Skill", + "Bonded: 20% increased Life Regeneration rate", + statOrder = { 9635, 1035 }, + tradeHashes = { [1914815166] = { "Recover 10% of maximum Life over 2 Seconds when you use a Command Skill" }, }, + rank = { 60 }, }, - }, - ["The Greatwolf's Rune of Willpower"] = { ["body armour"] = { type = "Rune", - "15% of Damage is taken from Mana before Life", - "Bonded: 8% of Maximum Life Converted to Energy Shield", - statOrder = { 2362, 8332 }, - tradeHashes = { [458438597] = { "15% of Damage is taken from Mana before Life" }, }, - rank = { 50 }, + "Thorns Damage is Lucky against targets with Fully Broken Armour", + "Bonded: 30% increased Thorns damage", + statOrder = { 10212, 10213 }, + tradeHashes = { [1871622140] = { "Thorns Damage is Lucky against targets with Fully Broken Armour" }, }, + rank = { 60 }, }, }, ["Idol of Sirrius"] = { ["gloves"] = { type = "Idol", "8% increased Attack Speed", - "Bonded: 15% reduced Slowing Potency of Debuffs on You", - statOrder = { 941, 4608 }, + "Bonded: 20% reduced Slowing Potency of Debuffs on You", + statOrder = { 984, 4735 }, tradeHashes = { [681332047] = { "8% increased Attack Speed" }, }, rank = { 50 }, }, + ["sceptre"] = { + type = "Idol", + "Allies in your Presence have 8% increased Movement Speed", + "Bonded: 4% increased Movement Speed", + statOrder = { 4277, 835 }, + tradeHashes = { [632743438] = { "Allies in your Presence have 8% increased Movement Speed" }, }, + rank = { 50 }, + }, }, ["Idol of Thruldana"] = { ["weapon"] = { type = "Idol", "25% reduced Poison Duration", "Targets can be affected by +1 of your Poisons at the same time", - "Bonded: Gain 13% of Elemental Damage as Extra Chaos Damage", - statOrder = { 2786, 8749, 1614 }, + "Bonded: Gain 13% of Physical Damage as extra Chaos Damage", + statOrder = { 2894, 9286, 1675 }, tradeHashes = { [1755296234] = { "Targets can be affected by +1 of your Poisons at the same time" }, [2011656677] = { "25% reduced Poison Duration" }, }, rank = { 50 }, }, + ["sceptre"] = { + type = "Idol", + "Allies in your Presence deal 13 to 27 added Attack Chaos Damage", + "Bonded: 15% increased Withered Magnitude", + statOrder = { 910, 10514 }, + tradeHashes = { [262946222] = { "Allies in your Presence deal 13 to 27 added Attack Chaos Damage" }, }, + rank = { 50 }, + }, }, ["Idol of Grold"] = { - ["gloves"] = { + ["boots"] = { + type = "Idol", + "50% increased total Power counted by Warcries", + "Bonded: 30% increased Glory generation", + statOrder = { 10470, 6891 }, + tradeHashes = { [2663359259] = { "50% increased total Power counted by Warcries" }, }, + rank = { 50 }, + }, + ["sceptre"] = { type = "Idol", - "20% increased total Power counted by Warcries", - "Bonded: 20% increased Glory generation", - statOrder = { 9889, 6473 }, - tradeHashes = { [2663359259] = { "20% increased total Power counted by Warcries" }, }, + "15% increased Damage per each different Companion in your Presence", + "Bonded: 15% increased Reservation Efficiency of Companion Skills", + statOrder = { 5939, 9723 }, + tradeHashes = { [3151560620] = { "15% increased Damage per each different Companion in your Presence" }, }, rank = { 50 }, }, }, ["Idol of Eeshta"] = { ["helmet"] = { type = "Idol", - "12% increased Cost Efficiency", - "Bonded: Meta Skills have 12% increased Reservation Efficiency", - statOrder = { 4604, 9180 }, - tradeHashes = { [263495202] = { "12% increased Cost Efficiency" }, }, + "15% increased Cost Efficiency", + "Bonded: Meta Skills have 15% increased Reservation Efficiency", + statOrder = { 4731, 9725 }, + tradeHashes = { [263495202] = { "15% increased Cost Efficiency" }, }, + 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 = { 7969, 7461 }, + tradeHashes = { [1779262102] = { "15% increased Mana Recovery rate while your Companion is in your Presence" }, }, rank = { 50 }, }, }, @@ -2026,99 +4479,122 @@ return { type = "Idol", "Enemies you Curse take 6% increased Damage", "Bonded: 20% increased Area of Effect of Curses", - statOrder = { 3327, 1875 }, + statOrder = { 3431, 1948 }, tradeHashes = { [1984310483] = { "Enemies you Curse take 6% increased Damage" }, }, rank = { 50 }, }, + ["sceptre"] = { + type = "Idol", + "Bonded: 20% faster Curse Activation", + statOrder = { 5910 }, + tradeHashes = { [787504027] = { "" }, }, + rank = { 50 }, + }, }, ["Idol of Maxarius"] = { ["body armour"] = { type = "Idol", "+1 Charm Slot", "Bonded: Storm Skills have +1 to Limit", - statOrder = { 8739, 9505 }, + statOrder = { 9275, 10069 }, tradeHashes = { [554899692] = { "+1 Charm Slot" }, }, rank = { 50 }, }, + ["sceptre"] = { + type = "Idol", + "Flasks gain 0.2 charges per Second", + "Bonded: 20% increased Life and Mana Recovery from Flasks", + statOrder = { 6865, 6621 }, + tradeHashes = { [731781020] = { "Flasks gain 0.2 charges per Second" }, }, + rank = { 50 }, + }, }, ["Idol of Ralakesh"] = { ["helmet"] = { type = "Idol", "8% increased Reservation Efficiency of Minion Skills", "Bonded: Minions Revive 8% faster", - statOrder = { 8524, 8529 }, + statOrder = { 9726, 9050 }, tradeHashes = { [1805633363] = { "8% increased Reservation Efficiency of Minion Skills" }, }, 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 = { 6881, 5712 }, + tradeHashes = { [2829985691] = { "40% increased Armour, Evasion and Energy Shield while your Companion is in your Presence" }, }, + rank = { 50 }, + }, }, ["Snake Idol"] = { ["gloves"] = { type = "Idol", - "5% increased Curse Magnitudes", - "Bonded: Remnants have 10% increased effect", - statOrder = { 2266, 9151 }, - tradeHashes = { [2353576063] = { "5% increased Curse Magnitudes" }, }, + "8% increased Curse Magnitudes", + "Bonded: Remnants you create have 15% increased effect", + statOrder = { 2374, 9695 }, + tradeHashes = { [2353576063] = { "8% increased Curse Magnitudes" }, }, rank = { 0 }, }, ["sceptre"] = { type = "Idol", - "Allies in your Presence have 8% increased Attack Speed", + "Allies in your Presence have 10% increased Attack Speed", "Bonded: 10% increased Skill Speed while Shapeshifted", - statOrder = { 893, 9317 }, - tradeHashes = { [1998951374] = { "Allies in your Presence have 8% increased Attack Speed" }, }, + statOrder = { 917, 9875 }, + tradeHashes = { [1998951374] = { "Allies in your Presence have 10% increased Attack Speed" }, }, rank = { 0 }, }, }, ["Primate Idol"] = { ["helmet"] = { type = "Idol", - "Minions have 12% increased maximum Life", - "Bonded: Remnants can be collected from 20% further away", - statOrder = { 962, 9153 }, - tradeHashes = { [770672621] = { "Minions have 12% increased maximum Life" }, }, + "Minions have 15% increased maximum Life", + "Bonded: Remnants can be collected from 30% further away", + statOrder = { 1025, 9697 }, + tradeHashes = { [770672621] = { "Minions have 15% increased maximum Life" }, }, rank = { 0 }, }, ["sceptre"] = { type = "Idol", - "Allies in your Presence deal 30% increased Damage", + "Allies in your Presence deal 40% increased Damage", "Bonded: 40% increased Damage while Shapeshifted", - statOrder = { 881, 5567 }, - tradeHashes = { [1798257884] = { "Allies in your Presence deal 30% increased Damage" }, }, + statOrder = { 905, 5948 }, + tradeHashes = { [1798257884] = { "Allies in your Presence deal 40% increased Damage" }, }, rank = { 0 }, }, }, ["Owl Idol"] = { ["focus"] = { type = "Idol", - "10% increased Cooldown Recovery Rate", - "Bonded: 15% increased effect of Archon Buffs on you", - statOrder = { 4539, 4223 }, - tradeHashes = { [1004011302] = { "10% increased Cooldown Recovery Rate" }, }, + "12% increased Cooldown Recovery Rate", + "Bonded: 20% increased effect of Archon Buffs on you", + statOrder = { 4666, 4335 }, + tradeHashes = { [1004011302] = { "12% increased Cooldown Recovery Rate" }, }, rank = { 0 }, }, ["sceptre"] = { type = "Idol", - "Allies in your Presence have 8% increased Cast Speed", + "Allies in your Presence have 10% increased Cast Speed", "Bonded: 10% increased Skill Speed while Shapeshifted", - statOrder = { 894, 9317 }, - tradeHashes = { [289128254] = { "Allies in your Presence have 8% increased Cast Speed" }, }, + statOrder = { 918, 9875 }, + tradeHashes = { [289128254] = { "Allies in your Presence have 10% increased Cast Speed" }, }, rank = { 0 }, }, }, ["Cat Idol"] = { ["gloves"] = { type = "Idol", - "15% increased Accuracy Rating", - "Bonded: 20% increased Charm Charges gained", - statOrder = { 1268, 5227 }, - tradeHashes = { [624954515] = { "15% increased Accuracy Rating" }, }, + "25% increased Accuracy Rating", + "Bonded: 30% increased Charm Charges gained", + statOrder = { 1331, 5591 }, + tradeHashes = { [624954515] = { "25% increased Accuracy Rating" }, }, rank = { 0 }, }, ["sceptre"] = { type = "Idol", "Allies in your Presence have 14% increased Critical Hit Chance", "Bonded: 25% increased Critical Hit Chance while Shapeshifted", - statOrder = { 891, 5440 }, + statOrder = { 915, 5821 }, tradeHashes = { [1250712710] = { "Allies in your Presence have 14% increased Critical Hit Chance" }, }, rank = { 0 }, }, @@ -2126,35 +4602,35 @@ return { ["Wolf Idol"] = { ["gloves"] = { type = "Idol", - "10% increased Magnitude of Bleeding you inflict", - "Bonded: 15% reduced Magnitude of Bleeding on You", - statOrder = { 4662, 4523 }, - tradeHashes = { [3166958180] = { "10% increased Magnitude of Bleeding you inflict" }, }, + "15% increased Magnitude of Bleeding you inflict", + "Bonded: 25% reduced Magnitude of Bleeding on You", + statOrder = { 4797, 4650 }, + tradeHashes = { [3166958180] = { "15% increased Magnitude of Bleeding you inflict" }, }, rank = { 0 }, }, ["sceptre"] = { type = "Idol", - "Allies in your Presence have 14% increased Critical Damage Bonus", + "Allies in your Presence have 20% increased Critical Damage Bonus", "Bonded: 25% increased Critical Hit Chance while Shapeshifted", - statOrder = { 892, 5440 }, - tradeHashes = { [3057012405] = { "Allies in your Presence have 14% increased Critical Damage Bonus" }, }, + statOrder = { 916, 5821 }, + tradeHashes = { [3057012405] = { "Allies in your Presence have 20% increased Critical Damage Bonus" }, }, rank = { 0 }, }, }, ["Stag Idol"] = { ["helmet"] = { type = "Idol", - "50% increased Thorns Critical Hit Chance", - "Bonded: Thorns Damage has 40% chance to ignore Enemy Armour", - statOrder = { 9642, 9645 }, - tradeHashes = { [915264788] = { "50% increased Thorns Critical Hit Chance" }, }, + "Projectiles have 15% chance to Fork", + "Bonded: Projectiles have 25% chance for an additional Projectile when Forking", + statOrder = { 9503, 5502 }, + tradeHashes = { [1549287843] = { "Projectiles have 15% chance to Fork" }, }, 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 = { 885, 4387 }, + statOrder = { 909, 4509 }, tradeHashes = { [2854751904] = { "Allies in your Presence deal 1 to 40 added Attack Lightning Damage" }, }, rank = { 0 }, }, @@ -2163,34 +4639,34 @@ return { ["gloves"] = { type = "Idol", "Gain 1 Rage on Melee Hit", - "Bonded: 15% increased Warcry Cooldown Recovery Rate", - statOrder = { 6431, 2929 }, + "Bonded: 25% increased Warcry Cooldown Recovery Rate", + statOrder = { 6850, 3033 }, tradeHashes = { [2709367754] = { "Gain 1 Rage on Melee Hit" }, }, rank = { 0 }, }, ["sceptre"] = { type = "Idol", - "Allies in your Presence Regenerate 8 Life per second", + "Allies in your Presence Regenerate 0.5% of your Maximum Life per second", "Bonded: 25% increased Life Regeneration rate while Shapeshifted", - statOrder = { 896, 7037 }, - tradeHashes = { [4010677958] = { "Allies in your Presence Regenerate 8 Life per second" }, }, + statOrder = { 922, 7479 }, + tradeHashes = { [1911097163] = { "Allies in your Presence Regenerate 0.5% of your Maximum Life per second" }, }, rank = { 0 }, }, }, ["Bear Idol"] = { ["helmet"] = { type = "Idol", - "8% increased Area of Effect", - "Bonded: 10% increased Reservation Efficiency of Companion Skills", - statOrder = { 1557, 9178 }, - tradeHashes = { [280731498] = { "8% increased Area of Effect" }, }, + "10% increased Area of Effect", + "Bonded: 12% increased Reservation Efficiency of Companion Skills", + statOrder = { 1628, 9723 }, + tradeHashes = { [280731498] = { "10% increased Area of Effect" }, }, 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 = { 882, 4387 }, + statOrder = { 906, 4509 }, tradeHashes = { [1574590649] = { "Allies in your Presence deal 12 to 18 added Attack Physical Damage" }, }, rank = { 0 }, }, @@ -2198,55 +4674,333 @@ return { ["Ox Idol"] = { ["shield"] = { type = "Idol", - "10% increased Block chance", - "Bonded: 10% chance for Damage of Enemies Hitting you to be Unlucky", - statOrder = { 830, 5981 }, - tradeHashes = { [2481353198] = { "10% increased Block chance" }, }, + "15% increased Block chance", + "Bonded: 15% chance for Damage of Enemies Hitting you to be Unlucky", + statOrder = { 838, 6380 }, + tradeHashes = { [2481353198] = { "15% increased Block chance" }, }, + rank = { 0 }, + }, + ["buckler"] = { + type = "Idol", + "15% increased Block chance", + "Bonded: 15% chance for Damage of Enemies Hitting you to be Unlucky", + statOrder = { 838, 6380 }, + tradeHashes = { [2481353198] = { "15% increased Block chance" }, }, rank = { 0 }, }, ["sceptre"] = { type = "Idol", - "Allies in your Presence have +8% to all Elemental Resistances", + "Allies in your Presence have +12% to all Elemental Resistances", "Bonded: +20% of Armour also applies to Elemental Damage while Shapeshifted", - statOrder = { 895, 9922 }, - tradeHashes = { [3850614073] = { "Allies in your Presence have +8% to all Elemental Resistances" }, }, + statOrder = { 919, 10522 }, + tradeHashes = { [3850614073] = { "Allies in your Presence have +12% to all Elemental Resistances" }, }, rank = { 0 }, }, }, ["Rabbit Idol"] = { ["body armour"] = { type = "Idol", - "5% increased Rarity of Items found", - "Bonded: 5% increased Quantity of Gold Dropped by Slain Enemies", - statOrder = { 916, 6476 }, - tradeHashes = { [3917489142] = { "5% increased Rarity of Items found" }, }, + "12% increased Rarity of Items found", + "Bonded: 10% increased Quantity of Gold Dropped by Slain Enemies", + statOrder = { 940, 6894 }, + tradeHashes = { [3917489142] = { "12% increased Rarity of Items found" }, }, rank = { 0 }, }, ["sceptre"] = { type = "Idol", - "10% increased Spirit", + "15% increased Spirit", "Bonded: Minions have 30% increased Cooldown Recovery Rate for Command Skills", - statOrder = { 842, 8471 }, - tradeHashes = { [3984865854] = { "10% increased Spirit" }, }, + statOrder = { 856, 8989 }, + tradeHashes = { [3984865854] = { "15% increased Spirit" }, }, rank = { 0 }, }, }, ["Fox Idol"] = { ["body armour"] = { type = "Idol", - "+2% to Quality of all Skills", - "Bonded: +4 to all Attributes", - statOrder = { 4167, 946 }, - tradeHashes = { [3655769732] = { "+2% to Quality of all Skills" }, }, + "Idols socketed in this item gain the benefits of their Bonded modifiers", + "Bonded: +5% to Quality of all Skills", + statOrder = { 7707, 974 }, + tradeHashes = { [3843204282] = { "" }, [726496846] = { "Idols socketed in this item gain the benefits of their Bonded modifiers" }, }, rank = { 0 }, }, ["sceptre"] = { type = "Idol", - "30% increased Presence Area of Effect", - "Bonded: Minions have 20% increased Area of Effect", - statOrder = { 1002, 2649 }, - tradeHashes = { [101878827] = { "30% increased Presence Area of Effect" }, }, + "50% increased Presence Area of Effect", + "Bonded: Minions have 30% increased Area of Effect", + statOrder = { 1068, 2757 }, + tradeHashes = { [101878827] = { "50% increased Presence Area of Effect" }, }, rank = { 0 }, }, }, + ["Idol of Greust"] = { + ["shield"] = { + type = "Idol", + "+25% of Armour also applies to Elemental Damage", + "Bonded: 12% increased Damage for each type of Elemental Ailment on Enemy", + statOrder = { 1026, 5940 }, + tradeHashes = { [3362812763] = { "+25% of Armour also applies to Elemental Damage" }, }, + 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 = { 1027, 5940 }, + tradeHashes = { [3033371881] = { "Gain Deflection Rating equal to 20% of Evasion Rating" }, }, + 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 = { 5705, 10554 }, + tradeHashes = { [2882351629] = { "Companions deal 10% more Damage for each different type of dead Companion you have" }, }, + rank = { 50 }, + }, + }, + ["Idol of Yeena"] = { + ["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 = { 9446, 5352 }, + tradeHashes = { [4065951768] = { "30% increased Skill Effect Duration with Plant Skills" }, }, + 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 = { 5352, 9446 }, + tradeHashes = { [2681952497] = { "Plants have a 25% chance to immediately Overgrow when they enter your Presence for the first time" }, }, + rank = { 50 }, + }, + }, + ["Idol of Eramir"] = { + ["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 = { 5589, 5620 }, + tradeHashes = { [2942439603] = { "Skills have 10% chance to not remove Charges but still count as consuming them" }, }, + rank = { 50 }, + }, + ["sceptre"] = { + type = "Idol", + "Allies in your Presence share Charges with you", + "Bonded: 25% increased Endurance, Frenzy and Power Charge Duration", + statOrder = { 4280, 2759 }, + tradeHashes = { [3329501096] = { "Allies in your Presence share Charges with you" }, }, + rank = { 50 }, + }, + }, + ["Idol of Oak"] = { + ["boots"] = { + type = "Idol", + "15% chance when you gain an Endurance Charge to gain an additional Endurance Charge", + "Bonded: +1 to Maximum Endurance Charges", + statOrder = { 5506, 1557 }, + tradeHashes = { [1228682002] = { "15% chance when you gain an Endurance Charge to gain an additional Endurance Charge" }, }, + rank = { 50 }, + }, + ["sceptre"] = { + type = "Idol", + "When you generate an Endurance Charge, Allies in your Presence generate that Charge instead", + "Bonded: 40% increased Armour if you've consumed an Endurance Charge Recently", + statOrder = { 1888, 4377 }, + tradeHashes = { [3257561708] = { "When you generate an Endurance Charge, Allies in your Presence generate that Charge instead" }, }, + rank = { 50 }, + }, + }, + ["Idol of Alira"] = { + ["helmet"] = { + type = "Idol", + "15% chance when you gain a Power Charge to gain an additional Power Charge", + "Bonded: +1 to Maximum Power Charges", + statOrder = { 5508, 1567 }, + tradeHashes = { [3537994888] = { "15% chance when you gain a Power Charge to gain an additional Power Charge" }, }, + rank = { 50 }, + }, + ["sceptre"] = { + type = "Idol", + "When you generate a Power Charge, Allies in your Presence generate that Charge instead", + "Bonded: 40% increased maximum Energy Shield if you've consumed a Power Charge Recently", + statOrder = { 1890, 6394 }, + tradeHashes = { [1323701627] = { "When you generate a Power Charge, Allies in your Presence generate that Charge instead" }, }, + rank = { 50 }, + }, + }, + ["Idol of Kraityn"] = { + ["gloves"] = { + type = "Idol", + "15% chance when you gain a Frenzy Charge to gain an additional Frenzy Charge", + "Bonded: +1 to Maximum Frenzy Charges", + statOrder = { 5507, 1562 }, + tradeHashes = { [2916861134] = { "15% chance when you gain a Frenzy Charge to gain an additional Frenzy Charge" }, }, + rank = { 50 }, + }, + ["sceptre"] = { + type = "Idol", + "When you generate a Frenzy Charge, Allies in your Presence generate that Charge instead", + "Bonded: 40% increased Evasion Rating if you've consumed a Frenzy Charge Recently", + statOrder = { 1889, 6465 }, + tradeHashes = { [3353733343] = { "When you generate a Frenzy Charge, Allies in your Presence generate that Charge instead" }, }, + rank = { 50 }, + }, + }, + ["Idol of Silk"] = { + ["shield"] = { + type = "Idol", + "15% increased Block chance while your Companion is in your Presence", + "Bonded: +3% to maximum Block chance", + statOrder = { 4927, 1732 }, + tradeHashes = { [3087034595] = { "15% increased Block chance while your Companion is in your Presence" }, }, + rank = { 50 }, + }, + ["buckler"] = { + type = "Idol", + "Bonded: 30% increased Parry Range", + statOrder = { 4142 }, + tradeHashes = { [2057883179] = { "" }, }, + rank = { 50 }, + }, + ["sceptre"] = { + type = "Idol", + "Companions in your Presence gain 1 Rage on hit", + "Bonded: Companions have 30% increased Area of Effect", + statOrder = { 5725, 5701 }, + tradeHashes = { [2652394701] = { "Companions in your Presence gain 1 Rage on hit" }, }, + rank = { 50 }, + }, + }, + ["Idol of the Sycophant"] = { + ["martial weapon wand or staff"] = { + 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 = { 1012, 9219, 1023, 1670 }, + tradeHashes = { [3617669804] = { "Gain 20% of Damage as Extra Damage of a random Element" }, [2901986750] = { "-20% to all Elemental Resistances" }, }, + rank = { 50 }, + }, + ["sceptre"] = { + 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 = { 5723, 5728, 4278, 5722 }, + 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" }, }, + rank = { 50 }, + }, + }, + ["Idol of the Martyr"] = { + ["martial weapon wand or staff"] = { + 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 = { 1416, 6387, 7361, 9725 }, + tradeHashes = { [4236566306] = { "Meta Skills gain 40% increased Energy" }, [1416406066] = { "25% reduced Spirit" }, }, + rank = { 50 }, + }, + ["sceptre"] = { + 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 = { 1068, 2572, 922, 1035 }, + tradeHashes = { [101878827] = { "40% reduced Presence Area of Effect" }, [315791320] = { "Aura Skills have 25% increased Magnitudes" }, }, + rank = { 50 }, + }, + }, + ["Idol of the Pharisee"] = { + ["martial weapon wand or staff"] = { + 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 = { 893, 9218, 4706, 9874 }, + tradeHashes = { [2748665614] = { "30% reduced maximum Mana" }, [1693515857] = { "Gain 2% of Damage as Extra Physical Damage per ten percent missing Mana" }, }, + rank = { 50 }, + }, + ["sceptre"] = { + 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 = { 4707, 8992, 9726, 10206 }, + tradeHashes = { [3742865955] = { "Minions deal 60% increased Damage with Command Skills" }, [553018427] = { "30% reduced Mana Cost Efficiency of Command Skills" }, }, + rank = { 50 }, + }, + }, + ["Panther Idol"] = { + ["body armour"] = { + type = "Idol", + "+10% of Armour also applies to Chaos Damage", + "Bonded: +8% to Chaos Resistance", + statOrder = { 4634, 1023 }, + tradeHashes = { [3972229254] = { "+10% of Armour also applies to Chaos Damage" }, }, + rank = { 50 }, + }, + ["sceptre"] = { + type = "Idol", + "Minions have +20% to Chaos Resistance", + "Bonded: Minions have 20% additional Physical Damage Reduction", + statOrder = { 2666, 2020 }, + tradeHashes = { [3837707023] = { "Minions have +20% to Chaos Resistance" }, }, + rank = { 50 }, + }, + }, + ["Hawk Idol"] = { + ["body armour"] = { + type = "Idol", + "10% increased Deflection Rating", + "Bonded: +12% to Cold Resistance", + statOrder = { 6105, 1019 }, + tradeHashes = { [3040571529] = { "10% increased Deflection Rating" }, }, + rank = { 50 }, + }, + ["sceptre"] = { + type = "Idol", + "Companions have 12% increased Attack Speed", + "Bonded: 8% increased Attack Speed while your Companion is in your Presence", + statOrder = { 5702, 4546 }, + tradeHashes = { [666077204] = { "Companions have 12% increased Attack Speed" }, }, + rank = { 50 }, + }, + }, + ["Stoat Idol"] = { + ["body armour"] = { + type = "Idol", + "5% of Damage taken bypasses Energy Shield", + "Bonded: +12% to Lightning Resistance", + statOrder = { 1455, 1022 }, + tradeHashes = { [2448633171] = { "5% of Damage taken bypasses Energy Shield" }, }, + rank = { 50 }, + }, + ["sceptre"] = { + type = "Idol", + "Companions have 25% increased maximum Life", + "Bonded: 25% increased Damage while your Companion is in your Presence", + statOrder = { 5712, 5947 }, + tradeHashes = { [1805182458] = { "Companions have 25% increased maximum Life" }, }, + rank = { 50 }, + }, + }, + ["Raven-Touched Shard"] = { + ["helmet"] = { + type = "CongealedMist", + "Raven-Touched", + statOrder = { 10715 }, + tradeHashes = { [3198163869] = { "Raven-Touched" }, }, + rank = { 60 }, + }, + }, } \ No newline at end of file diff --git a/src/Export/Bases/soulcore.txt b/src/Export/Bases/soulcore.txt deleted file mode 100644 index 729e981a0..000000000 --- a/src/Export/Bases/soulcore.txt +++ /dev/null @@ -1,19 +0,0 @@ --- Item data (c) Grinding Gear Games -local itemBases = ... - -#type SoulCore -#baseMatch Metadata/Items/SoulCores/SoulCore -#baseMatch Metadata/Items/SoulCores/AmanamusGaze -#baseMatch Metadata/Items/SoulCores/KurgalsGaze -#baseMatch Metadata/Items/SoulCores/TecrodsGaze -#baseMatch Metadata/Items/SoulCores/UlamansGaze -#baseMatch Metadata/Items/SoulCores/ThesisOfSouls -#baseMatch Metadata/Items/SoulCores/ThesisOfExperiments -#baseMatch Metadata/Items/SoulCores/ThesisOfBlood -#baseMatch Metadata/Items/SoulCores/ThesisOfSacrifice - -#type Rune -#baseMatch Metadata/Items/SoulCores/Rune - -#type Idol -#baseMatch Metadata/Items/SoulCores/Talisman \ No newline at end of file diff --git a/src/Export/Scripts/soulcores.lua b/src/Export/Scripts/soulcores.lua index c90f78431..086b54531 100644 --- a/src/Export/Scripts/soulcores.lua +++ b/src/Export/Scripts/soulcores.lua @@ -4,10 +4,17 @@ end loadStatFile("stat_descriptions.csd") classMap = { - ["Martial Weapons"] = { "weapon" }, + ["Martial Weapon"] = { "weapon" }, + ["Caster Weapon"] = { "caster" }, + ["Martial Or Caster Weapon"] = { "weapon", "caster" }, ["Armour"] = { "armour" }, - ["Caster Weapons"] = { "caster" }, + ["Wand or Staff"] = { "wand", "staff" }, + ["Maces or Talisman"] = { "one hand mace", "two hand mace", "talisman" }, + ["One Hand Mace or Quarterstaff"] = { "one hand mace", "warstaff" }, + ["Shield or Buckler"] = { "shield", "buckler" }, ["All"] = { "weapon", "armour", "caster" }, + ["Quarterstaff or Spear"] = { "warstaff", "spear" }, + ["Crossbow Bow or Spear"] = { "crossbow", "bow", "spear" }, } function table.containsId(table, element) @@ -38,6 +45,9 @@ directiveTable.base = function(state, args, out) if not displayName then displayName = baseItemType.Name end + if displayName:find("DNT") then + return + end displayName = displayName:gsub("\195\182","o") displayName = displayName:gsub("^%s*(.-)%s*$", "%1") -- trim spaces GGG might leave in by accident @@ -85,47 +95,50 @@ directiveTable.base = function(state, args, out) end if next(stats) then for _, class in ipairs(classMap[soulCoreStat.Category.Id] or { string.lower(soulCoreStat.Category.Id) }) do - local stats, orders = describeStats(stats) - local bondedStats, bondedOrders = describeStats(bondedStats) - for i, stat in ipairs(bondedStats) do - bondedStats[i] = "Bonded: " .. stat + local statsCopy = {} + for k, v in pairs(stats) do statsCopy[k] = { min = v.min, max = v.max } end + local bondedStatsCopy = {} + 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(bondedStats) do - table.insert(stats, stat) + 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 - local modIdx = 1 - local tradeHashes = {} - while soulCoreStat.Stats[modIdx] do - local currentStats = {} - local stat = soulCoreStat.Stats[modIdx] - currentStats[stat.Id] = { - min = soulCoreStat.StatValue[modIdx], max = soulCoreStat.StatValue[modIdx] - } - local bytes = intToBytes(stat.Hash) - -- # to # stats consist of two different stats as the min and max have different ranges - if stat.Id:match("minimum") then - local nextStat = soulCoreStat.Stats[modIdx + 1] - if nextStat and nextStat.Id:match("maximum") then - modIdx = modIdx + 1 - bytes = bytes .. intToBytes(nextStat.Hash) - currentStats[nextStat.Id] = { - min = soulCoreStat.StatValue[modIdx], max = soulCoreStat.StatValue[modIdx] - } + local modIdx = 1 + local tradeHashes = {} + while soulCoreStat.Stats[modIdx] do + local currentStats = {} + local stat = soulCoreStat.Stats[modIdx] + currentStats[stat.Id] = { + min = soulCoreStat.StatValue[modIdx], max = soulCoreStat.StatValue[modIdx] + } + local bytes = intToBytes(stat.Hash) + -- # to # stats consist of two different stats as the min and max have different ranges + if stat.Id:match("minimum") then + local nextStat = soulCoreStat.Stats[modIdx + 1] + if nextStat and nextStat.Id:match("maximum") then + modIdx = modIdx + 1 + bytes = bytes .. intToBytes(nextStat.Hash) + currentStats[nextStat.Id] = { + min = soulCoreStat.StatValue[modIdx], max = soulCoreStat.StatValue[modIdx] + } + end end + local description, _, _ = describeStats(currentStats) + tradeHashes[murmurHash2(bytes, 0x02312233)] = description + modIdx = modIdx + 1 end - - local description, _, _ = describeStats(currentStats) - tradeHashes[murmurHash2(bytes, 0x02312233)] = description - modIdx = modIdx + 1 - end local out = { type = soulCores.Type.Id, slotType = class, - label = stats, + label = descStats, statOrder = orders, rank = rank, tradeHashes = tradeHashes diff --git a/src/Export/spec.lua b/src/Export/spec.lua index cd4e1b8d6..2ae182500 100644 --- a/src/Export/spec.lua +++ b/src/Export/spec.lua @@ -5898,7 +5898,7 @@ return { name="FlavourTextKey", refTo="FlavourText", type="Key", - width=100 + width=120 }, [9]={ list=true,