Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Herald of Ash overkill damage incorrectly scaling with global damage increases #8330

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
1 change: 1 addition & 0 deletions src/Data/Skills/act_str.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5368,6 +5368,7 @@ skills["HeraldOfAsh"] = {
},
baseMods = {
skill("radius", 10),
flag("dotIsHeraldOfAsh"),
},
qualityStats = {
Default = {
Expand Down
1 change: 1 addition & 0 deletions src/Export/Skills/act_str.txt
Original file line number Diff line number Diff line change
Expand Up @@ -960,6 +960,7 @@ local skills, mod, flag, skill = ...
},
},
#baseMod skill("radius", 10)
#baseMod flag("dotIsHeraldOfAsh")
#mods

#skill HeraldOfPurity
Expand Down
7 changes: 7 additions & 0 deletions src/Modules/CalcOffence.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5144,6 +5144,7 @@ function calcs.offence(env, actor, activeSkill)

runSkillFunc("preDotFunc")

---Section Handles Generic Damage over time [DOT]
for _, damageType in ipairs(dmgTypeList) do
local dotTypeCfg = copyTable(dotCfg, true)
dotTypeCfg.keywordFlags = bor(dotTypeCfg.keywordFlags, KeywordFlag[damageType.."Dot"])
Expand All @@ -5157,6 +5158,7 @@ function calcs.offence(env, actor, activeSkill)
if baseVal > 0 or (output[damageType.."Dot"] or 0) > 0 then
skillFlags.dot = true
local effMult = 1
--Section handles Enemy Damage Taken based on Configs
if env.mode_effective then
local resist = 0
local takenInc = enemyDB:Sum("INC", dotTakenCfg, "DamageTaken", "DamageTakenOverTime", damageType.."DamageTaken", damageType.."DamageTakenOverTime") + (isElemental[damageType] and enemyDB:Sum("INC", dotTakenCfg, "ElementalDamageTaken") or 0)
Expand All @@ -5173,7 +5175,11 @@ function calcs.offence(env, actor, activeSkill)
breakdown[damageType.."DotEffMult"] = breakdown.effMult(damageType, resist, 0, takenInc, effMult, takenMore, sourceRes, true)
end
end
--Variables below calculate DOT damage
local inc = skillModList:Sum("INC", dotTypeCfg, "Damage", damageType.."Damage", isElemental[damageType] and "ElementalDamage" or nil)
if skillModList:Flag(nil, "dotIsHeraldOfAsh") then
inc = inc - skillModList:Sum("INC", skillCfg, "Damage", damageType.."Damage", isElemental[damageType] and "ElementalDamage" or nil)
end
local more = skillModList:More(dotTypeCfg, "Damage", damageType.."Damage", isElemental[damageType] and "ElementalDamage" or nil)
local mult = skillModList:Override(dotTypeCfg, "DotMultiplier") or skillModList:Sum("BASE", dotTypeCfg, "DotMultiplier") + skillModList:Sum("BASE", dotTypeCfg, damageType.."DotMultiplier")
local aura = activeSkill.skillTypes[SkillType.Aura] and not activeSkill.skillTypes[SkillType.RemoteMined] and calcLib.mod(skillModList, dotTypeCfg, "AuraEffect")
Expand All @@ -5190,6 +5196,7 @@ function calcs.offence(env, actor, activeSkill)
end
end
end

if skillModList:Flag(nil, "DotCanStack") then
skillFlags.DotCanStack = true
local speed = output.Speed
Expand Down
Loading