Skip to content

Commit 5803c7b

Browse files
LocalIdentityLocalIdentity
andauthored
Add Stormburst calc for Exploding Orb Damage (#9530)
Adds the component of the skill that deals explosive damage in an area after you stop channeling. Tested the mechanic in-game to make sure the damage multipliers are correct When you have less than 0.8s duration the skill does not gain any damage Co-authored-by: LocalIdentity <localidentity2@gmail.com>
1 parent 322c920 commit 5803c7b

2 files changed

Lines changed: 18 additions & 2 deletions

File tree

src/Data/Skills/act_int.lua

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17706,7 +17706,10 @@ skills["StormBurst"] = {
1770617706
},
1770717707
{
1770817708
name = "Max Channelled Orbs"
17709-
}
17709+
},
17710+
{
17711+
name = "Max Duration Explode"
17712+
},
1771017713
},
1771117714
preDamageFunc = function(activeSkill, output)
1771217715
if activeSkill.skillPart == 2 then
@@ -17715,6 +17718,10 @@ skills["StormBurst"] = {
1771517718
local jumpPeriod = activeSkill.skillData.repeatFrequency * 10
1771617719
-- additional 1 tick upon spawn of orb
1771717720
activeSkill.skillData.dpsMultiplier = (activeSkill.skillData.dpsMultiplier or 1) * (1 + math.floor(duration * 10 / jumpPeriod))
17721+
elseif activeSkill.skillPart == 3 then
17722+
local remainingJumps = math.floor((activeSkill.skillData.duration * output.DurationMod + 0.001) / activeSkill.skillData.repeatFrequency)
17723+
-- Tested in-game and the skill grants more damage only after you have at least 0.8s duration
17724+
activeSkill.skillModList:NewMod("Damage", "MORE", math.max(activeSkill.skillData.remainingDurationDamage * remainingJumps - 100, 0), "Skill:StormBurst")
1771817725
end
1771917726
end,
1772017727
statMap = {
@@ -17723,6 +17730,7 @@ skills["StormBurst"] = {
1772317730
div = 1000,
1772417731
},
1772517732
["storm_burst_new_damage_+%_final_per_remaining_teleport_zap"] = {
17733+
skill("remainingDurationDamage", nil),
1772617734
},
1772717735
},
1772817736
baseFlags = {

src/Export/Skills/act_int.txt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3832,7 +3832,10 @@ local skills, mod, flag, skill = ...
38323832
},
38333833
{
38343834
name = "Max Channelled Orbs"
3835-
}
3835+
},
3836+
{
3837+
name = "Max Duration Explode"
3838+
},
38363839
},
38373840
preDamageFunc = function(activeSkill, output)
38383841
if activeSkill.skillPart == 2 then
@@ -3841,6 +3844,10 @@ local skills, mod, flag, skill = ...
38413844
local jumpPeriod = activeSkill.skillData.repeatFrequency * 10
38423845
-- additional 1 tick upon spawn of orb
38433846
activeSkill.skillData.dpsMultiplier = (activeSkill.skillData.dpsMultiplier or 1) * (1 + math.floor(duration * 10 / jumpPeriod))
3847+
elseif activeSkill.skillPart == 3 then
3848+
local remainingJumps = math.floor((activeSkill.skillData.duration * output.DurationMod + 0.001) / activeSkill.skillData.repeatFrequency)
3849+
-- Tested in-game and the skill grants more damage only after you have at least 0.8s duration
3850+
activeSkill.skillModList:NewMod("Damage", "MORE", math.max(activeSkill.skillData.remainingDurationDamage * remainingJumps - 100, 0), "Skill:StormBurst")
38443851
end
38453852
end,
38463853
statMap = {
@@ -3849,6 +3856,7 @@ local skills, mod, flag, skill = ...
38493856
div = 1000,
38503857
},
38513858
["storm_burst_new_damage_+%_final_per_remaining_teleport_zap"] = {
3859+
skill("remainingDurationDamage", nil),
38523860
},
38533861
},
38543862
#baseMod skill("radius", 16)

0 commit comments

Comments
 (0)