diff --git a/spec/System/TestSkills_spec.lua b/spec/System/TestSkills_spec.lua index c9d8f1e6f2..64a6cb2b20 100644 --- a/spec/System/TestSkills_spec.lua +++ b/spec/System/TestSkills_spec.lua @@ -2228,5 +2228,23 @@ describe("TestSkills", function() local noParrySpellDmg = build.calcsTab.mainOutput.AverageDamage assert.equals(withParrySpellDmg, noParrySpellDmg, "Parry should not affect spell damage") end) - + it("deals no damage when the support is not attached to a curse", function() + build.skillsTab:PasteSocketGroup([[Weapon Set: Both +Fireball 20/0 1 +Doedre's Undoing 1/0 1]]) + runCallback("OnFrame") + selectActiveSkillById(build.skillsTab.socketGroupList[#build.skillsTab.socketGroupList], "ChaosFrogExplosionPlayer") + assert.are.equals(0, build.calcsTab.calcsOutput.TotalDPS) + assert.are.equals(0, build.calcsTab.calcsOutput.HitSpeed) + end) + + it("deals damage when the support is attached to a curse", function() + build.skillsTab:PasteSocketGroup([[Weapon Set: Both +Doedre's Undoing 1/0 1 +Elemental Weakness 20/0 1]]) + runCallback("OnFrame") + selectActiveSkillById(build.skillsTab.socketGroupList[#build.skillsTab.socketGroupList], "ChaosFrogExplosionPlayer") + assert.True(build.calcsTab.calcsOutput.TotalDPS > 0) + assert.True(build.calcsTab.calcsOutput.HitSpeed > 0) + end) end) diff --git a/src/Data/Skills/other.lua b/src/Data/Skills/other.lua index 3edbbbd09b..f7ba893aaa 100644 --- a/src/Data/Skills/other.lua +++ b/src/Data/Skills/other.lua @@ -5776,7 +5776,7 @@ skills["EncaseInJadePlayer"] = { } skills["SupportEshsProwess"] = { name = "Esh's Prowess", - description = "Supports Lightning skills that Hit targets, granting them an additional level and causing them to only roll the minimum or maximum value for Lightning damage. Does not support skills which do not have levels.", + description = "Supports Lightning Skills that Hit, granting them an additional level and causing them to only roll the minimum or maximum value for Lightning damage. Does not Support Skills which do not have levels.", color = 4, support = true, requireSkillTypes = { SkillType.Lightning, SkillType.Damage, }, @@ -17787,7 +17787,7 @@ skills["StarbornOnslaughtPlayer"] = { } skills["SupportStyrnsFerocity"] = { name = "Styrn's Ferocity", - description = "Supports Shield Skills that Hit enemies, causing those Hits to Crush their targets, additionally causing any Physical Damage Hits against those targets while Crushed to Break their Armour.", + description = "Supports Shield Skills that Hit, causing those Hits to Crush their targets, and Physical Hits against those targets while Crushed to Break their Armour.", color = 4, support = true, requireSkillTypes = { SkillType.Attack, SkillType.Damage, SkillType.OR, SkillType.RequiresShield, SkillType.AND, }, diff --git a/src/Data/Skills/sup_int.lua b/src/Data/Skills/sup_int.lua index 6520fa75e8..25e27b56a2 100644 --- a/src/Data/Skills/sup_int.lua +++ b/src/Data/Skills/sup_int.lua @@ -3182,7 +3182,14 @@ skills["ChaosFrogExplosionPlayer"] = { [40] = { critChance = 7, levelRequirement = 0, cost = { Mana = 0, }, }, }, preDamageFunc = function(activeSkill, output) - activeSkill.skillData.hitTimeMultiplier = activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "ToadSpawnInterval") / 1000 + local interval = activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "ToadSpawnInterval") + if interval == 0 then + -- An inactive support cannot spawn toads or deal damage, including ailments. + activeSkill.skillData.hitTimeMultiplier = math.huge + activeSkill.skillModList:NewMod("DealNoDamage", "FLAG", true, "Doedre's Undoing") + else + activeSkill.skillData.hitTimeMultiplier = interval / 1000 + end end, statSets = { [1] = { diff --git a/src/Export/Skills/sup_int.txt b/src/Export/Skills/sup_int.txt index 3922e923f3..3fede5fee0 100644 --- a/src/Export/Skills/sup_int.txt +++ b/src/Export/Skills/sup_int.txt @@ -548,7 +548,14 @@ statMap = { #skill ChaosFrogExplosionPlayer preDamageFunc = function(activeSkill, output) - activeSkill.skillData.hitTimeMultiplier = activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "ToadSpawnInterval") / 1000 + local interval = activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "ToadSpawnInterval") + if interval == 0 then + -- An inactive support cannot spawn toads or deal damage, including ailments. + activeSkill.skillData.hitTimeMultiplier = math.huge + activeSkill.skillModList:NewMod("DealNoDamage", "FLAG", true, "Doedre's Undoing") + else + activeSkill.skillData.hitTimeMultiplier = interval / 1000 + end end, #set ChaosFrogExplosionPlayer #flags spell area triggered