@@ -401,13 +401,21 @@ function calcs.offence(env, actor, activeSkill)
401401 -- Calculate armour break
402402 output .ArmourBreakPerHit = calcLib .val (skillModList , " ArmourBreakPerHit" , skillCfg )
403403
404+ local function getSkillNameFromFlag (skillModList , flag )
405+ local sourceMod = skillModList :Tabulate (" FLAG" , nil , flag )
406+ local sourceName = sourceMod [1 ] and sourceMod [1 ].mod and sourceMod [1 ].mod .source -- e.g. Skill:SupportExpandPlayer
407+ local dataSkill = env .data .skills [(sourceName :gsub (" Skill:" , " " ))]
408+ return dataSkill and dataSkill .name
409+ end
410+
404411 local function calcAreaOfEffect (skillModList , skillCfg , skillData , skillFlags , output , breakdown )
405412 -- Applies increased AoE based on seals count
406413 if skillModList :Flag (nil , " HasSeals" ) and skillModList :Flag (nil , " AreaSeal" ) and not skillModList :Flag (nil , " NoRepeatBonuses" ) then
407414 output .SealCooldown = activeSkill .activeEffect .grantedEffect .castTime * skillModList :Sum (" BASE" , skillCfg , " SealGainFrequency" ) / calcLib .mod (skillModList , skillCfg , " SealGainFrequency" ) / 100
408415 output .SealMax = skillModList :Sum (" BASE" , skillCfg , " SealCount" )
409416 output .TimeMaxSeals = output .SealCooldown * output .SealMax
410- env .player .mainSkill .skillModList :NewMod (" AreaOfEffect" , " INC" , (output .SealMax * (calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" ) - 1 ) * 100 ), " Expand" )
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 )
411419 end
412420
413421 local incArea , moreArea = calcLib .mods (skillModList , skillCfg , " AreaOfEffect" , " AreaOfEffectPrimary" )
@@ -1113,15 +1121,16 @@ function calcs.offence(env, actor, activeSkill)
11131121 output .TimeMaxSeals = output .SealCooldown * output .SealMax
11141122
11151123 if not skillData .hitTimeOverride then
1124+ local skillName = getSkillNameFromFlag (skillModList , " DamageSeal" ) or " Support"
11161125 if skillModList :Flag (nil , " UseMaxUnleash" ) then
11171126 for i , value in ipairs (skillModList :Tabulate (" INC" , { }, " MaxSealCrit" )) do
11181127 local mod = value .mod
11191128 skillModList :NewMod (" CritChance" , " INC" , mod .value , mod .source , mod .flags , mod .keywordFlags , unpack (mod ))
11201129 end
1121- env .player .mainSkill .skillModList :NewMod (" DPS" , " MORE" , (output .SealMax * calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" )) * 100 , " Unleash " )
1130+ env .player .mainSkill .skillModList :NewMod (" DPS" , " MORE" , (output .SealMax * calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" )) * 100 , skillName )
11221131 env .player .mainSkill .skillData .hitTimeOverride = m_max (output .TimeMaxSeals , totalCastSpeed * 1.1 )
11231132 else
1124- env .player .mainSkill .skillModList :NewMod (" DPS" , " MORE" , round (1 / output .SealCooldown / (totalCastSpeed * 1.1 ) * calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" ) * 100 , 2 ), " Unleash " )
1133+ env .player .mainSkill .skillModList :NewMod (" DPS" , " MORE" , round (1 / output .SealCooldown / (totalCastSpeed * 1.1 ) * calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" ) * 100 , 2 ), skillName )
11251134 end
11261135 end
11271136
0 commit comments