Skip to content

Commit

Permalink
Add mods from Vixen's Entrapment, Embroidered Gloves
Browse files Browse the repository at this point in the history
- Increased cast speed with curse skills
- Added energy shield leech
- Updated Ghost Reaver (not 100% done)
  • Loading branch information
Markus Persson committed Mar 6, 2019
1 parent 7eed5c2 commit 353ce71
Show file tree
Hide file tree
Showing 7 changed files with 80 additions and 30 deletions.
9 changes: 9 additions & 0 deletions Data/New.lua
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,15 @@ Triggers Level 20 Lightning Aegis when Equipped
320% increased Evasion and Energy Shield
+47 to maximum Mana
6% increased Movement Speed
]],[[
Vixen's Entrapment
Embroidered Gloves
Requires Level: 36
+64 to maximum Energy Shield
You can apply an additional Curse
16% increased Cast Speed with Curse Skills
0.2% of Spell Damage Leeched as Energy Shield for each Curse on Enemy
Trigger Socketed Curse Spells when you cast a Curse
]],

}
23 changes: 11 additions & 12 deletions Modules/CalcDefence-3_0.lua
Original file line number Diff line number Diff line change
Expand Up @@ -206,24 +206,15 @@ function calcs.defence(env, actor)
output.EnergyShieldRecoveryRateMod = calcLib.mod(modDB, nil, "EnergyShieldRecovery", "EnergyShieldRecoveryRate")

-- Leech caps
if modDB:Flag(nil, "GhostReaver") then
output.MaxEnergyShieldLeechRate = output.EnergyShield * calcLib.val(modDB, "MaxLifeLeechRate") / 100
if breakdown then
breakdown.MaxEnergyShieldLeechRate = {
s_format("%d ^8(maximum energy shield)", output.EnergyShield),
s_format("x %d%% ^8(percentage of life to maximum leech rate)", modDB:Sum("BASE", nil, "MaxLifeLeechRate")),
s_format("= %.1f", output.MaxEnergyShieldLeechRate)
}
end
else
if not modDB:Flag(nil, "GhostReaver") then
output.MaxLifeLeechRate = output.Life * calcLib.val(modDB, "MaxLifeLeechRate") / 100
if breakdown then
breakdown.MaxLifeLeechRate = {
s_format("%d ^8(maximum life)", output.Life),
s_format("x %d%% ^8(percenage of life to maximum leech rate)", modDB:Sum("BASE", nil, "MaxLifeLeechRate")),
s_format("= %.1f", output.MaxLifeLeechRate)
}
end
end
end
output.MaxManaLeechRate = output.Mana * calcLib.val(modDB, "MaxManaLeechRate") / 100
if breakdown then
Expand All @@ -233,7 +224,15 @@ function calcs.defence(env, actor)
s_format("= %.1f", output.MaxManaLeechRate)
}
end

output.MaxEnergyShieldLeechRate = output.EnergyShield * calcLib.val(modDB, "MaxEnergyShieldLeechRate") / 100
if breakdown then
breakdown.MaxEnergyShieldLeechRate = {
s_format("%d ^8(maximum energy shield)", output.EnergyShield),
s_format("x %d%% ^8(percentage of energy shield to maximum leech rate)", modDB:Sum("BASE", nil, "MaxEnergyShieldLeechRate")),
s_format("= %.1f", output.MaxEnergyShieldLeechRate)
}
end

-- Mana, life and energy shield regen
if modDB:Flag(nil, "NoManaRegen") then
output.ManaRegen = 0
Expand Down
49 changes: 42 additions & 7 deletions Modules/CalcOffence-3_0.lua
Original file line number Diff line number Diff line change
Expand Up @@ -921,11 +921,14 @@ function calcs.offence(env, actor, activeSkill)
output.LifeLeechInstant = 0
output.ManaLeech = 0
output.ManaLeechInstant = 0
output.EnergyShieldLeech = 0
output.EnergyShieldLeechInstant = 0
for pass = 1, 2 do
-- Pass 1 is critical strike damage, pass 2 is non-critical strike
cfg.skillCond["CriticalStrike"] = (pass == 1)
local lifeLeechTotal = 0
local manaLeechTotal = 0
local energyShieldLeechTotal = 0
local noLifeLeech = skillModList:Flag(cfg, "CannotLeechLife") or enemyDB:Flag(nil, "CannotLeechLifeFromSelf")
local noManaLeech = skillModList:Flag(cfg, "CannotLeechMana") or enemyDB:Flag(nil, "CannotLeechManaFromSelf")
for _, damageType in ipairs(dmgTypeList) do
Expand Down Expand Up @@ -1023,6 +1026,11 @@ function calcs.offence(env, actor, activeSkill)
manaLeechTotal = manaLeechTotal + (min + max) / 2 * manaLeech / 100
end
end

