From 6d61bc0bed7455971f26600cc9fb71c58f3024d9 Mon Sep 17 00:00:00 2001 From: Paliak <91493239+Paliak@users.noreply.github.com> Date: Mon, 16 Mar 2026 19:48:27 +0100 Subject: [PATCH] FIX: CwC interval being rounded to tick rate Signed-off-by: Paliak <91493239+Paliak@users.noreply.github.com> --- src/Modules/CalcTriggers.lua | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/Modules/CalcTriggers.lua b/src/Modules/CalcTriggers.lua index 5340fcc664..c0940ca031 100644 --- a/src/Modules/CalcTriggers.lua +++ b/src/Modules/CalcTriggers.lua @@ -245,8 +245,8 @@ local function CWCHandler(env) output.addsCastTime = processAddedCastTime(env.player.mainSkill, breakdown) local icdr = calcLib.mod(env.player.mainSkill.skillModList, env.player.mainSkill.skillCfg, "CooldownRecovery") or 1 - local adjTriggerInterval = m_ceil(source.skillData.triggerTime * data.misc.ServerTickRate) / data.misc.ServerTickRate - local triggerRateOfTrigger = 1/adjTriggerInterval + local triggerInterval = source.skillData.triggerTime + local triggerRateOfTrigger = 1 / triggerInterval local triggeredCD = env.player.mainSkill.skillData.cooldown local cooldownOverride = env.player.mainSkill.skillModList:Override(env.player.mainSkill.skillCfg, "CooldownRecovery") @@ -269,8 +269,7 @@ local function CWCHandler(env) if breakdown then if triggeredCD or cooldownOverride then breakdown.TriggerRateCap = { - s_format("Cast While Channeling triggers %s every %.2fs while channeling %s ", triggeredName, source.skillData.triggerTime, source.activeEffect.grantedEffect.name), - s_format("%.3f ^8(adjusted for server tick rate)", adjTriggerInterval), + s_format("Cast While Channeling triggers %s every %.2fs while channeling %s ", triggeredName, triggerInterval, source.activeEffect.grantedEffect.name), "", s_format("%.2f ^8(base cooldown of triggered skill)", triggeredCD), s_format("/ %.2f ^8(increased/reduced cooldown recovery)", icdr), @@ -284,8 +283,7 @@ local function CWCHandler(env) end else breakdown.TriggerRateCap = { - s_format("Cast While Channeling triggers %s every %.2fs while channeling %s ", triggeredName, source.skillData.triggerTime, source.activeEffect.grantedEffect.name), - s_format("%.3f ^8(adjusted for server tick rate)", adjTriggerInterval), + s_format("Cast While Channeling triggers %s every %.2fs while channeling %s ", triggeredName, triggerInterval, source.activeEffect.grantedEffect.name), "", triggeredName .. " has no base cooldown or cooldown override", "", @@ -294,7 +292,7 @@ local function CWCHandler(env) local function extraIncreaseNeeded(affectedCD) if not cooldownOverride then - local nextBreakpoint = effCDTriggeredSkill - adjTriggerInterval + local nextBreakpoint = effCDTriggeredSkill - triggerInterval local timeOverBreakpoint = triggeredTotalCooldown - nextBreakpoint local alreadyReducedTime = triggeredTotalCooldown * icdr - triggeredTotalCooldown if timeOverBreakpoint < affectedCD then @@ -377,7 +375,7 @@ local function CWCHandler(env) -- Account for Trigger-related INC/MORE modifiers addTriggerIncMoreMods(env.player.mainSkill, env.player.mainSkill) - env.player.output.ChannelTimeToTrigger = source.skillData.triggerTime + env.player.output.ChannelTimeToTrigger = triggerInterval env.player.mainSkill.skillData.triggered = true env.player.mainSkill.skillFlags.globalTrigger = true env.player.mainSkill.skillData.triggerRate = output.SkillTriggerRate