Skip to content

Commit 8359598

Browse files
authored
Update act_int.lua
Adjust KF max aps calculation
1 parent c7cef2b commit 8359598

1 file changed

Lines changed: 7 additions & 8 deletions

File tree

src/Data/Skills/act_int.lua

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11201,29 +11201,28 @@ skills["KineticFusillade"] = {
1120111201
-- Projectiles orbit for base_skill_effect_duration before firing
1120211202
-- Recasting resets the timer, so attacking too fast wastes potential damage
1120311203
local baseDuration = skillData.duration
11204-
local actualDuration = output.Duration or baseDuration
11205-
local ticksNeededForInitialDelay = math.ceil(actualDuration / data.misc.ServerTickTime)
11204+
local actualDuration = baseDuration * output.DurationMod
1120611205
local timePerProjectile = baseDelayBetweenProjectiles * output.DurationMod
1120711206
local timeForAllProjectiles = timePerProjectile * projectileCount
11208-
local effectiveDelay = ticksNeededForInitialDelay * data.misc.ServerTickTime + math.ceil(timeForAllProjectiles / data.misc.ServerTickTime) * data.misc.ServerTickTime
11207+
local effectiveDelay = actualDuration + timeForAllProjectiles
1120911208
local maxEffectiveAPS = 1 / effectiveDelay
1121011209
local currentAPS = output.Speed
11210+
local MissProjectile = math.ceil((effectiveDelay - (1/currentAPS)) / timePerProjectile)
1121111211

1121211212
output.KineticFusilladeMaxEffectiveAPS = maxEffectiveAPS
1121311213

1121411214
if breakdown then
1121511215
local breakdownAPS = {}
11216-
t_insert(breakdownAPS, s_format("^1(These calculations are speculative and best-effort)", actualDuration))
11216+
t_insert(breakdownAPS, s_format("^1(These calculations are still in beta testing)", actualDuration))
11217+
t_insert(breakdownAPS, "")
1121711218
t_insert(breakdownAPS, s_format("^8Delay of^7 %.3fs ^8before projectiles start firing", actualDuration))
1121811219
t_insert(breakdownAPS, s_format("^8Each projectile fires sequentially with a^7 %.3fs ^8delay between each projectile", timePerProjectile))
11219-
t_insert(breakdownAPS, s_format("^8Server tick time:^7 %.3fs", data.misc.ServerTickTime))
11220-
t_insert(breakdownAPS, s_format("^8Ticks needed:^7 %d ^8(rounded up)", ticksNeededForInitialDelay + math.ceil(timeForAllProjectiles / data.misc.ServerTickTime)))
1122111220
t_insert(breakdownAPS, s_format("^8Effective delay:^7 %.3fs", effectiveDelay))
1122211221
t_insert(breakdownAPS, s_format("^8Max effective attack rate:^7 1 / %.3f = %.2f", effectiveDelay, maxEffectiveAPS))
1122311222
if currentAPS and currentAPS > maxEffectiveAPS then
1122411223
t_insert(breakdownAPS, "")
1122511224
t_insert(breakdownAPS, s_format("^1Current attack rate (%.2f) exceeds max effective rate!", currentAPS))
11226-
t_insert(breakdownAPS, s_format("^1DPS is reduced by %.1f%%", (1 - maxEffectiveAPS / currentAPS) * 100))
11225+
t_insert(breakdownAPS, s_format("^1You will lose up to %d projectiles per volley.", MissProjectile))
1122711226
elseif currentAPS then
1122811227
t_insert(breakdownAPS, "")
1122911228
t_insert(breakdownAPS, s_format("^2Current attack rate (%.2f) is within effective limits", currentAPS))
@@ -21099,4 +21098,4 @@ skills["Zealotry"] = {
2109921098
[39] = { 19, 53, 33, cooldown = 1.2, levelRequirement = 99, manaReservationPercent = 50, storedUses = 1, statInterpolation = { 1, 1, 1, }, },
2110021099
[40] = { 20, 54, 34, cooldown = 1.2, levelRequirement = 100, manaReservationPercent = 50, storedUses = 1, statInterpolation = { 1, 1, 1, }, },
2110121100
},
21102-
}
21101+
}

0 commit comments

Comments
 (0)