Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new Ultimatum uniques, implemented Tecrod's Gaze #2461

Merged
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 86 additions & 2 deletions src/Data/Uniques/Special/New.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,91 @@
data.uniques.new = {

-- New

[[
Mahuxotl's Machination
Steel Kite Shield
Requires Level 46, 60 Str, 60 Int
Implicits: 1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Implicits: 1

You'll have to remove this line as well.

Chance to Block: 26%
Wires77 marked this conversation as resolved.
Show resolved Hide resolved
Corrupted Soul
Divine Flesh
Eternal Youth
Everlasting Sacrifice
Immortal Ambition
Vaal Pact
]],[[
Glimpse of Chaos
Vaal Mask
Requires Level 62, 79 Dex, 72 Int
Implicits: 1
Nearby Enemies are Crushed
Can be modified while Corrupted
32% increased maximum Life and reduced Fire Resistance
32% increased maximum Mana and reduced Cold Resistance
31% increased Global maximum Energy Shield and reduced Lightning Resistance
Chaos Resistance is Zero
Corrupted
]],[[
Atziri's Rule
Judgement Staff
Requires Level 68, 113 Str, 113 Int
Implicits: 1
+20% Chance to Block Spell Damage while wielding a Staff
Grants Level 20 Queen's Demand Skill
Queen's Demand can Trigger Level 20 Flames of Judgement
Queen's Demand can Trigger Level 20 Storm of Judgement
Cannot be Stunned
Damage cannot be Reflected
]],[[
Tecrod's Gaze
Murderous Eye Jewel
Requires Level 40
+10 to Strength
20% increased Main Hand Critical Strike Chance per Murderous Eye Jewel affecting you, up to a maximum of 100%
+10% to Off Hand Critical Strike Multiplier per Murderous Eye Jewel affecting you, up to a maximum of +50%
]],[[
Cane of Kulemak
Serpentine Staff
Requires Level 68, 85 Str, 85 Int
Implicits: 1
+20% Chance to Block Attack Damage while wielding a Staff
61% increased Unveiled Modifier magnitudes
]],[[
The Scales of Justice
Chiming Spirit Shield
Requires Level 49, 118 Int
Implicits: 1
Chance to Block: 23%
Wires77 marked this conversation as resolved.
Show resolved Hide resolved
13% increased Spell Damage
Has no Energy Shield
+54 to maximum Life
+46 to maximum Mana
3 to 7 added Fire Damage per 100 of Maximum Life or Maximum Mana, whichever is lower
Unaffected by Ignite or Shock if Maximum Life and Maximum Mana are within 500
]],[[
Ulaman's Gaze
Searching Eye Jewel
Wires77 marked this conversation as resolved.
Show resolved Hide resolved
+14 to Dexterity
Projectiles have 4% chance to be able to Chain when colliding with terrain per Searching Eye Jewel affecting you, up to a maximum of 20%
]]
-- Reworked

[[
Atziri's Reign
Crimson Jewel
Limited to: 1
17% increased Vaal Skill Effect Duration
Vaal Skills have 20% chance to regain consumed Souls when used
Corrupted
]],[[
Atziri's Splendour
Sacrificial Garb
Requires Level 75, 66 Str, 66 Dex, 66 Int
Implicits: 1
+1 to Level of all Vaal Skill Gems
202% increased Evasion and Energy Shield
+72 to maximum Energy Shield
+20% to all Elemental Resistances
+100 Life gained on Kill
+100 Mana gained on Kill
]],
}
1 change: 1 addition & 0 deletions src/Modules/CalcSetup.lua
Original file line number Diff line number Diff line change
Expand Up @@ -588,6 +588,7 @@ function calcs.initEnv(build, mode, override, specEnv)
env.itemModDB.conditions[cond.."In"..slot.parentSlot.slotName] = true
end
env.itemModDB.multipliers["AbyssJewel"] = (env.itemModDB.multipliers["AbyssJewel"] or 0) + 1
env.itemModDB.multipliers[item.baseName:gsub(" ","")] = (env.itemModDB.multipliers[item.baseName:gsub(" ","")] or 0) + 1
end
if item.type == "Shield" and env.allocNodes[45175] and env.allocNodes[45175].dn == "Necromantic Aegis" then
-- Special handling for Necromantic Aegis
Expand Down
20 changes: 15 additions & 5 deletions src/Modules/ModParser.lua
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ local band = bit.band
local bor = bit.bor
local bnot = bit.bnot

local function upperCaseFirstLetter(str)
Wires77 marked this conversation as resolved.
Show resolved Hide resolved
return (str:gsub("^%l", string.upper))
end

local conquerorList = {
["xibaqua"] = {id = 1, type = "vaal"},
["zerphi"] = {id = 2, type = "vaal"},
Expand Down Expand Up @@ -899,6 +903,7 @@ local modTagList = {
["per abyssa?l? jewel affecting you"] = { tag = { type = "Multiplier", var = "AbyssJewel" } },
["for each herald s?k?i?l?l? ?affecting you"] = { tag = { type = "Multiplier", var = "Herald" } },
["for each type of abyssa?l? jewel affecting you"] = { tag = { type = "Multiplier", var = "AbyssJewelType" } },
["per (.+) eye jewel affecting you, up to a maximum of %+?(%d+)%%"] = function(type, _, num) return { tag = { type = "Multiplier", var = upperCaseFirstLetter(type) .. "EyeJewel", limit = tonumber(num), limitTotal = true } } end,
["per sextant affecting the area"] = { tag = { type = "Multiplier", var = "Sextant" } },
["per buff on you"] = { tag = { type = "Multiplier", var = "BuffOnSelf" } },
["per curse on enemy"] = { tag = { type = "Multiplier", var = "CurseOnEnemy" } },
Expand Down Expand Up @@ -1326,9 +1331,6 @@ local function triggerExtraSkill(name, level, noSupports)
}
end
end
local function upperCaseFirstLetter(str)
return (str:gsub("^%l", string.upper))
end

-- List of special modifiers
local specialModList = {
Expand Down Expand Up @@ -3287,12 +3289,20 @@ local function parseMod(line, order)
local modTag, modTag2, tagCap
modTag, line, tagCap = scan(line, modTagList)
if type(modTag) == "function" then
modTag = modTag(tonumber(tagCap[1]), unpack(tagCap))
if tagCap[1]:match("%d+") then
modTag = modTag(tonumber(tagCap[1]), unpack(tagCap))
else
modTag = modTag(tagCap[1], unpack(tagCap))
end
end
if modTag then
modTag2, line, tagCap = scan(line, modTagList)
if type(modTag2) == "function" then
modTag2 = modTag2(tonumber(tagCap[1]), unpack(tagCap))
if tagCap[1]:match("%d+") then
modTag2 = modTag2(tonumber(tagCap[1]), unpack(tagCap))
else
modTag2 = modTag2(tagCap[1], unpack(tagCap))
end
end
end

Expand Down