Release 1.4.40
- Added support for Manifest Dancing Dervish - Added dual wielding bones to Animated Guardian - Fixed missing noSupports tags on glove enchantments
This commit is contained in:
@@ -599,6 +599,14 @@ for name, grantedEffect in pairs(data["2_6"].skills) do
|
||||
gemNameLookup[grantedEffect.name:lower()] = grantedEffect.id
|
||||
end
|
||||
end
|
||||
local function extraSkill(name, level, noSupports)
|
||||
name = name:gsub(" skill","")
|
||||
if gemNameLookup[name] then
|
||||
return {
|
||||
mod("ExtraSkill", "LIST", { name = gemNameLookup[name], level = level, noSupports = noSupports })
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
-- List of special modifiers
|
||||
local specialModList = {
|
||||
@@ -705,6 +713,7 @@ local specialModList = {
|
||||
["enemies you taunt take (%d+)%% increased damage"] = function(num) return { mod("EnemyModifier", "LIST", { mod = mod("DamageTaken", "INC", num, { type = "Condition", var = "Taunted" }) }) } end,
|
||||
["you have phasing while at maximum frenzy charges"] = { flag("Condition:Phasing", { type = "Condition", var = "AtMaxFrenzyCharges" }) },
|
||||
["you have phasing while you have onslaught"] = { flag("Condition:Phasing", { type = "Condition", var = "Onlaught" }) },
|
||||
["you have onslaught while on full frenzy charges"] = { flag("Condition:Phasing", { type = "Condition", var = "AtMaxFrenzyCharges" }) },
|
||||
["your minions spread caustic cloud on death, dealing 10%% of their maximum life as chaos damage per second"] = { flag("MinionCausticCloudOnDeath") },
|
||||
["you and your minions have (%d+)%% physical damage reduction"] = function(num) return { mod("PhysicalDamageReduction", "BASE", num), mod("MinionModifier", "LIST", { mod = mod("PhysicalDamageReduction", "BASE", num) }) } end,
|
||||
-- Item local modifiers
|
||||
@@ -735,25 +744,23 @@ local specialModList = {
|
||||
["socketed gems gain (%d+)%% of physical damage as extra lightning damage"] = function(num) return { mod("PhysicalDamageGainAsLightning", "BASE", num, { type = "SocketedIn" }) } end,
|
||||
["socketed red gems get (%d+)%% physical damage as extra fire damage"] = function(num) return { mod("PhysicalDamageGainAsFire", "BASE", num, { type = "SocketedIn", keyword = "strength" }) } end,
|
||||
-- Extra skill/support
|
||||
["grants level (%d+) (.+)"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["casts level (%d+) (.+) when equipped"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["cast level (%d+) (.+) when you deal a critical strike"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["cast level (%d+) (.+) when hit"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["cast level (%d+) (.+) when you kill an enemy"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["cast (.+) on hit"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["attack with (.+) on hit"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["cast (.+) when hit"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["attack with (.+) when hit"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["cast (.+) on kill"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["attack with (.+) on kill"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["cast (.+) when your skills or minions kill"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["attack with (.+) when you take a critical strike"] = function( _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1 }) } end,
|
||||
["%d+%% chance to attack with level (%d+) (.+) on melee hit"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["%d+%% chance to cast level (%d+) (.+) on hit"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["%d+%% chance to cast level (%d+) (.+) on kill"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["attack with level (%d+) (.+) when you kill a bleeding enemy"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill:gsub(" skill","")] or "Unknown", level = num }) } end,
|
||||
["curse enemies with (%D+) on %a+"] = function(_, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = 1, noSupports = true }) } end,
|
||||
["curse enemies with level (%d+) (.+) on %a+"] = function(num, _, skill) return { mod("ExtraSkill", "LIST", { name = gemNameLookup[skill] or "Unknown", level = num, noSupports = true }) } end,
|
||||
["grants level (%d+) (.+)"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["casts level (%d+) (.+) when equipped"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["casts level (%d+) (.+) on %a+"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["cast level (%d+) (.+) when you deal a critical strike"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["cast level (%d+) (.+) when hit"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["cast level (%d+) (.+) when you kill an enemy"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["%d+%% chance to attack with level (%d+) (.+) on melee hit"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["%d+%% chance to cast level (%d+) (.+) on %a+"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["attack with level (%d+) (.+) when you kill a bleeding enemy"] = function(num, _, skill) return extraSkill(skill, num) end,
|
||||
["curse enemies with (%D+) on %a+"] = function(_, skill) return extraSkill(skill, 1, true) end,
|
||||
["curse enemies with level (%d+) (.+) on %a+"] = function(num, _, skill) return extraSkill(skill, num, true) end,
|
||||
["cast (.+) on %a+"] = function(_, skill) return extraSkill(skill, 1, true) end,
|
||||
["attack with (.+) on %a+"] = function(_, skill) return extraSkill(skill, 1, true) end,
|
||||
["cast (.+) when hit"] = function(_, skill) return extraSkill(skill, 1, true) end,
|
||||
["attack with (.+) when hit"] = function(_, skill) return extraSkill(skill, 1, true) end,
|
||||
["cast (.+) when your skills or minions kill"] = function(_, skill) return extraSkill(skill, 1, true) end,
|
||||
["attack with (.+) when you take a critical strike"] = function( _, skill) return extraSkill(skill, 1, true) end,
|
||||
["socketed [%a+]* ?gems a?r?e? ?supported by level (%d+) (.+)"] = function(num, _, support) return { mod("ExtraSupport", "LIST", { name = gemNameLookup[support] or gemNameLookup[support:gsub("^increased ","")] or "Unknown", level = num }, { type = "SocketedIn" }) } end,
|
||||
-- Conversion
|
||||
["increases and reductions to minion damage also affects? you"] = { flag("MinionDamageAppliesToPlayer") },
|
||||
@@ -911,19 +918,22 @@ local specialModList = {
|
||||
["attacks have blood magic"] = { flag("SkillBloodMagic", nil, ModFlag.Attack) },
|
||||
["(%d+)%% chance to cast a? ?socketed lightning spells? on hit"] = function(num) return { mod("ExtraSupport", "LIST", { name = "SupportUniqueMjolnerLightningSpellsCastOnHit", level = 1 }, { type = "SocketedIn" }) } end,
|
||||
["cast a socketed lightning spell on hit"] = { mod("ExtraSupport", "LIST", { name = "SupportUniqueMjolnerLightningSpellsCastOnHit", level = 1 }, { type = "SocketedIn" }) },
|
||||
["socketed lightning spells have (%d+)%% increased spell damage if triggered"] = { },
|
||||
["cast a socketed cold s[pk][ei]ll on melee critical strike"] = { mod("ExtraSupport", "LIST", { name = "SupportUniqueCosprisMaliceColdSpellsCastOnMeleeCriticalStrike", level = 1 }, { type = "SocketedIn" }) },
|
||||
["your curses can apply to hexproof enemies"] = { flag("CursesIgnoreHexproof") },
|
||||
["you have onslaught while you have fortify"] = { flag("Condition:Onslaught", { type = "Condition", var = "Fortify" }) },
|
||||
["reserves (%d+)%% of life"] = function(num) return { mod("ExtraLifeReserved", "BASE", num) } end,
|
||||
["items and gems have (%d+)%% reduced attribute requirements"] = function(num) return { mod("GlobalAttributeRequirements", "INC", -num) } end,
|
||||
["prefixes:"] = { },
|
||||
["suffixes:"] = { },
|
||||
-- Skill-specific enchantment modifiers
|
||||
["(%d+)%% increased decoy totem life"] = function(num) return { mod("TotemLife", "INC", num, { type = "SkillName", skillName = "Decoy Totem" }) } end,
|
||||
["(%d+)%% increased ice spear critical strike chance in second form"] = function(num) return { mod("CritChance", "INC", num, { type = "SkillName", skillName = "Ice Spear" }, { type = "SkillPart", skillPart = 2 }) } end,
|
||||
["(%d+)%% increased incinerate damage for each stage"] = function(num) return { mod("Damage", "INC", num * 3, { type = "SkillName", skillName = "Incinerate" }, { type = "SkillPart", skillPart = 2 }) } end,
|
||||
["shock nova ring deals (%d+)%% increased damage"] = function(num) return { mod("Damage", "INC", num, { type = "SkillName", skillName = "Shock Nova" }, { type = "SkillPart", skillPart = 1 }) } end,
|
||||
-- Display-only modifiers
|
||||
["prefixes:"] = { },
|
||||
["suffixes:"] = { },
|
||||
["socketed lightning spells have (%d+)%% increased spell damage if triggered"] = { },
|
||||
["manifest dancing dervish disables both weapon slots"] = { },
|
||||
["manifest dancing dervish dies when rampage ends"] = { },
|
||||
}
|
||||
local keystoneList = {
|
||||
-- List of keystones that can be found on uniques
|
||||
|
||||
Reference in New Issue
Block a user