Skip to content

Commit 7efe3cf

Browse files
LocalIdentityLocalIdentity
and
LocalIdentity
authored
Fix Poisonburst Arrow not scaling with Skill Effect Duration (#1107)
When we changed the ailment calcs we removed support for the the skill duration overriding bases poison duration mods This PR also adds support for CalcSections to use SkillData mods as conditionals to display sections Co-authored-by: LocalIdentity <[email protected]>
1 parent 72b433d commit 7efe3cf

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

src/Classes/CalcsTab.lua

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,9 +396,13 @@ end
396396
function CalcsTabClass:CheckFlag(obj)
397397
local actor = self.input.showMinion and self.calcsEnv.minion or self.calcsEnv.player
398398
local skillFlags = actor.mainSkill.activeEffect.statSetCalcs.skillFlags
399+
local skillData = actor.mainSkill.skillData
399400
if obj.flag and not skillFlags[obj.flag] then
400401
return
401402
end
403+
if obj.skillData and not skillData[obj.skillData] then
404+
return
405+
end
402406
if obj.flagList then
403407
for _, flag in ipairs(obj.flagList) do
404408
if not skillFlags[flag] then
@@ -412,6 +416,9 @@ function CalcsTabClass:CheckFlag(obj)
412416
if obj.notFlag and skillFlags[obj.notFlag] then
413417
return
414418
end
419+
if obj.notSkillData and skillData[obj.notSkillData] then
420+
return
421+
end
415422
if obj.notFlagList then
416423
for _, flag in ipairs(obj.notFlagList) do
417424
if skillFlags[flag] then

src/Modules/CalcOffence.lua

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4322,8 +4322,9 @@ function calcs.offence(env, actor, activeSkill)
43224322
ailmentTypeMod = ailmentDamageType
43234323
end
43244324
local rateMod = (calcLib.mod(skillModList, cfg, ailment .. "Faster") + enemyDB:Sum("INC", nil, "Self" .. ailment .. "Faster") / 100) / calcLib.mod(skillModList, cfg, ailment .. "Slower")
4325-
local durationBase = env.modDB:Override(nil, ailment .. "DurationBase") or data.misc[ailment .. "DurationBase"]
4326-
local durationMod = m_max(calcLib.mod(skillModList, dotCfg, "Enemy" .. ailment .. "Duration", "EnemyAilmentDuration", "Enemy" .. ailmentTypeMod .. "AilmentDuration", "SkillAndDamagingAilmentDuration") * calcLib.mod(enemyDB, nil, "Self" .. ailment .. "Duration", "SelfAilmentDuration", "Self" .. ailmentTypeMod .. "AilmentDuration"), 0)
4325+
local durationBase = skillData[ailment:lower() .. "DurationIsSkillDuration"] and skillData.duration or env.modDB:Override(nil, ailment .. "DurationBase") or data.misc[ailment .. "DurationBase"]
4326+
local durationMod = m_max(calcLib.mod(skillModList, dotCfg, "Enemy" .. ailment .. "Duration", "EnemyAilmentDuration", "Enemy" .. ailmentTypeMod .. "AilmentDuration", "SkillAndDamagingAilmentDuration", skillData[ailment:lower() .. "DurationIsSkillDuration"] and
4327+
"Duration" or nil) * calcLib.mod(enemyDB, nil, "Self" .. ailment .. "Duration", "SelfAilmentDuration", "Self" .. ailmentTypeMod .. "AilmentDuration"), 0)
43274328
durationMod = m_max(durationMod, 0)
43284329
globalOutput[ailment .. "Duration"] = durationBase * durationMod / rateMod * debuffDurationMult
43294330

src/Modules/CalcSections.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -996,7 +996,8 @@ return {
996996
{ label = "Caustic Ground", haveOutput = "CausticGroundFromPoison", { format = "{0:output:CausticGroundDPS}", { breakdown = "CausticGroundDPS" } } },
997997
{ label = "Poison Duration", { format = "{2:output:PoisonDuration}s",
998998
{ breakdown = "PoisonDuration" },
999-
{ label = "Player modifiers", modName = { "EnemyPoisonDuration", "EnemyAilmentDuration", "SkillAndDamagingAilmentDuration", "PoisonFaster" }, cfg = "poison" },
999+
{ label = "Player modifiers", notSkillData = "poisonDurationIsSkillDuration", modName = { "EnemyPoisonDuration", "EnemyAilmentDuration", "SkillAndDamagingAilmentDuration", "PoisonFaster" }, cfg = "poison" },
1000+
{ label = "Player modifiers", skillData = "poisonDurationIsSkillDuration", modName = { "EnemyPoisonDuration", "EnemyAilmentDuration", "SkillAndDamagingAilmentDuration", "PoisonFaster", "Duration" }, cfg = "poison" },
10001001
{ label = "Enemy modifiers", modName = { "SelfPoisonDuration", "SelfAilmentDuration", "SelfPoisonFaster" }, enemy = true },
10011002
}, },
10021003
{ label = "Dmg. of all Poisons", { format = "{1:output:PoisonDamage}",

0 commit comments

Comments
 (0)