Skip to content

Commit d1f5a14

Browse files
committed
dynamic skill name for damage/aoe source
1 parent edd3b4e commit d1f5a14

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

src/Modules/CalcOffence.lua

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)