diff --git a/spec/System/TestImportReimport_spec.lua b/spec/System/TestImportReimport_spec.lua index 766d653773..15a64a64fc 100644 --- a/spec/System/TestImportReimport_spec.lua +++ b/spec/System/TestImportReimport_spec.lua @@ -220,6 +220,67 @@ Fireball 20/0 1 assert.are.equal(0, build.itemsTab.slots["Gloves Jewel Socket 2"].selItemId) end) + it("uses unique database and rune levels when importing unique items from account data", function() + while main.uniqueDB.loading do + runCallback("OnFrame") + end + + build.importTab.controls.charImportItemsClearItems.state = true + build.importTab.controls.charImportItemsClearSkills.state = true + + local body = makeImportItem("Rusted Cuirass", "BodyArmour", "test-import-bramblejack") + body.frameType = 3 + body.name = "Bramblejack" + body.requirements = { + { name = "Level", values = { { "22", 0 } } }, + } + build.importTab:ImportItemsAndSkills(buildImportPayload({ body }, {})) + runCallback("OnFrame") + + local importedItem = build.itemsTab.items[build.itemsTab.slots["Body Armour"].selItemId] + assert.are.equal("Bramblejack, Rusted Cuirass", importedItem.name) + assert.are.equal(0, importedItem.requirements.level) + + body.sockets = { + { type = "rune" }, + } + body.socketedItems = { + { baseType = "Legacy of Blackbraid" }, + } + + build.importTab:ImportItemsAndSkills(buildImportPayload({ body }, {})) + runCallback("OnFrame") + + importedItem = build.itemsTab.items[build.itemsTab.slots["Body Armour"].selItemId] + assert.are.equal(65, importedItem.requirements.level) + + importedItem.runes[1] = "None" + importedItem:UpdateRunes() + importedItem:BuildAndParseRaw() + assert.are.equal(0, importedItem.requirements.level) + + local weapon = makeImportItem("Runemastered Ironhead Spear", "Weapon", "test-import-tyranny's-grip") + weapon.frameType = 3 + weapon.name = "Tyranny's Grip" + weapon.sockets = { + { type = "rune" }, + } + weapon.socketedItems = { + { baseType = "Legacy of Tyranny's Grip" }, + } + + build.importTab:ImportItemsAndSkills(buildImportPayload({ weapon }, {})) + runCallback("OnFrame") + + importedItem = build.itemsTab.items[build.itemsTab.slots["Weapon 1"].selItemId] + assert.are.equal(65, importedItem.requirements.level) + + importedItem.runes[1] = "None" + importedItem:UpdateRunes() + importedItem:BuildAndParseRaw() + assert.are.equal(55, importedItem.requirements.level) + end) + it("preserves skill part selection when reimporting items and skills", function() assertReimportPreservesSkillSubstate("Twig Focus", "Offhand", "Dark Effigy", "skillPart", 2) end) diff --git a/spec/System/TestItemParse_spec.lua b/spec/System/TestItemParse_spec.lua index 7200f8e41b..6d7d07921d 100644 --- a/spec/System/TestItemParse_spec.lua +++ b/spec/System/TestItemParse_spec.lua @@ -375,13 +375,108 @@ describe("TestItemParse", function() assert.are.equals("~price 1 chaos", item.note) end) - it("Attribute Requirements", function() - local item = new("Item", raw("Dex: 100")) - assert.are.equals(100, item.requirements.dex) - item = new("Item", raw("Int: 101")) - assert.are.equals(101, item.requirements.int) - item = new("Item", raw("Str: 102")) - assert.are.equals(102, item.requirements.str) + it("Rune level requirements", function() + local item = new("Item", [[ + Test Wand + Runic Fork + Sockets: S + Rune: Perfect Storm Rune + LevelReq: 1 + Implicits: 1 + {enchant}{rune}Gain 12% of Damage as Extra Lightning Damage + ]]) + assert.are.equals(50, item.requirements.level) + end) + + it("Unique mod level requirements", function() + local foundAnvil + for _, rawUnique in ipairs(data.uniques.amulet) do + if rawUnique:match("The Anvil") then + local item = new("Item", rawUnique) + assert.are.equals(18, item.requirements.level) + assert.is_nil(rawUnique:match("Requires Level 18")) + foundAnvil = true + break + end + end + assert(foundAnvil, "The Anvil not found") + + local foundChoirOfTheStorm + for _, rawUnique in ipairs(data.uniques.amulet) do + if rawUnique:match("Choir of the Storm") then + assert(rawUnique:find("Grants Skill: Level (1-20) Lightning Bolt", 1, true)) + assert(rawUnique:find("Trigger Lightning Bolt Skill on Critical Hit", 1, true)) + foundChoirOfTheStorm = true + break + end + end + assert(foundChoirOfTheStorm, "Choir of the Storm not found") + + local foundSylvansEffigy + for _, rawUnique in ipairs(data.uniques.sceptre) do + if rawUnique:match("Sylvan's Effigy") then + local item = new("Item", rawUnique) + assert.are.equals(62, item.requirements.level) + foundSylvansEffigy = true + break + end + end + assert(foundSylvansEffigy, "Sylvan's Effigy not found") + + for _, rawUnique in ipairs(data.uniques.amulet) do + if rawUnique:match("Hinekora's Sight") then + local item = new("Item", rawUnique) + assert.are.equals(44, item.requirements.level) + assert(rawUnique:find("Grants Skill: Level (1-20) Future-Past", 1, true)) + return + end + end + assert(false, "Hinekora's Sight not found") + end) + + it("keeps legacy base implicit variants as implicits", function() + for _, rawUnique in ipairs(data.uniques.belt) do + if rawUnique:match("Goregirdle") then + assert(rawUnique:find("Implicits: 3\n{variant:2}+(140-180) to Armour\n{variant:1}+(100-140) to Armour\nHas (1-3) Charm Slot", 1, true)) + return + end + end + assert(false, "Goregirdle not found") + end) + + it("uses upgraded base requirements for uniques", function() + local item = new("Item", [[ + Item Class: Spears + Rarity: Unique + Tyranny's Grip + Runemastered Ironhead Spear + Requires: Level 55, 31 Str, 76 Dex + Item Level: 30 + ]]) + assert.are.equals(55, item.requirements.level) + + item.itemSocketCount = 1 + item.runes = { "Legacy of Tyranny's Grip" } + item:UpdateRunes() + item:BuildAndParseRaw() + assert.are.equals(65, item.requirements.level) + + item.runes[1] = "None" + item:UpdateRunes() + item:BuildAndParseRaw() + assert.are.equals(55, item.requirements.level) + end) + + it("inherits implicits from variant base types", function() + for _, rawUnique in ipairs(data.uniques.shield) do + if rawUnique:match("The Surrender") then + assert(rawUnique:find("Implicits: 1\nGrants Skill: Raise Shield", 1, true)) + local item = new("Item", rawUnique) + assert.are.equals(75, item.requirements.level) + return + end + end + assert(false, "The Surrender not found") end) it("Requires Class", function() @@ -711,6 +806,7 @@ describe("TestItemParse", function() -------- Corrupted ]]) + assert.are.equals(90, item.requirements.level) local damageGainAsLightning = 0 for _, mod in ipairs(item.slotModList[1]) do @@ -721,6 +817,7 @@ describe("TestItemParse", function() assert.are.equals(120, damageGainAsLightning) item:BuildAndParseRaw() + assert.are.equals(90, item.requirements.level) assert.are.equals(5, item.itemSocketCount) assert.are.equals(5, #item.runes) @@ -739,6 +836,13 @@ describe("TestItemParse", function() assert.is_not_nil(rawItem:match("{enchant}{rune}Gain 120%% of Damage as Extra Lightning Damage")) assert.is_not_nil(rawItem:match("{enchant}{rune}Remnants you create have 75%% reduced effect")) assert.is_not_nil(rawItem:match("{enchant}{rune}Remnants can be collected from 150%% further away")) + + for i = 1, item.itemSocketCount do + item.runes[i] = "None" + end + item:UpdateRunes() + item:BuildAndParseRaw() + assert.are.equals(65, item.requirements.level) end) it("multi-line rune mod", function() diff --git a/src/Classes/ImportTab.lua b/src/Classes/ImportTab.lua index 6fa5dc5d0e..da502e5b04 100644 --- a/src/Classes/ImportTab.lua +++ b/src/Classes/ImportTab.lua @@ -48,7 +48,7 @@ local ImportTabClass = newClass("ImportTab", "ControlHost", "Control", function( self.controls.logoutApiButton.shown = function() return (self.charImportMode == "SELECTCHAR" or self.charImportMode == "GETACCOUNTNAME") and main.api.authToken ~= nil end - + self.controls.characterImportAnchor = new("Control", {"TOPLEFT",self.controls.sectionCharImport,"TOPLEFT"}, {6, 40, 200, 16}) self.controls.sectionCharImport.height = function() return self.charImportMode == "AUTHENTICATION" and 60 or 200 end @@ -442,7 +442,7 @@ function ImportTabClass:DownloadCharacterList() return "Standard" end end - + self.charImportMode = "DOWNLOADCHARLIST" self.charImportStatus = "Retrieving character list..." local realm = realmList[self.controls.accountRealm.selIndex] @@ -954,10 +954,10 @@ function ImportTabClass:ImportItemsAndSkills(charData) local funcGetGemInstance = function(skillData) local typeLine = sanitiseText(skillData.typeLine) .. (skillData.support and " Support" or "") local gemId = self.build.data.gemForBaseName[typeLine:lower()] - + if typeLine:match("^Spectre:") then gemId = "Metadata/Items/Gems/SkillGemSummonSpectre" - end + end if typeLine:match("^Companion:") then gemId = "Metadata/Items/Gems/SkillGemSummonBeast" end @@ -1061,7 +1061,7 @@ function ImportTabClass:ImportItemsAndSkills(charData) end for _, skillData in pairs(charData.skills) do local gemInstance = funcGetGemInstance(skillData) - + if gemInstance then local group = { label = "", enabled = true, gemList = { } } t_insert(group.gemList, gemInstance ) @@ -1302,6 +1302,11 @@ function ImportTabClass:ImportItem(itemData, slotName) end end end + local dbItem = item:GetUniqueDBItem() + if dbItem then + item.requirements = item.requirements or { } + item.requirements.level = dbItem.requirements.naturalLevel or dbItem.requirements.level + end item.enchantModLines = { } item.runeModLines = { } item.classRequirementModLines = { } diff --git a/src/Classes/Item.lua b/src/Classes/Item.lua index 5319545c88..5ebd18d29c 100644 --- a/src/Classes/Item.lua +++ b/src/Classes/Item.lua @@ -29,8 +29,6 @@ local catalystTags = { { "minion" }, } -local minimumReqLevel = { } - local function getCatalystScalar(catalystId, mod, quality) if mod.unscalable then return 1 @@ -291,6 +289,17 @@ local function specToNumber(s) return n and tonumber(n) end +function ItemClass:GetUniqueDBItem() + if (self.rarity == "UNIQUE" or self.rarity == "RELIC") and main.uniqueDB then + local dbItem = main.uniqueDB.list[self.name] + if not dbItem and self.title and self.baseName then + local originalBaseName = self.baseName:match("^Runeforged (.+)") or self.baseName:match("^Runemastered (.+)") + dbItem = originalBaseName and main.uniqueDB.list[self.title .. ", " .. originalBaseName] + end + return dbItem + end +end + -- Parse raw item data and extract item name, base type, quality, and modifiers function ItemClass:ParseRaw(raw, rarity, highQuality) self.raw = raw @@ -507,6 +516,11 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) end self.checkSection = false end + local levelReq = line:match("^Requires:? Level (%d+)") + if levelReq then + self.requirements.level = tonumber(levelReq) + goto continue + end local specName, specVal = line:match("^([%a %(%)]+:?): (.+)$") if specName then if specName == "Class:" then @@ -549,16 +563,6 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) self.itemSocketCount = #self.sockets elseif specName == "Rune" then t_insert(self.runes, specVal) - local runeLevel = 0 - local runeData = data.itemMods.Runes[specVal] - if runeData then - for _, slotData in pairs(runeData) do - runeLevel = math.max(runeLevel, slotData.rank[1]) - end - end - if runeLevel > 0 and (not self.requirements.runeLevel or runeLevel > self.requirements.runeLevel) then - self.requirements.runeLevel = runeLevel - end elseif specName == "Radius" and self.type == "Jewel" then self.jewelRadiusLabel = specVal:match("^[%a ]+") if specVal:match("^%a+") == "Variable" then @@ -605,13 +609,11 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) end self.armourData = self.armourData or { } self.armourData[specName] = specToNumber(specVal) - elseif specName == "Requires Level" then - self.requirements.level = specToNumber(specVal) - minimumReqLevel = minimumReqLevel or {} - table.insert(minimumReqLevel, { name = self.name, level = specVal }) elseif specName == "Level" then -- Requirements from imported items can't always be trusted importedLevelReq = specToNumber(specVal) + elseif specName == "Requires Level" then + self.requirements.level = specToNumber(specVal) elseif specName == "LevelReq" then self.requirements.level = specToNumber(specVal) elseif specName == "Has Alt Variant" then @@ -691,9 +693,6 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) self.catalystQuality = specToNumber(specVal) elseif specName == "Note" then self.note = specVal - elseif specName == "Str" or specName == "Strength" or specName == "Dex" or specName == "Dexterity" or - specName == "Int" or specName == "Intelligence" then - 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 @@ -1203,26 +1202,34 @@ function ItemClass:ParseRaw(raw, rarity, highQuality) 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 - self.requirements.level = importedLevelReq - else - self.requirements.level = self.base.req.level + for _, runeName in ipairs(self.runes) do + local runeData = data.itemMods.Runes[runeName] + if runeData then + for _, slotData in pairs(runeData) do + self.requirements.runeLevel = m_max(self.requirements.runeLevel, slotData.rank[1]) + end end end - if self.base and not self.requirements.baseLevel then - -- Add only if not already present, to prevent overwriting original value. - local exists = false - for _, entry in ipairs(minimumReqLevel) do - if entry.name == self.title then - exists = true - break + if self.base then + local dbItem = self:GetUniqueDBItem() + if dbItem then + self.requirements.naturalLevel = m_max(dbItem.requirements.naturalLevel or dbItem.requirements.level, self.base.req.level or 0) + else + if 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 + self.requirements.level = importedLevelReq + else + self.requirements.level = self.base.req.level + end end + self.requirements.naturalLevel = self.requirements.level end - if not exists then - self.requirements.baseLevel = self.base.req.level + if not self.requirements.naturalLevel then + self.requirements.naturalLevel = 0 end + self.requirements.level = self.requirements.level or self.requirements.naturalLevel + self.requirements.level = m_max(self.requirements.level, self.requirements.naturalLevel, self.requirements.runeLevel) end self.affixLimit = 0 if self.crafted then @@ -1545,6 +1552,9 @@ end -- Rebuild rune modifiers using the item's runes function ItemClass:UpdateRunes() + if self.requirements and self.requirements.naturalLevel then + self.requirements.level = self.requirements.naturalLevel + end wipeTable(self.runeModLines) local getModRunesForTypes = function(runeName, baseType, specificType) local rune = data.itemMods.Runes[runeName] @@ -1637,7 +1647,7 @@ function ItemClass:Craft() wipeTable(self.explicitModLines) self.namePrefix = "" self.nameSuffix = "" - self.requirements.level = self.base.req.level + self.requirements.level = m_max(self.base.req.level or 0, self.requirements.runeLevel) local statOrder = { } for _, list in ipairs({self.prefixes,self.suffixes}) do for i = 1, (list.limit or (self.affixLimit / 2)) do @@ -1652,7 +1662,7 @@ function ItemClass:Craft() elseif mod.type == "Suffix" then self.nameSuffix = self.nameSuffix .. " " .. mod.affix end - self.requirements.level = m_max(self.requirements.level or 0, m_floor(mod.level * 0.8)) + self.requirements.level = m_max(self.requirements.level, m_floor(mod.level * 0.8)) local rangeScalar = getCatalystScalar(self.catalyst, mod, self.catalystQuality) for i, line in ipairs(mod) do line = itemLib.applyRange(line, affix.range or 0.5, rangeScalar) @@ -2154,44 +2164,6 @@ function ItemClass:BuildModList() self.canSocketJewelBase["Ruby"] = calcLocal(baseList, "CanSocketJewelBaseRuby", "FLAG", 0) end - local reqLevel = 0 - local minReqLevel - - for _, entry in ipairs(minimumReqLevel) do - if entry.name == self.title then - minReqLevel = tonumber(entry.level) - break - end - end - - if #self.grantedSkills >= 1 then - local skillDef = data.skills[self.grantedSkills[1].skillId] - local gemId = data.gemForSkill[skillDef] - local gem = data.gems[gemId] - - local skillLevel = self.grantedSkills[1].level or #skillDef.levels - local chosenLevel = skillDef.levels[skillLevel] or skillDef.levels[#skillDef.levels] - local gemLevelReq = chosenLevel.levelRequirement - - reqLevel = m_max(gemLevelReq, minReqLevel or 0, self.requirements.runeLevel or 0, self.requirements.baseLevel or 0) - - -- Rune level and unique base level don't scale attribute requirements. Example, Cursecarver has 33 minimum required level - -- but the intelligence requirement will be 21 at level 4 skill. - local attrLevel = m_max(gemLevelReq, self.requirements.baseLevel or 0) - - if self.base.type == "Sceptre" or self.base.type == "Wand" or self.base.type == "Staff" then - self.requirements.int = calcLib.getGemStatRequirement(attrLevel, gem.reqInt) - self.requirements.dex = calcLib.getGemStatRequirement(attrLevel, gem.reqDex) - self.requirements.str = calcLib.getGemStatRequirement(attrLevel, gem.reqStr) - end - else - -- If no granted skills, we want to use the "Requires Level" from the unique instead of the base armour type level requirement. - -- Currently there are no Uniques that use a lower level than the base, but maybe in the future. - reqLevel = m_max(minReqLevel or 0, self.requirements.runeLevel or 0, self.requirements.baseLevel or 0) - end - - self.requirements.level = reqLevel - if self.name == "Tabula Rasa, Simple Robe" or self.name == "Skin of the Loyal, Simple Robe" or self.name == "Skin of the Lords, Simple Robe" or self.name == "The Apostate, Cabalist Regalia" then -- Hack to remove the energy shield and base int requirement baseList:NewMod("ArmourData", "LIST", { key = "EnergyShield", value = 0 }) diff --git a/src/Data/Bases/amulet.lua b/src/Data/Bases/amulet.lua index be1b2ba358..9c2a4d1446 100644 --- a/src/Data/Bases/amulet.lua +++ b/src/Data/Bases/amulet.lua @@ -133,7 +133,7 @@ itemBases["Absent Amulet"] = { variantList = { "Cast on Elemental Ailment", "Cast on Critical", "Cast on Dodge", "Rhoa Mount", "Archmage", "Trinity", "Eternal Rage", }, implicit = "-1 Prefix Modifier allowed\n-1 Suffix Modifier allowed\n{variant:1}Grants Skill: Level (1-20) Cast on Elemental Ailment\n{variant:2}Grants Skill: Level (1-20) Cast on Critical\n{variant:3}Grants Skill: Level (1-20) Cast on Dodge\n{variant:4}Grants Skill: Level (1-20) Rhoa Mount\n{variant:5}Grants Skill: Level (1-20) Archmage\n{variant:6}Grants Skill: Level (1-20) Trinity\n{variant:7}Grants Skill: Level (1-20) Eternal Rage", implicitModTypes = { { }, { }, }, - req = { level = 49, }, + req = { level = 50, }, } itemBases["Corona Amulet"] = { type = "Amulet", diff --git a/src/Data/Bases/belt.lua b/src/Data/Bases/belt.lua index 837e04d0a7..1c0579bc05 100644 --- a/src/Data/Bases/belt.lua +++ b/src/Data/Bases/belt.lua @@ -6,80 +6,80 @@ itemBases["Golden Obi"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, demigods = true, genesis_tree_caster = true, genesis_tree_minion = true, not_for_sale = true, }, - implicit = "(20-30)% increased Rarity of Items found\nHas (1-3) Charm Slots", - implicitModTypes = { { "drop" }, }, + implicit = "(20-30)% increased Rarity of Items found\nHas (1-3) Charm Slot", + implicitModTypes = { { "drop" }, { "charm" }, }, req = { }, } itemBases["Rawhide Belt"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, }, - implicit = "(20-30)% increased Life Recovery from Flasks\nHas (1-3) Charm Slots", - implicitModTypes = { { "flask", "resource", "life" }, }, + implicit = "(20-30)% increased Life Recovery from Flasks\nHas (1-3) Charm Slot", + implicitModTypes = { { "flask", "resource", "life" }, { "charm" }, }, req = { }, } itemBases["Linen Belt"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, }, - implicit = "(20-30)% increased Mana Recovery from Flasks\nHas (1-3) Charm Slots", - implicitModTypes = { { "flask", "resource", "mana" }, }, + implicit = "(20-30)% increased Mana Recovery from Flasks\nHas (1-3) Charm Slot", + implicitModTypes = { { "flask", "resource", "mana" }, { "charm" }, }, req = { }, } itemBases["Wide Belt"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, }, - implicit = "(20-30)% increased Flask Charges gained\nHas (1-3) Charm Slots", - implicitModTypes = { { "flask" }, }, + implicit = "Has (1-3) Charm Slot\n(20-30)% increased Flask Charges gained", + implicitModTypes = { { "charm" }, { "flask" }, }, req = { level = 14, }, } itemBases["Long Belt"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, }, - implicit = "(15-20)% increased Charm Effect Duration\nHas (1-3) Charm Slots", - implicitModTypes = { { "charm" }, }, + implicit = "(15-20)% increased Charm Effect Duration\nHas (1-3) Charm Slot", + implicitModTypes = { { "charm" }, { "charm" }, }, req = { level = 20, }, } itemBases["Plate Belt"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, }, - implicit = "+(140-180) to Armour\nHas (1-3) Charm Slots", - implicitModTypes = { { "defences", "armour" }, }, + implicit = "+(140-180) to Armour\nHas (1-3) Charm Slot", + implicitModTypes = { { "defences", "armour" }, { "charm" }, }, req = { level = 24, }, } itemBases["Ornate Belt"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, }, - implicit = "(10-15)% reduced Charm Charges used\nHas (1-3) Charm Slots", - implicitModTypes = { { "charm" }, }, + implicit = "Has (1-3) Charm Slot\n(10-15)% reduced Charm Charges used", + implicitModTypes = { { "charm" }, { "charm" }, }, req = { level = 31, }, } itemBases["Mail Belt"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, }, - implicit = "(10-15)% reduced Flask Charges used\nHas (1-3) Charm Slots", - implicitModTypes = { { "flask" }, }, + implicit = "(10-15)% reduced Flask Charges used\nHas (1-3) Charm Slot", + implicitModTypes = { { "flask" }, { "charm" }, }, req = { level = 40, }, } itemBases["Double Belt"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, }, - implicit = "(20-30)% increased Charm Charges gained\nHas (1-3) Charm Slots", - implicitModTypes = { { "charm" }, }, + implicit = "Has (1-3) Charm Slot\n(20-30)% increased Charm Charges gained", + implicitModTypes = { { "charm" }, { "charm" }, }, req = { level = 44, }, } itemBases["Heavy Belt"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, }, - implicit = "(20-30)% increased Stun Threshold\nHas (1-3) Charm Slots", - implicitModTypes = { { }, }, + implicit = "(20-30)% increased Stun Threshold\nHas (1-3) Charm Slot", + implicitModTypes = { { }, { "charm" }, }, req = { level = 50, }, } itemBases["Runemastered Heavy Belt"] = { @@ -87,8 +87,8 @@ itemBases["Runemastered Heavy Belt"] = { charmLimit = 0, hidden = true, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, runeforged = true, }, - implicit = "(20-30)% increased Stun Threshold\n(15-25)% Life Recovery from Flasks also applies to Runic Ward\nHas (1-3) Charm Slots", - implicitModTypes = { { }, { }, }, + implicit = "(20-30)% increased Stun Threshold\nHas (1-3) Charm Slot\n(15-25)% Life Recovery from Flasks also applies to Runic Ward", + implicitModTypes = { { }, { "charm" }, { }, }, req = { level = 50, }, } itemBases["Runemastered Heavy Belt"] = { @@ -96,8 +96,8 @@ itemBases["Runemastered Heavy Belt"] = { charmLimit = 0, hidden = true, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, runeforged = true, }, - implicit = "(20-30)% increased Stun Threshold\n(20-40)% increased Runic Ward Regeneration Rate\nHas (1-3) Charm Slots", - implicitModTypes = { { }, { "runic_ward" }, }, + implicit = "(20-30)% increased Stun Threshold\nHas (1-3) Charm Slot\n(20-40)% increased Runic Ward Regeneration Rate", + implicitModTypes = { { }, { "charm" }, { "runic_ward" }, }, req = { level = 50, }, } itemBases["Runemastered Heavy Belt"] = { @@ -105,8 +105,8 @@ itemBases["Runemastered Heavy Belt"] = { charmLimit = 0, hidden = true, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, runeforged = true, }, - implicit = "(20-30)% increased Stun Threshold\nRunic Ward recovery can can Overflow maximum Runic Ward\nHas (1-3) Charm Slots", - implicitModTypes = { { }, { }, }, + implicit = "(20-30)% increased Stun Threshold\nHas (1-3) Charm Slot\nRunic Ward recovery can can Overflow maximum Runic Ward", + implicitModTypes = { { }, { "charm" }, { }, }, req = { level = 50, }, } itemBases["Runemastered Heavy Belt"] = { @@ -114,31 +114,31 @@ itemBases["Runemastered Heavy Belt"] = { charmLimit = 0, hidden = true, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, runeforged = true, }, - implicit = "(20-30)% increased Stun Threshold\nFlasks gain (0.5-1) charges per Second\nHas (1-3) Charm Slots", - implicitModTypes = { { }, { }, }, + implicit = "(20-30)% increased Stun Threshold\nHas (1-3) Charm Slot\nFlasks gain (0.5-1) charges per Second", + implicitModTypes = { { }, { "charm" }, { }, }, req = { level = 50, }, } itemBases["Utility Belt"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, }, - implicit = "20% of Flask Recovery applied Instantly\nHas (1-3) Charm Slots", - implicitModTypes = { { }, }, + implicit = "Has (1-3) Charm Slot\n20% of Flask Recovery applied Instantly", + implicitModTypes = { { "charm" }, { }, }, req = { level = 55, }, } itemBases["Fine Belt"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, }, - implicit = "Flasks gain 0.17 charges per Second\nHas (1-3) Charm Slots", - implicitModTypes = { { }, }, + implicit = "Has (1-3) Charm Slot\nFlasks gain 0.17 charges per Second", + implicitModTypes = { { "charm" }, { }, }, req = { level = 62, }, } itemBases["Stalking Belt"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, }, - implicit = "Has 1 Charm Slot\nThis item gains bonuses from Socketed Items as though it was Boots\nHas (1-3) Charm Slots", + implicit = "Has 1 Charm Slot\nThis item gains bonuses from Socketed Items as though it was Boots", implicitModTypes = { { "charm" }, { }, }, req = { level = 40, }, } @@ -146,23 +146,23 @@ itemBases["Invoking Belt"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, }, - implicit = "Has 1 Charm Slot\n(8-12)% increased Cast Speed\nHas (1-3) Charm Slots", - implicitModTypes = { { "charm" }, { "caster_speed", "caster", "speed" }, }, + implicit = "(8-12)% increased Cast Speed\nHas 1 Charm Slot", + implicitModTypes = { { "caster_speed", "caster", "speed" }, { "charm" }, }, req = { level = 32, }, } itemBases["Sinew Belt"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, }, - implicit = "Has 1 Charm Slot\n+(15-20) to Strength\nHas (1-3) Charm Slots", - implicitModTypes = { { "charm" }, { "attribute" }, }, + implicit = "+(15-20) to Strength\nHas 1 Charm Slot", + implicitModTypes = { { "attribute" }, { "charm" }, }, req = { level = 32, }, } itemBases["Forking Belt"] = { type = "Belt", charmLimit = 0, tags = { belt = true, default = true, genesis_tree_caster = true, genesis_tree_minion = true, }, - implicit = "Has 1 Charm Slot\nAdds 1 to (20-30) Lightning damage to Attacks\nHas (1-3) Charm Slots", - implicitModTypes = { { "charm" }, { "elemental_damage", "damage", "elemental", "lightning", "attack" }, }, + implicit = "Adds 1 to (20-30) Lightning damage to Attacks\nHas 1 Charm Slot", + implicitModTypes = { { "elemental_damage", "damage", "elemental", "lightning", "attack" }, { "charm" }, }, req = { level = 32, }, } diff --git a/src/Data/Bases/helmet.lua b/src/Data/Bases/helmet.lua index a74322f188..486ea0281e 100644 --- a/src/Data/Bases/helmet.lua +++ b/src/Data/Bases/helmet.lua @@ -2197,8 +2197,8 @@ itemBases["Runemastered Spiritbone Crown"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, helmet = true, karui_basetype = true, runeforged = true, str_int_armour = true, }, - implicit = "(25-50)% increased Runic Ward Regeneration Rate\n+250 Intelligence Requirement\n100% reduced Duration of Curses on you", - implicitModTypes = { { "runic_ward" }, { }, { "caster", "curse" }, }, + implicit = "+250 Intelligence Requirement\n100% reduced Duration of Curses on you\n(25-50)% increased Runic Ward Regeneration Rate", + implicitModTypes = { { }, { "caster", "curse" }, { "runic_ward" }, }, armour = { Armour = 116, EnergyShield = 32, Ward = 113, }, req = { level = 65, str = 50, int = 50, }, } diff --git a/src/Data/Bases/sceptre.lua b/src/Data/Bases/sceptre.lua index bb5835a368..e8a7884bb4 100644 --- a/src/Data/Bases/sceptre.lua +++ b/src/Data/Bases/sceptre.lua @@ -20,7 +20,7 @@ itemBases["Stoic Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Discipline", implicitModTypes = { }, - req = { int = 12, }, + req = { level = 6, int = 12, }, } itemBases["Lupine Sceptre"] = { type = "Sceptre", @@ -30,7 +30,7 @@ itemBases["Lupine Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Skeletal Warrior Minion", implicitModTypes = { }, - req = { int = 24, }, + req = { level = 12, int = 24, }, } itemBases["Omen Sceptre"] = { type = "Sceptre", @@ -40,7 +40,7 @@ itemBases["Omen Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Malice", implicitModTypes = { }, - req = { str = 12, int = 25, }, + req = { level = 16, str = 12, int = 25, }, } itemBases["Ochre Sceptre"] = { type = "Sceptre", @@ -50,7 +50,7 @@ itemBases["Ochre Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Skeletal Warrior Minion", implicitModTypes = { }, - req = { int = 40, }, + req = { level = 21, int = 40, }, } itemBases["Shrine Sceptre"] = { type = "Sceptre", @@ -60,7 +60,7 @@ itemBases["Shrine Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Purity of Fire", implicitModTypes = { }, - req = { str = 17, int = 38, }, + req = { level = 26, str = 17, int = 38, }, } itemBases["Shrine Sceptre"] = { type = "Sceptre", @@ -70,7 +70,7 @@ itemBases["Shrine Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Purity of Ice", implicitModTypes = { }, - req = { str = 17, int = 38, }, + req = { level = 26, str = 17, int = 38, }, } itemBases["Shrine Sceptre"] = { type = "Sceptre", @@ -80,7 +80,7 @@ itemBases["Shrine Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Purity of Lightning", implicitModTypes = { }, - req = { str = 17, int = 38, }, + req = { level = 26, str = 17, int = 38, }, } itemBases["Devouring Sceptre"] = { type = "Sceptre", @@ -90,7 +90,7 @@ itemBases["Devouring Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Skeletal Warrior Minion", implicitModTypes = { }, - req = { int = 60, }, + req = { level = 33, int = 60, }, } itemBases["Clasped Sceptre"] = { type = "Sceptre", @@ -100,7 +100,7 @@ itemBases["Clasped Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Heart of Ice", implicitModTypes = { }, - req = { int = 65, }, + req = { level = 36, int = 65, }, } itemBases["Devotional Sceptre"] = { type = "Sceptre", @@ -110,7 +110,7 @@ itemBases["Devotional Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Skeletal Warrior Minion", implicitModTypes = { }, - req = { str = 26, int = 63, }, + req = { level = 45, str = 26, int = 63, }, } itemBases["Wrath Sceptre"] = { type = "Sceptre", @@ -120,7 +120,7 @@ itemBases["Wrath Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Fulmination", implicitModTypes = { }, - req = { int = 87, }, + req = { level = 49, int = 87, }, } itemBases["Aromatic Sceptre"] = { type = "Sceptre", @@ -130,7 +130,7 @@ itemBases["Aromatic Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Skeletal Warrior Minion", implicitModTypes = { }, - req = { int = 92, }, + req = { level = 52, int = 92, }, } itemBases["Pious Sceptre"] = { type = "Sceptre", @@ -140,7 +140,7 @@ itemBases["Pious Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Skeletal Warrior Minion", implicitModTypes = { }, - req = { int = 102, }, + req = { level = 58, int = 102, }, } itemBases["Hallowed Sceptre"] = { type = "Sceptre", @@ -150,7 +150,7 @@ itemBases["Hallowed Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Skeletal Warrior Minion", implicitModTypes = { }, - req = { int = 114, }, + req = { level = 65, int = 114, }, } itemBases["Shrine Sceptre"] = { @@ -162,7 +162,7 @@ itemBases["Shrine Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Purity of Fire", implicitModTypes = { }, - req = { str = 17, int = 38, }, + req = { level = 26, str = 17, int = 38, }, } itemBases["Shrine Sceptre"] = { type = "Sceptre", @@ -173,7 +173,7 @@ itemBases["Shrine Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Purity of Ice", implicitModTypes = { }, - req = { str = 17, int = 38, }, + req = { level = 26, str = 17, int = 38, }, } itemBases["Shrine Sceptre"] = { type = "Sceptre", @@ -184,7 +184,7 @@ itemBases["Shrine Sceptre"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Purity of Lightning", implicitModTypes = { }, - req = { str = 17, int = 38, }, + req = { level = 26, str = 17, int = 38, }, } itemBases["Shrine Sceptre (Purity of Fire)"] = { @@ -195,7 +195,7 @@ itemBases["Shrine Sceptre (Purity of Fire)"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Purity of Fire", implicitModTypes = { }, - req = { str = 17, int = 38, }, + req = { level = 26, str = 17, int = 38, }, } itemBases["Shrine Sceptre (Purity of Cold)"] = { type = "Sceptre", @@ -205,7 +205,7 @@ itemBases["Shrine Sceptre (Purity of Cold)"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Purity of Ice", implicitModTypes = { }, - req = { str = 17, int = 38, }, + req = { level = 26, str = 17, int = 38, }, } itemBases["Shrine Sceptre (Purity of Lighting)"] = { type = "Sceptre", @@ -215,5 +215,5 @@ itemBases["Shrine Sceptre (Purity of Lighting)"] = { tags = { default = true, onehand = true, sceptre = true, }, implicit = "Grants Skill: Level (1-20) Purity of Lightning", implicitModTypes = { }, - req = { str = 17, int = 38, }, + req = { level = 26, str = 17, int = 38, }, } diff --git a/src/Data/Bases/shield.lua b/src/Data/Bases/shield.lua index f884b9d005..979171b0e5 100644 --- a/src/Data/Bases/shield.lua +++ b/src/Data/Bases/shield.lua @@ -9,7 +9,7 @@ itemBases["Splintered Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 18, MovementPenalty = 0.03, }, req = { }, @@ -20,7 +20,7 @@ itemBases["Painted Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 33, MovementPenalty = 0.03, }, req = { level = 6, str = 11, }, @@ -31,7 +31,7 @@ itemBases["Braced Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 50, MovementPenalty = 0.03, }, req = { level = 12, str = 19, }, @@ -42,7 +42,7 @@ itemBases["Barricade Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 62, MovementPenalty = 0.03, }, req = { level = 16, str = 25, }, @@ -53,7 +53,7 @@ itemBases["Effigial Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 76, MovementPenalty = 0.03, }, req = { level = 21, str = 32, }, @@ -64,7 +64,7 @@ itemBases["Rampart Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 96, MovementPenalty = 0.03, }, req = { level = 28, str = 42, }, @@ -75,7 +75,7 @@ itemBases["Heraldric Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_armour = true, str_shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 111, MovementPenalty = 0.03, }, req = { level = 33, str = 48, }, @@ -86,7 +86,7 @@ itemBases["Stone Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_armour = true, str_shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 119, MovementPenalty = 0.03, }, req = { level = 36, str = 52, }, @@ -97,7 +97,7 @@ itemBases["Crucible Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 145, MovementPenalty = 0.03, }, req = { level = 45, str = 64, }, @@ -108,7 +108,7 @@ itemBases["Ancestor Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 160, MovementPenalty = 0.03, }, req = { level = 50, str = 71, }, @@ -119,7 +119,7 @@ itemBases["Phalanx Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 166, MovementPenalty = 0.03, }, req = { level = 52, str = 74, }, @@ -130,7 +130,7 @@ itemBases["Defiant Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 183, MovementPenalty = 0.03, }, req = { level = 58, str = 82, }, @@ -141,7 +141,7 @@ itemBases["Blacksteel Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 203, MovementPenalty = 0.03, }, req = { level = 65, str = 91, }, @@ -152,7 +152,7 @@ itemBases["Aged Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 145, MovementPenalty = 0.03, }, req = { level = 45, str = 64, }, @@ -163,7 +163,7 @@ itemBases["Metalworked Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 154, MovementPenalty = 0.03, }, req = { level = 48, str = 69, }, @@ -174,7 +174,7 @@ itemBases["Cultist Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 163, MovementPenalty = 0.03, }, req = { level = 51, str = 73, }, @@ -185,7 +185,7 @@ itemBases["Bulwark Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 171, MovementPenalty = 0.03, }, req = { level = 54, str = 77, }, @@ -196,7 +196,7 @@ itemBases["Noble Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 186, MovementPenalty = 0.03, }, req = { level = 59, str = 83, }, @@ -207,7 +207,7 @@ itemBases["Goldworked Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 192, MovementPenalty = 0.03, }, req = { level = 61, str = 86, }, @@ -218,7 +218,7 @@ itemBases["Royal Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 203, MovementPenalty = 0.03, }, req = { level = 65, str = 91, }, @@ -229,7 +229,7 @@ itemBases["Fortress Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 223, MovementPenalty = 0.03, }, req = { level = 70, str = 99, }, @@ -240,7 +240,7 @@ itemBases["Vaal Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 244, MovementPenalty = 0.03, }, req = { level = 75, str = 107, }, @@ -251,7 +251,7 @@ itemBases["Tawhoan Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 264, MovementPenalty = 0.03, }, req = { level = 80, str = 115, }, @@ -262,7 +262,7 @@ itemBases["Runeforged Splintered Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 18, Ward = 12, MovementPenalty = 0.03, }, req = { }, @@ -273,7 +273,7 @@ itemBases["Runeforged Painted Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 33, Ward = 15, MovementPenalty = 0.03, }, req = { level = 6, str = 11, }, @@ -284,7 +284,7 @@ itemBases["Runeforged Braced Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 50, Ward = 18, MovementPenalty = 0.03, }, req = { level = 12, str = 19, }, @@ -295,7 +295,7 @@ itemBases["Runeforged Barricade Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 62, Ward = 22, MovementPenalty = 0.03, }, req = { level = 16, str = 25, }, @@ -306,7 +306,7 @@ itemBases["Runeforged Effigial Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 76, Ward = 25, MovementPenalty = 0.03, }, req = { level = 21, str = 32, }, @@ -317,7 +317,7 @@ itemBases["Runeforged Rampart Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 96, Ward = 27, MovementPenalty = 0.03, }, req = { level = 28, str = 42, }, @@ -328,7 +328,7 @@ itemBases["Runeforged Heraldric Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_armour = true, str_shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 111, Ward = 30, MovementPenalty = 0.03, }, req = { level = 33, str = 48, }, @@ -339,7 +339,7 @@ itemBases["Runeforged Stone Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_armour = true, str_shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 119, Ward = 33, MovementPenalty = 0.03, }, req = { level = 36, str = 52, }, @@ -350,7 +350,7 @@ itemBases["Runeforged Crucible Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 145, Ward = 36, MovementPenalty = 0.03, }, req = { level = 45, str = 64, }, @@ -361,7 +361,7 @@ itemBases["Runeforged Ancestor Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Ward = 148, MovementPenalty = 0.03, }, req = { level = 50, str = 71, }, @@ -372,7 +372,7 @@ itemBases["Runeforged Phalanx Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Ward = 146, MovementPenalty = 0.03, }, req = { level = 52, str = 74, }, @@ -383,7 +383,7 @@ itemBases["Runeforged Defiant Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Ward = 160, MovementPenalty = 0.03, }, req = { level = 58, str = 82, }, @@ -394,7 +394,7 @@ itemBases["Runeforged Blacksteel Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Ward = 176, MovementPenalty = 0.03, }, req = { level = 65, str = 91, }, @@ -405,7 +405,7 @@ itemBases["Runeforged Bulwark Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 144, Ward = 53, MovementPenalty = 0.03, }, req = { level = 54, str = 77, }, @@ -416,7 +416,7 @@ itemBases["Runeforged Noble Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 171, Ward = 41, MovementPenalty = 0.03, }, req = { level = 59, str = 83, }, @@ -427,7 +427,7 @@ itemBases["Runeforged Goldworked Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 153, Ward = 58, MovementPenalty = 0.03, }, req = { level = 61, str = 86, }, @@ -438,7 +438,7 @@ itemBases["Runeforged Royal Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 193, Ward = 44, MovementPenalty = 0.03, }, req = { level = 65, str = 91, }, @@ -449,7 +449,7 @@ itemBases["Runeforged Fortress Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 156, Ward = 106, MovementPenalty = 0.03, }, req = { level = 70, str = 99, }, @@ -460,7 +460,7 @@ itemBases["Runeforged Vaal Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 221, Ward = 35, MovementPenalty = 0.03, }, req = { level = 75, str = 107, }, @@ -471,7 +471,7 @@ itemBases["Runeforged Tawhoan Tower Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 112, Ward = 176, MovementPenalty = 0.03, }, req = { level = 80, str = 115, }, @@ -483,7 +483,7 @@ itemBases["Runemastered Splintered Tower Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 100, Ward = 23, MovementPenalty = 0.03, }, req = { level = 38, str = 54, }, @@ -495,7 +495,7 @@ itemBases["Runemastered Painted Tower Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 63, Ward = 57, MovementPenalty = 0.03, }, req = { level = 38, str = 54, }, @@ -507,7 +507,7 @@ itemBases["Runemastered Braced Tower Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 88, Ward = 34, MovementPenalty = 0.03, }, req = { level = 38, str = 54, }, @@ -519,7 +519,7 @@ itemBases["Runemastered Barricade Tower Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 94, Ward = 28, MovementPenalty = 0.03, }, req = { level = 38, str = 54, }, @@ -531,7 +531,7 @@ itemBases["Runemastered Effigial Tower Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Ward = 113, MovementPenalty = 0.03, }, req = { level = 38, str = 54, }, @@ -543,7 +543,7 @@ itemBases["Runemastered Rampart Tower Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 98, Ward = 29, MovementPenalty = 0.03, }, req = { level = 40, str = 58, }, @@ -555,7 +555,7 @@ itemBases["Runemastered Heraldric Tower Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_armour = true, str_shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 96, Ward = 42, MovementPenalty = 0.03, }, req = { level = 50, str = 71, }, @@ -567,7 +567,7 @@ itemBases["Runemastered Crucible Tower Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Ward = 250, MovementPenalty = 0.03, }, req = { level = 65, str = 91, }, @@ -579,7 +579,7 @@ itemBases["Runemastered Crucible Tower Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Recover (15-25) Runic Ward when you Block\nGrants Skill: Level (1-20) Raise Shield", + implicit = "Recover (15-25) Runic Ward when you Block\nGrants Skill: Raise Shield", implicitModTypes = { { }, }, armour = { BlockChance = 26, Armour = 100, Ward = 100, MovementPenalty = 0.03, }, req = { level = 65, str = 91, }, @@ -591,7 +591,7 @@ itemBases["Runemastered Crucible Tower Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 26, Evasion = 148, Ward = 35, MovementPenalty = 0.03, }, req = { level = 65, dex = 91, }, @@ -603,7 +603,7 @@ itemBases["Runemastered Crucible Tower Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "(15-25)% of Damage is taken from Mana before Life\nGrants Skill: Level (1-20) Raise Shield", + implicit = "(15-25)% of Damage is taken from Mana before Life\nGrants Skill: Raise Shield", implicitModTypes = { { "resource", "life", "mana" }, }, armour = { BlockChance = 26, Armour = 162, Ward = 35, MovementPenalty = 0.03, }, req = { level = 65, str = 91, }, @@ -615,7 +615,7 @@ itemBases["Runemastered Blacksteel Tower Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 102, Ward = 88, MovementPenalty = 0.03, }, req = { level = 65, str = 91, }, @@ -627,7 +627,7 @@ itemBases["Runemastered Vaal Tower Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 203, Ward = 70, MovementPenalty = 0.03, }, req = { level = 75, str = 107, }, @@ -639,7 +639,7 @@ itemBases["Glacial Fortress"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 223, MovementPenalty = 0.03, }, req = { level = 70, str = 99, }, @@ -651,7 +651,7 @@ itemBases["Runemastered Glacial Fortress"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_armour = true, str_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 203, Ward = 53, MovementPenalty = 0.03, }, req = { level = 70, str = 99, }, @@ -663,7 +663,7 @@ itemBases["Leather Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, ezomyte_basetype = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 10, }, req = { }, @@ -674,7 +674,7 @@ itemBases["Wooden Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, ezomyte_basetype = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 18, }, req = { level = 5, dex = 10, }, @@ -685,7 +685,7 @@ itemBases["Plated Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, ezomyte_basetype = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 31, }, req = { level = 11, dex = 18, }, @@ -696,7 +696,7 @@ itemBases["Iron Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, maraketh_basetype = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 42, }, req = { level = 16, dex = 25, }, @@ -707,7 +707,7 @@ itemBases["Ridged Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, maraketh_basetype = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 55, }, req = { level = 22, dex = 33, }, @@ -718,7 +718,7 @@ itemBases["Spiked Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, maraketh_basetype = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 64, }, req = { level = 26, dex = 38, }, @@ -729,7 +729,7 @@ itemBases["Ringed Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 79, }, req = { level = 33, dex = 48, }, @@ -740,7 +740,7 @@ itemBases["Edged Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 92, }, req = { level = 39, dex = 56, }, @@ -751,7 +751,7 @@ itemBases["Laminate Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, karui_basetype = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 105, }, req = { level = 45, dex = 64, }, @@ -762,7 +762,7 @@ itemBases["Pearl Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, karui_basetype = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 116, }, req = { level = 50, dex = 71, }, @@ -773,7 +773,7 @@ itemBases["Ornate Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 120, }, req = { level = 52, dex = 74, }, @@ -784,7 +784,7 @@ itemBases["Array Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 126, }, req = { level = 55, dex = 78, }, @@ -795,7 +795,7 @@ itemBases["Aegis Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 148, }, req = { level = 65, dex = 91, }, @@ -806,7 +806,7 @@ itemBases["Oak Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 105, }, req = { level = 45, dex = 64, }, @@ -817,7 +817,7 @@ itemBases["Painted Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 111, }, req = { level = 48, dex = 69, }, @@ -828,7 +828,7 @@ itemBases["Coiled Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 118, }, req = { level = 51, dex = 73, }, @@ -839,7 +839,7 @@ itemBases["Spikeward Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 124, }, req = { level = 54, dex = 77, }, @@ -850,7 +850,7 @@ itemBases["Jingling Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 135, }, req = { level = 59, dex = 83, }, @@ -861,7 +861,7 @@ itemBases["Bladeguard Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 139, }, req = { level = 61, dex = 86, }, @@ -872,7 +872,7 @@ itemBases["Ornate Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 148, }, req = { level = 65, dex = 91, }, @@ -883,7 +883,7 @@ itemBases["Gutspike Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 163, }, req = { level = 70, dex = 99, }, @@ -894,7 +894,7 @@ itemBases["Ancient Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 178, }, req = { level = 75, dex = 107, }, @@ -905,7 +905,7 @@ itemBases["Desert Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, karui_basetype = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 192, }, req = { level = 80, dex = 115, }, @@ -916,7 +916,7 @@ itemBases["Runeforged Leather Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, ezomyte_basetype = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 10, Ward = 10, }, req = { }, @@ -927,7 +927,7 @@ itemBases["Runeforged Wooden Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, ezomyte_basetype = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 18, Ward = 11, }, req = { level = 5, dex = 10, }, @@ -938,7 +938,7 @@ itemBases["Runeforged Plated Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, ezomyte_basetype = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 31, Ward = 14, }, req = { level = 11, dex = 18, }, @@ -949,7 +949,7 @@ itemBases["Runeforged Iron Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, maraketh_basetype = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 42, Ward = 17, }, req = { level = 16, dex = 25, }, @@ -960,7 +960,7 @@ itemBases["Runeforged Ridged Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, maraketh_basetype = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 55, Ward = 21, }, req = { level = 22, dex = 33, }, @@ -971,7 +971,7 @@ itemBases["Runeforged Spiked Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, maraketh_basetype = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 64, Ward = 20, }, req = { level = 26, dex = 38, }, @@ -982,7 +982,7 @@ itemBases["Runeforged Ringed Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, runeforged = true, shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 79, Ward = 24, }, req = { level = 33, dex = 48, }, @@ -993,7 +993,7 @@ itemBases["Runeforged Edged Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, runeforged = true, shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 92, Ward = 28, }, req = { level = 39, dex = 56, }, @@ -1004,7 +1004,7 @@ itemBases["Runeforged Laminate Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, karui_basetype = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 105, Ward = 29, }, req = { level = 45, dex = 64, }, @@ -1015,7 +1015,7 @@ itemBases["Runeforged Pearl Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, karui_basetype = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 116, Ward = 29, }, req = { level = 50, dex = 71, }, @@ -1026,7 +1026,7 @@ itemBases["Runeforged Ornate Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Ward = 117, }, req = { level = 52, dex = 74, }, @@ -1037,7 +1037,7 @@ itemBases["Runeforged Array Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Ward = 122, }, req = { level = 55, dex = 78, }, @@ -1048,7 +1048,7 @@ itemBases["Runeforged Aegis Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Ward = 141, }, req = { level = 65, dex = 91, }, @@ -1059,7 +1059,7 @@ itemBases["Runeforged Spikeward Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 104, Ward = 42, }, req = { level = 54, dex = 77, }, @@ -1070,7 +1070,7 @@ itemBases["Runeforged Jingling Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 124, Ward = 32, }, req = { level = 59, dex = 83, }, @@ -1081,7 +1081,7 @@ itemBases["Runeforged Bladeguard Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 111, Ward = 47, }, req = { level = 61, dex = 86, }, @@ -1092,7 +1092,7 @@ itemBases["Runeforged Ornate Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 141, Ward = 35, }, req = { level = 65, dex = 91, }, @@ -1103,7 +1103,7 @@ itemBases["Runeforged Gutspike Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 114, Ward = 85, }, req = { level = 70, dex = 99, }, @@ -1114,7 +1114,7 @@ itemBases["Runeforged Ancient Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 155, Ward = 35, }, req = { level = 75, dex = 107, }, @@ -1125,7 +1125,7 @@ itemBases["Runeforged Desert Buckler"] = { quality = 20, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, karui_basetype = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 87, Ward = 134, }, req = { level = 80, dex = 115, }, @@ -1137,7 +1137,7 @@ itemBases["Runemastered Leather Buckler"] = { hidden = true, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, ezomyte_basetype = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 108, Ward = 36, }, req = { level = 38, dex = 54, }, @@ -1149,7 +1149,7 @@ itemBases["Runemastered Wooden Buckler"] = { hidden = true, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, ezomyte_basetype = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 90, Ward = 18, }, req = { level = 38, dex = 54, }, @@ -1161,7 +1161,7 @@ itemBases["Runemastered Plated Buckler"] = { hidden = true, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, ezomyte_basetype = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 67, Ward = 23, }, req = { level = 38, dex = 54, }, @@ -1173,7 +1173,7 @@ itemBases["Runemastered Iron Buckler"] = { hidden = true, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, maraketh_basetype = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 45, Ward = 45, }, req = { level = 38, dex = 54, }, @@ -1185,7 +1185,7 @@ itemBases["Runemastered Ridged Buckler"] = { hidden = true, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, maraketh_basetype = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 66, Ward = 28, }, req = { level = 40, dex = 58, }, @@ -1197,7 +1197,7 @@ itemBases["Runemastered Spiked Buckler"] = { hidden = true, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, maraketh_basetype = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 61, Ward = 33, }, req = { level = 40, dex = 58, }, @@ -1209,7 +1209,7 @@ itemBases["Runemastered Ornate Buckler"] = { hidden = true, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 114, Ward = 12, }, req = { level = 55, dex = 78, }, @@ -1221,7 +1221,7 @@ itemBases["Runemastered Array Buckler"] = { hidden = true, socketLimit = 3, tags = { armour = true, buckler = true, default = true, dex_armour = true, dex_shield = true, runeforged = true, shield = true, }, - implicit = "Grants Skill: Level (1-20) Parry", + implicit = "Grants Skill: Parry", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 103, Ward = 33, }, req = { level = 60, dex = 85, }, @@ -1233,7 +1233,7 @@ itemBases["Hardwood Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 10, Evasion = 7, MovementPenalty = 0.015, }, req = { }, @@ -1244,7 +1244,7 @@ itemBases["Pelage Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 21, Evasion = 17, MovementPenalty = 0.015, }, req = { level = 8, str = 9, dex = 9, }, @@ -1255,7 +1255,7 @@ itemBases["Studded Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 34, Evasion = 29, MovementPenalty = 0.015, }, req = { level = 16, str = 15, dex = 15, }, @@ -1266,7 +1266,7 @@ itemBases["Crescent Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 50, Evasion = 44, MovementPenalty = 0.015, }, req = { level = 26, str = 22, dex = 22, }, @@ -1277,7 +1277,7 @@ itemBases["Chiseled Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_dex_armour = true, str_dex_shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 61, Evasion = 54, MovementPenalty = 0.015, }, req = { level = 33, str = 27, dex = 27, }, @@ -1288,7 +1288,7 @@ itemBases["Feathered Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_dex_armour = true, str_dex_shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 67, Evasion = 60, MovementPenalty = 0.015, }, req = { level = 37, str = 30, dex = 30, }, @@ -1299,7 +1299,7 @@ itemBases["Stratified Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 82, Evasion = 74, MovementPenalty = 0.015, }, req = { level = 46, str = 37, dex = 37, }, @@ -1310,7 +1310,7 @@ itemBases["Carved Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 89, Evasion = 81, MovementPenalty = 0.015, }, req = { level = 51, str = 40, dex = 40, }, @@ -1321,7 +1321,7 @@ itemBases["Mosaic Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 91, Evasion = 82, MovementPenalty = 0.015, }, req = { level = 52, str = 41, dex = 41, }, @@ -1332,7 +1332,7 @@ itemBases["Aureate Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 99, Evasion = 90, MovementPenalty = 0.015, }, req = { level = 57, str = 45, dex = 45, }, @@ -1343,7 +1343,7 @@ itemBases["Grand Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 112, Evasion = 102, MovementPenalty = 0.015, }, req = { level = 65, str = 50, dex = 50, }, @@ -1354,7 +1354,7 @@ itemBases["Ironwood Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 80, Evasion = 72, MovementPenalty = 0.015, }, req = { level = 45, str = 36, dex = 36, }, @@ -1365,7 +1365,7 @@ itemBases["Fur-lined Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 85, Evasion = 76, MovementPenalty = 0.015, }, req = { level = 48, str = 38, dex = 38, }, @@ -1376,7 +1376,7 @@ itemBases["Mercenary Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 89, Evasion = 81, MovementPenalty = 0.015, }, req = { level = 51, str = 40, dex = 40, }, @@ -1387,7 +1387,7 @@ itemBases["Polished Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 94, Evasion = 85, MovementPenalty = 0.015, }, req = { level = 54, str = 42, dex = 42, }, @@ -1398,7 +1398,7 @@ itemBases["Stone Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 102, Evasion = 93, MovementPenalty = 0.015, }, req = { level = 59, str = 46, dex = 46, }, @@ -1409,7 +1409,7 @@ itemBases["Avian Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 107, Evasion = 97, MovementPenalty = 0.015, }, req = { level = 62, str = 48, dex = 48, }, @@ -1420,7 +1420,7 @@ itemBases["Mammoth Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 112, Evasion = 102, MovementPenalty = 0.015, }, req = { level = 65, str = 50, dex = 50, }, @@ -1431,7 +1431,7 @@ itemBases["Baroque Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 123, Evasion = 112, MovementPenalty = 0.015, }, req = { level = 70, str = 54, dex = 54, }, @@ -1442,7 +1442,7 @@ itemBases["Soaring Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 134, Evasion = 122, MovementPenalty = 0.015, }, req = { level = 75, str = 59, dex = 59, }, @@ -1453,7 +1453,7 @@ itemBases["Golden Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 145, Evasion = 132, MovementPenalty = 0.015, }, req = { level = 80, str = 63, dex = 63, }, @@ -1464,7 +1464,7 @@ itemBases["Runeforged Hardwood Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 10, Evasion = 7, Ward = 12, MovementPenalty = 0.015, }, req = { }, @@ -1475,7 +1475,7 @@ itemBases["Runeforged Pelage Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 21, Evasion = 17, Ward = 17, MovementPenalty = 0.015, }, req = { level = 8, str = 9, dex = 9, }, @@ -1486,7 +1486,7 @@ itemBases["Runeforged Studded Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 34, Evasion = 29, Ward = 22, MovementPenalty = 0.015, }, req = { level = 16, str = 15, dex = 15, }, @@ -1497,7 +1497,7 @@ itemBases["Runeforged Crescent Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 50, Evasion = 44, Ward = 30, MovementPenalty = 0.015, }, req = { level = 26, str = 22, dex = 22, }, @@ -1508,7 +1508,7 @@ itemBases["Runeforged Chiseled Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 61, Evasion = 54, Ward = 33, MovementPenalty = 0.015, }, req = { level = 33, str = 27, dex = 27, }, @@ -1519,7 +1519,7 @@ itemBases["Runeforged Feathered Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 67, Evasion = 60, Ward = 34, MovementPenalty = 0.015, }, req = { level = 37, str = 30, dex = 30, }, @@ -1530,7 +1530,7 @@ itemBases["Runeforged Stratified Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 82, Evasion = 74, Ward = 38, MovementPenalty = 0.015, }, req = { level = 46, str = 37, dex = 37, }, @@ -1541,7 +1541,7 @@ itemBases["Runeforged Carved Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 89, Evasion = 81, Ward = 40, MovementPenalty = 0.015, }, req = { level = 51, str = 40, dex = 40, }, @@ -1552,7 +1552,7 @@ itemBases["Runeforged Mosaic Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Ward = 146, MovementPenalty = 0.015, }, req = { level = 52, str = 41, dex = 41, }, @@ -1563,7 +1563,7 @@ itemBases["Runeforged Aureate Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Ward = 157, MovementPenalty = 0.015, }, req = { level = 57, str = 45, dex = 45, }, @@ -1574,7 +1574,7 @@ itemBases["Runeforged Grand Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Ward = 176, MovementPenalty = 0.015, }, req = { level = 65, str = 50, dex = 50, }, @@ -1585,7 +1585,7 @@ itemBases["Runeforged Polished Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 79, Evasion = 72, Ward = 53, MovementPenalty = 0.015, }, req = { level = 54, str = 42, dex = 42, }, @@ -1596,7 +1596,7 @@ itemBases["Runeforged Stone Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 94, Evasion = 85, Ward = 41, MovementPenalty = 0.015, }, req = { level = 59, str = 46, dex = 46, }, @@ -1607,7 +1607,7 @@ itemBases["Runeforged Avian Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 86, Evasion = 78, Ward = 59, MovementPenalty = 0.015, }, req = { level = 62, str = 48, dex = 48, }, @@ -1618,7 +1618,7 @@ itemBases["Runeforged Mammoth Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 106, Evasion = 97, Ward = 44, MovementPenalty = 0.015, }, req = { level = 65, str = 50, dex = 50, }, @@ -1629,7 +1629,7 @@ itemBases["Runeforged Baroque Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 86, Evasion = 78, Ward = 106, MovementPenalty = 0.015, }, req = { level = 70, str = 54, dex = 54, }, @@ -1640,7 +1640,7 @@ itemBases["Runeforged Soaring Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 113, Evasion = 103, Ward = 53, MovementPenalty = 0.015, }, req = { level = 75, str = 59, dex = 59, }, @@ -1651,7 +1651,7 @@ itemBases["Runeforged Golden Targe"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 57, Evasion = 52, Ward = 185, MovementPenalty = 0.015, }, req = { level = 80, str = 63, dex = 63, }, @@ -1663,7 +1663,7 @@ itemBases["Runemastered Hardwood Targe"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 55, Evasion = 49, Ward = 23, MovementPenalty = 0.015, }, req = { level = 38, str = 31, dex = 31, }, @@ -1675,7 +1675,7 @@ itemBases["Runemastered Crescent Targe"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 52, Evasion = 46, Ward = 28, MovementPenalty = 0.015, }, req = { level = 38, str = 31, dex = 31, }, @@ -1687,7 +1687,7 @@ itemBases["Venerable Defender"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 28, Armour = 107, Evasion = 97, MovementPenalty = 0.015, }, req = { level = 62, str = 64, dex = 64, }, @@ -1699,7 +1699,7 @@ itemBases["Runemastered Venerable Defender"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 26, Armour = 203, Ward = 53, MovementPenalty = 0.03, }, req = { level = 65, str = 107, }, @@ -1711,7 +1711,7 @@ itemBases["Runemastered Venerable Defender"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, EnergyShield = 135, Ward = 53, }, req = { level = 65, int = 107, }, @@ -1723,7 +1723,7 @@ itemBases["Runemastered Venerable Defender"] = { hidden = true, socketLimit = 3, tags = { armour = true, buckler = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 20, Evasion = 148, Ward = 42, }, req = { level = 65, dex = 107, }, @@ -1735,7 +1735,7 @@ itemBases["Runemastered Venerable Defender"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_dex_armour = true, str_dex_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 112, Evasion = 102, Ward = 53, MovementPenalty = 0.015, }, req = { level = 65, str = 67, dex = 67, }, @@ -1747,7 +1747,7 @@ itemBases["Blazon Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 10, EnergyShield = 6, MovementPenalty = 0.015, }, req = { }, @@ -1758,7 +1758,7 @@ itemBases["Sigil Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 20, EnergyShield = 9, MovementPenalty = 0.015, }, req = { level = 7, str = 8, int = 8, }, @@ -1769,7 +1769,7 @@ itemBases["Emblem Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 34, EnergyShield = 12, MovementPenalty = 0.015, }, req = { level = 16, str = 15, int = 15, }, @@ -1780,7 +1780,7 @@ itemBases["Jingling Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 53, EnergyShield = 17, MovementPenalty = 0.015, }, req = { level = 28, str = 23, int = 23, }, @@ -1791,7 +1791,7 @@ itemBases["Sectarian Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_int_armour = true, str_int_shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 61, EnergyShield = 19, MovementPenalty = 0.015, }, req = { level = 33, str = 27, int = 27, }, @@ -1802,7 +1802,7 @@ itemBases["Omen Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_int_armour = true, str_int_shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 66, EnergyShield = 20, MovementPenalty = 0.015, }, req = { level = 36, str = 30, int = 30, }, @@ -1813,7 +1813,7 @@ itemBases["Wayward Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 80, EnergyShield = 23, MovementPenalty = 0.015, }, req = { level = 45, str = 36, int = 36, }, @@ -1824,7 +1824,7 @@ itemBases["Seer Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 88, EnergyShield = 25, MovementPenalty = 0.015, }, req = { level = 50, str = 39, int = 39, }, @@ -1835,7 +1835,7 @@ itemBases["Stoic Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 91, EnergyShield = 26, MovementPenalty = 0.015, }, req = { level = 52, str = 41, int = 41, }, @@ -1846,7 +1846,7 @@ itemBases["Empyreal Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 99, EnergyShield = 28, MovementPenalty = 0.015, }, req = { level = 57, str = 45, int = 45, }, @@ -1857,7 +1857,7 @@ itemBases["Deified Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 112, EnergyShield = 31, MovementPenalty = 0.015, }, req = { level = 65, str = 50, int = 50, }, @@ -1868,7 +1868,7 @@ itemBases["Painted Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 80, EnergyShield = 23, MovementPenalty = 0.015, }, req = { level = 45, str = 36, int = 36, }, @@ -1879,7 +1879,7 @@ itemBases["Engraved Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 85, EnergyShield = 24, MovementPenalty = 0.015, }, req = { level = 48, str = 38, int = 38, }, @@ -1890,7 +1890,7 @@ itemBases["Descry Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 89, EnergyShield = 26, MovementPenalty = 0.015, }, req = { level = 51, str = 40, int = 40, }, @@ -1901,7 +1901,7 @@ itemBases["Dekharan Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 94, EnergyShield = 27, MovementPenalty = 0.015, }, req = { level = 54, str = 42, int = 42, }, @@ -1912,7 +1912,7 @@ itemBases["Quartered Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 102, EnergyShield = 29, MovementPenalty = 0.015, }, req = { level = 59, str = 46, int = 46, }, @@ -1923,7 +1923,7 @@ itemBases["Glowering Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 107, EnergyShield = 30, MovementPenalty = 0.015, }, req = { level = 62, str = 48, int = 48, }, @@ -1934,7 +1934,7 @@ itemBases["Intricate Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 112, EnergyShield = 31, MovementPenalty = 0.015, }, req = { level = 65, str = 50, int = 50, }, @@ -1945,7 +1945,7 @@ itemBases["Sekheman Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 123, EnergyShield = 34, MovementPenalty = 0.015, }, req = { level = 70, str = 54, int = 54, }, @@ -1956,7 +1956,7 @@ itemBases["Vaal Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 134, EnergyShield = 37, MovementPenalty = 0.015, }, req = { level = 75, str = 59, int = 59, }, @@ -1967,7 +1967,7 @@ itemBases["Blacksteel Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 145, EnergyShield = 40, MovementPenalty = 0.015, }, req = { level = 80, str = 63, int = 63, }, @@ -1978,7 +1978,7 @@ itemBases["Runeforged Blazon Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 10, EnergyShield = 6, Ward = 12, MovementPenalty = 0.015, }, req = { }, @@ -1989,7 +1989,7 @@ itemBases["Runeforged Sigil Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 20, EnergyShield = 9, Ward = 16, MovementPenalty = 0.015, }, req = { level = 7, str = 8, int = 8, }, @@ -2000,7 +2000,7 @@ itemBases["Runeforged Emblem Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 34, EnergyShield = 12, Ward = 22, MovementPenalty = 0.015, }, req = { level = 16, str = 15, int = 15, }, @@ -2011,7 +2011,7 @@ itemBases["Runeforged Jingling Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 53, EnergyShield = 17, Ward = 31, MovementPenalty = 0.015, }, req = { level = 28, str = 23, int = 23, }, @@ -2022,7 +2022,7 @@ itemBases["Runeforged Sectarian Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 61, EnergyShield = 19, Ward = 33, MovementPenalty = 0.015, }, req = { level = 33, str = 27, int = 27, }, @@ -2033,7 +2033,7 @@ itemBases["Runeforged Omen Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 66, EnergyShield = 20, Ward = 34, MovementPenalty = 0.015, }, req = { level = 36, str = 30, int = 30, }, @@ -2044,7 +2044,7 @@ itemBases["Runeforged Wayward Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 80, EnergyShield = 23, Ward = 38, MovementPenalty = 0.015, }, req = { level = 45, str = 36, int = 36, }, @@ -2055,7 +2055,7 @@ itemBases["Runeforged Seer Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 88, EnergyShield = 25, Ward = 40, MovementPenalty = 0.015, }, req = { level = 50, str = 39, int = 39, }, @@ -2066,7 +2066,7 @@ itemBases["Runeforged Stoic Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Ward = 146, MovementPenalty = 0.015, }, req = { level = 52, str = 41, int = 41, }, @@ -2077,7 +2077,7 @@ itemBases["Runeforged Empyreal Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Ward = 157, MovementPenalty = 0.015, }, req = { level = 57, str = 45, int = 45, }, @@ -2088,7 +2088,7 @@ itemBases["Runeforged Deified Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Ward = 176, MovementPenalty = 0.015, }, req = { level = 65, str = 50, int = 50, }, @@ -2099,7 +2099,7 @@ itemBases["Runeforged Dekharan Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 79, EnergyShield = 22, Ward = 53, MovementPenalty = 0.015, }, req = { level = 54, str = 42, int = 42, }, @@ -2110,7 +2110,7 @@ itemBases["Runeforged Quartered Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 94, EnergyShield = 26, Ward = 41, MovementPenalty = 0.015, }, req = { level = 59, str = 46, int = 46, }, @@ -2121,7 +2121,7 @@ itemBases["Runeforged Glowering Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 86, EnergyShield = 24, Ward = 59, MovementPenalty = 0.015, }, req = { level = 62, str = 48, int = 48, }, @@ -2132,7 +2132,7 @@ itemBases["Runeforged Intricate Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 106, EnergyShield = 29, Ward = 44, MovementPenalty = 0.015, }, req = { level = 65, str = 50, int = 50, }, @@ -2143,7 +2143,7 @@ itemBases["Runeforged Sekheman Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 86, EnergyShield = 24, Ward = 106, MovementPenalty = 0.015, }, req = { level = 70, str = 54, int = 54, }, @@ -2154,7 +2154,7 @@ itemBases["Runeforged Vaal Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 126, EnergyShield = 35, Ward = 26, MovementPenalty = 0.015, }, req = { level = 75, str = 59, int = 59, }, @@ -2165,7 +2165,7 @@ itemBases["Runeforged Blacksteel Crest Shield"] = { quality = 20, socketLimit = 3, tags = { armour = true, default = true, karui_basetype = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 52, EnergyShield = 15, Ward = 194, MovementPenalty = 0.015, }, req = { level = 80, str = 63, int = 63, }, @@ -2177,7 +2177,7 @@ itemBases["Runemastered Blazon Crest Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 43, EnergyShield = 13, Ward = 47, MovementPenalty = 0.015, }, req = { level = 40, str = 32, int = 32, }, @@ -2189,7 +2189,7 @@ itemBases["Runemastered Sigil Crest Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, ezomyte_basetype = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 65, EnergyShield = 19, Ward = 12, MovementPenalty = 0.015, }, req = { level = 40, str = 32, int = 32, }, @@ -2201,7 +2201,7 @@ itemBases["Runemastered Emblem Crest Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 48, EnergyShield = 14, Ward = 34, MovementPenalty = 0.015, }, req = { level = 38, str = 31, int = 31, }, @@ -2213,7 +2213,7 @@ itemBases["Runemastered Jingling Crest Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, maraketh_basetype = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 41, EnergyShield = 12, Ward = 45, MovementPenalty = 0.015, }, req = { level = 38, str = 31, int = 31, }, @@ -2225,7 +2225,7 @@ itemBases["Runemastered Omen Crest Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, vaal_basetype = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 42, EnergyShield = 12, Ward = 82, MovementPenalty = 0.015, }, req = { level = 48, str = 38, int = 38, }, @@ -2237,7 +2237,7 @@ itemBases["Runemastered Intricate Crest Shield"] = { hidden = true, socketLimit = 3, tags = { armour = true, default = true, runeforged = true, shield = true, str_int_armour = true, str_int_shield = true, }, - implicit = "Grants Skill: Level (1-20) Raise Shield", + implicit = "Grants Skill: Raise Shield", implicitModTypes = { }, armour = { BlockChance = 25, Armour = 78, EnergyShield = 22, Ward = 62, MovementPenalty = 0.015, }, req = { level = 65, str = 50, int = 50, }, diff --git a/src/Data/Bases/staff.lua b/src/Data/Bases/staff.lua index 9051d2f27a..724df0c379 100644 --- a/src/Data/Bases/staff.lua +++ b/src/Data/Bases/staff.lua @@ -36,7 +36,7 @@ itemBases["Spriggan Staff"] = { tags = { default = true, staff = true, twohand = true, }, implicit = "Grants Skill: Level (1-20) Firebolt", implicitModTypes = { }, - req = { int = 23, }, + req = { level = 11, int = 23, }, } itemBases["Pyrophyte Staff"] = { type = "Staff", @@ -45,7 +45,7 @@ itemBases["Pyrophyte Staff"] = { tags = { default = true, no_chaos_spell_mods = true, no_cold_spell_mods = true, no_lightning_spell_mods = true, no_physical_spell_mods = true, staff = true, twohand = true, }, implicit = "Grants Skill: Level (1-20) Solar Orb", implicitModTypes = { }, - req = { int = 31, }, + req = { level = 16, int = 31, }, } itemBases["Chiming Staff"] = { type = "Staff", @@ -54,7 +54,7 @@ itemBases["Chiming Staff"] = { tags = { default = true, staff = true, twohand = true, }, implicit = "Grants Skill: Level (1-20) Sigil of Power", implicitModTypes = { }, - req = { int = 46, }, + req = { level = 25, int = 46, }, } itemBases["Rending Staff"] = { type = "Staff", @@ -63,7 +63,7 @@ itemBases["Rending Staff"] = { tags = { default = true, no_cold_spell_mods = true, no_fire_spell_mods = true, no_lightning_spell_mods = true, no_physical_spell_mods = true, staff = true, twohand = true, }, implicit = "Grants Skill: Level (1-20) Soulrend", implicitModTypes = { }, - req = { int = 60, }, + req = { level = 33, int = 60, }, } itemBases["Reaping Staff"] = { type = "Staff", @@ -72,7 +72,7 @@ itemBases["Reaping Staff"] = { tags = { default = true, no_chaos_spell_mods = true, no_cold_spell_mods = true, no_fire_spell_mods = true, no_lightning_spell_mods = true, staff = true, twohand = true, }, implicit = "Grants Skill: Level (1-20) Reap", implicitModTypes = { }, - req = { int = 68, }, + req = { level = 38, int = 68, }, } itemBases["Icicle Staff"] = { type = "Staff", @@ -81,7 +81,7 @@ itemBases["Icicle Staff"] = { tags = { default = true, no_chaos_spell_mods = true, no_fire_spell_mods = true, no_lightning_spell_mods = true, no_physical_spell_mods = true, staff = true, twohand = true, }, implicit = "Grants Skill: Level (1-20) Firebolt", implicitModTypes = { }, - req = { int = 80, }, + req = { level = 45, int = 80, }, } itemBases["Roaring Staff"] = { type = "Staff", @@ -90,7 +90,7 @@ itemBases["Roaring Staff"] = { tags = { default = true, staff = true, twohand = true, }, implicit = "Grants Skill: Level (1-20) Unleash", implicitModTypes = { }, - req = { int = 87, }, + req = { level = 49, int = 87, }, } itemBases["Paralysing Staff"] = { type = "Staff", @@ -99,7 +99,7 @@ itemBases["Paralysing Staff"] = { tags = { default = true, no_chaos_spell_mods = true, no_cold_spell_mods = true, no_fire_spell_mods = true, no_physical_spell_mods = true, staff = true, twohand = true, }, implicit = "Grants Skill: Level (1-20) Enervating Nova", implicitModTypes = { }, - req = { int = 92, }, + req = { level = 52, int = 92, }, } itemBases["Sanctified Staff"] = { type = "Staff", @@ -108,7 +108,7 @@ itemBases["Sanctified Staff"] = { tags = { default = true, staff = true, twohand = true, }, implicit = "Grants Skill: Level (1-20) Consecrate", implicitModTypes = { }, - req = { int = 99, }, + req = { level = 56, int = 99, }, } itemBases["Dark Staff"] = { type = "Staff", @@ -117,7 +117,7 @@ itemBases["Dark Staff"] = { tags = { default = true, staff = true, twohand = true, }, implicit = "Grants Skill: Level (1-20) Dark Pact", implicitModTypes = { }, - req = { int = 114, }, + req = { level = 65, int = 114, }, } itemBases["Ravenous Staff"] = { type = "Staff", @@ -126,7 +126,7 @@ itemBases["Ravenous Staff"] = { tags = { default = true, staff = true, twohand = true, }, implicit = "Grants Skill: Level (1-20) Feast of Flesh", implicitModTypes = { }, - req = { int = 114, }, + req = { level = 65, int = 114, }, } itemBases["Permafrost Staff"] = { type = "Staff", @@ -136,7 +136,7 @@ itemBases["Permafrost Staff"] = { tags = { default = true, staff = true, twohand = true, }, implicit = "Grants Skill: Level (1-20) Heart of Ice", implicitModTypes = { }, - req = { int = 114, }, + req = { level = 75, int = 114, }, } itemBases["Reflecting Staff"] = { type = "Staff", @@ -146,7 +146,7 @@ itemBases["Reflecting Staff"] = { tags = { default = true, staff = true, twohand = true, }, implicit = "Grants Skill: Level (1-20) Mirror of Refraction", implicitModTypes = { }, - req = { int = 114, }, + req = { level = 70, int = 114, }, } itemBases["Perching Staff"] = { type = "Staff", @@ -156,7 +156,7 @@ itemBases["Perching Staff"] = { tags = { default = true, staff = true, twohand = true, }, implicit = "Grants Skill: Level (1-20) Spiraling Conspiracy", implicitModTypes = { }, - req = { int = 114, }, + req = { level = 65, int = 114, }, } itemBases["Wrapped Quarterstaff"] = { diff --git a/src/Data/Bases/wand.lua b/src/Data/Bases/wand.lua index ff7ae7a977..ca7e19aa28 100644 --- a/src/Data/Bases/wand.lua +++ b/src/Data/Bases/wand.lua @@ -36,7 +36,7 @@ itemBases["Siphoning Wand"] = { tags = { default = true, onehand = true, wand = true, }, implicit = "Grants Skill: Level (1-20) Power Siphon", implicitModTypes = { }, - req = { int = 23, }, + req = { level = 11, int = 23, }, } itemBases["Volatile Wand"] = { type = "Wand", @@ -45,7 +45,7 @@ itemBases["Volatile Wand"] = { tags = { default = true, no_chaos_spell_mods = true, no_cold_spell_mods = true, no_lightning_spell_mods = true, no_physical_spell_mods = true, onehand = true, wand = true, }, implicit = "Grants Skill: Level (1-20) Volatile Dead", implicitModTypes = { }, - req = { int = 31, }, + req = { level = 16, int = 31, }, } itemBases["Galvanic Wand"] = { type = "Wand", @@ -54,7 +54,7 @@ itemBases["Galvanic Wand"] = { tags = { default = true, no_chaos_spell_mods = true, no_cold_spell_mods = true, no_fire_spell_mods = true, no_physical_spell_mods = true, onehand = true, wand = true, }, implicit = "Grants Skill: Level (1-20) Galvanic Field", implicitModTypes = { }, - req = { int = 46, }, + req = { level = 25, int = 46, }, } itemBases["Acrid Wand"] = { type = "Wand", @@ -63,7 +63,7 @@ itemBases["Acrid Wand"] = { tags = { default = true, onehand = true, wand = true, }, implicit = "Grants Skill: Level (1-20) Decompose", implicitModTypes = { }, - req = { int = 60, }, + req = { level = 33, int = 60, }, } itemBases["Offering Wand"] = { type = "Wand", @@ -72,7 +72,7 @@ itemBases["Offering Wand"] = { tags = { default = true, no_chaos_spell_mods = true, no_cold_spell_mods = true, no_fire_spell_mods = true, no_lightning_spell_mods = true, onehand = true, wand = true, }, implicit = "Grants Skill: Level (1-20) Exsanguinate", implicitModTypes = { }, - req = { int = 68, }, + req = { level = 38, int = 68, }, } itemBases["Frigid Wand"] = { type = "Wand", @@ -81,7 +81,7 @@ itemBases["Frigid Wand"] = { tags = { default = true, no_chaos_spell_mods = true, no_fire_spell_mods = true, no_lightning_spell_mods = true, no_physical_spell_mods = true, onehand = true, wand = true, }, implicit = "Grants Skill: Level (1-20) Chaos Bolt", implicitModTypes = { }, - req = { int = 80, }, + req = { level = 45, int = 80, }, } itemBases["Torture Wand"] = { type = "Wand", @@ -90,7 +90,7 @@ itemBases["Torture Wand"] = { tags = { default = true, onehand = true, wand = true, }, implicit = "Grants Skill: Level (1-20) Chaos Bolt", implicitModTypes = { }, - req = { int = 87, }, + req = { level = 49, int = 87, }, } itemBases["Critical Wand"] = { type = "Wand", @@ -99,7 +99,7 @@ itemBases["Critical Wand"] = { tags = { default = true, onehand = true, wand = true, }, implicit = "Grants Skill: Level (1-20) Chaos Bolt", implicitModTypes = { }, - req = { int = 92, }, + req = { level = 52, int = 92, }, } itemBases["Primordial Wand"] = { type = "Wand", @@ -108,7 +108,7 @@ itemBases["Primordial Wand"] = { tags = { default = true, no_cold_spell_mods = true, no_fire_spell_mods = true, no_lightning_spell_mods = true, no_physical_spell_mods = true, onehand = true, wand = true, }, implicit = "Grants Skill: Level (1-20) Wither", implicitModTypes = { }, - req = { int = 99, }, + req = { level = 56, int = 99, }, } itemBases["Dueling Wand"] = { type = "Wand", @@ -117,7 +117,7 @@ itemBases["Dueling Wand"] = { tags = { default = true, onehand = true, wand = true, }, implicit = "Grants Skill: Level (1-20) Spellslinger", implicitModTypes = { }, - req = { int = 114, }, + req = { level = 65, int = 114, }, } itemBases["Twisted Wand"] = { type = "Wand", @@ -127,7 +127,7 @@ itemBases["Twisted Wand"] = { tags = { default = true, onehand = true, wand = true, }, implicit = "Grants Skill: Level (1-20) Coiling Bolts", implicitModTypes = { }, - req = { int = 114, }, + req = { level = 65, int = 114, }, } itemBases["Runic Fork"] = { type = "Wand", @@ -136,7 +136,7 @@ itemBases["Runic Fork"] = { socketLimit = 3, tags = { default = true, onehand = true, wand = true, }, implicitModTypes = { }, - req = { int = 114, }, + req = { level = 65, int = 114, }, } itemBases["Runemastered Runic Fork"] = { type = "Wand", @@ -146,7 +146,7 @@ itemBases["Runemastered Runic Fork"] = { tags = { default = true, onehand = true, runeforged = true, wand = true, }, implicit = "(30-50)% chance for Spell Skills to fire 2 additional Projectiles", implicitModTypes = { { "caster" }, }, - req = { int = 114, }, + req = { level = 65, int = 114, }, } itemBases["Runemastered Runic Fork"] = { type = "Wand", @@ -156,7 +156,7 @@ itemBases["Runemastered Runic Fork"] = { tags = { default = true, onehand = true, runeforged = true, wand = true, }, implicit = "(30-50)% increased Mana Regeneration Rate", implicitModTypes = { { "resource", "mana" }, }, - req = { int = 114, }, + req = { level = 65, int = 114, }, } itemBases["Runemastered Runic Fork"] = { type = "Wand", @@ -166,5 +166,5 @@ itemBases["Runemastered Runic Fork"] = { tags = { default = true, onehand = true, runeforged = true, wand = true, }, implicit = "+300 to maximum Runic Ward", implicitModTypes = { { "runic_ward" }, }, - req = { int = 114, }, + req = { level = 65, int = 114, }, } diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index f394ced48c..9a20773c5c 100644 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -5706,7 +5706,6 @@ c["Grants Skill: Archon of Chayula"]={{[1]={flags=0,keywordFlags=0,name="ExtraSk c["Grants Skill: Bleeding Concoction"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="BleedingConcoctionPlayer"}}},nil} c["Grants Skill: Blood Boil"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="BloodBoilPlayer"}}},nil} c["Grants Skill: Called Shots"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="MetaDeadeyeMarksPlayer"}}},nil} -c["Grants Skill: Cast on Block"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="MetaCastOnBlockPlayer"}}},nil} c["Grants Skill: Demon Form"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="DemonFormPlayer"}}},nil} c["Grants Skill: Elemental Expression"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="ElementalExpressionTriggeredPlayer"}}},nil} c["Grants Skill: Elemental Storm"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="ElementalStormPlayer"}}},nil} @@ -5731,6 +5730,8 @@ c["Grants Skill: Level 11 Blink"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill c["Grants Skill: Level 11 Bone Blast"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="BoneBlastPlayer"}}},nil} c["Grants Skill: Level 11 Bursting Fen Toad"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="ExplodingPoisonToadPlayer"}}},nil} c["Grants Skill: Level 11 Cackling Companions"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="HyenaCacklePlayer"}}},nil} +c["Grants Skill: Level 11 Cast on Block"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="MetaCastOnBlockPlayer"}}},nil} +c["Grants Skill: Level 11 Cast on Charm Use"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="MetaCastOnCharmUsePlayer"}}},nil} c["Grants Skill: Level 11 Chaos Bolt"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="WeaponGrantedChaosboltPlayer"}}},nil} c["Grants Skill: Level 11 Chaotic Surge"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="ChaosSpearTriggerChaosSurgePlayer"}}},nil} c["Grants Skill: Level 11 Coiling Bolts"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="CoilingBoltsPlayer"}}},nil} @@ -5753,8 +5754,8 @@ c["Grants Skill: Level 11 Herald of Thunder"]={{[1]={flags=0,keywordFlags=0,name c["Grants Skill: Level 11 Herald of the Royal Queen"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="UniqueAtziriHeraldPlayer"}}},nil} c["Grants Skill: Level 11 Icestorm"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="IcestormPlayer"}}},nil} c["Grants Skill: Level 11 Impurity"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="ImpurityPlayer"}}},nil} +c["Grants Skill: Level 11 Life Remnants"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="LifeRemnantsPlayer"}}},nil} c["Grants Skill: Level 11 Lightning Bolt"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="UniqueBreachLightningBoltPlayer"}}},nil} -c["Grants Skill: Level 11 Living Bomb"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="LivingBombPlayer"}}},nil} c["Grants Skill: Level 11 Malice"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="MalicePlayer"}}},nil} c["Grants Skill: Level 11 Mana Drain"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="ManaDrainPlayer"}}},nil} c["Grants Skill: Level 11 Midnight Zenith"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="MidnightStarPlayer"}}},nil} @@ -5762,13 +5763,11 @@ c["Grants Skill: Level 11 Mirror of Refraction"]={{[1]={flags=0,keywordFlags=0,n c["Grants Skill: Level 11 Mist Raven"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="SummonMistRavenPlayer"}}},nil} c["Grants Skill: Level 11 Molten Crash"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="MoltenCrashPlayer"}}},nil} c["Grants Skill: Level 11 Molten Shower"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="TriggeredMoltenShowerPlayer"}}},nil} -c["Grants Skill: Level 11 Parry"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="ParryPlayer"}}},nil} c["Grants Skill: Level 11 Phantasmal Arrow"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="PhantasmalArrowPlayer"}}},nil} c["Grants Skill: Level 11 Power Siphon"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="PowerSiphonPlayer"}}},nil} c["Grants Skill: Level 11 Purity of Fire"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="PurityOfFirePlayer"}}},nil} c["Grants Skill: Level 11 Purity of Ice"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="PurityOfIcePlayer"}}},nil} c["Grants Skill: Level 11 Purity of Lightning"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="PurityOfLightningPlayer"}}},nil} -c["Grants Skill: Level 11 Raise Shield"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="ShieldBlockPlayer"}}},nil} c["Grants Skill: Level 11 Righteous Descent"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="RighteousDescentPlayer"}}},nil} c["Grants Skill: Level 11 Rite of Restoration"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="SacredGroundPlayer"}}},nil} c["Grants Skill: Level 11 Runic Tempering"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="RunicTemperingPlayer"}}},nil} @@ -5787,7 +5786,6 @@ c["Grants Skill: Level 11 Valako's Charge"]={{[1]={flags=0,keywordFlags=0,name=" c["Grants Skill: Level 11 Volatile Dead"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="VolatileDeadPlayer"}}},nil} c["Grants Skill: Level 11 Wildwood's Gifts"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="AncientGiftsPlayer"}}},nil} c["Grants Skill: Level 11 Withering Presence"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=11,skillId="WitheringPresencePlayer"}}},nil} -c["Grants Skill: Level 14 Life Remnants"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=14,skillId="LifeRemnantsPlayer"}}},nil} c["Grants Skill: Level 20 Azmerian Swarms"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="AzmerianSwarmPlayer"}}},nil} c["Grants Skill: Level 20 Azmerian Wolf"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="SummonAzmerianWolfPlayer"}}},nil} c["Grants Skill: Level 20 Black Powder Blitz"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="BlackPowderBlitzReservationPlayer"}}},nil} @@ -5795,6 +5793,8 @@ c["Grants Skill: Level 20 Blink"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill c["Grants Skill: Level 20 Bone Blast"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="BoneBlastPlayer"}}},nil} c["Grants Skill: Level 20 Bursting Fen Toad"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="ExplodingPoisonToadPlayer"}}},nil} c["Grants Skill: Level 20 Cackling Companions"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="HyenaCacklePlayer"}}},nil} +c["Grants Skill: Level 20 Cast on Block"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="MetaCastOnBlockPlayer"}}},nil} +c["Grants Skill: Level 20 Cast on Charm Use"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="MetaCastOnCharmUsePlayer"}}},nil} c["Grants Skill: Level 20 Chaos Bolt"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="WeaponGrantedChaosboltPlayer"}}},nil} c["Grants Skill: Level 20 Chaotic Surge"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="ChaosSpearTriggerChaosSurgePlayer"}}},nil} c["Grants Skill: Level 20 Coiling Bolts"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="CoilingBoltsPlayer"}}},nil} @@ -5825,8 +5825,8 @@ c["Grants Skill: Level 20 His Vile Intrusion"]={{[1]={flags=0,keywordFlags=0,nam c["Grants Skill: Level 20 His Winnowing Flame"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="HisWinnowingFlamePlayer"}}},nil} c["Grants Skill: Level 20 Icestorm"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="IcestormPlayer"}}},nil} c["Grants Skill: Level 20 Impurity"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="ImpurityPlayer"}}},nil} +c["Grants Skill: Level 20 Life Remnants"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="LifeRemnantsPlayer"}}},nil} c["Grants Skill: Level 20 Lightning Bolt"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="UniqueBreachLightningBoltPlayer"}}},nil} -c["Grants Skill: Level 20 Living Bomb"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="LivingBombPlayer"}}},nil} c["Grants Skill: Level 20 Malice"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="MalicePlayer"}}},nil} c["Grants Skill: Level 20 Mana Drain"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="ManaDrainPlayer"}}},nil} c["Grants Skill: Level 20 Midnight Zenith"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="MidnightStarPlayer"}}},nil} @@ -5834,14 +5834,11 @@ c["Grants Skill: Level 20 Mirror of Refraction"]={{[1]={flags=0,keywordFlags=0,n c["Grants Skill: Level 20 Mist Raven"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="SummonMistRavenPlayer"}}},nil} c["Grants Skill: Level 20 Molten Crash"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="MoltenCrashPlayer"}}},nil} c["Grants Skill: Level 20 Molten Shower"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="TriggeredMoltenShowerPlayer"}}},nil} -c["Grants Skill: Level 20 Parry"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="ParryPlayer"}}},nil} c["Grants Skill: Level 20 Phantasmal Arrow"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="PhantasmalArrowPlayer"}}},nil} -c["Grants Skill: Level 20 Pinnacle of Power"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="PinnacleOfPowerPlayer"}}},nil} c["Grants Skill: Level 20 Power Siphon"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="PowerSiphonPlayer"}}},nil} c["Grants Skill: Level 20 Purity of Fire"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="PurityOfFirePlayer"}}},nil} c["Grants Skill: Level 20 Purity of Ice"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="PurityOfIcePlayer"}}},nil} c["Grants Skill: Level 20 Purity of Lightning"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="PurityOfLightningPlayer"}}},nil} -c["Grants Skill: Level 20 Raise Shield"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="ShieldBlockPlayer"}}},nil} c["Grants Skill: Level 20 Righteous Descent"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="RighteousDescentPlayer"}}},nil} c["Grants Skill: Level 20 Rite of Restoration"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="SacredGroundPlayer"}}},nil} c["Grants Skill: Level 20 Runic Tempering"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=20,skillId="RunicTemperingPlayer"}}},nil} @@ -5870,6 +5867,7 @@ c["Grants Skill: Navira's Oasis"]={nil,nil} c["Grants Skill: Navira's Well"]={nil,nil} c["Grants Skill: Navira, the Last Mirage"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="SummonWaterDjinnPlayer"}}},nil} c["Grants Skill: Parry"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="ParryPlayer"}}},nil} +c["Grants Skill: Pinnacle of Power"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="PinnacleOfPowerPlayer"}}},nil} c["Grants Skill: Primal Bounty"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="PrimalBountyPlayer"}}},nil} c["Grants Skill: Raise Shield"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="ShieldBlockPlayer"}}},nil} c["Grants Skill: Ritual Sacrifice"]={{[1]={flags=0,keywordFlags=0,name="ExtraSkill",type="LIST",value={level=1,skillId="RitualSacrificePlayer"}}},nil} @@ -5905,9 +5903,7 @@ c["Grenade Skills Fire an additional Projectile"]={{[1]={[1]={skillType=159,type c["Grenade Skills have +1 Cooldown Use"]={{[1]={[1]={skillType=159,type="SkillType"},flags=0,keywordFlags=0,name="AdditionalCooldownUses",type="BASE",value=1}},nil} c["Grenades have 15% chance to activate a second time"]={{[1]={[1]={skillType=159,type="SkillType"},flags=0,keywordFlags=0,name="GrenadeActivateTwice",type="BASE",value=15}},nil} c["Has 2 Charm Slot"]={{[1]={flags=0,keywordFlags=0,name="CharmLimit",type="BASE",value=2}},nil} -c["Has 2 Charm Slots"]={{[1]={flags=0,keywordFlags=0,name="CharmLimit",type="BASE",value=2}},nil} c["Has 3 Charm Slot"]={{[1]={flags=0,keywordFlags=0,name="CharmLimit",type="BASE",value=3}},nil} -c["Has 3 Charm Slots"]={{[1]={flags=0,keywordFlags=0,name="CharmLimit",type="BASE",value=3}},nil} c["Has 3 Sockets"]={{[1]={flags=0,keywordFlags=0,name="SocketCount",type="BASE",value=3}},nil} c["Has 4 Augment Sockets"]={nil,"Has 4 Augment Sockets "} c["Has 8 to 12 Physical damage, +3 to +4 per Boss's Face Broken"]={{[1]={flags=0,keywordFlags=0,name="FacebreakerPhysicalMin",type="BASE",value=8},[2]={flags=0,keywordFlags=0,name="FacebreakerPhysicalMax",type="BASE",value=12},[3]={[1]={type="Multiplier",var="BossFaceBroken"},flags=0,keywordFlags=0,name="FacebreakerPhysicalMin",type="BASE",value=3},[4]={[1]={type="Multiplier",var="BossFaceBroken"},flags=0,keywordFlags=0,name="FacebreakerPhysicalMax",type="BASE",value=4}},nil} diff --git a/src/Data/Uniques/amulet.lua b/src/Data/Uniques/amulet.lua index a87cc29279..7b010d7359 100644 --- a/src/Data/Uniques/amulet.lua +++ b/src/Data/Uniques/amulet.lua @@ -56,6 +56,7 @@ Jade Amulet Source: Drops from unique{Xesht, We That Are One} in normal{Twisted Domain} Variant: Pre 0.4.0 Variant: Current +Requires Level 55 Implicits: 2 Grants Skill: Level (1-20) Lightning Bolt {tags:attribute}+(10-15) to Dexterity @@ -96,6 +97,7 @@ Implicits: 1 Eventide Petals Veridical Chain League: Runes of Aldur +Requires Level 55 Implicits: 2 Grants Skill: Level (1-20) Midnight Zenith +(30-40) to maximum Runic Ward @@ -141,8 +143,8 @@ Allies in your Presence have (30-50)% increased Critical Damage Bonus ]],[[ Hinekora's Sight Stellar Amulet -Requires Level 44 League: Rise of the Abyssal +Requires Level 44 Implicits: 2 Grants Skill: Level (1-20) Future-Past {tags:attribute}+(5-7) to all Attributes @@ -252,6 +254,7 @@ Strugglescream Stellar Amulet Variant: Pre 0.4.0 Variant: Current +Requires Level 52 Implicits: 1 {tags:attribute}+(5-7) to all Attributes {variant:1}Can have 2 additional Instilled Modifiers @@ -277,6 +280,7 @@ Variant: Pre 0.3.0 Variant: Pre 0.4.0 Variant: Current Source: Drops from unique{Xesht, We That Are One} in normal{Twisted Domain} +Requires Level 52 Implicits: 1 {tags:attribute}+(10-15) to Strength {tags:life}(10-20)% increased maximum Life diff --git a/src/Data/Uniques/belt.lua b/src/Data/Uniques/belt.lua index 8ad7f58ff8..5d34119500 100644 --- a/src/Data/Uniques/belt.lua +++ b/src/Data/Uniques/belt.lua @@ -6,9 +6,11 @@ return { Bijouborne Double Belt League: Dawn of the Hunt -Implicits: 2 -+(50-100) to maximum Mana +Implicits: 3 +Grants Skill: Level (1-20) Cast on Charm Use Has (1-3) Charm Slot +(20-30)% increased Charm Charges gained ++(50-100) to maximum Mana (10-50)% reduced Charm Effect Duration +2 Charm Slots +(15-25) to Dexterity @@ -95,10 +97,10 @@ Plate Belt League: Dawn of the Hunt Variant: Pre 0.5.0 Variant: Current -Implicits: 2 +Implicits: 3 {variant:2}+(140-180) to Armour -Has (1-3) Charm Slot {variant:1}+(100-140) to Armour +Has (1-3) Charm Slot +(20-30) to Strength (10-20) Life Regeneration per second Defend with 200% of Armour @@ -120,10 +122,10 @@ Source: No longer obtainable Variant: Pre 0.1.1 Variant: Pre 0.5.0 Variant: Current -Implicits: 2 +Implicits: 3 {variant:3}+(140-180) to Armour -Has (1-3) Charm Slot {variant:1,2}+(100-140) to Armour +Has (1-3) Charm Slot +(100-150) to Armour +(10-20) to Strength +(3-5)% to Maximum Fire Resistance @@ -185,9 +187,6 @@ Variant: Legacy of Stibnite Variant: Legacy of Sulphur Variant: Legacy of Topaz League: Runes of Aldur -Implicits: 2 -Has (1-3) Charm Slot -20% of Flask Recovery applied Instantly {variant:1}Legacy of Amethyst {variant:2}Legacy of Basalt {variant:3}Legacy of Bismuth @@ -202,6 +201,9 @@ Has (1-3) Charm Slot {variant:12}Legacy of Stibnite {variant:13}Legacy of Sulphur {variant:14}Legacy of Topaz +Implicits: 2 +Has (1-3) Charm Slot +20% of Flask Recovery applied Instantly All Mage's Legacies have (25-50)% increased effect per duplicate Mage's Legacy you have ]],[[ Meginord's Girdle diff --git a/src/Data/Uniques/body.lua b/src/Data/Uniques/body.lua index 0c52fa0fd2..c7761179e6 100644 --- a/src/Data/Uniques/body.lua +++ b/src/Data/Uniques/body.lua @@ -335,7 +335,8 @@ The Covenant Altar Robe Variant: Pre 0.4.0 Variant: Current -{variant:2}Grants Skill: Level 14 Life Remnants +Implicits: 1 +{variant:2}Grants Skill: Level (1-20) Life Remnants (100-150)% increased Energy Shield +(100-150) to maximum Life {variant:1}5% of Spell Damage Leeched as Life @@ -402,6 +403,7 @@ Silk Robe Source: Drops from unique{Zarokh, the Temporal} Variant: Pre 0.2.0 Variant: Current +Requires Level 64 +(100-150) to maximum Energy Shield +(10-20)% to all Elemental Resistances (5-30)% of Damage taken Recouped as Life @@ -544,6 +546,7 @@ Enemies in your Presence are Intimidated Pragmatism Explorer Armour Source: Drops from unique{The King in the Mists} in normal{Crux of Nothingness} +Requires Level 52 (200-300)% increased Armour and Evasion +(10-20)% to all Elemental Resistances -17% to Chaos Resistance @@ -612,7 +615,7 @@ Implicits: 1 (100-150)% increased Armour and Energy Shield -10% to Fire Resistance {variant:1}+(13-17)% to Chaos Resistance -{variant:2,3}+(13-17)% to Chaos Resistance +{variant:2,3}+(17-23)% to Chaos Resistance {variant:1}(25-50)% increased Flask Charges gained {variant:2}(20-30)% increased Flask Charges gained {variant:1,2}50% less Flask Charges used diff --git a/src/Data/Uniques/boots.lua b/src/Data/Uniques/boots.lua index e55ed40cb3..c520158f09 100644 --- a/src/Data/Uniques/boots.lua +++ b/src/Data/Uniques/boots.lua @@ -162,6 +162,7 @@ Variant: Current {variant:2}+(30-50) to maximum Energy Shield {variant:1}+(5-15) to Strength {variant:2}+(10-20) to Strength +{variant:1}+(5-15) to Dexterity {variant:2}+(10-20) to Dexterity {variant:1}+(5-15) to Intelligence {variant:2}+(10-20) to Intelligence diff --git a/src/Data/Uniques/flask.lua b/src/Data/Uniques/flask.lua index d26d8f060e..1e5847608c 100644 --- a/src/Data/Uniques/flask.lua +++ b/src/Data/Uniques/flask.lua @@ -38,8 +38,8 @@ Skills have (80-120)% longer Perfect Timing window during effect [[ Lavianga's Spirits Gargantuan Mana Flask -Requires Level 49 League: Fate of the Vaal +Requires Level 49 This Flask cannot be Used but applies its Effect constantly (70-80)% reduced Amount Recovered ]],[[ @@ -149,7 +149,6 @@ Variant: Wolf Variant: Stag Variant: Cat Implicits: 1 -15% increased Rarity of Items found Used when you kill a Rare or Unique enemy {variant:4}Possessed by Spirit Of The Bear for (10-20) seconds on use {variant:5}Possessed by Spirit Of The Boar for (10-20) seconds on use diff --git a/src/Data/Uniques/gloves.lua b/src/Data/Uniques/gloves.lua index 13e4433edd..57fc891aea 100644 --- a/src/Data/Uniques/gloves.lua +++ b/src/Data/Uniques/gloves.lua @@ -334,6 +334,7 @@ Curses you inflict are reflected back to you Blessed Bonds Linen Wraps Source: Drops from unique{Zarokh, the Temporal} +Requires Level 56 +(60-100) to Evasion Rating +(30-50) to maximum Energy Shield Gain (25-35) Mana per enemy killed diff --git a/src/Data/Uniques/helmet.lua b/src/Data/Uniques/helmet.lua index b5bac5752c..2d06e2d8bc 100644 --- a/src/Data/Uniques/helmet.lua +++ b/src/Data/Uniques/helmet.lua @@ -247,6 +247,7 @@ Source: Drops from unique{Zarokh, the Temporal} Variant: Pre 0.2.0 Variant: Pre 0.4.0 Variant: Current +Requires Level 52 +(80-120) to maximum Energy Shield +(20-30) to Dexterity Enemies in your Presence are Blinded @@ -440,6 +441,7 @@ Source: Drops from unique{Olroth, Origin of the Fall} Variant: Pre 0.4.0 Variant: Pre 0.5.0 Variant: Current +Requires Level 62 {variant:1}(100-150)% increased Armour and Energy Shield {variant:2}(150-250)% increased Armour and Energy Shield {variant:3}(240-340)% increased Armour and Energy Shield @@ -484,6 +486,7 @@ Critical Hits Poison the enemy Glimpse of Chaos Tribal Mask Source: Drops from unique{Trialmaster} in normal{The Trial of Chaos} +Requires Level 52 Can be modified while Corrupted +(50-150) to maximum Life +(50-150) to maximum Mana diff --git a/src/Data/Uniques/mace.lua b/src/Data/Uniques/mace.lua index 7e42fbf3f2..c113b86379 100644 --- a/src/Data/Uniques/mace.lua +++ b/src/Data/Uniques/mace.lua @@ -41,6 +41,7 @@ Culling Strike against Frozen Enemies Marohi Erqi Totemic Greatclub League: Rise of the Abyssal +Requires Level 60 Implicits: 1 Crushes Enemies on Hit +150 Strength Requirement @@ -103,8 +104,8 @@ Variant: Pre 0.3.0 Variant: Current League: Dawn of the Hunt Implicits: 2 -{variant:1}+(10-15)% to Critical Damage Bonus {variant:2}+(5-10)% to Critical Damage Bonus +{variant:1}+(10-15)% to Critical Damage Bonus Adds (21-26) to (25-31) Physical Damage (10-15)% increased Attack Speed Breaks Armour equal to 40% of damage from Hits with this weapon @@ -275,6 +276,8 @@ Trephina Forge Maul Variant: Pre 0.1.1 Variant: Current +Implicits: 1 +Crushes Enemies on Hit {variant:1}Adds (7-10) to (12-18) Physical Damage {variant:2}Adds (12-15) to (22-25) Physical Damage (10-15)% increased Attack Speed diff --git a/src/Data/Uniques/quiver.lua b/src/Data/Uniques/quiver.lua index c9c5f0ff52..88f3fcaf4c 100644 --- a/src/Data/Uniques/quiver.lua +++ b/src/Data/Uniques/quiver.lua @@ -40,6 +40,7 @@ Projectiles Pierce all Ignited enemies Cadiro's Gambit Primed Quiver League: Dawn of the Hunt +Requires Level 66 Implicits: 1 (7-10)% increased Attack Speed Each Arrow fired is a Crescendo, Splinter, Reversing, Diamond, Covetous, or Blunt Arrow @@ -88,8 +89,8 @@ Variant: Pre 0.3.0 Variant: Current League: Dawn of the Hunt Implicits: 2 -{variant:1}(20-30)% increased Stun Buildup {variant:2}(25-40)% increased Stun Buildup +{variant:1}(20-30)% increased Stun Buildup Adds (7-11) to (14-20) Physical Damage to Attacks +(150-200) to Armour (20-30)% increased Projectile Speed diff --git a/src/Data/Uniques/ring.lua b/src/Data/Uniques/ring.lua index 626fc5ec4b..d5457af498 100644 --- a/src/Data/Uniques/ring.lua +++ b/src/Data/Uniques/ring.lua @@ -395,7 +395,6 @@ Implicits: 1 Vigilant View Emerald Ring League: Dawn of the Hunt -Requires Level 26 Implicits: 1 {tags:attack}+(120-160) to Accuracy Rating {tags:attack}+(100-150) to Accuracy Rating diff --git a/src/Data/Uniques/sceptre.lua b/src/Data/Uniques/sceptre.lua index 0c0eb3f4ac..ad646cc65f 100644 --- a/src/Data/Uniques/sceptre.lua +++ b/src/Data/Uniques/sceptre.lua @@ -33,6 +33,7 @@ Variant: Lightning (Pre 0.2.1 ) Variant: Fire Variant: Cold Variant: Lightning +Requires Level 65 Implicits: 3 {variant:1,4}Grants Skill: Level (1-20) Purity of Fire {variant:2,5}Grants Skill: Level (1-20) Purity of Ice @@ -49,8 +50,8 @@ Implicits: 3 ]],[[ Guiding Palm of the Eye Shrine Sceptre -Requires Level 65 League: Dawn of the Hunt +Requires Level 65 Implicits: 1 Grants Skill: Level (1-20) Purity of Ice Gain 25% of Damage as Extra Cold Damage @@ -62,8 +63,8 @@ Grants effect of Guided Freezing Shrine ]],[[ Guiding Palm of the Heart Shrine Sceptre -Requires Level 65 League: Dawn of the Hunt +Requires Level 65 Implicits: 1 Grants Skill: Level (1-20) Purity of Fire Gain 25% of Damage as Extra Fire Damage @@ -75,8 +76,8 @@ Grants effect of Guided Meteoric Shrine ]],[[ Guiding Palm of the Mind Shrine Sceptre -Requires Level 65 League: Dawn of the Hunt +Requires Level 65 Implicits: 1 Grants Skill: Level (1-20) Purity of Lightning Gain 25% of Damage as Extra Lightning Damage @@ -88,8 +89,8 @@ Grants effect of Guided Tempest Shrine ]],[[ Palm of the Dreamer Shrine Sceptre -Requires Level 65 League: Dawn of the Hunt +Requires Level 65 Implicits: 1 Grants Skill: Level (1-20) Impurity Allies in your Presence deal (13-17) to (25-37) added Attack Chaos Damage @@ -102,6 +103,7 @@ Grants effect of Dreaming Gloom Shrine Sacred Flame Shrine Sceptre Source: Drops from unique{Arbiter of Ash} in normal{The Burning Monolith} +Requires Level 55 Implicits: 1 Grants Skill: Level (1-20) Purity of Fire Gain (40-60)% of Damage as Extra Fire Damage @@ -112,6 +114,7 @@ Enemies in your Presence Resist Elemental Damage based on their Lowest Resistanc Sylvan's Effigy Stoic Sceptre League: Runes of Aldur +Requires Level 62 Implicits: 2 Grants Skill: Level (1-20) Discipline Grants Skill: Level (1-20) Azmerian Wolf diff --git a/src/Data/Uniques/shield.lua b/src/Data/Uniques/shield.lua index 788de0393e..bc70463551 100644 --- a/src/Data/Uniques/shield.lua +++ b/src/Data/Uniques/shield.lua @@ -101,9 +101,10 @@ Variant: Pre 0.4.0 Variant: Pre 0.5.0 Variant: Current Source: Drops from unique{Olroth, Origin of the Fall} +Requires Level 60 Implicits: 2 Grants Skill: Raise Shield -Grants Skill: Cast on Block +Grants Skill: Level (1-20) Cast on Block {variant:4}+(50-100) to maximum Runic Ward {variant:1}(100-150)% increased Armour {variant:2}(150-200)% increased Armour @@ -373,6 +374,7 @@ Variant: Pre 0.2.0 Variant: Pre 0.4.0 Variant: Current Source: Drops from unique{Trialmaster} in normal{The Trial of Chaos} +Requires Level 48 Implicits: 1 Grants Skill: Raise Shield {variant:1}(333-666)% increased effect of Socketed Soul Cores @@ -397,7 +399,6 @@ Grants Skill: Raise Shield ]],[[ Prism Guardian Sectarian Crest Shield -Requires Level 65 League: Dawn of the Hunt Variant: Pre 0.2.1 Variant: Pre 0.4.0 @@ -424,7 +425,6 @@ Regenerate 3% of maximum Life per second while on Low Life ]],[[ Saffell's Frame Emblem Crest Shield -Requires Level 16 Implicits: 1 Grants Skill: Raise Shield +(15-25)% to Fire Resistance diff --git a/src/Data/Uniques/spear.lua b/src/Data/Uniques/spear.lua index f351a0e79d..0720ba8228 100644 --- a/src/Data/Uniques/spear.lua +++ b/src/Data/Uniques/spear.lua @@ -57,8 +57,9 @@ Create a Fragment of Divinity in your Presence every 4 seconds Saitha's Spear Barbed Spear League: Dawn of the Hunt -Implicits: 1 +Implicits: 2 Grants Skill: Spear Throw +Bleeding you inflict deals Damage (10-20)% faster Adds (14-26) to (27-32) Physical Damage Adds (33-41) to (47-53) Fire Damage (15-25)% chance to cause Bleeding on Hit diff --git a/src/Data/Uniques/staff.lua b/src/Data/Uniques/staff.lua index e31e14a144..6b63446938 100644 --- a/src/Data/Uniques/staff.lua +++ b/src/Data/Uniques/staff.lua @@ -18,6 +18,7 @@ Spells which cost Life Gain (80-120)% of Damage as Extra Physical Damage The Burden of Shadows Chiming Staff Source: Drops from unique{The King in the Mists} in normal{Crux of Nothingness} +Requires Level 56 Implicits: 1 Grants Skill: Level (1-20) Sigil of Power (20-30)% increased Cast Speed @@ -68,7 +69,7 @@ Pyrophyte Staff Variant: Pre 0.4.0 Variant: Current Implicits: 1 -Grants Skill: Level (1-20) Living Bomb +Grants Skill: Level (1-20) Solar Orb (80-120)% increased Fire Damage (10-20)% increased Cast Speed 100% increased Flammability Magnitude @@ -219,8 +220,14 @@ Variant: Chaos Damage and Curse Variant: Spell Physical Damage and Bleed Chance Variant: Chaos Damage and Explode Variant: Unholy Might -Implicits: 1 +Implicits: 7 Grants Skill: Level (1-20) Feast of Flesh +{variant:1}Grants Skill: Level (1-20) His Dark Horizon +{variant:2}Grants Skill: Level (1-20) His Foul Emergence +{variant:3}Grants Skill: Level (1-20) His Grave Command +{variant:4}Grants Skill: Level (1-20) His Scattering Calamity +{variant:5}Grants Skill: Level (1-20) His Vile Intrusion +{variant:6}Grants Skill: Level (1-20) His Winnowing Flame (60-80)% increased Desecrated Modifier magnitudes {variant:9}(100-160)% increased Chaos Damage {variant:11}(100-160)% increased Chaos Damage @@ -234,11 +241,5 @@ Grants Skill: Level (1-20) Feast of Flesh {variant:8}(6-10)% increased Spirit Reservation Efficiency {variant:12}(28-56)% increased Magnitude of Unholy Might buffs you grant {variant:12}You have Unholy Might -{variant:1}Grants Skill: Level (1-20) His Dark Horizon -{variant:2}Grants Skill: Level (1-20) His Foul Emergence -{variant:3}Grants Skill: Level (1-20) His Grave Command -{variant:4}Grants Skill: Level (1-20) His Scattering Calamity -{variant:5}Grants Skill: Level (1-20) His Vile Intrusion -{variant:6}Grants Skill: Level (1-20) His Winnowing Flame ]], } diff --git a/src/Data/Uniques/wand.lua b/src/Data/Uniques/wand.lua index ab8c86d6bb..5a45f5fa61 100644 --- a/src/Data/Uniques/wand.lua +++ b/src/Data/Uniques/wand.lua @@ -9,7 +9,7 @@ League: Dawn of the Hunt Requires Level 65 Implicits: 2 Grants Skill: Level (1-20) Power Siphon -Grants Skill: Level 20 Pinnacle of Power +Grants Skill: Pinnacle of Power +(100-150) to maximum Mana +3 to Level of all Spell Skills (15-30)% increased Cast Speed @@ -18,7 +18,6 @@ Grants Skill: Level 20 Pinnacle of Power ]],[[ Cursecarver Acrid Wand -Requires Level 33 League: Dawn of the Hunt Variant: Elemental Weakness Variant: Vulnerability diff --git a/src/Export/Classes/GGPKData.lua b/src/Export/Classes/GGPKData.lua index 278e4b3c64..88236939ea 100644 --- a/src/Export/Classes/GGPKData.lua +++ b/src/Export/Classes/GGPKData.lua @@ -262,7 +262,6 @@ function GGPKClass:GetNeededFiles() "Data/Balance/InfluenceTags.dat", "Data/Balance/AttributeRequirements.dat", "Data/Balance/GrantedEffectLabels.dat", - "Data/Balance/ItemInherentSkills.dat", "Data/Balance/KeywordPopups.dat", "Data/Balance/SoulCores.dat", "Data/Balance/SoulCoreStats.dat", diff --git a/src/Export/Scripts/bases.lua b/src/Export/Scripts/bases.lua index 6bc3151bc4..7c9eea9740 100644 --- a/src/Export/Scripts/bases.lua +++ b/src/Export/Scripts/bases.lua @@ -143,7 +143,23 @@ directiveTable.base = function(state, args, out) local implicitLines = { } local implicitModTypes = { } local variantList = { } + local implicitMods = { } + local hasCharmSlots for _, mod in ipairs(baseItemType.ImplicitMods) do + table.insert(implicitMods, mod) + if mod.Type and mod.Type.Id == "CharmSlots" then + hasCharmSlots = true + end + end + if state.type == "Belt" and not hasCharmSlots then + table.insert(implicitMods, dat("Mods"):GetRow("Id", "BeltImplicitCharmSlots3")) + end + table.sort(implicitMods, function(a, b) + local _, aOrder = describeMod(a) + local _, bOrder = describeMod(b) + return (aOrder[1] or 0) < (bOrder[1] or 0) + end) + for _, mod in ipairs(implicitMods) do local modDesc = describeMod(mod) for _, line in ipairs(modDesc) do table.insert(implicitLines, line) @@ -153,23 +169,20 @@ directiveTable.base = function(state, args, out) table.insert(implicitLines, "Grants Skill: Spear Throw") end end - if state.type == "Belt" then - table.insert(implicitLines, "Has (1-3) Charm Slots") - end local inherentSkillType = dat("ItemInherentSkills"):GetRow("BaseItemType", baseItemType) if inherentSkillType then - if #inherentSkillType.Skill > 1 then - for index, skill in ipairs(inherentSkillType.Skill) do - local skillGem = dat("SkillGems"):GetRow("BaseItemType", skill.BaseItemType) - local gemEffect = dat("GemEffects"):GetRow("GrantedEffect", skillGem.GemEffects[1].GrantedEffect) - local skillName = gemEffect.GrantedEffect.ActiveSkill.DisplayName + local hasVariants = #inherentSkillType.Skill > 1 + for index, skill in ipairs(inherentSkillType.Skill) do + local skillGem = dat("SkillGems"):GetRow("BaseItemType", skill.BaseItemType) + local skillName = skillGem.GemEffects[1].GrantedEffect.ActiveSkill.DisplayName + local naturalMaxLevel = skillGem.IsSupport and 1 or #dat("ItemExperiencePerLevel"):GetRowList("ItemExperienceType", skillGem.GemLevelProgression) + naturalMaxLevel = naturalMaxLevel > 0 and naturalMaxLevel or 1 + local implicitLine = "Grants Skill: " .. (naturalMaxLevel == 1 and "" or "Level (1-" .. naturalMaxLevel .. ") ") .. skillName + if hasVariants then table.insert(variantList, skillName) - table.insert(implicitLines, "{variant:" .. index .. "}Grants Skill: Level (1-20) " .. skillName) + implicitLine = "{variant:" .. index .. "}" .. implicitLine end - else - local skillGem = dat("SkillGems"):GetRow("BaseItemType", inherentSkillType.Skill[1].BaseItemType) - local gemEffect = dat("GemEffects"):GetRow("GrantedEffect", skillGem.GemEffects[1].GrantedEffect) - table.insert(implicitLines, "Grants Skill: Level (1-20) " .. gemEffect.GrantedEffect.ActiveSkill.DisplayName) + table.insert(implicitLines, implicitLine) end end if #variantList > 0 then @@ -342,7 +355,8 @@ directiveTable.base = function(state, args, out) end out:write('\treq = { ') local reqLevel = 1 - if weaponType or armourType then + local compAtt = dat("AttributeRequirements"):GetRow("BaseType", baseItemType) + if weaponType or armourType or inherentSkillType or compAtt then if baseItemType.DropLevel > 4 then reqLevel = baseItemType.DropLevel end @@ -358,7 +372,6 @@ directiveTable.base = function(state, args, out) if reqLevel > 1 then out:write('level = ', reqLevel, ', ') end - local compAtt = dat("AttributeRequirements"):GetRow("BaseType", baseItemType) if compAtt then if compAtt.ReqStr > 0 then out:write('str = ', compAtt.ReqStr, ', ') @@ -371,7 +384,7 @@ directiveTable.base = function(state, args, out) end end out:write('},\n}\n') - + if not hidden then bases[state.type] = bases[state.type] or {} local subtype = state.subType and #state.subType and state.subType or "" diff --git a/src/Export/Scripts/uModsToText.lua b/src/Export/Scripts/uModsToText.lua index 9a65832f41..09b4c77a2a 100644 --- a/src/Export/Scripts/uModsToText.lua +++ b/src/Export/Scripts/uModsToText.lua @@ -16,6 +16,17 @@ local catalystTags = { ["defences"] = true, ["minion"] = true, } + +local function getCatalystTagPrefix(modTags) + local tags = { } + for _, tag in ipairs(modTags) do + if catalystTags[tag] then + table.insert(tags, tag) + end + end + return tags[1] and "{tags:"..table.concat(tags, ",").."}" or "" +end + local itemTypes = { "axe", "bow", @@ -47,63 +58,143 @@ local itemTypes = { "soulcore", "incursionlimb", } -local function writeMods(out, statOrder) +local function appendMods(lines, statOrder) local orders = { } for order, _ in pairs(statOrder) do table.insert(orders, order) end table.sort(orders) - for _, order in pairs(orders) do + for _, order in ipairs(orders) do for _, line in ipairs(statOrder[order]) do - out:write(line, "\n") + table.insert(lines, line) end end end +local function stripLineTags(line) + return (line:gsub("{[^}]+}", "")) +end + +local function isGrantedSkillLine(line) + return stripLineTags(line):match("^Grants Skill") +end + +local function writeLines(out, lines) + for _, line in ipairs(lines) do + out:write(line, "\n") + end +end + +local itemBases = { } +for _, name in ipairs(itemTypes) do + local baseFileName = "../Data/Bases/"..name..".lua" + local baseFile = io.open(baseFileName, "r") + if baseFile then + baseFile:close() + LoadModule(baseFileName, itemBases) + end +end + local uniqueMods = LoadModule("../Data/ModItemExclusive.lua") local modVeiled = LoadModule("../Data/ModVeiled.lua") for _, name in ipairs(itemTypes) do local out = io.open("../Data/Uniques/"..name..".lua", "w") + local useCatalystTags = name == "amulet" or name == "ring" + local lines = { } + local implicitLines = { } + local grantedSkillLines = { } local statOrder = {} local postModLines = {} + local variantBaseImplicitLines = { } local modLines = 0 - local implicits + local sourceImplicitLines + local headerLineCount + local base + local baseReqLevel = 0 + local includeBaseImplicits = true + local uniqueReqLevel = 0 for line in io.lines("Uniques/"..name..".lua") do - if implicits then -- remove 1 downs to 0 - implicits = implicits - 1 - end local specName, specVal = line:match("^([%a ]+): (.+)$") if line:match("]],") then -- start new unique - writeMods(out, statOrder) + assert(base, "Missing base type while exporting "..name..".lua") + if uniqueReqLevel > baseReqLevel then + table.insert(lines, "Requires Level "..uniqueReqLevel) + end + local baseImplicitLines = { } + local finalImplicitLines = { } + if includeBaseImplicits and base.implicit then + local implicitIndex = 0 + for baseLine in base.implicit:gmatch("[^\n]+") do + implicitIndex = implicitIndex + 1 + local modTypes = base.implicitModTypes and base.implicitModTypes[implicitIndex] or { } + local prefix = useCatalystTags and getCatalystTagPrefix(modTypes) or "" + for _, implicitLine in ipairs(variantBaseImplicitLines[stripLineTags(baseLine)] or { prefix..baseLine }) do + if isGrantedSkillLine(implicitLine) then + table.insert(finalImplicitLines, implicitLine) + else + table.insert(baseImplicitLines, implicitLine) + end + end + end + end + for _, implicitList in ipairs({ grantedSkillLines, baseImplicitLines, implicitLines }) do + for _, implicitLine in ipairs(implicitList) do + table.insert(finalImplicitLines, implicitLine) + end + end + if finalImplicitLines[1] then + table.insert(lines, "Implicits: "..#finalImplicitLines) + for _, implicitLine in ipairs(finalImplicitLines) do + table.insert(lines, implicitLine) + end + end + appendMods(lines, statOrder) for _, line in ipairs(postModLines) do - out:write(line, "\n") + table.insert(lines, line) end - out:write(line, "\n") + table.insert(lines, line) + writeLines(out, lines) + lines = { } + implicitLines = { } + grantedSkillLines = { } statOrder = { } postModLines = { } + variantBaseImplicitLines = { } modLines = 0 - elseif not specName then + sourceImplicitLines = nil + headerLineCount = 0 + base = nil + baseReqLevel = 0 + includeBaseImplicits = true + uniqueReqLevel = 0 + elseif not specName or (sourceImplicitLines and sourceImplicitLines > 0) then local prefix = "" local variantString = line:match("({variant:[%d,]+})") local fractured = line:match("({fractured})") or "" - local modName, legacy = line:gsub("{.+}", ""):match("^([%a%d_]+)([%[%]-,%d]*)") - local mod = uniqueMods[modName] or modVeiled[modName] + local modName, legacy = stripLineTags(line):match("^([%a%d_]+)([%[%]-,%d]*)$") + local mod = base and (uniqueMods[modName] or modVeiled[modName]) + local rawMod = base and modName and dat("Mods"):GetRow("Id", modName) + local modLevel = rawMod and rawMod.Level or mod and mod.level + if modLevel then + uniqueReqLevel = math.max(uniqueReqLevel, math.floor(modLevel * 0.8)) + end + local grantedSkill = rawMod and dat("ModGrantedSkills"):GetRow("Mod", rawMod) + local grantedSkillLine + if grantedSkill then + local skillName = grantedSkill.SkillGem.GemEffects[1].GrantedEffect.ActiveSkill.DisplayName + local naturalMaxLevel = grantedSkill.SkillGem.IsSupport and 1 or #dat("ItemExperiencePerLevel"):GetRowList("ItemExperienceType", grantedSkill.SkillGem.GemLevelProgression) + naturalMaxLevel = naturalMaxLevel > 0 and naturalMaxLevel or 1 + grantedSkillLine = "Grants Skill: "..(naturalMaxLevel == 1 and "" or "Level (1-"..naturalMaxLevel..") ")..skillName + end + local isSourceImplicit = sourceImplicitLines and sourceImplicitLines > 0 + if variantString then + prefix = prefix ..variantString + end if mod then modLines = modLines + 1 - if variantString then - prefix = prefix ..variantString - end - local tags = {} - if isValueInArray({"amulet", "ring"}, name) then - for _, tag in ipairs(mod.modTags) do - if catalystTags[tag] then - table.insert(tags, tag) - end - end - end - if tags[1] then - prefix = prefix.."{tags:"..table.concat(tags, ",").."}" + if useCatalystTags then + prefix = prefix..getCatalystTagPrefix(mod.modTags) end prefix = prefix..fractured local legacyMod @@ -127,32 +218,82 @@ for _, name in ipairs(itemTypes) do end for i, line in ipairs(legacyMod or mod) do local order = math.floor(mod.statOrder[i]) - if statOrder[order] then - table.insert(statOrder[order], prefix..line) + local variantImplicitLines = variantString and variantBaseImplicitLines[modName] + if variantString and not variantImplicitLines and base.implicit then + for baseLine in base.implicit:gmatch("[^\n]+") do + if stripLineTags(baseLine) == stripLineTags(line) then + variantImplicitLines = { } + variantBaseImplicitLines[modName] = variantImplicitLines + variantBaseImplicitLines[stripLineTags(baseLine)] = variantImplicitLines + break + end + end + end + if variantImplicitLines then + table.insert(variantImplicitLines, prefix..line) else - statOrder[order] = { prefix..line } + if isSourceImplicit then + if isGrantedSkillLine(line) then + table.insert(grantedSkillLines, prefix..line) + else + table.insert(implicitLines, prefix..line) + end + elseif statOrder[order] then + table.insert(statOrder[order], prefix..line) + else + statOrder[order] = { prefix..line } + end end end + if grantedSkillLine then + table.insert(grantedSkillLines, prefix..grantedSkillLine) + end + elseif grantedSkillLine then + modLines = modLines + 1 + table.insert(grantedSkillLines, prefix..grantedSkillLine) else if modLines > 0 then -- treat as post line e.g. mirrored table.insert(postModLines, line) - else - out:write(line, "\n") + elseif isSourceImplicit then + if isGrantedSkillLine(line) then + table.insert(grantedSkillLines, line) + else + table.insert(implicitLines, line) + end + elseif not line:match("^Requires:? Level") then + table.insert(lines, line) + if line:match("%[%[") then + headerLineCount = 0 + base = nil + elseif headerLineCount then + headerLineCount = headerLineCount + 1 + local parsedBaseName = headerLineCount > 1 and stripLineTags(line) + local parsedBase = parsedBaseName and itemBases[parsedBaseName] + if parsedBase then + base = base or parsedBase + if parsedBase.req.level then + baseReqLevel = math.max(baseReqLevel, parsedBase.req.level) + end + end + end end end + if sourceImplicitLines and sourceImplicitLines > 0 then + sourceImplicitLines = sourceImplicitLines - 1 + end else - if specName == "Implicits" then - implicits = tonumber(specVal) + if specName == "Requires Level" then + -- Requirement levels are derived from the base type and unique mod levels. + elseif specName == "Base Implicits" then + includeBaseImplicits = specVal ~= "false" + elseif specName == "Implicits" then + sourceImplicitLines = tonumber(specVal) + else + table.insert(lines, line) end - out:write(line, "\n") - end - if implicits and implicits == 0 then - writeMods(out, statOrder) - implicits = nil - statOrder = { } - modLines = 0 end end + writeLines(out, lines) out:close() end diff --git a/src/Export/Uniques/amulet.lua b/src/Export/Uniques/amulet.lua index 64e33ab456..38d3422e54 100644 --- a/src/Export/Uniques/amulet.lua +++ b/src/Export/Uniques/amulet.lua @@ -8,8 +8,6 @@ Bloodstone Amulet Variant: Pre 0.2.0 Variant: Pre 0.4.0 Variant: Current -Implicits: 1 -AmuletImplicitIncreasedLife1 UniqueMovementVelocity6 UniqueIncreasedSkillSpeed2 UniqueIncreasedPhysicalDamageReductionRatingPercent1 @@ -22,16 +20,12 @@ Astramentis Stellar Amulet Variant: Pre 0.2.0 Variant: Current -Implicits: 1 -AmuletImplicitAllAttributes1 {variant:1}UniqueAllAttributes3[80,100] {variant:2}UniqueAllAttributes3 UniquePhysicalAttackDamageTaken2 ]],[[ Beacon of Azis Solar Amulet -Implicits: 1 -AmuletImplicitBaseSpirit1 UniqueIncreasedMana12 UniqueIncreasedSpirit5 UniqueLightRadius7 @@ -42,8 +36,6 @@ Amber Amulet Variant: Pre 0.4.0 Variant: Pre 0.5.0 Variant: Current -Implicits: 1 -AmuletImplicitStrength1 UniqueMaximumLifeIncrease3 UniqueAllAttributes1 UniqueAllResistances6 @@ -56,9 +48,6 @@ Jade Amulet Source: Drops from unique{Xesht, We That Are One} in normal{Twisted Domain} Variant: Pre 0.4.0 Variant: Current -Implicits: 2 -AmuletImplicitDexterity1 -Grants Skill: Level (1-20) Lightning Bolt {variant:1}UniqueLightningResist19[20,30] {variant:2}UniqueLightningResist19 UniqueCriticalStrikesIgnoreLightningResistance1 @@ -70,9 +59,6 @@ Variant: Pre 0.1.1 Variant: Pre 0.2.1 Variant: Pre 0.4.0 Variant: Current -Requires Level 56 -Implicits: 1 -AmuletImplicitDexterity1 UniqueMaximumLifeIncrease6 UniqueStrength2 UniqueManaRegeneration13 @@ -85,8 +71,6 @@ The Everlasting Gaze Azure Amulet Variant: Pre 0.2.0 Variant: Current -Implicits: 1 -AmuletImplicitManaRegeneration1 {variant:1}UniqueIncreasedMana32[50,50] {variant:2}UniqueIncreasedMana32 UniqueManaRegeneration29 @@ -96,9 +80,7 @@ UniqueManaRegeneration29 Eventide Petals Veridical Chain League: Runes of Aldur -Implicits: 2 -Grants Skill: Level (1-20) Midnight Zenith -AmuletImplicitRunicWard1 +UniqueMidnightStarSkill1 UniqueCriticalStrikeChance16 UniqueIntelligence50 UniqueLightRadius21 @@ -108,8 +90,6 @@ Eye of Chayula Gold Amulet Variant: Pre 0.2.0 Variant: Current -Implicits: 1 -AmuletImplicitItemFoundRarityIncrease1 UniqueMaximumLifeIncrease1 UniqueAllAttributes7 {variant:1}UniqueStunThreshold13 @@ -119,9 +99,6 @@ Fireflower Solar Amulet Variant: Pre 0.2.0 Variant: Current -Requires Level 52 -Implicits: 1 -AmuletImplicitBaseSpirit1 {variant:1}UniqueItemFoundRarityIncrease2[10,20] {variant:2}UniqueItemFoundRarityIncrease2 UniqueManaRegeneration7 @@ -130,8 +107,6 @@ UniqueGlobalFireGemLevel1 ]],[[ Fixation of Yix Stellar Amulet -Implicits: 1 -AmuletImplicitAllAttributes1 UniqueIncreasedLife35 UniqueNearbyAlliesCriticalStrikeChance2 UniqueNearbyAlliesCriticalMultiplier1 @@ -141,28 +116,20 @@ UniquePresenceRadius1 ]],[[ Hinekora's Sight Stellar Amulet -Requires Level 44 League: Rise of the Abyssal -Implicits: 2 -Grants Skill: Level (1-20) Future-Past -AmuletImplicitAllAttributes1 +ForesightUnique__1 UniqueIncreasedAccuracy13 UniqueIncreasedEvasionRating5 BlindImmunityUnique__1 ]],[[ Idol of Uldurn Crimson Amulet -Requires Level 24 -Implicits: 1 -AmuletImplicitLifeRegeneration1 UniqueIncreasedLife14 UniqueDexterity2 UniqueBaseLimit1 ]],[[ Igniferis Crimson Amulet -Implicits: 1 -AmuletImplicitLifeRegeneration1 UniqueFireResist23 UniqueManaRegeneration6 UniqueLightRadius1 @@ -172,8 +139,6 @@ UniqueRecoverLifeBasedOnRegen1 Immaculate Adherence Solar Amulet League: Runes of Aldur -Implicits: 1 -AmuletImplicitBaseSpirit1 UniqueDamageRemovedFromManaBeforeLife3 UniqueCannotHaveEnergyShield1 UniqueEnergyShieldConvertedToDivinity1 @@ -183,9 +148,6 @@ UniqueSkillAndLifeCostsConvertedToDivinity1 ]],[[ Ligurium Talisman Lapis Amulet -Requires Level 35 -Implicits: 1 -AmuletImplicitIntelligence1 UniqueIncreasedEnergyShield3 UniqueIncreasedSpirit6 UniqueIntelligence9 @@ -196,9 +158,6 @@ Lapis Amulet Source: Drops from unique{Xesht, We That Are One} in normal{Twisted Domain} Variant: Pre 0.4.0 Variant: Current -Requires Level 52 -Implicits: 1 -AmuletImplicitIntelligence1 {variant:1}UniqueColdResist21[20,30] {variant:2}UniqueColdResist21 UniqueColdResistancePenetration1 @@ -206,16 +165,12 @@ UniqueOnHitBlindChilledEnemies1 ]],[[ Revered Resin Amber Amulet -Implicits: 1 -AmuletImplicitStrength1 UniqueIncreasedLife3 UniqueFlaskLifeRecoveryRate5 UniqueLifeFlaskChargeGeneration2 ]],[[ Rondel of Fragility Lunar Amulet -Implicits: 1 -AmuletImplicitEnergyShield1 UniqueIncreasedSkillSpeed4 UniqueCriticalStrikeChance1 UniqueAllResistances11 @@ -223,8 +178,6 @@ UniqueAllDamage2 ]],[[ Serpent's Egg Gold Amulet -Implicits: 1 -AmuletImplicitItemFoundRarityIncrease1 UniqueAllAttributes1 UniqueChaosResist1 UniqueManaRegeneration6 @@ -233,16 +186,12 @@ UniqueAdditionalChargeGeneration1 Stone of Lazhwar Lapis Amulet League: Dawn of the Hunt -Implicits: 1 -AmuletImplicitIntelligence1 UniqueIncreasedMana3 UniqueIncreasedCastSpeed3 UniqueBlockPercentWithFocus1 ]],[[ Surefooted Sigil Jade Amulet -Implicits: 1 -AmuletImplicitDexterity1 UniqueIncreasedLife3 UniqueDexterity28 UniqueDodgeRollDistance1 @@ -252,8 +201,6 @@ Strugglescream Stellar Amulet Variant: Pre 0.4.0 Variant: Current -Implicits: 1 -AmuletImplicitAllAttributes1 {variant:1}UniqueMultipleAnointments1[2,2] {variant:2}UniqueMultipleAnointments1 ]],[[ @@ -261,9 +208,6 @@ Ungil's Harmony Azure Amulet Variant: Pre 0.1.1 Variant: Current -Requires Level 25 -Implicits: 1 -AmuletImplicitManaRegeneration1 UniqueIncreasedLife5 UniqueIncreasedMana5 {variant:1}UniqueCriticalStrikeChance9[100,100] @@ -277,8 +221,6 @@ Variant: Pre 0.3.0 Variant: Pre 0.4.0 Variant: Current Source: Drops from unique{Xesht, We That Are One} in normal{Twisted Domain} -Implicits: 1 -AmuletImplicitStrength1 UniqueMaximumLifeIncrease7 {variant:1,2}UniqueFireResist12[30,40] {variant:3}UniqueFireResist12 @@ -291,8 +233,6 @@ Bloodstone Amulet League: Dawn of the Hunt Variant: Pre 0.2.1 Variant: Current -Implicits: 1 -AmuletImplicitIncreasedLife1 UniqueAllResistances19 UniqueElementalDamagePercent1 {variant:1}UniqueEnemiesTakeIncreasedDamagePerAilmentType1[5,10] diff --git a/src/Export/Uniques/belt.lua b/src/Export/Uniques/belt.lua index 9e37001535..744ef50a32 100644 --- a/src/Export/Uniques/belt.lua +++ b/src/Export/Uniques/belt.lua @@ -6,22 +6,18 @@ return { Bijouborne Double Belt League: Dawn of the Hunt -Implicits: 2 -BeltImplicitCharmSlots3 +UniqueGrantsCastOnCharmUseSkill1 UniqueIncreasedMana51 UniqueGlobalCharmIncreasedDuration1 UniqueAdditionalCharm3 UniqueDexterity41 -UniqueIncreasedCharmChargesGained2 +BeltImplicitIncreasedCharmChargesGained1 ]],[[ Birthright Buckle Wide Belt -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitIncreasedFlaskChargesGained1 UniqueIncreasedPhysicalDamageReductionRating1 UniqueReducedFlaskChargesUsed3 -UniqueIncreasedFlaskChargesGained2 +UniqueIncreasedFlaskChargesGained3 UniqueInstantLifeFlaskOnLowLife1 UniqueInstantManaFlaskOnLowMana1 ]],[[ @@ -29,9 +25,6 @@ Byrnabas Wide Belt Variant: Pre 0.1.1 Variant: Current -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitIncreasedFlaskChargesGained1 UniqueIncreasedMana7 {variant:1}UniqueLightningResist7[20,30] {variant:2}UniqueLightningResist7 @@ -41,9 +34,6 @@ Cannot be Shocked Cat O' Nine Tails Utility Belt League: Runes of Aldur -Implicits: 2 -BeltImplicitInstantFlaskRecoveryPercent1 -BeltImplicitCharmSlots3 UniqueIncreasedLife51 UniqueRegeneratePercentLifeIfHitRecently1 UniqueLifeRecoveryRate1 @@ -52,9 +42,6 @@ UniqueGainPercentLifeAsThorns1 ]],[[ Coward's Legacy Mail Belt -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitReducedFlaskChargesUsed1 UniqueStrength4 UniqueDexterity3 UniqueBeltFlaskRecoveryRate1 @@ -68,9 +55,6 @@ Variant: Body Armour Variant: Gloves Variant: Boots Variant: Shield -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitFlaskPassiveChargeGain1 {variant:1}LocalItemBenefitSocketableAsIfHelmetUnique__1 {variant:2}LocalItemBenefitSocketableAsIfBodyArmourUnique__1 {variant:3}LocalItemBenefitSocketableAsIfGlovesUnique__1 @@ -81,10 +65,6 @@ LocalSocketItemsEffectUnique__1 The Gnashing Sash Wide Belt League: Dawn of the Hunt -Requires Level 60 -Implicits: 2 -BeltImplicitCharmSlots3 -UniqueIncreasedFlaskChargesGained4 UniqueFlaskLifeRecoveryRate7 UniqueChaosResist14 UniqueLifeDegenerationPercentGracePeriod2 @@ -95,20 +75,15 @@ Plate Belt League: Dawn of the Hunt Variant: Pre 0.5.0 Variant: Current -Implicits: 2 -BeltImplicitCharmSlots3 {variant:2}BeltImplicitPhysicalDamageReductionRating1 {variant:1}BeltImplicitPhysicalDamageReductionRating1[100,140] -UniqueStrength10 +UniqueStrength33 UniqueLifeRegeneration17 UniqueDoubleArmourEffect1 UniqueMaximumPhysicalReductionOverride1 ]],[[ Headhunter Heavy Belt -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitIncreasedStunThreshold1 UniqueIncreasedLife3 UniqueStrength7 UniqueDexterity5 @@ -120,8 +95,6 @@ Source: No longer obtainable Variant: Pre 0.1.1 Variant: Pre 0.5.0 Variant: Current -Implicits: 2 -BeltImplicitCharmSlots3 {variant:3}BeltImplicitPhysicalDamageReductionRating1 {variant:1,2}BeltImplicitPhysicalDamageReductionRating1[100,140] UniqueIncreasedPhysicalDamageReductionRating1 @@ -136,9 +109,6 @@ Source: Drops from unique{The King in the Mists} in normal{Crux of Nothingness} Variant: Pre 0.2.0 Variant: Pre 0.2.0F Variant: Current -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitInstantFlaskRecoveryPercent1 {variant:2}UniqueAdditionalCharm2 {variant:2,3}UniqueIncreasedCharmChargesGained1 {variant:2,3}UniqueReducedCharmChargesUsed2 @@ -150,9 +120,6 @@ Keelhaul Linen Belt Variant: Pre 0.1.1 Variant: Current -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitFlaskManaRecovery1 UniqueFlaskLifeRecoveryRate4 UniqueFlaskManaRecoveryRate2 {variant:1}UniqueLifeFlaskChargeGeneration1[0,15] @@ -185,9 +152,6 @@ Variant: Legacy of Stibnite Variant: Legacy of Sulphur Variant: Legacy of Topaz League: Runes of Aldur -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitInstantFlaskRecoveryPercent1 {variant:1}Legacy of Amethyst {variant:2}Legacy of Basalt {variant:3}Legacy of Bismuth @@ -206,9 +170,6 @@ UniqueIncreasedMagesLegacyEffectPerDuplicateMagesLegacy ]],[[ Meginord's Girdle Rawhide Belt -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitFlaskLifeRecovery1 UniqueStrength6 UniqueColdResist12 UniqueReducedFlaskChargesUsed2 @@ -216,18 +177,12 @@ UniqueIncreasedFlaskChargesGained1 ]],[[ Midnight Braid Rawhide Belt -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitFlaskLifeRecovery1 UniqueIncreasedMana5 UniqueAllResistances8 UniqueDamageTakenGoesToMana1 ]],[[ Ryslatha's Coil Ornate Belt -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitReducedCharmChargesUsed1 UniqueIncreasedLife7 UniqueFlaskLifeRecoveryRate1 UniquePhysicalMaximumDamageModifier1 @@ -235,19 +190,13 @@ UniquePhysicalMinimumDamageModifier1 ]],[[ Shavronne's Satchel Fine Belt -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitFlaskPassiveChargeGain1 UniqueFlaskLifeRecoveryRate3 UniqueIntelligence9 -BeltImplicitIncreasedFlaskChargesGained1 +UniqueIncreasedFlaskChargesGained2 UniqueFlaskLifeRecoveryEnergyShield1 ]],[[ Soul Tether Long Belt -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitIncreasedCharmDuration1 UniqueIncreasedEnergyShield2 UniqueIntelligence9 UniqueLoseEnergyShieldPerSecond1 @@ -256,12 +205,8 @@ UniqueLifeLeechExcessToEnergyShield1 Umbilicus Immortalis Linen Belt League: Rise of the Abyssal -Requires Level 24 -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitFlaskManaRecovery1 UniqueBeltFlaskDuration1 -UniqueIntelligence42 +UniqueIntelligence36 UniqueMinionLife6 UniqueLifeFlasksApplyToMinions1 MinionsCannotDieWhileAffectedByYourLifeFlasks1 @@ -270,9 +215,6 @@ UniqueIncreasedFlaskChargesGained4 Waistgate Heavy Belt League: Dawn of the Hunt -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitIncreasedStunThreshold1 UniqueIncreasedLife45 UniqueIncreasedMana50 UniqueFlaskLifeRecoveryRate6 @@ -285,10 +227,6 @@ Variant: Pre 0.2.0f Variant: Pre 0.5.0 Variant: Current Source: Drops from unique{Trialmaster} in normal{The Trial of Chaos} -Requires Level 56 -Implicits: 2 -BeltImplicitCharmSlots3 -BeltImplicitIncreasedStunThreshold1 {variant:1}UniqueAdditionalCharm1 UniqueStrength28 UniqueCorruptedBloodImmunity1 diff --git a/src/Export/Uniques/body.lua b/src/Export/Uniques/body.lua index b58079b199..caf373ae64 100644 --- a/src/Export/Uniques/body.lua +++ b/src/Export/Uniques/body.lua @@ -12,8 +12,6 @@ Variant: Gloves Variant: Boots Variant: Shield Sockets: S S S S S S -Implicits: 1 -BodyArmourImplicitLevelOfAllCorruptedSkillGems1 UniqueOnlySocketSoulCores1 UniqueLocalNoAttributeRequirements2 UniqueAtziriSplendourArmourEvasionAndEnergyShield1 @@ -76,8 +74,6 @@ UniqueAttackerTakesDamage3 Geofri's Sanctuary Revered Vestments League: Runes of Aldur -Implicits: 1 -BodyArmourImplicitMaximumElementalResistance1 UniqueLocalIncreasedPhysicalDamageReductionRatingPercent32 UniqueAllResistances28 UniqueMaximumEnergyShieldIsPercentOfStrength1 @@ -110,8 +106,6 @@ Kaom's Heart Conqueror Plate Variant: Pre 0.2.1 Variant: Current -Implicits: 1 -BodyArmourImplicitIncreasedStunThreshold1 {variant:1}UniqueIncreasedLife2[1000,1000] {variant:2}UniqueIncreasedLife2 UniqueRemoveSpirit1 @@ -162,8 +156,7 @@ UniquePhysicalAttackDamageTaken1 The Auspex Exquisite Vest League: Runes of Aldur -Implicits: 1 -Grants Skill: Level (1-20) Mist Raven +UniqueMistRavenCompanionSkill1 UniqueLocalIncreasedEvasionRatingPercent35 UniqueIncreasedLife57 UniqueReducedLocalAttributeRequirements6 @@ -213,8 +206,6 @@ Variant: Pre 0.4.0 Variant: Pre 0.5.0 Variant: Current League: Dawn of the Hunt -Implicits: 1 -BodyArmourImplicitIncreasedAilmentThreshold1 {variant:1}UniqueLocalIncreasedEvasionRatingPercent33[100,130] {variant:2}UniqueLocalIncreasedEvasionRatingPercent33[200,250] {variant:3}UniqueLocalIncreasedEvasionRatingPercent33 @@ -262,12 +253,11 @@ UniqueFireDamageTakenAsPhysical1 Sands of Silk Shrouded Vest League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Level (1-20) Blink +UniqueGrantsBlinkSand1 UniqueLocalIncreasedEvasionRatingPercent20 -UniqueIncreasedMana38 -UniqueDexterity2 -UniqueIntelligence6 +UniqueIncreasedMana50 +UniqueDexterity25 +UniqueIntelligence28 UniqueFireResist34 GlobalCooldownRecoveryUnique__2 ]],[[ @@ -327,7 +317,7 @@ The Covenant Altar Robe Variant: Pre 0.4.0 Variant: Current -{variant:2}Grants Skill: Level 14 Life Remnants +{variant:2}UniqueGrantsLifeRemnants1 UniqueLocalIncreasedEnergyShieldPercent11 UniqueIncreasedLife25 {variant:1}UniqueSpellDamageLifeLeech1[500,500] @@ -380,8 +370,6 @@ Enlightened Robe League: Dawn of the Hunt Variant: Pre 0.4.0 Variant: Current -Implicits: 1 -BodyArmourImplicitManaRegeneration1 {variant:2}UniqueLocalIncreasedEnergyShieldPercent27 UniqueIncreasedSpirit11 UniqueIntelligence39 @@ -453,19 +441,17 @@ Heroic Armour League: Dawn of the Hunt Variant: Pre 0.4.0 Variant: Current -Implicits: 4 -Grants Skill: Level (1-20) Herald of Ash -Grants Skill: Level (1-20) Herald of Ice -Grants Skill: Level (1-20) Herald of Thunder -BodyArmourImplicitIncreasedLife1 +UniqueGrantsHeraldOfAsh1 +UniqueGrantsHeraldOfIce1 +UniqueGrantsHeraldOfThunder1 UniqueAllResistances20 UniqueEnemiesInPresenceNoElementalResist1 {variant:2}UniqueHeraldDamage1 ]],[[ Doryani's Prototype Scale Mail -UniqueLocalIncreasedArmourAndEvasion6 -BodyArmourImplicitIncreasedLife1 +UniqueLocalIncreasedArmourAndEvasion13 +UniqueIncreasedLife29 UniqueArmourAppliesToLightningDamage1 UniqueNearbyEnemyLightningResistanceEqual1 UniqueLightningResistNoReduction1 @@ -496,11 +482,10 @@ Ancestral Mail League: Rise of the Abyssal Variant: Pre 0.4.0 Variant: Current -Implicits: 1 -Grants Skill: Level (1-20) Valako's Charge +ValakosLuckUnique__1 UniqueLocalIncreasedArmourAndEvasion14 UniqueIncreasedLife30 -UniqueDexterity44 +UniqueDexterity43 UniqueLightningResist13 {variant:1}UniquePhysicalDamageTakenAsLightningPercent1[20,40] {variant:2}UniquePhysicalDamageTakenAsLightningPercent1 @@ -597,12 +582,11 @@ Shaman Mantle Variant: Pre 0.1.1 Variant: 0.5.0 Variant: Current -Implicits: 1 -{variant:3}Grants Skill: Level (1-20) Rite of Restoration +{variant:3}UniqueSigilOfLifeSkill1 UniqueLocalIncreasedArmourAndEnergyShield7 UniqueFireResist9 -{variant:1}UniqueChaosResist2[13,17] -{variant:2,3}UniqueChaosResist2 +{variant:1}UniqueChaosResist7[13,17] +{variant:2,3}UniqueChaosResist7 {variant:1}UniqueReducedFlaskChargesUsed1[25,50] {variant:2}UniqueReducedFlaskChargesUsed1 {variant:1,2}UniqueFlaskChanceToNotConsume1 @@ -631,8 +615,6 @@ Corvus Mantle League: Dawn of the Hunt Variant: Pre 0.4.0 Variant: Current -Implicits: 1 -BodyArmourImplicitIncreasedSpirit1 UniqueLocalIncreasedArmourAndEnergyShield23 UniqueStrength33 UniqueIntelligence33 @@ -657,8 +639,6 @@ UniqueRandomlyCursedWhenTotemsDie1 The Unleashed Revered Vestments League: Runes of Aldur -Implicits: 1 -BodyArmourImplicitMaximumElementalResistance1 UniqueLocalIncreasedArmourAndEnergyShield26 UniqueStrengthAndIntelligence1 UniqueHitDamageBypassesEnergyShieldWhileBelowHalfEnergyShield1 @@ -698,11 +678,9 @@ UniqueBleedsAlwaysAggravated1 Cospri's Will Assassin Garb League: Rise of the Abyssal -Implicits: 2 -Grants Skill: Level (1-20) Withering Presence -BodyArmourImplicitMovementVelocity1 +UniqueGrantsWitheringPresence1 UniqueLocalIncreasedEvasionAndEnergyShield18 -UniqueChaosResist32 +UniqueChaosResist30 UniqueCursesNeverExpire1 UniqueIgnoreHexproof1 UniqueWitherNeverExpires1 @@ -720,8 +698,7 @@ UniqueIncreasedEvasionIfHitRecently1 Forgotten Warden Primal Markings League: Runes of Aldur -Implicits: 1 -Grants Skill: Level (1-20) Spirit Vessel +UniqueSpiritVesselSkill1 UniqueDeflectionRatingPerMissingEnergyShield1 UniqueLocalIncreasedEvasionAndEnergyShield20 UniqueDexterity46 diff --git a/src/Export/Uniques/boots.lua b/src/Export/Uniques/boots.lua index b2e15741e4..a236dce9cb 100644 --- a/src/Export/Uniques/boots.lua +++ b/src/Export/Uniques/boots.lua @@ -27,8 +27,6 @@ UniqueBurningGroundWhileMovingMaximumLife1 ]],[[ Corpsewade Iron Greaves -Implicits: 1 -Grants Skill: Level (1-20) Decompose UniqueMovementVelocity1 UniqueLocalIncreasedPhysicalDamageReductionRatingPercent9 UniqueStrength11 @@ -162,7 +160,7 @@ Variant: Current {variant:2}UniqueLocalIncreasedEnergyShield13 {variant:1}UniqueStrength9[5,15] {variant:2}UniqueStrength9 -{variant:1}UniqueDexterity9[5.15] +{variant:1}UniqueDexterity9[5,15] {variant:2}UniqueDexterity9 {variant:1}UniqueIntelligence8[5,15] {variant:2}UniqueIntelligence8 @@ -200,8 +198,7 @@ UniqueReducedShockDuration1 Shankgonne Covered Sabatons League: Rise of the Abyssal -Implicits: 1 -Grants Skill: Level (1-20) Black Powder Blitz +BlackPowderBlitzUnique__1 UniqueLocalIncreasedArmourAndEvasion31 UniqueItemFoundRarityIncrease23 UniqueFireResist35 diff --git a/src/Export/Uniques/bow.lua b/src/Export/Uniques/bow.lua index 4b54cb01df..445cb1cb94 100644 --- a/src/Export/Uniques/bow.lua +++ b/src/Export/Uniques/bow.lua @@ -9,8 +9,6 @@ Variant: 0.2.0 Variant: 0.3.0 Variant: 0.5.0 Variant: Current -Implicits: 1 -BowImplicitAdditionalArrows1 {variant:1}UniqueLocalCriticalMultiplier1[50,70] {variant:2}UniqueLocalCriticalMultiplier1[30,40] {variant:3,4}UniqueLocalCriticalMultiplier1 @@ -33,9 +31,7 @@ UniqueManaRegeneration3 Fairgraves' Curse Artillery Bow League: Rise of the Abyssal -Implicits: 2 -Grants Skill: Level (1-20) Phantasmal Arrow -BowImplicitProjectileAttackRange1 +GhostfuseArrowUnique_1 UniqueLocalAddedFireDamage5 UniqueIgniteChanceIncrease4 UniqueIgniteEffect3 @@ -46,8 +42,6 @@ GhostflameOnHitUnique__1 Ironbound Warden Bow League: Runes of Aldur -Implicits: 1 -BowImplicitLocalChanceToChain1 UniqueLocalIncreasedPhysicalDamageReductionRating6 UniqueLocalIncreasedAttackSpeed31 UniqueBlockPercent3 @@ -58,8 +52,7 @@ UniqueProjectilesReturnIfPiercedArmourBroken1 Periphery Heartwood Shortbow League: Runes of Aldur -Implicits: 1 -Grants Skill: Level (1-20) Azmerian Swarms +UniqueAzmerianSwarmSkill1 UniqueLocalAddedFireDamage9 UniqueLocalAddedColdDamage8 UniqueLocalAddedLightningDamage12 diff --git a/src/Export/Uniques/crossbow.lua b/src/Export/Uniques/crossbow.lua index ad21465d6f..04c33d5c66 100644 --- a/src/Export/Uniques/crossbow.lua +++ b/src/Export/Uniques/crossbow.lua @@ -6,9 +6,7 @@ return { Double Vision Dyad Crossbow League: Rise of the Abyssal -Implicits: 2 -Grants Skill: Level (1-20) Gemini Surge -CrossbowImplicitAdditionalAmmo1 +UniqueTriggerInfusionOnReload UniqueLocalAddedPhysicalDamage24 UniqueLocalCriticalStrikeChance7 UniqueColdFireSurgeOnReload @@ -17,8 +15,7 @@ UniqueReloadSpeed2 The Last Lament Desolate Crossbow League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Level (1-20) Compose Requiem +UniqueGrantsRequiemSkill UniqueLocalIncreasedPhysicalDamagePercent15 UniqueIncreasedAttackSpeed12 UniqueLifeLeechLocal4 @@ -40,8 +37,6 @@ UniqueFreezeDamageIncrease3 ]],[[ Rampart Raptor Tense Crossbow -Implicits: 1 -CrossbowImplicitBoltSpeed1 UniqueLocalIncreasedPhysicalDamagePercent7 UniqueLocalIncreasedAttackSpeed8 UniqueChanceForNoBoltReload1 @@ -50,8 +45,6 @@ UniqueLocalReloadSpeed1 Redemption Trarthan Cannon League: Runes of Aldur -Implicits: 1 -CannonBowImplicitCannotUseAmmoSkills1 UniqueLocalIncreasedPhysicalDamagePercent24 UniqueLocalNoCriticalStrikeMultiplier2 UniqueGlobalCooldownRecovery2 diff --git a/src/Export/Uniques/flask.lua b/src/Export/Uniques/flask.lua index 9d3fa2aff8..1d76f516c6 100644 --- a/src/Export/Uniques/flask.lua +++ b/src/Export/Uniques/flask.lua @@ -36,7 +36,6 @@ UniqueFlaskChargesUsed3 [[ Lavianga's Spirits Gargantuan Mana Flask -Requires Level 49 League: Fate of the Vaal UniqueAlwaysDrinkingFlask1 UniqueFlaskRecoveryAmount1 @@ -67,69 +66,51 @@ UniqueManaFlaskRecoveryCanOverflowManaDuringEffect1 Arakaali's Gift Antidote Charm League: Dawn of the Hunt -Implicits: 1 -CharmImplicitUseOnPoison1 UniqueCharmRecoverLifeBasedOnManaFlask1 UniqueCharmRecoverManaBasedOnLifeFlask1 ]],[[ Beira's Anguish Dousing Charm League: Dawn of the Hunt -Implicits: 1 -CharmImplicitUseOnIgnite1 UniqueFlaskChanceRechargeOnKill2 UniqueCharmIgniteEnemiesInPresence1 ]],[[ The Black Cat Grounding Charm League: Dawn of the Hunt -Implicits: 1 -CharmImplicitUseOnShock1 UniqueCharmIncreasedDuration2 UniqueCharmEnemyExtraLightningDamageRoll1 ]],[[ Breath of the Mountains Sapphire Charm League: Dawn of the Hunt -Implicits: 1 -CharmImplicitUseOnColdDamage1 UniqueFlaskChargesUsed2 UniqueCharmGrantsPowerCharge1 ]],[[ The Fall of the Axe Silver Charm League: Dawn of the Hunt -Implicits: 1 -CharmImplicitUseOnSlow1 UniqueCharmOnslaughtDuringEffect1 ]],[[ For Utopia Stone Charm -Implicits: 1 -CharmImplicitUseOnStun1 UniqueCharmDoubleArmourEffect1 ]],[[ Forsaken Bangle Amethyst Charm League: Dawn of the Hunt -Implicits: 1 -CharmImplicitUseOnChaosDamage1 UniqueCharmIncreasedDuration1 UniqueCharmRecoupChaosDamagePrevented1 ]],[[ Nascent Hope Thawing Charm League: Dawn of the Hunt -Implicits: 1 -CharmImplicitUseOnFreeze1 UniqueFlaskChanceRechargeOnKill1 UniqueCharmStartEnergyShieldRecharge1 ]],[[ Ngamahu's Chosen Ruby Charm League: Dawn of the Hunt -Implicits: 1 -CharmImplicitUseOnFireDamage1 UniqueFlaskExtraCharges1 UniqueCharmGrantsMaximumRage1 ]],[[ @@ -145,9 +126,6 @@ Variant: Ox Variant: Wolf Variant: Stag Variant: Cat -Implicits: 1 -15% increased Rarity of Items found -CharmImplicitUseOnRareUniqueKill1 {variant:1}UniqueCharmOwlPossess1 {variant:2}UniqueCharmSerpentPossess1 {variant:3}UniqueCharmPrimatePossess1 @@ -161,16 +139,12 @@ CharmImplicitUseOnRareUniqueKill1 Sanguis Heroum Staunching Charm League: Dawn of the Hunt -Implicits: 1 -CharmImplicitUseOnBleed1 UniqueCharmCreateConsecratedGround1 UniqueFlaskFillChargesPerMinute1 ]],[[ Valako's Roar Topaz Charm League: Dawn of the Hunt -Implicits: 1 -CharmImplicitUseOnLightningDamage1 UniqueFlaskChargesAddedPercent1 UniqueCharmGrantsFrenzyCharge1 ]], diff --git a/src/Export/Uniques/gloves.lua b/src/Export/Uniques/gloves.lua index 8a697bbf31..87e1aa609c 100644 --- a/src/Export/Uniques/gloves.lua +++ b/src/Export/Uniques/gloves.lua @@ -8,8 +8,7 @@ Moulded Mitts Variant: Pre 0.1.1 Variant: Pre 0.5.0 Variant: Current -Implicits: 1 -{variant:3}Grants Skill: Level (1-20) Herald of the Royal Queen +{variant:3}UniqueAtziriHeraldSkill1 {variant:1,2}UniqueLocalIncreasedPhysicalDamageReductionRatingPercent11[80,100] {variant:3}UniqueLocalIncreasedPhysicalDamageReductionRatingPercent11 {variant:3}UniqueIncreasedLife58 @@ -98,8 +97,7 @@ UniqueChillEffect1 Horror's Flight Engraved Bracers League: Runes of Aldur -Implicits: 1 -Grants Skill: Level (1-20) Crushing Fear +UniqueCrushingFearSkill1 UniqueLocalIncreasedEvasionRatingPercent36 UniqueIncreasedAttackSpeed16 UniqueDexterity45 @@ -178,7 +176,7 @@ Variant: Current {variant:2}UniqueLocalIncreasedEnergyShield12 UniqueSpellDamage1 UniqueIncreasedCastSpeed6 -AmuletImplicitIntelligence1 +UniqueIntelligence18 ]],[[ Essentia Sanguis Furtive Wraps @@ -374,8 +372,7 @@ UniqueAllDamageCanPoison1 Thunderfist Utility Wraps League: Rise of the Abyssal -Implicits: 1 -Grants Skill: Level (1-20) Crackling Palm +ThunderfistUnique__1 UniqueLocalIncreasedEvasionAndEnergyShield19 UniqueIncreasedAttackSpeed13 UniqueLightningResist29 diff --git a/src/Export/Uniques/helmet.lua b/src/Export/Uniques/helmet.lua index 243f64c597..4afcf839f5 100644 --- a/src/Export/Uniques/helmet.lua +++ b/src/Export/Uniques/helmet.lua @@ -25,9 +25,9 @@ Warrior Greathelm Variant: Pre 0.1.1 Variant: Current UniqueIncreasedAccuracy5 -UniqueIncreasedLife14 +UniqueIncreasedLife27 {variant:2}UniqueFireResist28 -UniqueLightRadius9 +UniqueLightRadius11 UniqueLifeLeechToAllies1 ]],[[ Deidbell diff --git a/src/Export/Uniques/mace.lua b/src/Export/Uniques/mace.lua index f395612e52..30db2147c2 100644 --- a/src/Export/Uniques/mace.lua +++ b/src/Export/Uniques/mace.lua @@ -6,8 +6,6 @@ return { Brutus' Lead Sprinkler Morning Star League: Runes of Aldur -Implicits: 1 -Grants Skill: Level (1-20) Molten Shower UniqueMoltenShowerSkill1 UniqueLocalIncreasedPhysicalDamagePercent26 UniqueLocalIncreasedAttackSpeed33 @@ -41,6 +39,7 @@ UniqueLocalCullingStrikeFrozenEnemies1 Marohi Erqi Totemic Greatclub League: Rise of the Abyssal +Base Implicits: false Implicits: 1 MaceImplicitLocalCrushOnHit1 UniqueStrengthRequirements3 @@ -55,13 +54,12 @@ Torment Club League: Dawn of the Hunt Variant: Pre 0.2.1 Variant: Current -Implicits: 1 -Grants Skill: Level (1-20) Thundergod's Wrath +UniqueGrantsCastLightningSpellOnHit1 UniqueIntelligenceRequirements2 UniqueStrengthRequirements2 {variant:1}UniqueLocalIncreasedPhysicalDamagePercent11[150,200] {variant:2}UniqueLocalIncreasedPhysicalDamagePercent11 -UniqueLocalIncreasedAttackSpeed20 +UniqueLocalIncreasedAttackSpeed19 {variant:1}UniqueGlobalLightningGemLevel1 {variant:2}UniqueGlobalLightningGemLevel2 ]],[[ @@ -88,8 +86,7 @@ UniqueMaximumLightningDamagePerPower1 Sadist's Mercy Flanged Mace League: Runes of Aldur -Implicits: 1 -Grants Skill: Level (1-20) Harbinger of Madness +UniqueHarbingerOfMadnessSkill1 UniqueLocalIncreasedPhysicalDamagePercent27 UniqueLocalCriticalStrikeChance11 UniqueLocalIncreasedAttackSpeed28 @@ -180,8 +177,6 @@ UniqueMinionDamageAffectsYou1 The Empty Roar Cultist Greathammer League: Dawn of the Hunt -Implicits: 1 -MaceImplicitSplashDamage1 UniqueLocalAddedPhysicalDamage15 UniqueLifeLeechLocal2 UniqueLocalChanceToBleed1 @@ -217,8 +212,6 @@ Hrimnor's Hymn Oak Greathammer Variant: Pre 0.1.1 Variant: Current -Implicits: 1 -MaceImplicitStunDamageIncrease1 {variant:1}UniqueLocalIncreasedPhysicalDamagePercent6[60,80] {variant:2}UniqueLocalIncreasedPhysicalDamagePercent6 UniqueStrength3 @@ -227,8 +220,6 @@ UniqueAftershockChance1 ]],[[ Quecholli Crumbling Maul -Implicits: 1 -MaceImplicitEnemiesExplodeOnCrit1 UniqueLocalIncreasedPhysicalDamagePercent4 UniqueAllAttributes7 UniqueLifeGainedFromEnemyDeath8 @@ -239,9 +230,7 @@ Serle's Grit Kalguuran Forgehammer League: Runes of Aldur Sockets: S S S -Implicits: 2 -Grants Skill: Level (1-20) Runic Tempering -MaceImplicitHasXSockets +RunicTemperingUnique__1 UniqueMaximumQualityOverride2 UniqueLocalAddedPhysicalDamage25 UniqueStrength44 @@ -260,8 +249,7 @@ UniqueLocalAllDamageCanChill1 Twisted Empyrean Aberrant Sledge League: Runes of Aldur -Implicits: 1 -Grants Skill: Level (1-20) Starborn Onslaught +UniqueStarbornOnslaughtSkill1 UniqueLocalIncreasedPhysicalDamagePercent22 UniqueLocalAddedColdDamage9 UniqueIncreasedMana53 diff --git a/src/Export/Uniques/quiver.lua b/src/Export/Uniques/quiver.lua index 0825fc4d89..d0d8d42a31 100644 --- a/src/Export/Uniques/quiver.lua +++ b/src/Export/Uniques/quiver.lua @@ -7,8 +7,6 @@ Asphyxia's Wrath Broadhead Quiver Variant: Pre 0.1.1 Variant: Current -Implicits: 1 -QuiverImplicitPhysicalDamage1 {variant:2}UniqueAddedColdDamage2 UniqueIncreasedAttackSpeed4 UniqueColdResist4 @@ -18,8 +16,6 @@ UniqueDamageAddedAsColdAttacks1 Beyond Reach Visceral Quiver Source: Drops from unique{Xesht, We That Are One} in normal{Twisted Domain} -Implicits: 1 -QuiverImplicitCriticalStrikeChance1 UniqueIncreasedAttackSpeed6 UniqueChaosDamageCanFreeze1 UniqueChaosDamageCanElectrocute1 @@ -29,8 +25,6 @@ Blackgleam Fire Quiver Variant: Pre 0.1.1 Variant: Current -Implicits: 1 -QuiverImplicitFireDamage1 {variant:2}UniqueAddedFireDamage1 UniqueIncreasedMana5 UniqueIgniteChanceIncrease3 @@ -40,16 +34,12 @@ UniqueDamageAddedAsFireAttacks1 Cadiro's Gambit Primed Quiver League: Dawn of the Hunt -Implicits: 1 -QuiverImplicitIncreasedAttackSpeed1 UniquePerandusArrows1 ]],[[ Drillneck Penetrating Quiver Source: Drops from unique{Atziri's Vault} in normal{Vaal Temple} League: Fate of the Vaal -Implicits: 1 -QuiverImplicitArrowAdditionalPierce1 UniqueIncreasedLife56 UniqueIncreasedAttackSpeed15 UniqueEvasionAppliesToDeflection5 @@ -62,8 +52,6 @@ Sacral Quiver League: Dawn of the Hunt Variant: Pre 0.4.0 Variant: Current -Implicits: 1 -QuiverImplicitLifeGainPerTarget1 UniqueIncreasedAttackSpeed5 UniqueLifeGainPerTarget2 UniqueArrowPierceChance1 @@ -73,9 +61,7 @@ UniqueArrowPierceChance1 Murkshaft Toxic Quiver League: Dawn of the Hunt -Implicits: 2 -Grants Skill: Level (1-20) Bursting Fen Toad -QuiverImplicitChanceToPoison1 +UniqueTriggerPoisonToadOnKill UniqueAddedPhysicalDamage6 UniqueManaGainedFromEnemyDeath11 UniquePoisonDuration1 diff --git a/src/Export/Uniques/ring.lua b/src/Export/Uniques/ring.lua index 33d22ef28d..3537d9ad10 100644 --- a/src/Export/Uniques/ring.lua +++ b/src/Export/Uniques/ring.lua @@ -5,8 +5,6 @@ return { [[ Andvarius Gold Ring -Implicits: 1 -RingImplicitItemFoundRarityIncrease1 UniqueItemFoundRarityIncrease5 UniqueDexterity4 UniqueAllResistances3 @@ -14,7 +12,7 @@ UniqueAllResistances3 Berek's Grip Two-Stone Ring League: Runes of Aldur -Requires Level 42 +Base Implicits: false Implicits: 1 RingImplicitColdLightningResistance UniqueDexterityAndIntelligence1 @@ -25,7 +23,7 @@ UniqueWindSkillsBoostedByShockedGround1 Berek's Pass Two-Stone Ring League: Runes of Aldur -Requires Level 42 +Base Implicits: false Implicits: 1 RingImplicitFireColdResistance UniqueStrengthAndIntelligence4 @@ -36,7 +34,7 @@ UniqueWindSkillsBoostedByChilledGround1 Berek's Respite Two-Stone Ring League: Runes of Aldur -Requires Level 42 +Base Implicits: false Implicits: 1 RingImplicitFireLightningResistance UniqueStrengthAndDexterity1 @@ -48,8 +46,6 @@ Blackflame Amethyst Ring Variant: Pre 0.5.0 Variant: Current -Implicits: 1 -BodyArmourImplicitChaosResistance1 UniqueManaRegeneration2 {variant:1}UniqueIgniteEffect1[50,50] {variant:2}UniqueIgniteEffect1 @@ -63,8 +59,6 @@ Blackheart Iron Ring Variant: Pre 0.1.1 Variant: Current -Implicits: 1 -RingImplicitPhysicalDamage1 UniqueLifeRegeneration4 {variant:1}UniqueAddedChaosDamage1[2,3][4,5] {variant:2}UniqueAddedChaosDamage1 @@ -74,8 +68,6 @@ Blistering Bond Ruby Ring Variant: Pre 0.5.0 Variant: Current -Implicits: 1 -RingImplicitFireResistance1 UniqueIncreasedLife3 UniqueFireResist18 UniqueColdResist22 @@ -87,8 +79,6 @@ The Burrower Topaz Ring Variant: Pre 0.1.1 Variant: Current -Implicits: 1 -RingImplicitLightningResistance1 {variant:1}UniqueColdResist23[-15,-10] {variant:2}UniqueColdResist23 UniqueLightningResist4 @@ -99,9 +89,6 @@ UniqueEnemyExtraDamageRollsWithLightningDamage1 Bursting Decay Unset Ring League: Dawn of the Hunt -Requires Level 60 -Implicits: 1 -RingImplicitAdditionalSkillSlots1 UniqueItemFoundRarityIncrease22 UniqueChaosResist34 UniqueLifeDegenerationPercentGracePeriod3 @@ -109,9 +96,6 @@ UniquePhysicalDamageMaximumLife1 ]],[[ Call of the Brotherhood Topaz Ring -Requires Level 32 -Implicits: 1 -RingImplicitLightningResistance1 UniqueIntelligence6 UniqueManaRegeneration18 UniqueFreezeDamageIncrease4 @@ -119,8 +103,6 @@ UniqueLightningDamageConvertToCold1 ]],[[ Cracklecreep Ruby Ring -Implicits: 1 -RingImplicitFireResistance1 UniqueFireDamagePercent1 UniqueLifeRegeneration9 UniqueManaRegeneration6 @@ -128,8 +110,6 @@ UniqueRingIgniteProliferation1 ]],[[ Death Rush Emerald Ring -Implicits: 1 -RingImplicitIncreasedAccuracy1 UniqueIncreasedAccuracy7 UniqueIncreasedEvasionRating1 UniqueLifeLeech1 @@ -137,8 +117,6 @@ UniqueOnslaughtBuffOnKill1 ]],[[ Doedre's Damning Lazuli Ring -Implicits: 1 -RingImplicitIncreasedMana1 UniqueAllResistances2 UniqueManaGainedFromEnemyDeath2 UniqueAdditionalCurseOnEnemies1 @@ -148,8 +126,6 @@ Sapphire Ring Variant: Pre 0.2.0 Variant: Pre 0.4.0 Variant: Current -Implicits: 1 -RingImplicitColdResistance1 {variant:1}UniqueMaximumManaIncrease1[20,20] {variant:2}UniqueMaximumManaIncrease1[10,10] {variant:3}UniqueMaximumManaIncrease1 @@ -162,18 +138,15 @@ Sockets: J Source: Drops from unique{Zarokh, the Temporal} Variant: Pre 0.5.0 Variant: Current -Requires Level 40 UniqueOnlySocketSapphireJewel1 -UniqueItemFoundRarityIncrease20 -UniqueAllAttributes1 +UniqueItemFoundRarityIncrease15 +UniqueAllAttributes9 {variant:1}UniqueColdResistanceNoPenalty1 {variant:2}UniqueFireAndColdResPerLightningResItem1 ]],[[ Evergrasping Ring Pearl Ring League: Dawn of the Hunt -Implicits: 1 -RingImplicitIncreasedCastSpeed1 UniqueIncreasedMana12 UniqueAlliesInPresenceGainedAsChaos1 UniqueEnemiesInPresenceGainedAsChaos1 @@ -181,8 +154,6 @@ UniqueEnemiesInPresenceGainedAsChaos1 Gifts from Above Prismatic Ring League: Dawn of the Hunt -Implicits: 1 -RingImplicitAllResistances1 UniqueCriticalStrikeChance12 UniqueLightRadius16 UniqueKilledMonsterItemRarityOnCrit1 @@ -192,8 +163,6 @@ Glowswarm Lazuli Ring Variant: Pre 0.5.0 Variant: Current -Implicits: 1 -RingImplicitIncreasedMana1 UniqueIncreasedMana7 UniqueFlaskManaRecoveryRate3 UniqueManaFlaskChargeGeneration2 @@ -201,8 +170,6 @@ UniqueManaFlaskChargeGeneration2 ]],[[ Heartbound Loop Pearl Ring -Implicits: 1 -RingImplicitIncreasedCastSpeed1 UniqueMinionLife3 UniqueLifeRegeneration3 UniqueManaRegeneration11 @@ -212,9 +179,6 @@ UniqueMinionReviveSpeed2 Icefang Orbit Iron Ring League: Dawn of the Hunt -Requires Level 36 -Implicits: 1 -RingImplicitPhysicalDamage1 UniqueAddedPhysicalDamage7 UniqueDexterity37 UniqueBaseChanceToPoison3 @@ -231,8 +195,6 @@ Levinstone Topaz Ring Variant: Pre 0.5.0 Variant: Current -Implicits: 1 -RingImplicitLightningResistance1 UniqueIncreasedMana7 UniqueShockChanceIncrease2 {variant:1}UniqueGlobalLightningGemLevel1 @@ -241,8 +203,6 @@ UniqueShockChanceIncrease2 ]],[[ Ming's Heart Amethyst Ring -Implicits: 1 -BodyArmourImplicitChaosResistance1 UniqueMaximumLifeIncrease3 UniqueDamageAddedAsChaos1 UniqueAllDefences1 @@ -251,24 +211,18 @@ Original Sin Amethyst Ring Variant: Pre 0.1.1 Variant: Current -Implicits: 1 -BodyArmourImplicitChaosResistance1 {variant:2}UniqueChaosResist21 UniqueElementalDamageConvertToChaos1 {variant:1}UniqueChaosResistanceIsZero1 ]],[[ Perandus Seal Gold Ring -Implicits: 1 -RingImplicitItemFoundRarityIncrease1 UniqueIncreasedMana5 UniqueAllAttributes2 UniqueGoldFoundIncrease1 ]],[[ Polcirkeln Sapphire Ring -Implicits: 1 -RingImplicitColdResistance1 UniqueColdDamagePercent1 UniqueIncreasedMana7 UniqueStrength3 @@ -279,9 +233,6 @@ Iron Ring Variant: Pre 0.5.0 Variant: Current League: Dawn of the Hunt -Requires Level 48 -Implicits: 1 -RingImplicitPhysicalDamage1 UniqueStrength41 UniqueLifeCostAsManaCost2 {variant:1}UniqueThornsDamageOnStun1 @@ -294,10 +245,9 @@ Sockets: J Source: Drops from unique{Zarokh, the Temporal} Variant: Pre 0.5.0 Variant: Current -Requires Level 40 UniqueOnlySocketRubyJewel1 -UniqueItemFoundRarityIncrease20 -UniqueAllAttributes1 +UniqueItemFoundRarityIncrease15 +UniqueAllAttributes9 {variant:1}UniqueFireResistanceNoPenalty1 {variant:2}UniqueColdAndLightningResPerFireResItem1 ]],[[ @@ -305,8 +255,6 @@ Seed of Cataclysm Lazuli Ring Variant: Pre 0.5.0 Variant: Current -Implicits: 1 -RingImplicitIncreasedMana1 UniqueSpellCriticalStrikeChance2 {variant:1}UniqueSpellCriticalStrikeMultiplier1 UniqueChaosResist2 @@ -316,8 +264,6 @@ UniqueManaCostReduction2 ]],[[ Snakepit Pearl Ring -Implicits: 1 -RingImplicitIncreasedCastSpeed1 UniqueSpellDamage2 UniqueIncreasedCastSpeed9 UniqueLeftRingSpellProjectilesCannotChain1 @@ -329,17 +275,12 @@ UniqueSpellsCannotPierce1 The Taming Prismatic Ring League: Runes of Aldur -Requires Level 42 -Implicits: 1 -RingImplicitAllResistances1 UniqueAllResistances29 UniqueDamagePerElementalAilment1 UniqueWindSkillsBoostedByAllElementalGrounds1 ]],[[ Thief's Torment Emerald Ring -Implicits: 1 -RingImplicitIncreasedAccuracy1 UniqueItemFoundRarityIncrease16 UniqueAllResistances14 UniqueLifeGainPerTarget1 @@ -350,8 +291,6 @@ UniqueSelfCurseDuration1 Veilpiercer Amethyst Ring League: Runes of Aldur -Implicits: 1 -RingImplicitChaosResistance1 UniqueIncreasedMana54 UniqueIntelligence48 UniqueIgnoreHexproof2 @@ -362,9 +301,6 @@ UniqueHitDamageAgainstEnemiesInPresence1 Venopuncture Iron Ring League: Dawn of the Hunt -Requires Level 36 -Implicits: 1 -RingImplicitPhysicalDamage1 UniqueAddedPhysicalDamage8 UniqueStrength41 UniqueChilledWhileBleeding1 @@ -376,9 +312,6 @@ Ventor's Gamble Gold Ring Variant: Pre 0.2.0 Variant: Current -Requires Level 64 -Implicits: 1 -RingImplicitItemFoundRarityIncrease1 UniqueIncreasedLife39 UniqueIncreasedSpirit7 {variant:1}UniqueItemFoundRarityIncrease17[-40,40] @@ -390,23 +323,17 @@ UniqueLightningResist18 Vigilant View Emerald Ring League: Dawn of the Hunt -Requires Level 26 -Implicits: 1 -RingImplicitIncreasedAccuracy1 UniqueIncreasedAccuracy12 UniqueIncreasedEvasionRating3 -UniqueItemFoundRarityIncrease20 -UniqueDexterity37 +UniqueItemFoundRarityIncrease19 +UniqueDexterity33 UniqueEnemyAccuracyDistanceFalloff1 UniqueMaximumEvadeChanceOverride1 ]],[[ Whisper of the Brotherhood Sapphire Ring -Requires Level 32 -Implicits: 1 -RingImplicitColdResistance1 UniqueIncreasedSkillSpeed3 -UniqueDexterity2 +UniqueDexterity27 UniqueManaRegeneration18 UniqueColdDamageConvertToLightning1 ]],[[ @@ -416,10 +343,9 @@ Sockets: J Source: Drops from unique{Zarokh, the Temporal} Variant: Pre 0.5.0 Variant: Current -Requires Level 40 UniqueOnlySocketEmeraldJewel1 -UniqueItemFoundRarityIncrease20 -UniqueAllAttributes1 +UniqueItemFoundRarityIncrease15 +UniqueAllAttributes9 {variant:1}UniqueLightningResistanceNoPenalty1 {variant:2}UniqueFireAndLightningRestPerColdResItem1 ]], diff --git a/src/Export/Uniques/sceptre.lua b/src/Export/Uniques/sceptre.lua index bde571b9d4..7a0a6a882f 100644 --- a/src/Export/Uniques/sceptre.lua +++ b/src/Export/Uniques/sceptre.lua @@ -7,8 +7,6 @@ The Dark Defiler Rattling Sceptre Variant: Pre 0.1.1 Variant: Current -Implicits: 1 -Grants Skill: Level (1-20) Skeletal Warrior Minion UniqueIncreasedMana2 UniqueIntelligence3 UniqueManaRegeneration1 @@ -17,8 +15,6 @@ UniqueManaRegeneration1 ]],[[ Font of Power Omen Sceptre -Implicits: 1 -Grants Skill: Level (1-20) Malice UniqueLocalIncreasedSpiritPercent1 UniqueIncreasedMana7 UniqueManaRegeneration6 @@ -32,6 +28,7 @@ Variant: Lightning (Pre 0.2.1 ) Variant: Fire Variant: Cold Variant: Lightning +Base Implicits: false Implicits: 3 {variant:1,4}Grants Skill: Level (1-20) Purity of Fire {variant:2,5}Grants Skill: Level (1-20) Purity of Ice @@ -48,8 +45,8 @@ UniqueBaseLifeRegenToAllies1 ]],[[ Guiding Palm of the Eye Shrine Sceptre -Requires Level 65 League: Dawn of the Hunt +Base Implicits: false Implicits: 1 Grants Skill: Level (1-20) Purity of Ice UniqueDamageGainedAsCold1 @@ -61,8 +58,8 @@ UniqueColdShrine1 ]],[[ Guiding Palm of the Heart Shrine Sceptre -Requires Level 65 League: Dawn of the Hunt +Base Implicits: false Implicits: 1 Grants Skill: Level (1-20) Purity of Fire UniqueDamageGainedAsFire2 @@ -74,8 +71,8 @@ UniqueFireShrine1 ]],[[ Guiding Palm of the Mind Shrine Sceptre -Requires Level 65 League: Dawn of the Hunt +Base Implicits: false Implicits: 1 Grants Skill: Level (1-20) Purity of Lightning UniqueDamageGainedAsLightning1 @@ -87,8 +84,8 @@ UniqueLightningShrine1 ]],[[ Palm of the Dreamer Shrine Sceptre -Requires Level 65 League: Dawn of the Hunt +Base Implicits: false Implicits: 1 Grants Skill: Level (1-20) Impurity UniqueNearbyAlliesAddedChaosDamage1 @@ -101,6 +98,7 @@ UniqueChaosShrine1 Sacred Flame Shrine Sceptre Source: Drops from unique{Arbiter of Ash} in normal{The Burning Monolith} +Base Implicits: false Implicits: 1 Grants Skill: Level (1-20) Purity of Fire UniqueDamageGainedAsFire1 @@ -111,9 +109,7 @@ UniqueEnemiesInPresenceLowestResistance1 Sylvan's Effigy Stoic Sceptre League: Runes of Aldur -Implicits: 2 -Grants Skill: Level (1-20) Discipline -Grants Skill: Level (1-20) Azmerian Wolf +UniquePackleaderCompanion_1 UniqueLocalIncreasedSpiritPercent4 UniqueNearbyAlliesLifeRegeneration1 UniqueAllAttributes19 diff --git a/src/Export/Uniques/shield.lua b/src/Export/Uniques/shield.lua index 54bbb58d6d..8c38c058c7 100644 --- a/src/Export/Uniques/shield.lua +++ b/src/Export/Uniques/shield.lua @@ -6,8 +6,6 @@ return { Chernobog's Pillar Blacksteel Tower Shield League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Raise Shield UniqueLocalIncreasedPhysicalDamageReductionRatingPercent28 UniqueFireResist8 UniqueChaosResist32 @@ -18,8 +16,6 @@ Dionadair Splintered Tower Shield Variant: Pre 0.1.1 Variant: Current -Implicits: 1 -Grants Skill: Raise Shield UniqueLocalIncreasedPhysicalDamageReductionRatingPercent17 UniqueStrength3 {variant:2}UniqueLifeRegeneration15 @@ -32,8 +28,6 @@ Braced Tower Shield Variant: Pre 0.1.1 Variant: Pre 0.3.0 Variant: Current -Implicits: 1 -Grants Skill: Raise Shield {variant:1,2}UniqueLocalBlockChance2[80,80] {variant:3}UniqueLocalBlockChance2 UniqueLocalIncreasedPhysicalDamageReductionRatingPercent2 @@ -47,8 +41,6 @@ Rampart Tower Shield Variant: Pre 0.1.1 Variant: Pre 0.3.0 Variant: Current -Implicits: 1 -Grants Skill: Raise Shield {variant:1,2}UniqueLocalBlockChance1[30,40] {variant:3}UniqueLocalBlockChance1 UniqueLocalIncreasedPhysicalDamageReductionRatingPercent1 @@ -59,8 +51,6 @@ UniqueDoubleAccuracyRating1 Nightfall Fortress Tower Shield League: Runes of Aldur -Implicits: 1 -Grants Skill: Raise Shield UniqueStrengthRequirements5 UniqueLocalBlockChance15 UniqueLocalIncreasedPhysicalDamageReductionRatingPercent31 @@ -73,8 +63,6 @@ Heraldric Tower Shield Variant: Pre 0.3.0 Variant: Current League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Raise Shield {variant:1}UniqueLocalBlockChance14[20,30] {variant:2}UniqueLocalBlockChance14 UniqueLocalIncreasedPhysicalDamageReductionRatingPercent27 @@ -87,8 +75,6 @@ The Surrender {variant:2}Vaal Tower Shield Variant: Pre 0.4.0 Variant: Current -Implicits: 1 -Grants Skill: Raise Shield UniqueLocalBlockChance7 UniqueLocalIncreasedPhysicalDamageReductionRatingPercent20 UniqueStunThreshold12 @@ -101,9 +87,7 @@ Variant: Pre 0.4.0 Variant: Pre 0.5.0 Variant: Current Source: Drops from unique{Olroth, Origin of the Fall} -Implicits: 2 -Grants Skill: Raise Shield -Grants Skill: Cast on Block +UniqueGrantsCastOnBlock1 {variant:1}UniqueLocalIncreasedPhysicalDamageReductionRatingPercent24[100,150] {variant:2}UniqueLocalIncreasedPhysicalDamageReductionRatingPercent24[150,200] {variant:3,4}UniqueLocalIncreasedPhysicalDamageReductionRatingPercent24 @@ -116,8 +100,6 @@ UniqueLuckyBlockChance1 The Wailing Wall Effigial Tower Shield Source: No longer obtainable -Implicits: 1 -Grants Skill: Raise Shield UniqueMovementVelocity6 UniqueLocalIncreasedPhysicalDamageReductionRatingPercent2 UniqueStunThreshold9 @@ -126,8 +108,6 @@ UniqueDisableShieldSkills1 Window to Paradise Barricade Tower Shield League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Raise Shield UniqueLocalIncreasedPhysicalDamageReductionRatingPercent25 UniqueIncreasedMana47 UniqueAllResistances24 @@ -135,8 +115,6 @@ UniqueRaiseShieldApplyExposure1 ]],[[ Wulfsbane Painted Tower Shield -Implicits: 1 -Grants Skill: Raise Shield UniqueIncreasedLife3 UniqueStrength3 UniqueStunThreshold7 @@ -149,8 +127,6 @@ Iron Buckler Variant: Pre 0.3.0 Variant: Current League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Parry {variant:1}UniqueLocalBlockChance14[20,30] {variant:2}UniqueLocalBlockChance14 UniqueChaosResist31 @@ -160,8 +136,6 @@ UniqueApplyCorruptedBloodOnBlock1 Calgyra's Arc Ornate Buckler League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Parry UniqueLocalIncreasedEvasionRatingPercent28 UniqueIncreasedMana12 UniqueIntelligence6 @@ -173,8 +147,6 @@ Leather Buckler Variant: Pre 0.3.0 Variant: Current League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Parry {variant:1}UniqueLocalBlockChance10[30,50] {variant:2}UniqueLocalBlockChance10 UniqueLocalIncreasedEvasionRating6 @@ -184,8 +156,6 @@ UniqueParriedDebuffMagnitude1 Kaltenhalt Ridged Buckler League: Rise of the Abyssal -Implicits: 1 -Grants Skill: Parry UniqueLocalIncreasedEvasionRatingPercent15 MaximumColdResistUniqueShieldDex1 UniqueColdResist15 @@ -196,8 +166,6 @@ UniqueAttackerTakesColdDamage1 Nocturne Wooden Buckler League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Parry UniqueIncreasedMana44 UniqueAllResistances25 UniqueIncreasedAccuracyPercent1 @@ -207,8 +175,6 @@ UniqueParriedDebuffDuration2 Rondel de Ezo Plated Buckler League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Parry UniqueLocalIncreasedEvasionRatingPercent27 UniqueDexterity2 UniqueLifeRegeneration24 @@ -218,8 +184,6 @@ UniqueEnfeebleOnBlockChance1 Silverthorne Spiked Buckler League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Parry UniqueLocalIncreasedEvasionRatingPercent29 UniqueAllResistances19 UniqueCriticalWeaknessOnParry1 @@ -243,8 +207,6 @@ Variant: Level: 1 Cold, 2 Fire, 3 Lightning Variant: Level: 3 Cold, 2 Fire, 1 Lightning Variant: Level: 1 Cold, 3 Fire, 2 Lightning Variant: Level: 2 Cold, 3 Fire, 1 Lightning -Implicits: 1 -Grants Skill: Parry UniqueLocalIncreasedEvasionRatingPercent25 {variant:1}UniqueMaximumElementalResistances1 {variant:2}UniqueMaximumElementalResistances2 @@ -267,8 +229,6 @@ Arvil's Wheel Hardwood Targe Variant: Pre 0.1.1 Variant: Current -Implicits: 1 -Grants Skill: Raise Shield {variant:1}UniqueLocalBlockChance8 UniqueLocalIncreasedArmourAndEvasion2 {variant:2}UniqueIncreasedLife43 @@ -280,8 +240,6 @@ UniqueSkillEffectDuration1 Eyes of the Runefather Venerable Defender League: Runes of Aldur -Implicits: 1 -Grants Skill: Raise Shield UniqueLocalIncreasedArmourAndEvasion32 UniqueColdResist36 UniqueAncientsChallengeOnOffHandDamage1 @@ -291,8 +249,6 @@ Feathered Fortress Crescent Targe Variant: Pre 0.1.1 Variant: Current -Implicits: 1 -Grants Skill: Raise Shield {variant:1}UniqueStrength18[10,20] {variant:2}UniqueStrength18 {variant:1}UniqueDexterity18[10,20] @@ -307,8 +263,6 @@ Merit of Service Pelage Targe Variant: Pre 0.3.0 Variant: Current -Implicits: 1 -Grants Skill: Raise Shield {variant:1}UniqueLocalBlockChance4[30,50] {variant:2}UniqueLocalBlockChance4 UniqueLocalIncreasedArmourAndEvasion11 @@ -322,8 +276,6 @@ Blazon Crest Shield Variant: Pre 0.1.1 Variant: Pre 0.3.0 Variant: Current -Implicits: 1 -Grants Skill: Raise Shield {variant:1,2}UniqueLocalBlockChance1[30,40] {variant:3}UniqueLocalBlockChance1 UniqueLocalIncreasedArmourAndEnergyShield2 @@ -333,8 +285,6 @@ UniqueDamageBlockedRecoupedAsMana1 ]],[[ Crest of Ardura Jingling Crest Shield -Implicits: 1 -Grants Skill: Raise Shield UniqueLocalIncreasedArmourAndEnergyShield14 UniqueIntelligence6 UniqueManaRegeneration3 @@ -346,8 +296,6 @@ Variant: Pre 0.2.0 Variant: Pre 0.4.0 Variant: Current Source: Drops from unique{Trialmaster} in normal{The Trial of Chaos} -Implicits: 1 -Grants Skill: Raise Shield UniqueLocalIncreasedArmourAndEnergyShield16 {variant:1}UniqueLocalSoulCoreEffect1[333,666] {variant:2}UniqueLocalSoulCoreEffect1[100,100] @@ -359,8 +307,6 @@ Variant: Pre 0.2.0 Variant: Pre 0.3.0 Variant: Current Sigil Crest Shield -Implicits: 1 -Grants Skill: Raise Shield {variant:1,2}UniqueLocalBlockChance5[40,60] {variant:3}UniqueLocalBlockChance5 UniqueLocalIncreasedArmourAndEnergyShield10 @@ -370,25 +316,20 @@ UniqueChaosResist1 ]],[[ Prism Guardian Sectarian Crest Shield -Requires Level 65 League: Dawn of the Hunt Variant: Pre 0.2.1 Variant: Pre 0.4.0 Variant: Current -Implicits: 1 -Grants Skill: Raise Shield UniqueLocalIncreasedArmourAndEnergyShield22 {variant:3}UniqueIncreasedSpirit14 UniqueDexterity37 -UniqueAllResistances26 +UniqueAllResistances23 {variant:1}UniqueSpiritPerMaximumLife1[50,50] {variant:2}UniqueSpiritPerMaximumLife1[25,25] {variant:3}UniqueBuffSkillSpiritEfficiencyPerMaximumLife1 ]],[[ Rise of the Phoenix Omen Crest Shield -Implicits: 1 -Grants Skill: Raise Shield UniqueMaximumFireResist2 UniqueFireResist16 UniqueFireResistOnLowLife1 @@ -397,9 +338,6 @@ UniqueLifeRegenerationPercentOnLowLife1 ]],[[ Saffell's Frame Emblem Crest Shield -Requires Level 16 -Implicits: 1 -Grants Skill: Raise Shield UniqueFireResist6 UniqueColdResist5 UniqueLightningResist2 diff --git a/src/Export/Uniques/spear.lua b/src/Export/Uniques/spear.lua index ece47ca8e1..593ab1665a 100644 --- a/src/Export/Uniques/spear.lua +++ b/src/Export/Uniques/spear.lua @@ -7,9 +7,7 @@ Atziri's Contempt Pronged Spear Source: Drops from unique{Atziri's Vault} in normal{Vaal Temple} League: Fate of the Vaal -Implicits: 2 -Grants Skill: Spear Throw -Grants Skill: Level (1-20) Shattering Spite +UniqueShatteringSpiteSkill1 UniqueLocalIncreasedPhysicalDamagePercent20 UniqueLocalAddedFireDamage8 UniqueLocalAddedLightningDamage8 @@ -20,9 +18,6 @@ UniqueSpearsInflictBloodstoneLanceOnHit1 Chainsting Hunting Spear League: Dawn of the Hunt -Implicits: 2 -Grants Skill: Spear Throw -SpearImplicitLocalChanceToMaim1 UniqueLocalAddedPhysicalDamage19 UniqueLocalIncreasedAccuracy7 UniqueLocalIncreasedAttackSpeed1 @@ -32,9 +27,6 @@ UniqueLocalIncreasedProjectileSpeed1 Daevata's Wind War Spear League: Dawn of the Hunt -Implicits: 2 -Grants Skill: Spear Throw -SpearImplicitLocalProjectileSpeed1 UniqueLocalAddedPhysicalDamage22 UniqueIncreasedEvasionRating4 UniqueLocalIncreasedAttackSpeed20 @@ -44,10 +36,7 @@ UniqueProjectileDamageIfMeleeHitRecently1 The Ordained Grand Spear League: Runes of Aldur -Implicits: 3 -Grants Skill: Spear Throw -Grants Skill: Level (1-20) Righteous Descent -SpearImplicitWeaponRange1 +UniqueRighteousDescentSkill1 UniqueLocalIncreasedPhysicalDamagePercent21 UniqueLocalAddedLightningDamage11 UniqueLocalCriticalStrikeChance10 @@ -57,8 +46,6 @@ UniqueDivineFragments1 Saitha's Spear Barbed Spear League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Spear Throw UniqueLocalAddedPhysicalDamage20 UniqueLocalAddedFireDamage1 UniqueLocalChanceToBleed2 @@ -70,8 +57,6 @@ Hardwood Spear League: Dawn of the Hunt Variant: Pre 0.3.0 Variant: Current -Implicits: 1 -Grants Skill: Spear Throw UniqueLocalAddedPhysicalDamage3 {variant:2}DealNoElementalDamageUnique__3 UniqueLocalWeaponRangeIncrease1 @@ -81,8 +66,6 @@ UniqueLocalPoisonOnHit1 Skysliver Winged Spear League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Spear Throw UniqueLocalNoWeaponPhysicalDamage1 UniqueLocalAddedLightningDamage1 UniqueLocalIncreasedAttackSpeed3 @@ -94,9 +77,7 @@ Helix Spear League: Dawn of the Hunt Variant: Pre 0.2.1 Variant: Current -Implicits: 2 -Grants Skill: Spear Throw -Grants Skill: Level (1-20) Chaotic Surge +UniqueGrantsChaosInfusion1 UniqueLocalIncreasedAttackSpeed21 {variant:1}UniqueLifeLeechLocal3[6,10] {variant:2}UniqueLifeLeechLocal3 @@ -110,8 +91,6 @@ Forked Spear Variant: Pre 0.3.0 Variant: Current League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Spear Throw UniqueLocalAddedPhysicalDamage21 {variant:1}UniqueLocalCriticalStrikeChance8[1000,2000] {variant:2}UniqueLocalCriticalStrikeChance8 @@ -122,8 +101,6 @@ UniqueLifeCost2 Tyranny's Grip Ironhead Spear League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Spear Throw UniqueLocalIncreasedPhysicalDamagePercent12 UniqueLocalIncreasedAttackSpeed16 UniqueStrength38 diff --git a/src/Export/Uniques/staff.lua b/src/Export/Uniques/staff.lua index 1639401c25..75496c767a 100644 --- a/src/Export/Uniques/staff.lua +++ b/src/Export/Uniques/staff.lua @@ -7,8 +7,6 @@ Atziri's Rule Reflecting Staff Source: Drops from unique{Atziri's Vault} in normal{Vaal Temple} League: Fate of the Vaal -Implicits: 1 -Grants Skill: Level (1-20) Mirror of Refraction UniqueMaximumLifeIncrease8 UniqueGlobalCorruptedSpellSkillLevel1 UniqueIncreasedCastSpeed20 @@ -18,8 +16,6 @@ UniqueSpellsThatCostLifeGainDamageAsExtraPhys1 The Burden of Shadows Chiming Staff Source: Drops from unique{The King in the Mists} in normal{Crux of Nothingness} -Implicits: 1 -Grants Skill: Level (1-20) Sigil of Power UniqueIncreasedCastSpeed11 UniqueLifeCost1 UniqueDamageGainedAsChaosPerCost1 @@ -28,9 +24,6 @@ Dusk Vigil Ashen Staff Variant: Pre 0.4.0 Variant: Current -Implicits: 2 -Grants Skill: Level (1-20) Firebolt -Grants Skill: Level (1-20) Ember Fusillade {variant:2}UniqueDamageGainedAsFire3 {variant:1}UniqueSpellDamageOnWeapon3[60,80] {variant:2}UniqueSpellDamageOnWeapon3 @@ -42,9 +35,6 @@ Earthbound Voltaic Staff Variant: Pre 0.4.0 Variant: Current -Implicits: 2 -Grants Skill: Level (1-20) Lightning Bolt -Grants Skill: Level (1-20) Spark {variant:1}UniqueLightningDamageOnWeapon1 {variant:2}UniqueSpellDamageOnWeapon11 UniqueIncreasedCastSpeed4 @@ -55,8 +45,6 @@ UniqueTriggerSparkOnKillingShockedEnemy1 The Raven's Flock Perching Staff League: Runes of Aldur -Implicits: 1 -Grants Skill: Level (1-20) Spiraling Conspiracy UniqueIncreasedCastSpeed22 UniqueIntelligence47 UniqueMinionDamage3 @@ -67,8 +55,6 @@ The Searing Touch Pyrophyte Staff Variant: Pre 0.4.0 Variant: Current -Implicits: 1 -Grants Skill: Level (1-20) Living Bomb UniqueFireDamageOnWeapon1 UniqueIncreasedCastSpeed4 UniqueIgniteChanceIncrease1 @@ -78,8 +64,6 @@ UniqueIgniteEffect2 Sire of Shards Chiming Staff League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Level (1-20) Sigil of Power UniqueSpellDamageOnWeapon7 UniqueIncreasedCastSpeed4 UniqueAllResistances22 @@ -90,8 +74,6 @@ Taryn's Shiver Gelid Staff Variant: Pre 0.4.0 Variant: Current -Implicits: 1 -Grants Skill: Level (1-20) Freezing Shards {variant:1}UniqueColdDamageOnWeapon1 {variant:2}UniqueSpellDamageOnWeapon10 UniqueIncreasedCastSpeed4 @@ -105,9 +87,7 @@ Permafrost Staff League: Dawn of the Hunt Variant: Pre 0.4.0 Variant: Current -Implicits: 2 -Grants Skill: Level (1-20) Heart of Ice -Grants Skill: Level (1-20) Icestorm +UniqueGrantsIcestormSkill {variant:1}UniqueGlobalColdSpellGemsLevel1[2,4] {variant:2}UniqueGlobalColdSpellGemsLevel1 UniqueIncreasedCastSpeed16 @@ -141,8 +121,6 @@ UniqueTriggersRefundEnergySpent1 Duality Warding Quarterstaff League: Runes of Aldur -Implicits: 1 -QuarterstaffImplicitRunicWard1 UniqueLocalIncreasedPhysicalDamagePercent25 UniqueLocalCriticalMultiplier3 UniqueLocalIncreasedAttackSpeed32 @@ -176,8 +154,6 @@ Pillar of the Caged God Variant: Pre 0.2.0 Variant: Current Long Quarterstaff -Implicits: 1 -QuarterstaffWeaponRange1 {variant:1}UniqueAttackAreaOfEffectPerIntelligence1[2,2] {variant:2}UniqueAttackAreaOfEffectPerIntelligence1 {variant:1}UniqueAttackSpeedPerDexterity1[2,2] @@ -218,15 +194,13 @@ Variant: Chaos Damage and Curse Variant: Spell Physical Damage and Bleed Chance Variant: Chaos Damage and Explode Variant: Unholy Might -Implicits: 1 -Grants Skill: Level (1-20) Feast of Flesh UniqueDesecratedModEffect1 -{variant:1}Grants Skill: Level (1-20) His Dark Horizon -{variant:2}Grants Skill: Level (1-20) His Foul Emergence -{variant:3}Grants Skill: Level (1-20) His Grave Command -{variant:4}Grants Skill: Level (1-20) His Scattering Calamity -{variant:5}Grants Skill: Level (1-20) His Vile Intrusion -{variant:6}Grants Skill: Level (1-20) His Winnowing Flame +{variant:1}UniqueKulemakHisDarkHorizon_1 +{variant:2}UniqueKulemakHisFoulEmergence_1 +{variant:3}UniqueKulemakHisGraveCommand_1 +{variant:4}UniqueKulemakHisScatteringCalamity_1 +{variant:5}UniqueKulemakHisVileIntrusion_1 +{variant:6}UniqueKulemakHisWinnowingFlame_1 {variant:7}UniqueKulemakElementalDamageEleAilmentDuration_1 {variant:8}UniqueKulemakSpiritAndSpiritReservationEfficiency_1 {variant:9}UniqueKulemakChaosDamageCurseLowersChaosRes_1 diff --git a/src/Export/Uniques/talisman.lua b/src/Export/Uniques/talisman.lua index bb08740121..116b84850b 100644 --- a/src/Export/Uniques/talisman.lua +++ b/src/Export/Uniques/talisman.lua @@ -24,9 +24,7 @@ UniqueGainAModifierFromEachEnemyInPresenceOnShapeshift1 Fury of the King Ashbark Talisman League: Fate of the Vaal -Implicits: 2 -Grants Skill: Level (1-20) Molten Crash -TalismanImplicitFireDamageAndFlammability1 +UniqueVesselOfWrathSkill1 UniqueLocalAddedFireDamage7 UniqueLocalIncreasedAttackSpeed26 UniqueStrength46 @@ -37,20 +35,17 @@ UniqueEnemiesInPresenceHaveFireExposure1 Hysseg's Claw Familial Talisman League: Fate of the Vaal -Implicits: 2 -Grants Skill: Level (1-20) Cackling Companions -TalismanImplicitMinionDamage1 +UniqueCacklingCompanionSkill1 UniqueLocalIncreasedPhysicalDamagePercent17 UniqueMovementVelocity26 UniqueStrength40 -UniqueIntelligence45 +UniqueIntelligence44 UniqueDamagePerMinion1 ]],[[ Spiteful Floret Nettle Talisman League: Runes of Aldur -Implicits: 1 -Grants Skill: Level (1-20) Sanguine Revelry +UniqueSanguineRevelrySkill1 UniqueLocalIncreasedPhysicalDamagePercent23 UniqueLocalIncreasedAttackSpeed29 UniqueStrength48 diff --git a/src/Export/Uniques/wand.lua b/src/Export/Uniques/wand.lua index af32b3496f..fdf8ec86fb 100644 --- a/src/Export/Uniques/wand.lua +++ b/src/Export/Uniques/wand.lua @@ -6,10 +6,7 @@ return { Adonia's Ego Siphoning Wand League: Dawn of the Hunt -Requires Level 65 -Implicits: 2 -Grants Skill: Level (1-20) Power Siphon -Grants Skill: Level 20 Pinnacle of Power +UniqueGrantsElementalPowerSkill UniqueIncreasedMana52 UniqueGlobalSpellGemsLevel2 UniqueIncreasedCastSpeed17 @@ -18,15 +15,12 @@ UniqueMaximumPowerChargesWand_1 ]],[[ Cursecarver Acrid Wand -Requires Level 33 League: Dawn of the Hunt Variant: Elemental Weakness Variant: Vulnerability Variant: Despair Variant: Enfeeble Variant: Temporal Chains -Implicits: 1 -Grants Skill: Level (1-20) Decompose UniqueSpellDamageOnWeapon8 UniqueIncreasedCastSpeed15 UniqueManaRegeneration30 @@ -39,8 +33,6 @@ UniqueLifeGainedFromEnemyDeath10 ]],[[ Enezun's Charge Volatile Wand -Implicits: 1 -Grants Skill: Level (1-20) Volatile Dead UniqueSpellDamageOnWeapon2 UniqueSpellCriticalStrikeChance2 UniqueManaGainedFromEnemyDeath9 @@ -48,8 +40,6 @@ UniqueChanceToNotConsumeCorpse1 ]],[[ Lifesprig Attuned Wand -Implicits: 1 -Grants Skill: Level (1-20) Mana Drain UniqueIncreasedMana1 UniqueGlobalSpellGemsLevel1 UniqueIncreasedCastSpeed1 @@ -58,8 +48,6 @@ UniqueLeechLifeOnSpellCast1 Liminal Coil Twisted Wand League: Runes of Aldur -Implicits: 1 -Grants Skill: Level (1-20) Coiling Bolts UniqueSpellDamageOnWeapon12 UniqueIncreasedCastSpeed21 UniqueCurseMagnitudeIsZero1 @@ -71,15 +59,12 @@ Runeseeker's Call Runic Fork League: Runes of Aldur Sockets: S S S S S -Implicits: 1 -Grants Skill: Level (1-20) The Stars Answer +UniqueTheStarsAnswerSkill1 UniqueOnlySocketRunes1 UniqueLocalIncreasedRuneEffect1 ]],[[ Sanguine Diviner Bone Wand -Implicits: 1 -Grants Skill: Level (1-20) Bone Blast UniqueSpellDamageOnWeapon2 UniqueLifeGainedFromEnemyDeath7 UniqueGlobalChanceToBleed3 @@ -88,8 +73,6 @@ UniqueSpellLifeCostPercent1 The Wicked Quill Withered Wand League: Dawn of the Hunt -Implicits: 1 -Grants Skill: Level (1-20) Chaos Bolt UniqueSpellDamageOnWeapon6 UniqueIncreasedMana12 UniqueChaosResist29 diff --git a/src/Export/spec.lua b/src/Export/spec.lua index faaef357a8..7a0ebd8585 100644 --- a/src/Export/spec.lua +++ b/src/Export/spec.lua @@ -40589,7 +40589,7 @@ return { }, [2]={ list=false, - name="Skill Gem", + name="SkillGem", refTo="SkillGems", type="Key", width=400