@@ -3170,6 +3170,19 @@ function calcs.offence(env, actor, activeSkill)
31703170 breakdown .PoisonFire = { damageTypes = { } }
31713171 breakdown .PoisonChaos = { damageTypes = { } }
31723172 end
3173+ local rateMod = calcLib .mod (skillModList , cfg , " PoisonFaster" ) + enemyDB :Sum (" INC" , nil , " SelfPoisonFaster" ) / 100
3174+ local durationBase
3175+ if skillData .poisonDurationIsSkillDuration then
3176+ durationBase = skillData .duration
3177+ else
3178+ durationBase = data .misc .PoisonDurationBase
3179+ end
3180+ local durationMod = calcLib .mod (skillModList , dotCfg , " EnemyPoisonDuration" , " SkillAndDamagingAilmentDuration" , skillData .poisonIsSkillEffect and " Duration" or nil ) * calcLib .mod (enemyDB , nil , " SelfPoisonDuration" )
3181+ globalOutput .PoisonDuration = durationBase * durationMod / rateMod * debuffDurationMult
3182+ local PoisonStacks = globalOutput .PoisonDuration * (globalOutput .HitSpeed or globalOutput .Speed ) * (skillData .dpsMultiplier or 1 ) * (skillData .stackMultiplier or 1 ) * quantityMultiplier
3183+ if PoisonStacks < 1 and (env .configInput .multiplierPoisonOnEnemy or 0 ) <= 1 then
3184+ skillModList :NewMod (" Condition:SinglePoison" , " FLAG" , true , " poison" )
3185+ end
31733186 for sub_pass = 1 , 2 do
31743187 if skillModList :Flag (dotCfg , " AilmentsAreNeverFromCrit" ) or sub_pass == 1 then
31753188 dotCfg .skillCond [" CriticalStrike" ] = false
@@ -3249,22 +3262,13 @@ function calcs.offence(env, actor, activeSkill)
32493262 end
32503263 end
32513264 local effectMod = calcLib .mod (skillModList , dotCfg , " AilmentEffect" )
3252- local rateMod = calcLib .mod (skillModList , cfg , " PoisonFaster" ) + enemyDB :Sum (" INC" , nil , " SelfPoisonFaster" ) / 100
32533265 output .PoisonDPS = baseVal * effectMod * rateMod * effMult
3254- local durationBase
3255- if skillData .poisonDurationIsSkillDuration then
3256- durationBase = skillData .duration
3257- else
3258- durationBase = data .misc .PoisonDurationBase
3259- end
3260- local durationMod = calcLib .mod (skillModList , dotCfg , " EnemyPoisonDuration" , " SkillAndDamagingAilmentDuration" , skillData .poisonIsSkillEffect and " Duration" or nil ) * calcLib .mod (enemyDB , nil , " SelfPoisonDuration" )
3261- globalOutput .PoisonDuration = durationBase * durationMod / rateMod * debuffDurationMult
32623266 output .PoisonDamage = output .PoisonDPS * globalOutput .PoisonDuration
32633267 if skillData .showAverage then
32643268 output .TotalPoisonAverageDamage = output .HitChance / 100 * output .PoisonChance / 100 * output .PoisonDamage
32653269 output .TotalPoisonDPS = output .PoisonDPS
32663270 else
3267- output .TotalPoisonStacks = output .HitChance / 100 * output .PoisonChance / 100 * globalOutput . PoisonDuration * ( globalOutput . HitSpeed or globalOutput . Speed ) * ( skillData . dpsMultiplier or 1 ) * ( skillData . stackMultiplier or 1 ) * quantityMultiplier
3271+ output .TotalPoisonStacks = output .HitChance / 100 * output .PoisonChance / 100 * PoisonStacks
32683272 output .TotalPoisonDPS = output .PoisonDPS * output .TotalPoisonStacks
32693273 end
32703274 if breakdown then
0 commit comments