Fix "Full Poison DPS" value capping to one stack (#8460)

* Fix Full Poison DPS only showing one poison stack

* Cap from multiple sources
This commit is contained in:
Wires77
2025-02-12 14:04:53 -06:00
committed by GitHub
parent 8b3ec35757
commit cd62ac906c

View File

@@ -181,7 +181,7 @@ function calcs.calcFullDPS(build, mode, override, specEnv)
combinedDPS = 0,
TotalDotDPS = 0,
skills = { },
poisonDPS = 0,
TotalPoisonDPS = 0,
causticGroundDPS = 0,
impaleDPS = 0,
igniteDPS = 0,
@@ -222,7 +222,7 @@ function calcs.calcFullDPS(build, mode, override, specEnv)
igniteSource = activeSkill.activeEffect.grantedEffect.name
end
if usedEnv.minion.output.PoisonDPS and usedEnv.minion.output.PoisonDPS > 0 then
fullDPS.poisonDPS = fullDPS.poisonDPS + usedEnv.minion.output.PoisonDPS * activeSkillCount
fullDPS.TotalPoisonDPS = fullDPS.TotalPoisonDPS + usedEnv.minion.output.TotalPoisonDPS * activeSkillCount
end
if usedEnv.minion.output.ImpaleDPS and usedEnv.minion.output.ImpaleDPS > 0 then
fullDPS.impaleDPS = fullDPS.impaleDPS + usedEnv.minion.output.ImpaleDPS * activeSkillCount
@@ -258,7 +258,7 @@ function calcs.calcFullDPS(build, mode, override, specEnv)
igniteSource = activeSkill.activeEffect.grantedEffect.name .. " (Mirage)"
end
if activeSkill.mirage.output.PoisonDPS and activeSkill.mirage.output.PoisonDPS > 0 then
fullDPS.poisonDPS = fullDPS.poisonDPS + activeSkill.mirage.output.PoisonDPS * mirageCount
fullDPS.TotalPoisonDPS = fullDPS.TotalPoisonDPS + activeSkill.mirage.output.TotalPoisonDPS * mirageCount
end
if activeSkill.mirage.output.ImpaleDPS and activeSkill.mirage.output.ImpaleDPS > 0 then
fullDPS.impaleDPS = fullDPS.impaleDPS + activeSkill.mirage.output.ImpaleDPS * mirageCount
@@ -303,7 +303,7 @@ function calcs.calcFullDPS(build, mode, override, specEnv)
burningGroundSource = activeSkill.activeEffect.grantedEffect.name
end
if usedEnv.player.output.PoisonDPS and usedEnv.player.output.PoisonDPS > 0 then
fullDPS.poisonDPS = fullDPS.poisonDPS + usedEnv.player.output.PoisonDPS * activeSkillCount
fullDPS.TotalPoisonDPS = fullDPS.TotalPoisonDPS + usedEnv.player.output.TotalPoisonDPS * activeSkillCount
end
if usedEnv.player.output.CausticGroundDPS and usedEnv.player.output.CausticGroundDPS > fullDPS.causticGroundDPS then
fullDPS.causticGroundDPS = usedEnv.player.output.CausticGroundDPS
@@ -353,10 +353,10 @@ function calcs.calcFullDPS(build, mode, override, specEnv)
t_insert(fullDPS.skills, { name = "Best Burning Ground DPS", dps = fullDPS.burningGroundDPS, count = 1, source = burningGroundSource })
fullDPS.TotalDotDPS = fullDPS.TotalDotDPS + fullDPS.burningGroundDPS
end
if fullDPS.poisonDPS > 0 then
fullDPS.poisonDPS = m_min(fullDPS.poisonDPS, data.misc.DotDpsCap)
t_insert(fullDPS.skills, { name = "Full Poison DPS", dps = fullDPS.poisonDPS, count = 1 })
fullDPS.TotalDotDPS = fullDPS.TotalDotDPS + fullDPS.poisonDPS
if fullDPS.TotalPoisonDPS > 0 then
fullDPS.TotalPoisonDPS = m_min(fullDPS.TotalPoisonDPS, data.misc.DotDpsCap)
t_insert(fullDPS.skills, { name = "Full Poison DPS", dps = fullDPS.TotalPoisonDPS, count = 1 })
fullDPS.TotalDotDPS = fullDPS.TotalDotDPS + fullDPS.TotalPoisonDPS
end
if fullDPS.causticGroundDPS > 0 then
t_insert(fullDPS.skills, { name = "Best Caustic Ground DPS", dps = fullDPS.causticGroundDPS, count = 1, source = causticGroundSource })