FIX: pool trigger based reservations (#8804)

This commit is contained in:
Paliak
2025-07-08 12:34:15 +02:00
committed by GitHub
parent fa21defded
commit eddb7b902d
2 changed files with 12 additions and 4 deletions

View File

@@ -486,9 +486,6 @@ function calcs.buildActiveSkillModList(env, activeSkill)
if level.manaMultiplier then
skillModList:NewMod("SupportManaMultiplier", "MORE", level.manaMultiplier, skillEffect.grantedEffect.modSource)
end
if level.manaReservationPercent then
activeSkill.skillData.manaReservationPercent = level.manaReservationPercent
end
-- Handle multiple triggers situation and if triggered by a trigger skill save a reference to the trigger.
local match = skillEffect.grantedEffect.addSkillTypes and (not skillFlags.disable)
if match and skillEffect.grantedEffect.isTrigger then
@@ -498,6 +495,8 @@ function calcs.buildActiveSkillModList(env, activeSkill)
else
activeSkill.triggeredBy = skillEffect
end
elseif level.manaReservationPercent then
activeSkill.skillData.manaReservationPercent = level.manaReservationPercent
end
if level.PvPDamageMultiplier then
skillModList:NewMod("PvpDamageMultiplier", "MORE", level.PvPDamageMultiplier, skillEffect.grantedEffect.modSource)
@@ -508,6 +507,15 @@ function calcs.buildActiveSkillModList(env, activeSkill)
end
end
if activeSkill.activeEffect.srcInstance then
local supportEffect = activeSkill.activeEffect.srcInstance.supportEffect
if supportEffect and supportEffect.grantedEffect.isTrigger then
for effect, _ in pairs(supportEffect.isSupporting) do
activeSkill.skillData.manaReservationPercent = (activeSkill.skillData.manaReservationPercent or 0) + (supportEffect.grantedEffect.levels[supportEffect.level].manaReservationPercent or 0)
end
end
end
-- Apply gem/quality modifiers from support gems
skillModList:NewMod("GemLevel", "BASE", activeSkill.activeEffect.srcInstance and activeSkill.activeEffect.srcInstance.level or activeSkill.activeEffect.level, "Max Level")
for _, supportProperty in ipairs(skillModList:Tabulate("LIST", activeSkill.skillCfg, "SupportedGemProperty")) do

View File

@@ -1651,7 +1651,7 @@ function calcs.perform(env, skipEHP)
breakdown.ManaReserved = { reservations = { } }
end
for _, activeSkill in ipairs(env.player.activeSkillList) do
if (activeSkill.skillTypes[SkillType.HasReservation] or activeSkill.skillData.SupportedByAutoexertion) and not activeSkill.skillTypes[SkillType.ReservationBecomesCost] then
if activeSkill.skillTypes[SkillType.HasReservation] and not activeSkill.skillTypes[SkillType.ReservationBecomesCost] then
local skillModList = activeSkill.skillModList
local skillCfg = activeSkill.skillCfg
local mult = floor(skillModList:More(skillCfg, "SupportManaMultiplier"), 4)