@@ -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