Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions src/Modules/CalcActiveSkill.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/Modules/CalcPerform.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down