@@ -409,15 +409,6 @@ function calcs.offence(env, actor, activeSkill)
409409 end
410410
411411 local function calcAreaOfEffect (skillModList , skillCfg , skillData , skillFlags , output , breakdown )
412- -- Applies increased AoE based on seals count
413- if skillModList :Flag (nil , " HasSeals" ) and skillModList :Flag (nil , " AreaSeal" ) and not skillModList :Flag (nil , " NoRepeatBonuses" ) then
414- output .SealCooldown = activeSkill .activeEffect .grantedEffect .castTime * skillModList :Sum (" BASE" , skillCfg , " SealGainFrequency" ) / calcLib .mod (skillModList , skillCfg , " SealGainFrequency" ) / 100
415- output .SealMax = skillModList :Sum (" BASE" , skillCfg , " SealCount" )
416- output .TimeMaxSeals = output .SealCooldown * output .SealMax
417- local skillName = getSkillNameFromFlag (skillModList , " AreaSeal" ) or " Support"
418- env .player .mainSkill .skillModList :NewMod (" AreaOfEffect" , " INC" , (output .SealMax * (calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" ) - 1 ) * 100 ), skillName )
419- end
420-
421412 local incArea , moreArea = calcLib .mods (skillModList , skillCfg , " AreaOfEffect" , " AreaOfEffectPrimary" )
422413 output .AreaOfEffectMod = round (round (incArea * moreArea , 10 ), 2 )
423414 if skillData .radiusIsWeaponRange then
@@ -1130,15 +1121,17 @@ function calcs.offence(env, actor, activeSkill)
11301121 modDB :NewMod (" DPS" , " MORE" , detonateTwice , " Grenade Activate Twice" )
11311122 end
11321123
1133- if skillModList :Flag (nil , " HasSeals" ) and skillModList : Flag ( nil , " DamageSeal " ) and not skillModList :Flag (nil , " NoRepeatBonuses" ) then
1134- -- Applies DPS multiplier based on seals count
1124+ if skillModList :Flag (nil , " HasSeals" ) and not skillModList :Flag (nil , " NoRepeatBonuses" ) then
1125+ -- Applies seal bonuses based on seal count
11351126 local totalCastSpeed = 1 / activeSkill .activeEffect .grantedEffect .castTime * calcLib .mod (skillModList , skillCfg , " Speed" )
11361127 output .SealCooldown = activeSkill .activeEffect .grantedEffect .castTime * skillModList :Sum (" BASE" , skillCfg , " SealGainFrequency" ) / calcLib .mod (skillModList , skillCfg , " SealGainFrequency" ) / 100
11371128 output .SealMax = skillModList :Sum (" BASE" , skillCfg , " SealCount" )
1138- output .AverageBurstHits = output .SealMax
11391129 output .TimeMaxSeals = output .SealCooldown * output .SealMax
11401130
1141- if not skillData .hitTimeOverride then
1131+ if skillModList :Flag (nil , " DamageSeal" ) then
1132+ output .AverageBurstHits = output .SealMax
1133+ end
1134+ if skillModList :Flag (nil , " DamageSeal" ) and not skillData .hitTimeOverride then
11421135 local skillName = getSkillNameFromFlag (skillModList , " DamageSeal" ) or " Support"
11431136 if skillModList :Flag (nil , " UseMaxUnleash" ) then
11441137 for i , value in ipairs (skillModList :Tabulate (" INC" , { }, " MaxSealCrit" )) do
@@ -1151,6 +1144,16 @@ function calcs.offence(env, actor, activeSkill)
11511144 env .player .mainSkill .skillModList :NewMod (" DPS" , " MORE" , round (1 / output .SealCooldown / (totalCastSpeed * 1.1 ) * calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" ) * 100 , 2 ), skillName )
11521145 end
11531146 end
1147+ if skillModList :Flag (nil , " AreaSeal" ) then
1148+ local skillName = getSkillNameFromFlag (skillModList , " AreaSeal" ) or " Support"
1149+ local sealArea = (calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" ) - 1 ) * 100
1150+ if skillModList :Flag (nil , " UseMaxUnleash" ) then
1151+ env .player .mainSkill .skillModList :NewMod (" AreaOfEffect" , " INC" , output .SealMax * sealArea , skillName )
1152+ env .player .mainSkill .skillData .hitTimeOverride = m_max (output .TimeMaxSeals , totalCastSpeed * 1.1 )
1153+ else
1154+ env .player .mainSkill .skillModList :NewMod (" AreaOfEffect" , " INC" , round (1 / output .SealCooldown / totalCastSpeed * sealArea , 2 ), skillName )
1155+ end
1156+ end
11541157
11551158 if breakdown then
11561159 breakdown .SealGainTime = { }
@@ -4136,7 +4139,7 @@ function calcs.offence(env, actor, activeSkill)
41364139 end
41374140 output .AverageDamage = output .AverageHit * output .HitChance / 100
41384141 globalOutput .AverageBurstHits = output .AverageBurstHits or 1
4139- local repeatPenalty = skillModList :Flag (nil , " HasSeals" ) and activeSkill . skillTypes [ SkillType . Unleashable ] and not skillModList :Flag (nil , " NoRepeatBonuses" ) and calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" ) or 1
4142+ local repeatPenalty = skillModList :Flag (nil , " HasSeals" ) and skillModList : Flag ( nil , " DamageSeal " ) and not skillModList :Flag (nil , " NoRepeatBonuses" ) and calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" ) or 1
41404143 globalOutput .AverageBurstDamage = output .AverageDamage + output .AverageDamage * (globalOutput .AverageBurstHits - 1 ) * repeatPenalty or 0
41414144 globalOutput .ShowBurst = globalOutput .AverageBurstHits > 1
41424145 output .TotalDPS = output .AverageDamage * (globalOutput .HitSpeed or globalOutput .Speed ) * skillData .dpsMultiplier * quantityMultiplier
0 commit comments