Skip to content

Commit d97b509

Browse files
committed
adds support for hysteria burning ground boots
1 parent 5884676 commit d97b509

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

src/Modules/CalcOffence.lua

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3970,6 +3970,49 @@ function calcs.offence(env, actor, activeSkill)
39703970
end
39713971
end
39723972
end
3973+
3974+
local baseDropsBurningGround = modDB:Sum("BASE", nil, "DropsBurningGround")
3975+
if baseDropsBurningGround > 0 then
3976+
ConPrintf("DropsBurningGround")
3977+
local damageType = "Fire"
3978+
if canDeal[damageType] then
3979+
ConPrintf(baseDropsBurningGround)
3980+
local dotCfg = {
3981+
flags = bor(ModFlag.Dot),
3982+
keywordFlags = 0
3983+
}
3984+
local dotTakenCfg = copyTable(dotCfg, true)
3985+
local dotTypeCfg = copyTable(dotCfg, true)
3986+
dotTypeCfg.keywordFlags = bor(dotTypeCfg.keywordFlags, KeywordFlag[damageType.."Dot"])
3987+
local effMult = 1
3988+
if env.mode_effective then
3989+
local resist = 0
3990+
local takenInc = enemyDB:Sum("INC", dotTakenCfg, "DamageTaken", "DamageTakenOverTime", damageType.."DamageTaken", damageType.."DamageTakenOverTime")
3991+
local takenMore = enemyDB:More(dotTakenCfg, "DamageTaken", "DamageTakenOverTime", damageType.."DamageTaken", damageType.."DamageTakenOverTime")
3992+
if env.modDB:Flag(nil, "Enemy"..damageType.."ResistEqualToYours") then
3993+
resist = env.player.output[damageType.."Resist"]
3994+
else
3995+
resist = enemyDB:Sum("BASE", nil, damageType.."Resist")
3996+
if isElemental[damageType] then
3997+
local base = resist + enemyDB:Sum("BASE", dotTypeCfg, "ElementalResist")
3998+
resist = base * calcLib.mod(enemyDB, nil, damageType.."Resist")
3999+
takenInc = takenInc + enemyDB:Sum("INC", dotTypeCfg, "ElementalDamageTaken")
4000+
end
4001+
end
4002+
resist = m_min(resist, data.misc.EnemyMaxResist)
4003+
effMult = (1 - resist / 100) * (1 + takenInc / 100) * takenMore
4004+
end
4005+
local inc = modDB:Sum("INC", dotTypeCfg, "Damage", damageType.."Damage", isElemental[damageType] and "ElementalDamage" or nil)
4006+
local more = round(modDB:More(dotTypeCfg, "Damage", damageType.."Damage", isElemental[damageType] and "ElementalDamage" or nil), 2)
4007+
local mult = modDB:Sum("BASE", dotTypeCfg, "DotMultiplier", damageType.."DotMultiplier")
4008+
local total = baseDropsBurningGround * (1 + inc/100) * more * (1 + mult/100) * effMult
4009+
ConPrintf(baseDropsBurningGround)
4010+
if not output.BurningGroundDPS or output.BurningGroundDPS < total then
4011+
output.BurningGroundDPS = total
4012+
output.BurningGroundFromIgnite = false
4013+
end
4014+
end
4015+
end
39734016

39744017
-- Calculate skill DOT components
39754018
local dotCfg = {

src/Modules/ModParser.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2514,6 +2514,7 @@ local specialModList = {
25142514
["always scorch while affected by anger"] = { mod("EnemyScorchChance", "BASE", 100, { type = "Condition", var = "AffectedByAnger" }) },
25152515
["always inflict brittle while affected by hatred"] = { mod("EnemyBrittleChance", "BASE", 100, { type = "Condition", var = "AffectedByHatred" }) },
25162516
["always sap while affected by wrath"] = { mod("EnemySapChance", "BASE", 100, { type = "Condition", var = "AffectedByWrath" }) },
2517+
["drops burning ground while moving, dealing (%d+) fire damage per second for %d+ seconds"] = function(num) return { mod("DropsBurningGround", "BASE", num) } end,
25172518
-- Bleed
25182519
["melee attacks cause bleeding"] = { mod("BleedChance", "BASE", 100, nil, ModFlag.Melee) },
25192520
["attacks cause bleeding when hitting cursed enemies"] = { mod("BleedChance", "BASE", 100, nil, ModFlag.Attack, { type = "ActorCondition", actor = "enemy", var = "Cursed" }) },

0 commit comments

Comments
 (0)