Skip to content
Open
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
4 changes: 2 additions & 2 deletions src/Modules/Build.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1498,7 +1498,7 @@ function buildMode:RefreshSkillSelectControls(controls, mainGroup, suffix)
controls.mainSkillPart.selIndex = activeEffect.srcInstance["skillPart"..suffix] or 1
if activeEffect.grantedEffect.parts[controls.mainSkillPart.selIndex].stages then
controls.mainSkillStageCount.shown = true
controls.mainSkillStageCount.buf = tostring(activeEffect.srcInstance["skillStageCount"..suffix] or activeEffect.grantedEffect.parts[controls.mainSkillPart.selIndex].stagesMin or 1)
controls.mainSkillStageCount.buf = tostring(activeEffect.srcInstance["skillStageCount"..suffix] or activeSkill.skillData.stagesMax or activeEffect.grantedEffect.parts[controls.mainSkillPart.selIndex].stagesMin or 1)
end
end
if activeSkill.skillFlags.mine then
Expand All @@ -1507,7 +1507,7 @@ function buildMode:RefreshSkillSelectControls(controls, mainGroup, suffix)
end
if activeSkill.skillFlags.multiStage and not (activeEffect.grantedEffect.parts and #activeEffect.grantedEffect.parts > 1) then
controls.mainSkillStageCount.shown = true
controls.mainSkillStageCount.buf = tostring(activeEffect.srcInstance["skillStageCount"..suffix] or activeSkill.skillData.stagesMin or 1)
controls.mainSkillStageCount.buf = tostring(activeEffect.srcInstance["skillStageCount"..suffix] or activeSkill.skillData.stagesMax or activeSkill.skillData.stagesMin or 1)
end
if not activeSkill.skillFlags.disable and (activeEffect.grantedEffect.minionList or activeSkill.minionList[1]) then
wipeTable(controls.mainSkillMinion.list)
Expand Down
17 changes: 8 additions & 9 deletions src/Modules/CalcActiveSkill.lua
Original file line number Diff line number Diff line change
Expand Up @@ -615,16 +615,15 @@ function calcs.buildActiveSkillModList(env, activeSkill)
end
end

if skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."MaxStages") > 0 then
local limit = skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."MaxStages")
activeSkill.skillData.stagesMax = limit > 0 and limit or nil
if limit > 0 then
skillFlags.multiStage = true
activeSkill.activeStageCount = m_max((env.mode == "CALCS" and activeEffect.srcInstance.skillStageCountCalcs) or (env.mode ~= "CALCS" and activeEffect.srcInstance.skillStageCount) or 1, 1 + skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."MinimumStage"))
local limit = skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."MaxStages")
if limit > 0 then
if activeSkill.activeStageCount and activeSkill.activeStageCount > 0 then
skillModList:NewMod("Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."Stage", "BASE", m_min(limit, activeSkill.activeStageCount), "Base")
activeSkill.activeStageCount = (activeSkill.activeStageCount or 0) - 1
skillModList:NewMod("Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."StageAfterFirst", "BASE", m_min(limit - 1, activeSkill.activeStageCount), "Base")
end
activeSkill.activeStageCount = m_max((env.mode == "CALCS" and activeEffect.srcInstance.skillStageCountCalcs) or (env.mode ~= "CALCS" and activeEffect.srcInstance.skillStageCount) or activeSkill.skillData.stagesMax or 1, 1 + skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."MinimumStage"))
if activeSkill.activeStageCount and activeSkill.activeStageCount > 0 then
skillModList:NewMod("Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."Stage", "BASE", m_min(limit, activeSkill.activeStageCount), "Base")
activeSkill.activeStageCount = (activeSkill.activeStageCount or 0) - 1
skillModList:NewMod("Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."StageAfterFirst", "BASE", m_min(limit - 1, activeSkill.activeStageCount), "Base")
end
elseif noPotentialStage and activeEffect.srcInstance and not (activeEffect.gemData and activeEffect.gemData.secondaryGrantedEffect) then
activeEffect.srcInstance.skillStageCountCalcs = nil
Expand Down
1 change: 1 addition & 0 deletions src/Modules/CalcSetup.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1778,6 +1778,7 @@ function calcs.initEnv(build, mode, override, specEnv)
activeSkill.skillData.soulPreventionDuration = activeSkill.soulPreventionDuration
activeSkill.skillData.totemLevel = skillData.totemLevel
activeSkill.skillData.damageEffectiveness = skillData.damageEffectiveness
activeSkill.skillData.stagesMax = skillData.stagesMax
activeSkill.skillData.manaReservationPercent = skillData.manaReservationPercent
end
end
Expand Down