Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
7 changes: 5 additions & 2 deletions src/Modules/CalcDefence.lua
Original file line number Diff line number Diff line change
Expand Up @@ -839,9 +839,12 @@ function calcs.defence(env, actor)
output.CurseEffectOnSelf = modDB:More(nil, "CurseEffectOnSelf") * (100 + modDB:Sum("INC", nil, "CurseEffectOnSelf"))

-- Ailment duration on self
output.SelfBlindDuration = modDB:More(nil, "SelfBlindDuration") * (100 + modDB:Sum("INC", nil, "SelfBlindDuration"))
output.DebuffExpirationRate = modDB:Sum("BASE", nil, "SelfDebuffExpirationRate")
output.DebuffExpirationModifier = 10000 / (100 + output.DebuffExpirationRate)
output.showDebuffExpirationModifier = (output.DebuffExpirationModifier ~= 100)
output.SelfBlindDuration = modDB:More(nil, "SelfBlindDuration") * (100 + modDB:Sum("INC", nil, "SelfBlindDuration")) * output.DebuffExpirationModifier / 100
for _, ailment in ipairs(data.ailmentTypeList) do
output["Self"..ailment.."Duration"] = modDB:More(nil, "Self"..ailment.."Duration") * (100 + modDB:Sum("INC", nil, "Self"..ailment.."Duration"))
output["Self"..ailment.."Duration"] = modDB:More(nil, "Self"..ailment.."Duration") * (100 + modDB:Sum("INC", nil, "Self"..ailment.."Duration")) * 100 / (100 + output.DebuffExpirationRate + modDB:Sum("BASE", nil, "Self"..ailment.."DebuffExpirationRate"))
end
output.SelfChillEffect = modDB:More(nil, "SelfChillEffect") * (100 + modDB:Sum("INC", nil, "SelfChillEffect"))
output.SelfShockEffect = modDB:More(nil, "SelfShockEffect") * (100 + modDB:Sum("INC", nil, "SelfShockEffect"))
Expand Down
19 changes: 10 additions & 9 deletions src/Modules/CalcSections.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1393,6 +1393,7 @@ return {
}, },
{ label = "Light Radius Mod", { format = "x {2:output:LightRadiusMod}", { breakdown = "LightRadiusMod" }, { modName = "LightRadius" }, }, },
{ label = "Curse Effect", { format = "{1:output:CurseEffectOnSelf}%", { modName = "CurseEffectOnSelf" }, }, },
{ label = "Debuff Dur. Mult.", haveOutput = "showDebuffExpirationModifier", { format = "{1:output:DebuffExpirationModifier}%", { modName = "SelfDebuffExpirationRate" }, }, },
} }, { defaultCollapsed = false, label = "Damage Avoidance", data = {
{ label = "Avoid Physical Ch.", haveOutput = "AvoidPhysicalDamageChance", { format = "{0:output:AvoidPhysicalDamageChance}%", { modName = "AvoidPhysicalDamageChance" }, }, },
{ label = "Avoid Lightning Ch.", haveOutput = "AvoidLightningDamageChance", { format = "{0:output:AvoidLightningDamageChance}%", { modName = "AvoidLightningDamageChance" }, }, },
Expand All @@ -1416,15 +1417,15 @@ return {
{ label = "Crit Reduction", haveOutput = "CritExtraDamageReduction", { format = "{0:output:CritExtraDamageReduction}%", { modName = "ReduceCritExtraDamage" }, }, },
{ label = "Blind Duration", haveOutput = "SelfBlindDuration", { format = "{0:output:SelfBlindDuration}%", { modName = "SelfBlindDuration" }, }, },
} }, { defaultCollapsed = true, label = "Other Ailment Defences", data = {
{ label = "Freeze Duration", { format = "{1:output:SelfFreezeDuration}%", { modName = "SelfFreezeDuration" }, }, },
{ label = "Chill Duration", { format = "{1:output:SelfChillDuration}%", { modName = "SelfChillDuration" }, }, },
{ label = "Shock Duration", { format = "{1:output:SelfShockDuration}%", { modName = "SelfShockDuration" }, }, },
{ label = "Ignite Duration", { format = "{1:output:SelfIgniteDuration}%", { modName = "SelfIgniteDuration" }, }, },
{ label = "Sap Duration", { format = "{1:output:SelfSapDuration}%", { modName = "SelfSapDuration" }, }, },
{ label = "Brittle Duration", { format = "{1:output:SelfBrittleDuration}%", { modName = "SelfBrittleDuration" }, }, },
{ label = "Scorch Duration", { format = "{1:output:SelfScorchDuration}%", { modName = "SelfScorchDuration" }, }, },
{ label = "Bleed Duration", { format = "{1:output:SelfBleedDuration}%", { modName = "SelfBleedDuration" }, }, },
{ label = "Poison Duration", { format = "{1:output:SelfPoisonDuration}%", { modName = "SelfPoisonDuration" }, }, },
{ label = "Freeze Duration", { format = "{1:output:SelfFreezeDuration}%", { modName = { "SelfFreezeDuration", "SelfDebuffExpirationRate", "SelfFreezeDebuffExpirationRate" }, }, }, },
{ label = "Chill Duration", { format = "{1:output:SelfChillDuration}%", { modName = { "SelfChillDuration", "SelfDebuffExpirationRate", "SelfChillDebuffExpirationRate" }, }, }, },
{ label = "Shock Duration", { format = "{1:output:SelfShockDuration}%", { modName = { "SelfShockDuration", "SelfDebuffExpirationRate", "SelfShockDebuffExpirationRate" }, }, }, },
{ label = "Ignite Duration", { format = "{1:output:SelfIgniteDuration}%", { modName = { "SelfIgniteDuration", "SelfDebuffExpirationRate", "SelfIgniteDebuffExpirationRate" }, }, }, },
{ label = "Sap Duration", { format = "{1:output:SelfSapDuration}%", { modName = { "SelfSapDuration", "SelfDebuffExpirationRate", "SelfSapDebuffExpirationRate" }, }, }, },
{ label = "Brittle Duration", { format = "{1:output:SelfBrittleDuration}%", { modName = { "SelfBrittleDuration", "SelfDebuffExpirationRate", "SelfBrittleDebuffExpirationRate" }, }, }, },
{ label = "Scorch Duration", { format = "{1:output:SelfScorchDuration}%", { modName = { "SelfScorchDuration", "SelfDebuffExpirationRate", "SelfScorchDebuffExpirationRate" }, }, }, },
{ label = "Bleed Duration", { format = "{1:output:SelfBleedDuration}%", { modName = { "SelfBleedDuration", "SelfDebuffExpirationRate", "SelfBleedDebuffExpirationRate" }, }, }, },
{ label = "Poison Duration", { format = "{1:output:SelfPoisonDuration}%", { modName = { "SelfPoisonDuration", "SelfDebuffExpirationRate", "SelfPoisonDebuffExpirationRate" }, }, }, },
{ label = "Chill Effect", { format = "{1:output:SelfChillEffect}%", { modName = "SelfChillEffect" }, }, },
{ label = "Shock Effect", { format = "{1:output:SelfShockEffect}%", { modName = "SelfShockEffect" }, }, },
} }, { defaultCollapsed = false, label = "Dodge", data = {
Expand Down
2 changes: 2 additions & 0 deletions src/Modules/ModParser.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2486,6 +2486,7 @@ local specialModList = {
["(%d+)%% chance for poisons inflicted with this weapon to deal (%d+)%% more damage"] = function(num, _, more) return {
mod("Damage", "MORE", tonumber(more) * num / 100, nil, 0, KeywordFlag.Poison, { type = "Condition", var = "{Hand}Attack" }, { type = "SkillType", skillType = SkillType.Attack }),
} end,
["poisons on you expire (%d+)%% slower"] = function(num) return { mod("SelfPoisonDebuffExpirationRate", "BASE", -num)} end,
-- Suppression
["your chance to suppressed spell damage is lucky"] = { flag("SpellSuppressionChanceIsLucky") },
["your chance to suppressed spell damage is unlucky"] = { flag("SpellSuppressionChanceIsUnlucky") },
Expand Down Expand Up @@ -2698,6 +2699,7 @@ local specialModList = {
["left ring slot: cover enemies in ash for 5 seconds when you ignite them"] = { mod("CoveredInAshEffect", "BASE", 20, { type = "SlotNumber", num = 1 }, { type = "ActorCondition", actor = "enemy", var = "Ignited" }) },
["right ring slot: cover enemies in frost for 5 seconds when you freeze them"] = { mod("CoveredInFrostEffect", "BASE", 20, { type = "SlotNumber", num = 2 }, { type = "ActorCondition", actor = "enemy", var = "Frozen" }) },
["([%a%s]+) has (%d+)%% increased effect"] = function(_, skill, num) return { mod("BuffEffect", "INC", num, { type = "SkillId", skillId = gemIdLookup[skill]}) } end,
["debuffs on you expire (%d+)%% faster"] = function(num) return { mod("SelfDebuffExpirationRate", "BASE", num)} end,
-- Traps, Mines and Totems
["traps and mines deal (%d+)%-(%d+) additional physical damage"] = function(_, min, max) return { mod("PhysicalMin", "BASE", tonumber(min), nil, 0, bor(KeywordFlag.Trap, KeywordFlag.Mine)), mod("PhysicalMax", "BASE", tonumber(max), nil, 0, bor(KeywordFlag.Trap, KeywordFlag.Mine)) } end,
["traps and mines deal (%d+) to (%d+) additional physical damage"] = function(_, min, max) return { mod("PhysicalMin", "BASE", tonumber(min), nil, 0, bor(KeywordFlag.Trap, KeywordFlag.Mine)), mod("PhysicalMax", "BASE", tonumber(max), nil, 0, bor(KeywordFlag.Trap, KeywordFlag.Mine)) } end,
Expand Down