@@ -393,6 +393,14 @@ function calcs.offence(env, actor, activeSkill)
393393 output .ArmourBreakPerHit = calcLib .val (skillModList , " ArmourBreakPerHit" , skillCfg )
394394
395395 local function calcAreaOfEffect (skillModList , skillCfg , skillData , skillFlags , output , breakdown )
396+ -- Applies increased AoE based on seals count
397+ if skillModList :Flag (nil , " HasSeals" ) and skillModList :Flag (nil , " AreaSeal" ) and not skillModList :Flag (nil , " NoRepeatBonuses" ) then
398+ output .SealCooldown = activeSkill .activeEffect .grantedEffect .castTime * skillModList :Sum (" BASE" , skillCfg , " SealGainFrequency" ) / calcLib .mod (skillModList , skillCfg , " SealGainFrequency" ) / 100
399+ output .SealMax = skillModList :Sum (" BASE" , skillCfg , " SealCount" )
400+ output .TimeMaxSeals = output .SealCooldown * output .SealMax
401+ env .player .mainSkill .skillModList :NewMod (" AreaOfEffect" , " INC" , (output .SealMax * (calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" ) - 1 ) * 100 ), " Expand" )
402+ end
403+
396404 local incArea , moreArea = calcLib .mods (skillModList , skillCfg , " AreaOfEffect" , " AreaOfEffectPrimary" )
397405 output .AreaOfEffectMod = round (round (incArea * moreArea , 10 ), 2 )
398406 if skillData .radiusIsWeaponRange then
@@ -1076,7 +1084,7 @@ function calcs.offence(env, actor, activeSkill)
10761084 modDB :NewMod (" DPS" , " MORE" , detonateTwice , " Grenade Activate Twice" )
10771085 end
10781086
1079- if skillModList :Flag (nil , " HasSeals" ) and activeSkill . skillTypes [ SkillType . Unleashable ] and not skillModList :Flag (nil , " NoRepeatBonuses" ) then
1087+ if skillModList :Flag (nil , " HasSeals" ) and skillModList : Flag ( nil , " DamageSeal " ) and not skillModList :Flag (nil , " NoRepeatBonuses" ) then
10801088 -- Applies DPS multiplier based on seals count
10811089 local totalCastSpeed = 1 / activeSkill .activeEffect .grantedEffect .castTime * calcLib .mod (skillModList , skillCfg , " Speed" )
10821090 output .SealCooldown = activeSkill .activeEffect .grantedEffect .castTime * skillModList :Sum (" BASE" , skillCfg , " SealGainFrequency" ) / calcLib .mod (skillModList , skillCfg , " SealGainFrequency" ) / 100
@@ -5648,7 +5656,7 @@ function calcs.offence(env, actor, activeSkill)
56485656 elseif skillFlags .totem then
56495657 useSpeed = (output .Cooldown and output .Cooldown > 0 and (output .TotemPlacementSpeed > 0 and output .TotemPlacementSpeed or 1 / output .Cooldown ) or output .TotemPlacementSpeed ) / repeats
56505658 timeType = " totem placement"
5651- elseif skillModList :Flag (nil , " HasSeals" ) and skillModList :Flag (nil , " UseMaxUnleash" ) then
5659+ elseif skillModList :Flag (nil , " HasSeals" ) and skillModList :Flag (nil , " DamageSeal " ) and skillModList : Flag ( nil , " UseMaxUnleash" ) then
56525660 useSpeed = env .player .mainSkill .skillData .hitTimeOverride / repeats
56535661 timeType = " full unleash"
56545662 elseif output .EffectiveReloadTime then -- Crossbows: Account for mana cost only happening on reload (once all bolts are fired)
0 commit comments