Skip to content

Commit 51a0f8b

Browse files
committed
dynamic skill name for damage/aoe source
1 parent 39e93b6 commit 51a0f8b

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
@@ -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

Comments
 (0)