Skip to content

Commit 82af739

Browse files
RegisleLocalIdentity
andauthored
Revert sidebar poison to split posion dps again (#8254)
* split poison dps again and make sidebar use single poison * Fix build --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
1 parent edb2422 commit 82af739

File tree

2 files changed

+38
-20
lines changed

2 files changed

+38
-20
lines changed

src/Modules/CalcOffence.lua

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4276,15 +4276,14 @@ function calcs.offence(env, actor, activeSkill)
42764276
end
42774277
globalOutput.PoisonStacks = PoisonStacks
42784278
local effectMod = calcLib.mod(skillModList, dotCfg, "AilmentEffect")
4279-
local singlePoisonDps = m_min(baseVal * effectMod * rateMod * effMult, data.misc.DotDpsCap)
4280-
local PoisonDPSUncapped = singlePoisonDps * PoisonStacks
4281-
local PoisonDPSCapped = m_min(PoisonDPSUncapped, data.misc.DotDpsCap)
4282-
output.PoisonDamage = singlePoisonDps * globalOutput.PoisonDuration
4283-
local MinPoisonDPSUncapped = baseMinVal * effectMod * rateMod * effMult * PoisonStacks
4279+
local singlePoisonDPSUncapped = m_min(baseVal * effectMod * rateMod * effMult, data.misc.DotDpsCap)
4280+
local singlePoisonDPSCapped = m_min(singlePoisonDPSUncapped, data.misc.DotDpsCap)
4281+
output.PoisonDPS = singlePoisonDPSCapped
4282+
output.PoisonDamage = singlePoisonDPSCapped * globalOutput.PoisonDuration
4283+
local MinPoisonDPSUncapped = baseMinVal * effectMod * rateMod * effMult
42844284
local MinPoisonDPSCapped = m_min(MinPoisonDPSUncapped, data.misc.DotDpsCap)
4285-
local MaxPoisonDPSUncapped = baseMaxVal * effectMod * rateMod * effMult * PoisonStacks
4285+
local MaxPoisonDPSUncapped = baseMaxVal * effectMod * rateMod * effMult
42864286
local MaxPoisonDPSCapped = m_min(MaxPoisonDPSUncapped, data.misc.DotDpsCap)
4287-
output.PoisonDPS = PoisonDPSCapped
42884287
local groundMult = m_max(skillModList:Max(nil, "PoisonDpsAsCausticGround") or 0, enemyDB:Max(nil, "PoisonDpsAsCausticGround") or 0)
42894288
if groundMult > 0 then
42904289
local CausticGroundDPSUncapped = baseVal * effectMod * rateMod * effMult * groundMult / 100
@@ -4300,11 +4299,15 @@ function calcs.offence(env, actor, activeSkill)
43004299
}
43014300
end
43024301
end
4302+
local PoisonDPSUncapped
4303+
local PoisonDPSCapped
43034304
if skillData.showAverage then
43044305
output.TotalPoisonAverageDamage = output.PoisonDamage
43054306
output.TotalPoisonDPS = output.PoisonDPS
43064307
else
4307-
output.TotalPoisonDPS = m_min(PoisonDPSCapped, data.misc.DotDpsCap)
4308+
PoisonDPSUncapped = singlePoisonDPSCapped * PoisonStacks
4309+
PoisonDPSCapped = m_min(PoisonDPSUncapped, data.misc.DotDpsCap)
4310+
output.TotalPoisonDPS = PoisonDPSCapped
43084311
end
43094312
if breakdown then
43104313
if output.CritPoisonDotMulti and (output.CritPoisonDotMulti ~= output.PoisonDotMulti) then
@@ -4322,7 +4325,7 @@ function calcs.offence(env, actor, activeSkill)
43224325
t_insert(breakdown.PoisonDPS, s_format("= %.1f", baseVal, 1))
43234326
t_insert(breakdown.PoisonDPS, "")
43244327
t_insert(breakdown.PoisonDPS, "Poison DPS:")
4325-
if baseVal ~= PoisonDPSUncapped then
4328+
if baseVal ~= singlePoisonDPSUncapped then
43264329
t_insert(breakdown.PoisonDPS, s_format("%.1f ^8(base damage per second)", baseVal))
43274330
end
43284331
if effectMod ~= 1 then
@@ -4334,13 +4337,10 @@ function calcs.offence(env, actor, activeSkill)
43344337
if effMult ~= 1 then
43354338
t_insert(breakdown.PoisonDPS, s_format("x %.3f ^8(effective DPS modifier from enemy debuffs)", effMult))
43364339
end
4337-
if PoisonStacks ~= 1 then
4338-
t_insert(breakdown.PoisonDPS, s_format("x %.2f ^8(poison stacks)", PoisonStacks))
4339-
end
4340-
if output.PoisonDPS ~= PoisonDPSUncapped then
4341-
t_insert(breakdown.PoisonDPS, s_format("= %.1f ^8(Uncapped raw Poison DPS)", PoisonDPSUncapped))
4342-
t_insert(breakdown.PoisonDPS, s_format("^8(Raw Poison DPS is "..colorCodes.NEGATIVE.."overcapped ^8by^7 %.0f ^8:^7 %.1f%%^8)", PoisonDPSUncapped - PoisonDPSCapped, (PoisonDPSUncapped - PoisonDPSCapped) / PoisonDPSCapped * 100))
4343-
t_insert(breakdown.PoisonDPS, s_format("= %d ^8(Capped Poison DPS)", PoisonDPSCapped))
4340+
if output.PoisonDPS ~= singlePoisonDPSUncapped then
4341+
t_insert(breakdown.PoisonDPS, s_format("= %.1f ^8(Uncapped raw Poison DPS)", singlePoisonDPSUncapped))
4342+
t_insert(breakdown.PoisonDPS, s_format("^8(Raw Poison DPS is "..colorCodes.NEGATIVE.."overcapped ^8by^7 %.0f ^8:^7 %.1f%%^8)", singlePoisonDPSUncapped - singlePoisonDPSCapped, (singlePoisonDPSUncapped - singlePoisonDPSCapped) / singlePoisonDPSCapped * 100))
4343+
t_insert(breakdown.PoisonDPS, s_format("= %d ^8(Capped Poison DPS)", singlePoisonDPSCapped))
43444344
else
43454345
t_insert(breakdown.PoisonDPS, s_format("= %.1f ^8per second", output.PoisonDPS))
43464346
end
@@ -4361,6 +4361,19 @@ function calcs.offence(env, actor, activeSkill)
43614361
if MaxPoisonDPSCapped ~= MaxPoisonDPSUncapped or MinPoisonDPSCapped ~= MinPoisonDPSUncapped then
43624362
t_insert(breakdown.PoisonDPS, s_format("%.0f to %.0f ^8(Capped Poison DPS Range)", MinPoisonDPSCapped, MaxPoisonDPSCapped))
43634363
end
4364+
if not skillData.showAverage and PoisonStacks ~= 1 then
4365+
breakdown.TotalPoisonDPS = {
4366+
s_format("%.1f ^8single poison damage per second", singlePoisonDPSCapped),
4367+
s_format("x %.2f ^8(poison stacks)", PoisonStacks),
4368+
}
4369+
if output.TotalPoisonDPS ~= PoisonDPSUncapped then
4370+
t_insert(breakdown.TotalPoisonDPS, s_format("= %.1f ^8(Uncapped raw Poison DPS)", PoisonDPSUncapped))
4371+
t_insert(breakdown.TotalPoisonDPS, s_format("^8(Raw Poison DPS is "..colorCodes.NEGATIVE.."overcapped ^8by^7 %.0f ^8:^7 %.1f%%^8)", PoisonDPSUncapped - PoisonDPSCapped, (PoisonDPSUncapped - PoisonDPSCapped) / PoisonDPSCapped * 100))
4372+
t_insert(breakdown.TotalPoisonDPS, s_format("= %d ^8(Capped Poison DPS)", PoisonDPSCapped))
4373+
else
4374+
t_insert(breakdown.TotalPoisonDPS, s_format("= %.1f ^8per second", PoisonDPSCapped))
4375+
end
4376+
end
43644377
if globalOutput.PoisonDuration ~= 2 then
43654378
globalBreakdown.PoisonDuration = {
43664379
s_format("%.2fs ^8(base duration)", durationBase)
@@ -4380,7 +4393,7 @@ function calcs.offence(env, actor, activeSkill)
43804393
if isAttack then
43814394
t_insert(breakdown.PoisonDamage, pass.label..":")
43824395
end
4383-
t_insert(breakdown.PoisonDamage, s_format("%.1f ^8(damage per second)", singlePoisonDps))
4396+
t_insert(breakdown.PoisonDamage, s_format("%.1f ^8(damage per second)", singlePoisonDPSCapped))
43844397
t_insert(breakdown.PoisonDamage, s_format("x %.2fs ^8(poison duration)", globalOutput.PoisonDuration))
43854398
t_insert(breakdown.PoisonDamage, s_format("= %.1f ^8damage per poison stack", output.PoisonDamage))
43864399
end

src/Modules/CalcSections.lua

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -937,9 +937,14 @@ return {
937937
{ label = "Enemy modifiers", modName = { "SelfPoisonDuration", "SelfAilmentDuration", "SelfPoisonFaster" }, enemy = true },
938938
}, },
939939
{ label = "Dmg. per Poison", { format = "{1:output:PoisonDamage}",
940-
{ breakdown = "MainHand.PoisonDamage" },
941-
{ breakdown = "OffHand.PoisonDamage" },
942-
{ breakdown = "PoisonDamage" },
940+
{ breakdown = "MainHand.PoisonDamage" },
941+
{ breakdown = "OffHand.PoisonDamage" },
942+
{ breakdown = "PoisonDamage" },
943+
}, },
944+
{ label = "Total Poison DPS", { format = "{1:output:TotalPoisonDPS}",
945+
{ breakdown = "MainHand.TotalPoisonDPS" },
946+
{ breakdown = "OffHand.TotalPoisonDPS" },
947+
{ breakdown = "TotalPoisonDPS" },
943948
}, },
944949
} }
945950
} },

0 commit comments

Comments
 (0)