local energyShieldLeech = skillModList:Sum("BASE", cfg, "DamageLeech", "DamageEnergyShieldLeech", damageType.."DamageEnergyShieldLeech", isElemental[damageType] and "ElementalDamageEnergyShieldLeech" or nil) + enemyDB:Sum("BASE", nil, "SelfDamageEnergyShield") / 100
if energyShieldLeech > 0 then
energyShieldLeechTotal = energyShieldLeechTotal + (min + max) / 2 * energyShieldLeech / 100
end
end
else
min, max = 0, 0
Expand Down Expand Up @@ -1052,6 +1060,9 @@ function calcs.offence(env, actor, activeSkill)
if skillData.manaLeechPerUse then
manaLeechTotal = manaLeechTotal + skillData.manaLeechPerUse
end
if skillData.energyShieldLeechPerUse then
energyShieldLeechTotal = energyShieldLeechTotal + skillData.energyShieldLeechPerUse
end
local portion = (pass == 1) and (output.CritChance / 100) or (1 - output.CritChance / 100)
if skillModList:Flag(cfg, "InstantLifeLeech") and not skillModList:Flag(nil, "GhostReaver") then
output.LifeLeechInstant = output.LifeLeechInstant + lifeLeechTotal * portion
Expand All @@ -1063,6 +1074,12 @@ function calcs.offence(env, actor, activeSkill)
else
output.ManaLeech = output.ManaLeech + manaLeechTotal * portion
end
if skillModList:Flag(cfg, "InstantEnergyShieldLeech") then
output.EnergyShieldLeechInstant = output.EnergyShieldLeechInstant + energyShieldLeechTotal * portion
else
output.EnergyShieldLeech = output.EnergyShieldLeech + energyShieldLeechTotal * portion
end

end
output.TotalMin = totalHitMin
output.TotalMax = totalHitMax
Expand Down Expand Up @@ -1097,7 +1114,9 @@ function calcs.offence(env, actor, activeSkill)
output.LifeLeechInstantRate = output.LifeLeechInstant * hitRate
output.ManaLeechDuration, output.ManaLeechInstances = getLeechInstances(output.ManaLeech, globalOutput.Mana)
output.ManaLeechInstantRate = output.ManaLeechInstant * hitRate

output.EnergyShieldLeechDuration, output.EnergyShieldLeechInstances = getLeechInstances(output.EnergyShieldLeech, globalOutput.EnergyShield)
output.EnergyShieldLeechInstantRate = output.EnergyShieldLeechInstant * hitRate

-- Calculate gain on hit
if skillFlags.mine or skillFlags.trap or skillFlags.totem then
output.LifeOnHit = 0
Expand Down Expand Up @@ -1149,6 +1168,10 @@ function calcs.offence(env, actor, activeSkill)
combineStat("ManaLeechInstances", "DPS")
combineStat("ManaLeechInstant", "DPS")
combineStat("ManaLeechInstantRate", "DPS")
combineStat("EnergyShieldLeechDuration", "DPS")
combineStat("EnergyShieldLeechInstances", "DPS")
combineStat("EnergyShieldLeechInstant", "DPS")
combineStat("EnergyShieldLeechInstantRate", "DPS")
combineStat("LifeOnHit", "DPS")
combineStat("LifeOnHitRate", "DPS")
combineStat("EnergyShieldOnHit", "DPS")
Expand Down Expand Up @@ -1197,21 +1220,33 @@ function calcs.offence(env, actor, activeSkill)
if skillModList:Flag(nil, "GhostReaver") then
output.LifeLeechRate = 0
output.LifeLeechPerHit = 0
output.EnergyShieldLeechInstanceRate = output.EnergyShield * 0.02 * calcLib.mod(skillModList, skillCfg, "LifeLeechRate")
output.EnergyShieldLeechRate = output.LifeLeechInstantRate * output.EnergyShieldRecoveryMod + m_min(output.LifeLeechInstances * output.EnergyShieldLeechInstanceRate, output.MaxEnergyShieldLeechRate) * output.EnergyShieldRecoveryRateMod
output.EnergyShieldLeechPerHit = output.LifeLeechInstant * output.EnergyShieldRecoveryMod + m_min(output.EnergyShieldLeechInstanceRate, output.MaxEnergyShieldLeechRate) * output.LifeLeechDuration * output.EnergyShieldRecoveryRateMod

