Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 27 additions & 1 deletion spec/System/TestSkills_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -238,11 +238,37 @@ describe("TestSkills", function()
assert.True(curseList:match("Flammability") ~= nil and curseList:match("Elemental Weakness") ~= nil)
end)

it("Ember Fusillade projectile count scales hit DPS and Full DPS", function()
build.skillsTab:PasteSocketGroup("Ember Fusillade 20/0 1\n")
build.skillsTab.socketGroupList[1].includeInFullDPS = true
build.buildFlag = true
runCallback("OnFrame")

local baseProjectileCount = build.calcsTab.mainOutput.ProjectileCount
local baseTotalDPS = build.calcsTab.mainOutput.TotalDPS
local baseFullDPS = build.calcsTab.mainOutput.FullDPS

assert.True(baseProjectileCount > 0)
assert.True(baseTotalDPS > 0)
assert.True(baseFullDPS > 0)

build.configTab.input.customMods = "Ember Fusillade fires 2 additional Projectiles"
build.configTab:BuildModList()
runCallback("OnFrame")

local projectileCount = build.calcsTab.mainOutput.ProjectileCount
local expectedProjectileRatio = projectileCount / baseProjectileCount

assert.True(projectileCount > baseProjectileCount)
assert.True(build.calcsTab.mainOutput.TotalDPS > baseTotalDPS * expectedProjectileRatio * 0.95)
assert.True(build.calcsTab.mainOutput.FullDPS > baseFullDPS * expectedProjectileRatio * 0.95)
end)

-- skills that don't have a base CD and have more than one use need to use the added cooldown by whatever support allows the +1 limit to be supportable
it("Test Added Cooldown interaction with +1 Limit", function()
build.skillsTab:PasteSocketGroup("Thunderstorm 20/0 1\nHourglass 1/0 1\nOverabundance I 1/0 1\n")
runCallback("OnFrame")

assert.True(build.calcsTab.calcsOutput.Cooldown == 10)
end)
end)
end)
5 changes: 4 additions & 1 deletion src/Data/Skills/act_int.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5848,6 +5848,9 @@ skills["EmberFusilladePlayer"] = {
[39] = { critChance = 7, levelRequirement = 90, cost = { Mana = 206, }, },
[40] = { critChance = 7, levelRequirement = 90, cost = { Mana = 225, }, },
},
preDamageFunc = function(activeSkill, output)
activeSkill.skillData.dpsMultiplier = output.ProjectileCount or 1
end,
statSets = {
[1] = {
label = "Projectile",
Expand Down Expand Up @@ -22501,4 +22504,4 @@ skills["WitheringPresencePlayer"] = {
},
},
}
}
}
3 changes: 3 additions & 0 deletions src/Export/Skills/act_int.txt
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,9 @@ statMap = {
#skillEnd

#skill EmberFusilladePlayer
preDamageFunc = function(activeSkill, output)
activeSkill.skillData.dpsMultiplier = output.ProjectileCount or 1
end,
#set EmberFusilladePlayer
#flags spell duration projectile
#mods
Expand Down
Loading