add warcry effect mod to calcs tab with breakdown (#8126)

This commit is contained in:
Regisle
2024-08-14 18:55:59 +09:30
committed by GitHub
parent b8a4b9bebc
commit d882f1b26b
2 changed files with 25 additions and 0 deletions

View File

@@ -1108,6 +1108,27 @@ function calcs.offence(env, actor, activeSkill)
breakdown.CurseEffectMod = breakdown.mod(skillModList, skillCfg, "CurseEffect")
end
end
if activeSkill.skillTypes[SkillType.Warcry] then
local full_duration = calcSkillDuration(skillModList, skillCfg, activeSkill.skillData, env, enemyDB)
local cooldownOverride = skillModList:Override(skillCfg, "CooldownRecovery")
local actual_cooldown = cooldownOverride or (activeSkill.skillData.cooldown + skillModList:Sum("BASE", skillCfg, "CooldownRecovery")) / calcLib.mod(skillModList, skillCfg, "CooldownRecovery")
local uptime = env.modDB:Flag(nil, "Condition:WarcryMaxHit") and 1 or m_min(full_duration / actual_cooldown, 1)
local unscaledEffect = calcLib.mod(skillModList, skillCfg, "WarcryEffect", "BuffEffect")
output.WarcryEffectMod = unscaledEffect * uptime
if breakdown then
breakdown.WarcryEffectMod = {
s_format("%.2f ^8(effect modifiers)", unscaledEffect)
}
if env.modDB:Flag(nil, "Condition:WarcryMaxHit") or uptime ~= 1 then
if env.modDB:Flag(nil, "Condition:WarcryMaxHit") then
t_insert(breakdown.WarcryEffectMod, "* 100% uptime (WarcryMaxHit Override)")
elseif uptime ~= 1 then
t_insert(breakdown.WarcryEffectMod, s_format("* %.2f%% ^8(uptime)", uptime * 100))
end
t_insert(breakdown.WarcryEffectMod, s_format("= %.1f%%", output.WarcryEffectMod * 100))
end
end
end
if activeSkill.skillTypes[SkillType.Link] then
output.LinkEffectMod = calcLib.mod(skillModList, skillCfg, "LinkEffect", "BuffEffect")
if breakdown then

View File

@@ -677,6 +677,10 @@ return {
{ breakdown = "CurseEffectMod" },
{ modName = "CurseEffect", cfg = "skill" },
}, },
{ label = "Warcry Effect Mod", haveOutput = "WarcryEffectMod", { format = "x {2:output:WarcryEffectMod}",
{ breakdown = "WarcryEffectMod" },
{ modName = { "WarcryEffect", "BuffEffect" }, cfg = "skill" },
}, },
{ label = "Link Effect Mod", haveOutput = "LinkEffectMod", { format = "x {2:output:LinkEffectMod}",
{ breakdown = "LinkEffectMod" },
{ modName = { "LinkEffect", "BuffEffect" }, cfg = "skill" },