local energyShieldFromLifeInstanceRate = output.EnergyShield * 0.02 * calcLib.mod(skillModList, skillCfg, "LifeLeechRate")
local energyShieldFromLifeLeechRate = output.LifeLeechInstantRate * output.EnergyShieldRecoveryMod + m_min(output.LifeLeechInstances * energyShieldFromLifeInstanceRate, output.MaxEnergyShieldLeechRate) * output.EnergyShieldRecoveryRateMod
local energyShieldFromLifeLeechPerHit = output.LifeLeechInstant * output.EnergyShieldRecoveryMod + m_min(energyShieldFromLifeInstanceRate, output.MaxEnergyShieldLeechRate) * output.LifeLeechDuration * output.EnergyShieldRecoveryRateMod

local energyShieldInstanceRate = output.EnergyShield * 0.02 * calcLib.mod(skillModList, skillCfg, "EnergyShieldLeechRate")
local energyShieldLeechRate = output.EnergyShieldLeechInstantRate * output.EnergyShieldRecoveryMod + m_min(output.EnergyShieldLeechInstances * energyShieldInstanceRate, output.MaxEnergyShieldLeechRate) * output.EnergyShieldRecoveryRateMod
local energyShieldPerHit = output.EnergyShieldLeechInstant * output.EnergyShieldRecoveryMod + m_min(energyShieldInstanceRate, output.MaxEnergyShieldLeechRate) * output.EnergyShieldLeechDuration * output.EnergyShieldRecoveryRateMod

output.EnergyShieldLeechInstanceRate = energyShieldFromLifeInstanceRate + energyShieldInstanceRate
output.EnergyShieldLeechRate = energyShieldFromLifeLeechRate + energyShieldLeechRate
output.EnergyShieldLeechPerHit = energyShieldFromLifeLeechPerHit + energyShieldPerHit
else
output.LifeLeechInstanceRate = output.Life * 0.02 * calcLib.mod(skillModList, skillCfg, "LifeLeechRate")
output.LifeLeechRate = output.LifeLeechInstantRate * output.LifeRecoveryMod + m_min(output.LifeLeechInstances * output.LifeLeechInstanceRate, output.MaxLifeLeechRate) * output.LifeRecoveryRateMod
output.LifeLeechPerHit = output.LifeLeechInstant * output.LifeRecoveryMod + m_min(output.LifeLeechInstanceRate, output.MaxLifeLeechRate) * output.LifeLeechDuration * output.LifeRecoveryRateMod
output.EnergyShieldLeechRate = 0
output.EnergyShieldLeechPerHit = 0

output.EnergyShieldLeechInstanceRate = output.EnergyShield * 0.02 * calcLib.mod(skillModList, skillCfg, "EnergyShieldLeechRate")
output.EnergyShieldLeechRate = output.EnergyShieldLeechInstantRate * output.EnergyShieldRecoveryMod + m_min(output.EnergyShieldLeechInstances * output.EnergyShieldLeechInstanceRate, output.MaxEnergyShieldLeechRate) * output.EnergyShieldRecoveryRateMod
output.EnergyShieldLeechPerHit = output.EnergyShieldLeechInstant * output.EnergyShieldRecoveryMod + m_min(output.EnergyShieldLeechInstanceRate, output.MaxEnergyShieldLeechRate) * output.EnergyShieldLeechDuration * output.EnergyShieldRecoveryRateMod
end
do
output.ManaLeechInstanceRate = output.Mana * 0.02 * calcLib.mod(skillModList, skillCfg, "ManaLeechRate")
output.ManaLeechRate = output.ManaLeechInstantRate * output.ManaRecoveryMod + m_min(output.ManaLeechInstances * output.ManaLeechInstanceRate, output.MaxManaLeechRate) * output.ManaRecoveryRateMod
output.ManaLeechPerHit = output.ManaLeechInstant * output.ManaRecoveryMod + m_min(output.ManaLeechInstanceRate, output.MaxManaLeechRate) * output.ManaLeechDuration * output.ManaRecoveryRateMod
end

