Skip to content

Commit

Permalink
FIX: order of calcs for afflication charges (#6801)
Browse files Browse the repository at this point in the history
  • Loading branch information
Paliak authored Dec 1, 2023
1 parent cd7f6bc commit c4b87b6
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 22 deletions.
17 changes: 0 additions & 17 deletions src/Modules/CalcOffence.lua
Original file line number Diff line number Diff line change
Expand Up @@ -464,23 +464,6 @@ function calcs.offence(env, actor, activeSkill)
skillModList:NewMod("CritMultiplier", "BASE", m_floor(nightbladeMulti * elusiveEffect), "Nightblade")
end

-- additional charge based modifiers
if skillModList:Flag(nil, "UseEnduranceCharges") and skillModList:Flag(nil, "EnduranceChargesConvertToBrutalCharges") then
local tripleDmgChancePerEndurance = modDB:Sum("BASE", nil, "PerBrutalTripleDamageChance")
modDB:NewMod("TripleDamageChance", "BASE", tripleDmgChancePerEndurance, { type = "Multiplier", var = "BrutalCharge" } )
end
if skillModList:Flag(nil, "UseFrenzyCharges") and skillModList:Flag(nil, "FrenzyChargesConvertToAfflictionCharges") then
local dmgPerAffliction = modDB:Sum("BASE", nil, "PerAfflictionAilmentDamage")
local effectPerAffliction = modDB:Sum("BASE", nil, "PerAfflictionNonDamageEffect")
modDB:NewMod("Damage", "MORE", dmgPerAffliction, "Affliction Charges", 0, KeywordFlag.Ailment, { type = "Multiplier", var = "AfflictionCharge" } )
modDB:NewMod("EnemyChillEffect", "MORE", effectPerAffliction, "Affliction Charges", { type = "Multiplier", var = "AfflictionCharge" } )
modDB:NewMod("EnemyShockEffect", "MORE", effectPerAffliction, "Affliction Charges", { type = "Multiplier", var = "AfflictionCharge" } )
modDB:NewMod("EnemyFreezeEffect", "MORE", effectPerAffliction, "Affliction Charges", { type = "Multiplier", var = "AfflictionCharge" } )
modDB:NewMod("EnemyScorchEffect", "MORE", effectPerAffliction, "Affliction Charges", { type = "Multiplier", var = "AfflictionCharge" } )
modDB:NewMod("EnemyBrittleEffect", "MORE", effectPerAffliction, "Affliction Charges", { type = "Multiplier", var = "AfflictionCharge" } )
modDB:NewMod("EnemySapEffect", "MORE", effectPerAffliction, "Affliction Charges", { type = "Multiplier", var = "AfflictionCharge" } )
end

-- set other limits
output.ActiveTrapLimit = skillModList:Sum("BASE", skillCfg, "ActiveTrapLimit")
output.ActiveMineLimit = skillModList:Sum("BASE", skillCfg, "ActiveMineLimit")
Expand Down
25 changes: 20 additions & 5 deletions src/Modules/CalcPerform.lua
Original file line number Diff line number Diff line change
Expand Up @@ -847,6 +847,21 @@ local function doActorMisc(env, actor)
local max = modDB:Override(nil, "SoulEaterMax")
modDB:NewMod("Multiplier:SoulEater", "BASE", 1, "Base", { type = "Multiplier", var = "SoulEaterStack", limit = max })
end
if modDB:Flag(nil, "UseEnduranceCharges") and modDB:Flag(nil, "EnduranceChargesConvertToBrutalCharges") then
local tripleDmgChancePerEndurance = modDB:Sum("BASE", nil, "PerBrutalTripleDamageChance")
modDB:NewMod("TripleDamageChance", "BASE", tripleDmgChancePerEndurance, { type = "Multiplier", var = "BrutalCharge" } )
end
if modDB:Flag(nil, "UseFrenzyCharges") and modDB:Flag(nil, "FrenzyChargesConvertToAfflictionCharges") then
local dmgPerAffliction = modDB:Sum("BASE", nil, "PerAfflictionAilmentDamage")
local effectPerAffliction = modDB:Sum("BASE", nil, "PerAfflictionNonDamageEffect")
modDB:NewMod("Damage", "MORE", dmgPerAffliction, "Affliction Charges", 0, KeywordFlag.Ailment, { type = "Multiplier", var = "AfflictionCharge" } )
modDB:NewMod("EnemyChillEffect", "MORE", effectPerAffliction, "Affliction Charges", { type = "Multiplier", var = "AfflictionCharge" } )
modDB:NewMod("EnemyShockEffect", "MORE", effectPerAffliction, "Affliction Charges", { type = "Multiplier", var = "AfflictionCharge" } )
modDB:NewMod("EnemyFreezeEffect", "MORE", effectPerAffliction, "Affliction Charges", { type = "Multiplier", var = "AfflictionCharge" } )
modDB:NewMod("EnemyScorchEffect", "MORE", effectPerAffliction, "Affliction Charges", { type = "Multiplier", var = "AfflictionCharge" } )
modDB:NewMod("EnemyBrittleEffect", "MORE", effectPerAffliction, "Affliction Charges", { type = "Multiplier", var = "AfflictionCharge" } )
modDB:NewMod("EnemySapEffect", "MORE", effectPerAffliction, "Affliction Charges", { type = "Multiplier", var = "AfflictionCharge" } )
end
end
end

Expand Down Expand Up @@ -2583,6 +2598,11 @@ function calcs.perform(env, fullDPSSkipEHP)
enemyDB:ReplaceMod("Multiplier:ImpaleStacks", "BASE", maxImpaleStacks, "Config", { type = "Condition", var = "Combat" })
end

doActorMisc(env, env.player)
if env.minion then
doActorMisc(env, env.minion)
end

-- Calculate maximum and apply the strongest non-damaging ailments
local ailmentData = data.nonDamagingAilment
local ailments = {
Expand Down Expand Up @@ -2742,11 +2762,6 @@ function calcs.perform(env, fullDPSSkipEHP)
modDB:AddList(env.weaponModList1)
end

-- Process misc buffs/modifiers
doActorMisc(env, env.player)
if env.minion then
doActorMisc(env, env.minion)
end
doActorMisc(env, env.enemy)

for _, activeSkill in ipairs(env.player.activeSkillList) do
Expand Down

0 comments on commit c4b87b6

Please sign in to comment.