Skip to content
Merged
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
41 changes: 41 additions & 0 deletions spec/System/TestSkills_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,47 @@ describe("TestSkills", function()
assert.True(build.calcsTab.mainOutput.SpiritReservedPercent > oneCurseReservation)
end)

it("Keeps Virtuous armour scaling during Full DPS loop", function()
build.itemsTab:CreateDisplayItemFromRaw("New Item\nRazor Quarterstaff\nQuality: 0")
build.itemsTab:AddDisplayItem()
build.skillsTab:PasteSocketGroup("Virtuous Barrier 20/0 1")
build.skillsTab:PasteSocketGroup("Falling Thunder 20/0 1")
build.skillsTab:PasteSocketGroup("Quarterstaff Strike 20/0 1")
build.mainSocketGroup = 3
runCallback("OnFrame")

local calcs = LoadModule("Modules/Calcs")
local env, cachedPlayerDB, cachedEnemyDB, cachedMinionDB = calcs.initEnv(build, "CALCULATOR")
env.modDB:NewMod("Armour", "BASE", 1000, "Test Armour")
env.modDB:NewMod("Damage", "INC", 10, "Test Armour Damage", ModFlag.Attack, 0, { type = "PerStat", stat = "Armour", div = 1 })
calcs.perform(env)

local normalArmour = env.player.output.Armour
local normalDPS = env.player.output.TotalDPS
assert.are.equals(1050, normalArmour)
assert.is_true(normalDPS > 0)

env = calcs.initEnv(build, "CALCULATOR", {}, {
cachedPlayerDB = cachedPlayerDB,
cachedEnemyDB = cachedEnemyDB,
cachedMinionDB = cachedMinionDB,
env = env,
accelerate = {
nodeAlloc = true,
requirementsItems = true,
requirementsGems = true,
skills = true,
everything = true,
},
})
env.modDB:NewMod("Armour", "BASE", 1000, "Test Armour")
env.modDB:NewMod("Damage", "INC", 10, "Test Armour Damage", ModFlag.Attack, 0, { type = "PerStat", stat = "Armour", div = 1 })
calcs.perform(env)

assert.are.equals(normalArmour, env.player.output.Armour)
assert.are.near(normalDPS, env.player.output.TotalDPS, 0.001)
end)

it("Test cost efficiency modifiers", function()
-- Test Mana Cost Efficiency
build.skillsTab:PasteSocketGroup("Ball Lightning 1/0 1\n")
Expand Down
8 changes: 4 additions & 4 deletions src/Classes/SkillsTab.lua
Original file line number Diff line number Diff line change
Expand Up @@ -989,7 +989,7 @@ function SkillsTabClass:CreateGemSlot(index)
if gemInstance then
local grantedEffectList = gemInstance.gemData and gemInstance.gemData.grantedEffectList or { gemInstance.grantedEffect }
for index, grantedEffect in ipairs(grantedEffectList) do
if not grantedEffect.support and not grantedEffect.unsupported and (not grantedEffect.hasGlobalEffect or gemInstance["enableGlobal"..index]) then
if not grantedEffect.support and not grantedEffect.hideFromSideBar and (not grantedEffect.hasGlobalEffect or gemInstance["enableGlobal"..index]) then
return true
end
end
Expand Down Expand Up @@ -1035,7 +1035,7 @@ function SkillsTabClass:CreateGemSlot(index)
end
local grantedEffectList = gemInstance.gemData and gemInstance.gemData.grantedEffectList or { gemInstance.grantedEffect }
for index, grantedEffect in ipairs(grantedEffectList) do
if not grantedEffect.support and not grantedEffect.unsupported and (not grantedEffect.hasGlobalEffect or gemInstance["enableGlobal"..index]) then
if not grantedEffect.support and not grantedEffect.hideFromSideBar and (not grantedEffect.hasGlobalEffect or gemInstance["enableGlobal"..index]) then
return true
end
end
Expand Down Expand Up @@ -1232,8 +1232,8 @@ function SkillsTabClass:ProcessSocketGroup(socketGroup)
else
gemInstance.errMsg, gemInstance.gemData, gemInstance.skillId = nil
end
if gemInstance.gemData and gemInstance.gemData.grantedEffect.unsupported then
gemInstance.errMsg = gemInstance.nameSpec .. " is not supported yet"
if gemInstance.gemData and gemInstance.gemData.grantedEffect.hideFromSideBar then
gemInstance.errMsg = gemInstance.nameSpec .. " cannot be used as an active skill"
gemInstance.gemData = nil
end
if gemInstance.gemData or gemInstance.grantedEffect then
Expand Down
Loading
Loading