skillFlags.leechES = output.EnergyShieldLeechRate > 0
skillFlags.leechLife = output.LifeLeechRate > 0
skillFlags.leechMana = output.ManaLeechRate > 0
Expand All @@ -1229,7 +1264,7 @@ function calcs.offence(env, actor, activeSkill)
breakdown.LifeLeech = breakdown.leech(output.LifeLeechInstant, output.LifeLeechInstantRate, output.LifeLeechInstances, output.Life, "LifeLeechRate", output.MaxLifeLeechRate, output.LifeLeechDuration)
end
if skillFlags.leechES then
breakdown.EnergyShieldLeech = breakdown.leech(output.LifeLeechInstant, output.LifeLeechInstantRate, output.LifeLeechInstances, output.EnergyShield, "LifeLeechRate", output.MaxEnergyShieldLeechRate, output.LifeLeechDuration)
breakdown.EnergyShieldLeech = breakdown.leech(output.EnergyShieldLeechInstant, output.EnergyShieldLeechInstantRate, output.EnergyShieldLeechInstances, output.EnergyShield, "EnergyShieldLeechRate", output.MaxEnergyShieldLeechRate, output.EnergyShieldLeechDuration)
end
if skillFlags.leechMana then
breakdown.ManaLeech = breakdown.leech(output.ManaLeechInstant, output.ManaLeechInstantRate, output.ManaLeechInstances, output.Mana, "ManaLeechRate", output.MaxManaLeechRate, output.ManaLeechDuration)
Expand Down
22 changes: 11 additions & 11 deletions Modules/CalcSections-3_0.lua
Original file line number Diff line number Diff line change
Expand Up @@ -653,23 +653,23 @@ return {
}, },
{ label = "ES Leech Cap", flag = "leechES", { format = "{1:output:MaxEnergyShieldLeechRate}",
{ breakdown = "MaxEnergyShieldLeechRate" },
{ modName = "MaxLifeLeechRate" },
{ modName = "MaxEnergyShieldLeechRate" },
}, },
{ label = "ES Leech Rate", flag = "leechES", notFlag = "showAverage", { format = "{1:output:EnergyShieldLeechRate}",
{ breakdown = "EnergyShieldLeech" },
{ label = "Player modifiers", notFlagList = { "totem", "attack" }, modName = { "DamageLeech", "DamageLifeLeech", "PhysicalDamageLifeLeech", "LightningDamageLifeLeech", "ColdDamageLifeLeech", "FireDamageLifeLeech", "ChaosDamageLifeLeech", "ElementalDamageLifeLeech" }, modType = "BASE", cfg = "skill" },
{ label = "Main Hand", notFlag = "totem", flag = "weapon1Attack", modName = { "DamageLeech", "DamageLifeLeech", "PhysicalDamageLifeLeech", "LightningDamageLifeLeech", "ColdDamageLifeLeech", "FireDamageLifeLeech", "ChaosDamageLifeLeech", "ElementalDamageLifeLeech" }, modType = "BASE", cfg = "weapon1" },
{ label = "Off Hand", notFlag = "totem", flag = "weapon2Attack", modName = { "DamageLeech", "DamageLifeLeech", "PhysicalDamageLifeLeech", "LightningDamageLifeLeech", "ColdDamageLifeLeech", "FireDamageLifeLeech", "ChaosDamageLifeLeech", "ElementalDamageLifeLeech" }, modType = "BASE", cfg = "weapon2" },
{ label = "Totem modifiers", flag = "totem", modName = { "DamageLifeLeechToPlayer" }, modType = "BASE", cfg = "skill" },
{ label = "Enemy modifiers", modName = { "SelfDamageLifeLeech" }, modType = "BASE", enemy = true },
{ label = "Player modifiers", notFlagList = { "totem", "attack" }, modName = { "DamageLeech", "DamageEnergyShieldLeech", "PhysicalDamageEnergyShieldLeech", "LightningDamageEnergyShieldLeech", "ColdDamageEnergyShieldLeech", "FireDamageEnergyShieldLeech", "ChaosDamageEnergyShieldLeech", "ElementalDamageEnergyShieldLeech" }, modType = "BASE", cfg = "skill" },
{ label = "Main Hand", notFlag = "totem", flag = "weapon1Attack", modName = { "DamageLeech", "DamageEnergyShieldLeech", "PhysicalDamageEnergyShieldLeech", "LightningDamageEnergyShieldLeech", "ColdDamageEnergyShieldLeech", "FireDamageEnergyShieldLeech", "ChaosDamageEnergyShieldLeech", "ElementalDamageEnergyShieldLeech" }, modType = "BASE", cfg = "weapon1" },
{ label = "Off Hand", notFlag = "totem", flag = "weapon2Attack", modName = { "DamageLeech", "DamageEnergyShieldLeech", "PhysicalDamageEnergyShieldLeech", "LightningDamageEnergyShieldLeech", "ColdDamageEnergyShieldLeech", "FireDamageEnergyShieldLeech", "ChaosDamageEnergyShieldLeech", "ElementalDamageEnergyShieldLeech" }, modType = "BASE", cfg = "weapon2" },
{ label = "Totem modifiers", flag = "totem", modName = { "DamageEnergyShieldLeechToPlayer" }, modType = "BASE", cfg = "skill" },
{ label = "Enemy modifiers", modName = { "SelfDamageEnergyShieldLeech" }, modType = "BASE", enemy = true },
}, },
{ label = "ES Leech per Hit", flagList = { "leechES", "showAverage" }, { format = "{1:output:EnergyShieldLeechPerHit}",
{ breakdown = "EnergyShieldLeech" },
{ label = "Player modifiers", notFlagList = { "totem", "attack" }, modName = { "DamageLeech", "DamageLifeLeech", "PhysicalDamageLifeLeech", "LightningDamageLifeLeech", "ColdDamageLifeLeech", "FireDamageLifeLeech", "ChaosDamageLifeLeech", "ElementalDamageLifeLeech" }, modType = "BASE", cfg = "skill" },
{ label = "Main Hand", notFlag = "totem", flag = "weapon1Attack", modName = { "DamageLeech", "DamageLifeLeech", "PhysicalDamageLifeLeech", "LightningDamageLifeLeech", "ColdDamageLifeLeech", "FireDamageLifeLeech", "ChaosDamageLifeLeech", "ElementalDamageLifeLeech" }, modType = "BASE", cfg = "weapon1" },
{ label = "Off Hand", notFlag = "totem", flag = "weapon2Attack", modName = { "DamageLeech", "DamageLifeLeech", "PhysicalDamageLifeLeech", "LightningDamageLifeLeech", "ColdDamageLifeLeech", "FireDamageLifeLeech", "ChaosDamageLifeLeech", "ElementalDamageLifeLeech" }, modType = "BASE", cfg = "weapon2" },
{ label = "Totem modifiers", flag = "totem", modName = { "DamageLifeLeechToPlayer" }, modType = "BASE", cfg = "skill" },
{ label = "Enemy modifiers", modName = { "SelfDamageLifeLeech" }, modType = "BASE", enemy = true },
{ label = "Player modifiers", notFlagList = { "totem", "attack" }, modName = { "DamageLeech", "DamageEnergyShieldLeech", "PhysicalDamageEnergyShieldLeech", "LightningDamageEnergyShieldLeech", "ColdDamageEnergyShieldLeech", "FireDamageEnergyShieldLeech", "ChaosDamageEnergyShieldLeech", "ElementalDamageEnergyShieldLeech" }, modType = "BASE", cfg = "skill" },
{ label = "Main Hand", notFlag = "totem", flag = "weapon1Attack", modName = { "DamageLeech", "DamageEnergyShieldLeech", "PhysicalDamageEnergyShieldLeech", "LightningDamageEnergyShieldLeech", "ColdDamageEnergyShieldLeech", "FireDamageEnergyShieldLeech", "ChaosDamageEnergyShieldLeech", "ElementalDamageEnergyShieldLeech" }, modType = "BASE", cfg = "weapon1" },
{ label = "Off Hand", notFlag = "totem", flag = "weapon2Attack", modName = { "DamageLeech", "DamageEnergyShieldLeech", "PhysicalDamageEnergyShieldLeech", "LightningDamageEnergyShieldLeech", "ColdDamageEnergyShieldLeech", "FireDamageEnergyShieldLeech", "ChaosDamageEnergyShieldLeech", "ElementalDamageEnergyShieldLeech" }, modType = "BASE", cfg = "weapon2" },
{ label = "Totem modifiers", flag = "totem", modName = { "DamageEnergyShieldLeechToPlayer" }, modType = "BASE", cfg = "skill" },
{ label = "Enemy modifiers", modName = { "SelfDamageEnergyShieldLeech" }, modType = "BASE", enemy = true },
}, },
{ label = "ES Gain Rate", notFlag = "showAverage", haveOutput = "EnergyShieldOnHitRate", { format = "{1:output:EnergyShieldOnHitRate}",
{ label = "Player modifiers", notFlag = "attack", modName = "EnergyShieldOnHit", modType = "BASE", cfg = "skill" },
Expand Down
1 change: 1 addition & 0 deletions Modules/CalcSetup.lua
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ function calcs.initModDB(env, modDB)
modDB:NewMod("EnduranceChargesMax", "BASE", 3, "Base")
modDB:NewMod("MaxLifeLeechRate", "BASE", 20, "Base")
modDB:NewMod("MaxManaLeechRate", "BASE", 20, "Base")
modDB:NewMod("MaxEnergyShieldLeechRate", "BASE", 10, "Base")
modDB:NewMod("MineLayingTime", "BASE", 0.5, "Base")
if env.build.targetVersion == "2_6" then
modDB:NewMod("TrapThrowingTime", "BASE", 0.5, "Base")
Expand Down
3 changes: 3 additions & 0 deletions Modules/ConfigOptions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -612,6 +612,9 @@ return {
{ var = "multiplierPoisonOnEnemy", type = "count", label = "# of Poison on Enemy:", implyCond = "Poisoned", apply = function(val, modList, enemyModList)
enemyModList:NewMod("Multiplier:PoisonStack", "BASE", val, "Config", { type = "Condition", var = "Effective" })
end },
{ var = "multiplierCurseOnEnemy", type = "count", label = "# of Curses on Enemy:", implyCond = "Cursed", apply = function(val, modList, enemyModList)
enemyModList:NewMod("Multiplier:CurseStack", "BASE", val, "Config", { type = "Condition", var = "Effective" })
end },
{ var = "conditionEnemyMaimed", type = "check", label = "Is the enemy Maimed?", apply = function(val, modList, enemyModList)
enemyModList:NewMod("Condition:Maimed", "FLAG", true, "Config", { type = "Condition", var = "Effective" })
end },
Expand Down
3 changes: 3 additions & 0 deletions Modules/ModParser-3_0.lua
Original file line number Diff line number Diff line change
Expand Up @@ -498,6 +498,7 @@ local modFlagList = {
["for skills used by totems"] = { keywordFlags = KeywordFlag.Totem },
["of aura skills"] = { tag = { type = "SkillType", skillType = SkillType.Aura } },
["of curse skills"] = { keywordFlags = KeywordFlag.Curse },
["with curse skills"] = { keywordFlags = KeywordFlag.Curse },
["of herald skills"] = { tag = { type = "SkillType", skillType = SkillType.Herald } },
["of minion skills"] = { tag = { type = "SkillType", skillType = SkillType.Minion } },
["for curses"] = { keywordFlags = KeywordFlag.Curse },
Expand Down Expand Up @@ -878,6 +879,7 @@ local modTagList = {
["per poison affecting enemy"] = { tag = { type = "Multiplier", actor = "enemy", var = "PoisonStack" } },
["per poison affecting enemy, up to %+([%d%.]+)%%"] = function(num) return { tag = { type = "Multiplier", actor = "enemy", var = "PoisonStack", limit = num, limitTotal = true } } end,
["for each spider's web on the enemy"] = { tag = { type = "Multiplier", actor = "enemy", var = "Spider's WebStack" } },
["for each curse on enemy"] = { tag = { type = "Multiplier", actor = "enemy", var = "CurseStack" } },
}

local mod = modLib.createMod
Expand Down Expand Up @@ -1578,6 +1580,7 @@ local suffixTypes = {
["is leeched as life"] = "LifeLeech",
["leeched as mana"] = "ManaLeech",
["is leeched as mana"] = "ManaLeech",
["leeched as energy shield"] = "EnergyShieldLeech",
}
local dmgTypes = {
["physical"] = "Physical",
Expand Down

0 comments on commit 353ce71

Please sign in to comment.