From 2190aba6281a2acf4284d7582809477e8063556d Mon Sep 17 00:00:00 2001 From: Paliak <91493239+Paliak@users.noreply.github.com> Date: Thu, 14 Sep 2023 01:11:33 +0200 Subject: [PATCH 1/2] FIX: use HitSpeed as source rate if avilable --- src/Modules/CalcTriggers.lua | 10 +++++----- src/Modules/Common.lua | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Modules/CalcTriggers.lua b/src/Modules/CalcTriggers.lua index f34ef94157..926ea53321 100644 --- a/src/Modules/CalcTriggers.lua +++ b/src/Modules/CalcTriggers.lua @@ -67,7 +67,7 @@ end -- Identify the trigger action skill for trigger conditions, take highest Attack Per Second local function findTriggerSkill(env, skill, source, triggerRate, comparer) local comparer = comparer or function(uuid, source, triggerRate) - local cachedSpeed = GlobalCache.cachedData["CACHE"][uuid].Speed + local cachedSpeed = GlobalCache.cachedData["CACHE"][uuid].HitSpeed or GlobalCache.cachedData["CACHE"][uuid].Speed return (not source and cachedSpeed) or (cachedSpeed and cachedSpeed > (triggerRate or 0)) end @@ -77,7 +77,7 @@ local function findTriggerSkill(env, skill, source, triggerRate, comparer) end if GlobalCache.cachedData["CACHE"][uuid] and comparer(uuid, source, triggerRate) and (skill.skillFlags and not skill.skillFlags.disable) and (skill.skillCfg and not skill.skillCfg.skillCond["usedByMirage"]) and not skill.skillTypes[SkillType.OtherThingUsesSkill] then - return skill, GlobalCache.cachedData["CACHE"][uuid].Speed, uuid + return skill, GlobalCache.cachedData["CACHE"][uuid].HitSpeed or GlobalCache.cachedData["CACHE"][uuid].Speed, uuid end return source, triggerRate, source and cacheSkillUUID(source, env) end @@ -515,18 +515,18 @@ local function defaultTriggerHandler(env, config) local manaSpentThreshold = triggeredManaCost * actor.mainSkill.skillData.ManaForgedArrowsPercentThreshold local sourceManaCost = GlobalCache.cachedData["CACHE"][uuid].Env.player.output.ManaCost or 0 if sourceManaCost > 0 then - trigRate = (trigRate * sourceManaCost) / manaSpentThreshold if breakdown then t_insert(breakdown.EffectiveSourceRate, s_format("* %.2f ^8(Mana cost of trigger source)", sourceManaCost)) - t_insert(breakdown.EffectiveSourceRate, s_format("= %.2f ^8(Mana spent per second)", (GlobalCache.cachedData["CACHE"][uuid].Env.player.output.Speed * sourceManaCost))) + t_insert(breakdown.EffectiveSourceRate, s_format("= %.2f ^8(Mana spent per second)", (trigRate * sourceManaCost))) t_insert(breakdown.EffectiveSourceRate, s_format("")) t_insert(breakdown.EffectiveSourceRate, s_format("%.2f ^8(Mana Cost of triggered)", triggeredManaCost)) t_insert(breakdown.EffectiveSourceRate, s_format("%.2f ^8(Manaforged threshold multiplier)", actor.mainSkill.skillData.ManaForgedArrowsPercentThreshold)) t_insert(breakdown.EffectiveSourceRate, s_format("= %.2f ^8(Manaforged trigger threshold)", manaSpentThreshold)) t_insert(breakdown.EffectiveSourceRate, s_format("")) - t_insert(breakdown.EffectiveSourceRate, s_format("%.2f ^8(Mana spent per second)", (GlobalCache.cachedData["CACHE"][uuid].Env.player.output.Speed * sourceManaCost))) + t_insert(breakdown.EffectiveSourceRate, s_format("%.2f ^8(Mana spent per second)", (trigRate * sourceManaCost))) t_insert(breakdown.EffectiveSourceRate, s_format("/ %.2f ^8(Manaforged trigger threshold)", manaSpentThreshold)) end + trigRate = (trigRate * sourceManaCost) / manaSpentThreshold else trigRate = 0 end diff --git a/src/Modules/Common.lua b/src/Modules/Common.lua index 762955d7d8..8fa79b674f 100644 --- a/src/Modules/Common.lua +++ b/src/Modules/Common.lua @@ -752,6 +752,7 @@ function cacheData(uuid, env) GlobalCache.cachedData[mode][uuid] = { Name = env.player.mainSkill.activeEffect.grantedEffect.name, Speed = env.player.output.Speed, + HitSpeed = env.player.output.HitSpeed, ManaCost = env.player.output.ManaCost, LifeCost = env.player.output.LifeCost, ESCost = env.player.output.ESCost, From 2afd7d40f60917ccb69ea7f737dc4abb03256535 Mon Sep 17 00:00:00 2001 From: Paliak <91493239+Paliak@users.noreply.github.com> Date: Sun, 17 Sep 2023 22:09:08 +0200 Subject: [PATCH 2/2] FIX: use HitSpeed for kitava --- src/Modules/CalcTriggers.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Modules/CalcTriggers.lua b/src/Modules/CalcTriggers.lua index bf2e7136f5..122e89dea8 100644 --- a/src/Modules/CalcTriggers.lua +++ b/src/Modules/CalcTriggers.lua @@ -1053,7 +1053,7 @@ local configTable = { return {triggerChance = env.player.modDB:Sum("BASE", nil, "KitavaTriggerChance"), triggerName = "Kitava's Thirst", comparer = function(uuid, source, triggerRate) - local cachedSpeed = GlobalCache.cachedData["CACHE"][uuid].Speed + local cachedSpeed = GlobalCache.cachedData["CACHE"][uuid].HitSpeed or GlobalCache.cachedData["CACHE"][uuid].Speed local cachedManaCost = GlobalCache.cachedData["CACHE"][uuid].ManaCost return ( (not source and cachedSpeed) or (cachedSpeed and cachedSpeed > (triggerRate or 0)) ) and ( (cachedManaCost or 0) > requiredManaCost ) end,