@@ -392,13 +392,21 @@ function calcs.offence(env, actor, activeSkill)
392392 -- Calculate armour break
393393 output .ArmourBreakPerHit = calcLib .val (skillModList , " ArmourBreakPerHit" , skillCfg )
394394
395+ local function getSkillNameFromFlag (skillModList , flag )
396+ local sourceMod = skillModList :Tabulate (" FLAG" , nil , flag )
397+ local sourceName = sourceMod [1 ] and sourceMod [1 ].mod and sourceMod [1 ].mod .source -- e.g. Skill:SupportExpandPlayer
398+ local dataSkill = env .data .skills [(sourceName :gsub (" Skill:" , " " ))]
399+ return dataSkill and dataSkill .name
400+ end
401+
395402 local function calcAreaOfEffect (skillModList , skillCfg , skillData , skillFlags , output , breakdown )
396403 -- Applies increased AoE based on seals count
397404 if skillModList :Flag (nil , " HasSeals" ) and skillModList :Flag (nil , " AreaSeal" ) and not skillModList :Flag (nil , " NoRepeatBonuses" ) then
398405 output .SealCooldown = activeSkill .activeEffect .grantedEffect .castTime * skillModList :Sum (" BASE" , skillCfg , " SealGainFrequency" ) / calcLib .mod (skillModList , skillCfg , " SealGainFrequency" ) / 100
399406 output .SealMax = skillModList :Sum (" BASE" , skillCfg , " SealCount" )
400407 output .TimeMaxSeals = output .SealCooldown * output .SealMax
401- env .player .mainSkill .skillModList :NewMod (" AreaOfEffect" , " INC" , (output .SealMax * (calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" ) - 1 ) * 100 ), " Expand" )
408+ local skillName = getSkillNameFromFlag (skillModList , " AreaSeal" ) or " Support"
409+ env .player .mainSkill .skillModList :NewMod (" AreaOfEffect" , " INC" , (output .SealMax * (calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" ) - 1 ) * 100 ), skillName )
402410 end
403411
404412 local incArea , moreArea = calcLib .mods (skillModList , skillCfg , " AreaOfEffect" , " AreaOfEffectPrimary" )
@@ -1093,15 +1101,16 @@ function calcs.offence(env, actor, activeSkill)
10931101 output .TimeMaxSeals = output .SealCooldown * output .SealMax
10941102
10951103 if not skillData .hitTimeOverride then
1104+ local skillName = getSkillNameFromFlag (skillModList , " DamageSeal" ) or " Support"
10961105 if skillModList :Flag (nil , " UseMaxUnleash" ) then
10971106 for i , value in ipairs (skillModList :Tabulate (" INC" , { }, " MaxSealCrit" )) do
10981107 local mod = value .mod
10991108 skillModList :NewMod (" CritChance" , " INC" , mod .value , mod .source , mod .flags , mod .keywordFlags , unpack (mod ))
11001109 end
1101- env .player .mainSkill .skillModList :NewMod (" DPS" , " MORE" , (output .SealMax * calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" )) * 100 , " Unleash " )
1110+ env .player .mainSkill .skillModList :NewMod (" DPS" , " MORE" , (output .SealMax * calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" )) * 100 , skillName )
11021111 env .player .mainSkill .skillData .hitTimeOverride = m_max (output .TimeMaxSeals , totalCastSpeed * 1.1 )
11031112 else
1104- env .player .mainSkill .skillModList :NewMod (" DPS" , " MORE" , round (1 / output .SealCooldown / (totalCastSpeed * 1.1 ) * calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" ) * 100 , 2 ), " Unleash " )
1113+ env .player .mainSkill .skillModList :NewMod (" DPS" , " MORE" , round (1 / output .SealCooldown / (totalCastSpeed * 1.1 ) * calcLib .mod (skillModList , skillCfg , " SealRepeatPenalty" ) * 100 , 2 ), skillName )
11051114 end
11061115 end
11071116
0 commit comments