From aa61aaeee2fa27e02e3ab476a81af7dd25620506 Mon Sep 17 00:00:00 2001 From: Sida Wang <42928828+sida-wang@users.noreply.github.com> Date: Mon, 15 Jan 2024 23:15:03 +1100 Subject: [PATCH] fix: move eq of amplification part 2 damage calc into second pass --- src/Modules/CalcPerform.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 1adcb316e5..030ebe2085 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -1072,12 +1072,6 @@ function calcs.perform(env, fullDPSSkipEHP) local effect = activeSkill.skillModList:Sum("BASE", nil, "ShockedGroundEffect") * (1 + activeSkill.skillModList:Sum("INC", nil, "EnemyShockEffect") / 100) modDB:NewMod("ShockOverride", "BASE", effect, "Shocked Ground", { type = "ActorCondition", actor = "enemy", var = "OnShockedGround" } ) end - if (activeSkill.activeEffect.grantedEffect.name == "Earthquake of Amplification") and activeSkill.skillPart == 2 then - -- Need to calc the duration here as the AoE mod is calculated before Duration in CalcOffence and won't work - local full_duration = calcSkillDuration(activeSkill.skillModList, activeSkill.skillCfg, activeSkill.skillData, env, enemyDB) - local durationMulti = m_floor(full_duration * 10) - activeSkill.skillModList:NewMod("Multiplier:100msEarthquakeDuration", "BASE", durationMulti, "Skill:EarthquakeAltX") - end if activeSkill.skillData.supportBonechill and (activeSkill.skillTypes[SkillType.ChillingArea] or activeSkill.skillTypes[SkillType.NonHitChill] or not activeSkill.skillModList:Flag(nil, "CannotChill")) then output.HasBonechill = true end @@ -2708,6 +2702,12 @@ function calcs.perform(env, fullDPSSkipEHP) activeSkill.skillModList:NewMod("Multiplier:"..activeSkill.activeEffect.grantedEffect.name:gsub("%s+", "").."StageAfterFirst", "BASE", maximum, "Base") processBuffDebuff(activeSkill) end + if (activeSkill.activeEffect.grantedEffect.name == "Earthquake of Amplification") and activeSkill.skillPart == 2 then + local full_duration = calcSkillDuration(activeSkill.skillModList, activeSkill.skillCfg, activeSkill.skillData, env, enemyDB) + local durationMulti = m_floor(full_duration * 10) + activeSkill.skillModList:NewMod("Multiplier:100msEarthquakeDuration", "BASE", durationMulti, "Skill:EarthquakeAltX") + processBuffDebuff(activeSkill) + end end end