Skip to content

Commit b19fb14

Browse files
LocalIdentityLocalIdentity
authored andcommitted
Fix Gem attack speed multiplier affecting Crossbow reload speed (#1020)
The Gem attack speed multiplier was affecting the reload time of Crossbow skills as it as implemented as a more attack speed mod instead of modifying the base attack rate Co-authored-by: LocalIdentity <[email protected]>
1 parent 2e4e0ae commit b19fb14

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/Modules/CalcActiveSkill.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -538,7 +538,7 @@ function calcs.buildActiveSkillModList(env, activeSkill)
538538
activeSkill.skillData.attackTime = level.attackTime
539539
end
540540
if level.attackSpeedMultiplier then
541-
skillModList:NewMod("Speed", "MORE", level.attackSpeedMultiplier, activeEffect.grantedEffect.modSource, ModFlag.Attack)
541+
activeSkill.skillData.attackSpeedMultiplier = level.attackSpeedMultiplier
542542
end
543543
if level.cooldown then
544544
activeSkill.skillData.cooldown = level.cooldown

src/Modules/CalcOffence.lua

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2081,6 +2081,9 @@ function calcs.offence(env, actor, activeSkill)
20812081
else
20822082
local baseTime
20832083
if isAttack then
2084+
if skillData.attackSpeedMultiplier and source.AttackRate then
2085+
source.AttackRate = source.AttackRate * (1 + skillData.attackSpeedMultiplier / 100)
2086+
end
20842087
if skillData.castTimeOverridesAttackTime then
20852088
-- Skill is overriding weapon attack speed
20862089
baseTime = activeSkill.activeEffect.grantedEffect.castTime / (1 + (source.AttackSpeedInc or 0) / 100)
@@ -2180,7 +2183,13 @@ function calcs.offence(env, actor, activeSkill)
21802183
skillModList:NewMod("Multiplier:TraumaStacks", "BASE", skillModList:Sum("BASE", skillCfg, "Multiplier:SustainableTraumaStacks"), "Maximum Sustainable Trauma Stacks")
21812184
end
21822185
local inc = skillModList:Sum("INC", cfg, "Speed")
2183-
output.Speed = 1 / baseTime * round((1 + inc/100) * more, 2)
2186+
2187+
if skillFlags.warcry then
2188+
output.Speed = 1 / output.WarcryCastTime
2189+
else
2190+
output.Speed = 1 / (baseTime / round((1 + inc/100) * more, 2) + skillModList:Sum("BASE", cfg, "TotalAttackTime") + skillModList:Sum("BASE", cfg, "TotalCastTime"))
2191+
2192+
end
21842193
output.CastRate = output.Speed
21852194
if skillFlags.selfCast then
21862195
-- Self-cast skill; apply action speed

0 commit comments

Comments
 (0)