diff --git a/spec/System/TestDefence_spec.lua b/spec/System/TestDefence_spec.lua index dad968cf65..938e205917 100644 --- a/spec/System/TestDefence_spec.lua +++ b/spec/System/TestDefence_spec.lua @@ -692,14 +692,35 @@ describe("TestDefence", function() assert.is_true(build.calcsTab.calcsOutput.TotalMinionLife > 0) end) - it("does not count invulnerable Minions for Companionship", function() + it("counts invulnerable Minions for Companionship's condition", function() build.skillsTab:PasteSocketGroup("Animate Guardian 20/0 1\nCompanionship 3/0 1") build.skillsTab:PasteSocketGroup("Summon Skitterbots 20/0 1") runCallback("OnFrame") - assert.are.equals(1, build.calcsTab.calcsEnv.player.modDB:Sum("BASE", nil, "Multiplier:SummonedMinion")) - assert.are.equals(15, build.calcsTab.calcsOutput.MinionAllyDamageMitigation) - assert.is_true(build.calcsTab.calcsOutput.TotalMinionLife > 0) + assert.is_true(build.calcsTab.calcsEnv.player.modDB:Sum("BASE", nil, "Multiplier:SummonedMinion") > 1) + assert.are.equals(0, build.calcsTab.calcsOutput.MinionAllyDamageMitigation) + assert.is_nil(build.calcsTab.calcsOutput.TotalMinionLife) + end) + + it("keeps invulnerable minion limits available to limitStat", function() + build.itemsTab:CreateDisplayItemFromRaw([[ + Test Item + Fiend Dagger + 100% chance to Trigger Level 1 Raise Spiders on Kill + ]]) + build.itemsTab:AddDisplayItem() + build.skillsTab:PasteSocketGroup("Reave 20/0 1") + runCallback("OnFrame") + + build.configTab.input.raiseSpidersSpiderCount = 5 + build.configTab:BuildModList() + runCallback("OnFrame") + + local env = build.calcsTab.calcsEnv + local mainSkill = env.player.mainSkill + assert.are.equals(20, build.calcsTab.calcsOutput.ActiveSpiderLimit) + assert.are.equals(5, env.player.modDB:Sum("BASE", nil, "Multiplier:RaisedSpider")) + assert.are.equals(10, mainSkill.skillModList:Sum("INC", mainSkill.skillCfg, "Speed")) end) it("counts the same Minion type from different skills separately", function() diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index f70d31ff8f..c67af7e4e0 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -1396,9 +1396,9 @@ function calcs.perform(env, skipEHP) hasGuaranteedBonechill = true end end - -- Count active, damageable minions. Skills without a limit contribute one minion. + -- Count active minions. Skills without a limit contribute one minion. local minionList = activeSkill.minionList - if not activeSkill.skillFlags.disable and not activeSkill.skillTypes[SkillType.MinionsAreUndamagable] and minionList and minionList[1] then + if not activeSkill.skillFlags.disable and minionList and minionList[1] then local grantedEffect = activeSkill.activeEffect.grantedEffect for _, minionType in ipairs(minionList) do local minionData = env.data.minions[minionType]