Skip to content

Commit 9328f2c

Browse files
committed
Fix Blade Blast default stage cap
Blade Blast uses a stage count for blade hits per cast/per second. Its modeled maximum was set to 900, so defaulting staged skills to their maximum stages overinflated Blade Blast damage. Use the skill tooltip cap of 50 blades instead and cover the default plus over-cap input. Fixes #9836
1 parent 7e38600 commit 9328f2c

3 files changed

Lines changed: 34 additions & 2 deletions

File tree

spec/System/TestSkills_spec.lua

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,38 @@ describe("TestAttacks", function()
100100
assert.True(build.calcsTab.mainEnv.enemyDB:Sum("BASE", nil, "FireResist") < 0)
101101
end)
102102

103+
it("Defaults Blade Blast to the skill's blade cap", function()
104+
build.skillsTab:PasteSocketGroup("Blade Blast 20/0 1\n")
105+
runCallback("OnFrame")
106+
107+
local mainSocketGroup = build.skillsTab.socketGroupList[build.mainSocketGroup]
108+
local activeSkill = mainSocketGroup.displaySkillList[mainSocketGroup.mainActiveSkill]
109+
local calcsSkillSelectControls = build.calcsTab.sectionList[1].controls
110+
build:RefreshSkillSelectControls(calcsSkillSelectControls, build.calcsTab.input.skill_number, "Calcs")
111+
112+
assert.are.equals("50", build.controls.mainSkillStageCount.buf)
113+
assert.are.equals("50", calcsSkillSelectControls.mainSkillStageCount.buf)
114+
assert.are.equals(50, activeSkill.skillData.stagesMax)
115+
assert.are.equals(50, activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:BladeBlastStage"))
116+
assert.are.equals(49, activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:BladeBlastStageAfterFirst"))
117+
118+
local cappedAverageDamage = build.calcsTab.mainOutput.AverageDamage
119+
local cappedTotalDPS = build.calcsTab.mainOutput.TotalDPS
120+
local cappedCombinedDPS = build.calcsTab.mainOutput.CombinedDPS
121+
activeSkill.activeEffect.srcInstance.skillStageCount = 51
122+
build.modFlag = true
123+
build.buildFlag = true
124+
runCallback("OnFrame")
125+
126+
activeSkill = mainSocketGroup.displaySkillList[mainSocketGroup.mainActiveSkill]
127+
assert.are.equals("51", build.controls.mainSkillStageCount.buf)
128+
assert.are.equals(50, activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:BladeBlastStage"))
129+
assert.are.equals(49, activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:BladeBlastStageAfterFirst"))
130+
assert.are.equals(cappedAverageDamage, build.calcsTab.mainOutput.AverageDamage)
131+
assert.are.equals(cappedTotalDPS, build.calcsTab.mainOutput.TotalDPS)
132+
assert.are.equals(cappedCombinedDPS, build.calcsTab.mainOutput.CombinedDPS)
133+
end)
134+
103135
it("Test Adrenaline affecting blight max stage count", function()
104136
build.skillsTab:PasteSocketGroup("Blight 20/0 1\n")
105137
runCallback("OnFrame")

src/Data/Skills/act_dex.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1382,7 +1382,7 @@ skills["BladeBlast"] = {
13821382
area = true,
13831383
},
13841384
baseMods = {
1385-
mod("Multiplier:BladeBlastMaxStages", "BASE", 900, 0, 0),
1385+
mod("Multiplier:BladeBlastMaxStages", "BASE", 50, 0, 0),
13861386
skill("dpsBaseMultiplier", 1, { type = "Multiplier", var = "BladeBlastStage" }),
13871387
},
13881388
qualityStats = {

src/Export/Skills/act_dex.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ local skills, mod, flag, skill = ...
237237
activeSkill.skillData.hitTimeOverride = 1
238238
end
239239
end,
240-
#baseMod mod("Multiplier:BladeBlastMaxStages", "BASE", 900, 0, 0)
240+
#baseMod mod("Multiplier:BladeBlastMaxStages", "BASE", 50, 0, 0)
241241
#baseMod skill("dpsBaseMultiplier", 1, { type = "Multiplier", var = "BladeBlastStage" })
242242
#mods
243243

0 commit comments

Comments
 (0)