Skip to content

Commit edd3b4e

Browse files
committed
add support for Expand, add flags for Area vs Damage Seal Supports
1 parent 1589f48 commit edd3b4e

3 files changed

Lines changed: 40 additions & 2 deletions

File tree

src/Data/Skills/sup_int.lua

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3812,8 +3812,23 @@ skills["SupportExpandPlayer"] = {
38123812
label = "Expand",
38133813
incrementalEffectiveness = 0.054999999701977,
38143814
statDescriptionScope = "gem_stat_descriptions",
3815+
statMap = {
3816+
["support_expand_max_seals"] = {
3817+
mod("SealCount", "BASE", nil),
3818+
},
3819+
["skill_area_of_effect_+%_per_expand_seal"] = {
3820+
mod("SealRepeatPenalty", "MORE", nil),
3821+
},
3822+
["expand_support_seal_gain_frequency_as_%_of_total_cast_time"] = {
3823+
mod("SealGainFrequency", "BASE", nil),
3824+
},
3825+
},
38153826
baseFlags = {
38163827
},
3828+
baseMods = {
3829+
flag("HasSeals"),
3830+
flag("AreaSeal"),
3831+
},
38173832
constantStats = {
38183833
{ "support_expand_max_seals", 3 },
38193834
{ "support_expand_charge_gain_interval_ms", 0 },
@@ -7592,6 +7607,7 @@ skills["SupportUnleashPlayer"] = {
75927607
},
75937608
baseMods = {
75947609
flag("HasSeals"),
7610+
flag("DamageSeal"),
75957611
},
75967612
constantStats = {
75977613
{ "support_spell_rapid_fire_repeat_use_damage_+%_final", -50 },

src/Export/Skills/sup_int.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -665,6 +665,19 @@ statMap = {
665665

666666
#skill SupportExpandPlayer
667667
#set SupportExpandPlayer
668+
statMap = {
669+
["support_expand_max_seals"] = {
670+
mod("SealCount", "BASE", nil),
671+
},
672+
["skill_area_of_effect_+%_per_expand_seal"] = {
673+
mod("SealRepeatPenalty", "MORE", nil),
674+
},
675+
["expand_support_seal_gain_frequency_as_%_of_total_cast_time"] = {
676+
mod("SealGainFrequency", "BASE", nil),
677+
},
678+
},
679+
#baseMod flag("HasSeals")
680+
#baseMod flag("AreaSeal")
668681
#mods
669682
#skillEnd
670683

@@ -1445,6 +1458,7 @@ statMap = {
14451458
#skill SupportUnleashPlayer
14461459
#set SupportUnleashPlayer
14471460
#baseMod flag("HasSeals")
1461+
#baseMod flag("DamageSeal")
14481462
#mods
14491463
#skillEnd
14501464

src/Modules/CalcOffence.lua

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,14 @@ function calcs.offence(env, actor, activeSkill)
402402
output.ArmourBreakPerHit = calcLib.val(skillModList, "ArmourBreakPerHit", skillCfg)
403403

404404
local function calcAreaOfEffect(skillModList, skillCfg, skillData, skillFlags, output, breakdown)
405+
-- Applies increased AoE based on seals count
406+
if skillModList:Flag(nil, "HasSeals") and skillModList:Flag(nil, "AreaSeal") and not skillModList:Flag(nil, "NoRepeatBonuses") then
407+
output.SealCooldown = activeSkill.activeEffect.grantedEffect.castTime * skillModList:Sum("BASE", skillCfg, "SealGainFrequency") / calcLib.mod(skillModList, skillCfg, "SealGainFrequency") / 100
408+
output.SealMax = skillModList:Sum("BASE", skillCfg, "SealCount")
409+
output.TimeMaxSeals = output.SealCooldown * output.SealMax
410+
env.player.mainSkill.skillModList:NewMod("AreaOfEffect", "INC", (output.SealMax * (calcLib.mod(skillModList, skillCfg, "SealRepeatPenalty") - 1) * 100), "Expand")
411+
end
412+
405413
local incArea, moreArea = calcLib.mods(skillModList, skillCfg, "AreaOfEffect", "AreaOfEffectPrimary")
406414
output.AreaOfEffectMod = round(round(incArea * moreArea, 10), 2)
407415
if skillData.radiusIsWeaponRange then
@@ -1096,7 +1104,7 @@ function calcs.offence(env, actor, activeSkill)
10961104
modDB:NewMod("DPS", "MORE", detonateTwice, "Grenade Activate Twice")
10971105
end
10981106

1099-
if skillModList:Flag(nil, "HasSeals") and activeSkill.skillTypes[SkillType.Unleashable] and not skillModList:Flag(nil, "NoRepeatBonuses") then
1107+
if skillModList:Flag(nil, "HasSeals") and skillModList:Flag(nil, "DamageSeal") and not skillModList:Flag(nil, "NoRepeatBonuses") then
11001108
-- Applies DPS multiplier based on seals count
11011109
local totalCastSpeed = 1 / activeSkill.activeEffect.grantedEffect.castTime * calcLib.mod(skillModList, skillCfg, "Speed")
11021110
output.SealCooldown = activeSkill.activeEffect.grantedEffect.castTime * skillModList:Sum("BASE", skillCfg, "SealGainFrequency") / calcLib.mod(skillModList, skillCfg, "SealGainFrequency") / 100
@@ -5672,7 +5680,7 @@ function calcs.offence(env, actor, activeSkill)
56725680
elseif skillFlags.totem then
56735681
useSpeed = (output.Cooldown and output.Cooldown > 0 and (output.TotemPlacementSpeed > 0 and output.TotemPlacementSpeed or 1 / output.Cooldown) or output.TotemPlacementSpeed) / repeats
56745682
timeType = "totem placement"
5675-
elseif skillModList:Flag(nil, "HasSeals") and skillModList:Flag(nil, "UseMaxUnleash") then
5683+
elseif skillModList:Flag(nil, "HasSeals") and skillModList:Flag(nil, "DamageSeal") and skillModList:Flag(nil, "UseMaxUnleash") then
56765684
useSpeed = env.player.mainSkill.skillData.hitTimeOverride / repeats
56775685
timeType = "full unleash"
56785686
elseif output.EffectiveReloadTime then -- Crossbows: Account for mana cost only happening on reload (once all bolts are fired)

0 commit comments

Comments
 (0)