Due to #8271 changing the default boss preset many tests that relied on enemy stats broke. This pr fixes that by changing the boss configuration back to "None" for affected tests. Additionally this commit adds an extra test for scorching ray exposure when using the automatic maximum sustainable stages mode.
121 lines
4.3 KiB
Lua
121 lines
4.3 KiB
Lua
describe("TestAttacks", function()
|
|
before_each(function()
|
|
newBuild()
|
|
end)
|
|
|
|
teardown(function()
|
|
-- newBuild() takes care of resetting everything in setup()
|
|
end)
|
|
|
|
it("adds envy, ensures +1 level keeps level 25 Envy", function()
|
|
build.itemsTab:CreateDisplayItemFromRaw("New Item\nAssassin Bow\nGrants Level 1 Summon Raging Spirit\nGrants Level 25 Envy Skill")
|
|
build.itemsTab:AddDisplayItem()
|
|
runCallback("OnFrame")
|
|
assert.are.equals(205, build.calcsTab.mainEnv.minion.modDB:Sum("BASE", build.calcsTab.mainEnv.minion.mainSkill.skillCfg, "ChaosMin"))
|
|
|
|
build.skillsTab:PasteSocketGroup("Slot: Weapon 1\nAwakened Generosity 4/0 Default 1\n")
|
|
runCallback("OnFrame")
|
|
assert.are.equals(round(205 * 1.43), build.calcsTab.mainEnv.minion.modDB:Sum("BASE", build.calcsTab.mainEnv.minion.mainSkill.skillCfg, "ChaosMin"))
|
|
|
|
build.skillsTab:PasteSocketGroup("Slot: Weapon 1\nAwakened Generosity 5/0 Default 1\n")
|
|
runCallback("OnFrame")
|
|
-- No Envy level increase, so base should still be 205
|
|
assert.are.equals(round(205 * 1.44), build.calcsTab.mainEnv.minion.modDB:Sum("BASE", build.calcsTab.mainEnv.minion.mainSkill.skillCfg, "ChaosMin"))
|
|
end)
|
|
|
|
it("Test Mirage Archer using triggered skill", function()
|
|
build.itemsTab:CreateDisplayItemFromRaw([[+3 Bow
|
|
Thicket Bow
|
|
Crafted: true
|
|
Prefix: {range:0.5}LocalIncreaseSocketedGemLevel1
|
|
Prefix: {range:0.5}LocalIncreaseSocketedBowGemLevel2
|
|
Prefix: None
|
|
Suffix: {range:0.5}LocalIncreasedAttackSpeed2
|
|
Suffix: None
|
|
Suffix: None
|
|
Quality: 20
|
|
Sockets: G-G-G-G-G-G
|
|
LevelReq: 56
|
|
Implicits: 0
|
|
+1 to Level of Socketed Gems
|
|
+2 to Level of Socketed Bow Gems
|
|
9% increased Attack Speed]])
|
|
build.itemsTab:AddDisplayItem()
|
|
runCallback("OnFrame")
|
|
|
|
build.skillsTab:PasteSocketGroup("Mirage Archer 20/0 Default 1\nRain of Arrows 20/0 Default 1\nManaforged Arrows 20/0 Default 1\n")
|
|
runCallback("OnFrame")
|
|
|
|
build.skillsTab:PasteSocketGroup("Toxic Rain 20/0 Default 1\n")
|
|
runCallback("OnFrame")
|
|
|
|
assert.True(build.calcsTab.mainOutput.MirageDPS ~= nil)
|
|
|
|
assert.True(build.calcsTab.mainOutput.SkillTriggerRate == build.calcsTab.mainOutput.Speed)
|
|
end)
|
|
|
|
it("Test Sacred wisps using current skill", function()
|
|
build.itemsTab:CreateDisplayItemFromRaw([[Elemental Wand
|
|
Imbued Wand
|
|
Crafted: true
|
|
Prefix: None
|
|
Prefix: None
|
|
Prefix: None
|
|
Suffix: None
|
|
Suffix: None
|
|
Suffix: None
|
|
Quality: 0
|
|
Sockets: B-B-B
|
|
LevelReq: 59
|
|
Implicits: 0]])
|
|
build.itemsTab:AddDisplayItem()
|
|
runCallback("OnFrame")
|
|
|
|
build.skillsTab:PasteSocketGroup("Power Siphon 20/0 Default 1\nSacred Wisps 20/0 Default 1\n")
|
|
runCallback("OnFrame")
|
|
|
|
assert.True(build.calcsTab.mainOutput.MirageDPS ~= nil)
|
|
end)
|
|
|
|
it("Test Scorching ray applying exposure at max stages", function()
|
|
build.skillsTab:PasteSocketGroup("Scorching Ray 20/0 Default 1\n")
|
|
runCallback("OnFrame")
|
|
|
|
local mainSocketGroup = build.skillsTab.socketGroupList[build.mainSocketGroup]
|
|
local srcInstance = mainSocketGroup.displaySkillList[mainSocketGroup.mainActiveSkill].activeEffect.srcInstance
|
|
srcInstance.skillStageCount = 8
|
|
build.modFlag = true
|
|
build.buildFlag = true
|
|
build.configTab.input.enemyIsBoss = "None"
|
|
build.configTab:BuildModList()
|
|
runCallback("OnFrame")
|
|
-- Manual stages
|
|
assert.True(build.calcsTab.mainEnv.enemyDB:Sum("BASE", nil, "FireResist") < 0)
|
|
|
|
srcInstance.skillPart = 2
|
|
build.modFlag = true
|
|
build.buildFlag = true
|
|
runCallback("OnFrame")
|
|
-- Automatic maximum sustainable stages
|
|
assert.True(build.calcsTab.mainEnv.enemyDB:Sum("BASE", nil, "FireResist") < 0)
|
|
end)
|
|
|
|
it("Test Adrenaline affecting blight max stage count", function()
|
|
build.skillsTab:PasteSocketGroup("Blight 20/0 Default 1\n")
|
|
runCallback("OnFrame")
|
|
|
|
local mainSocketGroup = build.skillsTab.socketGroupList[build.mainSocketGroup]
|
|
local srcInstance = mainSocketGroup.displaySkillList[mainSocketGroup.mainActiveSkill].activeEffect.srcInstance
|
|
srcInstance.skillPart = 2
|
|
build.modFlag = true
|
|
build.buildFlag = true
|
|
runCallback("OnFrame")
|
|
|
|
local preAdrenalineMaxStages = build.calcsTab.mainEnv.player.activeSkillList[1].skillModList:Sum("BASE", nil, "Multiplier:BlightMaxStages")
|
|
build.configTab.input.buffAdrenaline = true
|
|
build.configTab:BuildModList()
|
|
runCallback("OnFrame")
|
|
|
|
assert.True(preAdrenalineMaxStages < build.calcsTab.mainEnv.player.activeSkillList[1].skillModList:Sum("BASE", nil, "Multiplier:BlightMaxStages"))
|
|
end)
|
|
end) |