Skip to content

Commit 2fb1b93

Browse files
authored
Default staged skills to their maximum stages (#9728)
1 parent 8ea193d commit 2fb1b93

3 files changed

Lines changed: 11 additions & 11 deletions

File tree

src/Modules/Build.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1498,7 +1498,7 @@ function buildMode:RefreshSkillSelectControls(controls, mainGroup, suffix)
14981498
controls.mainSkillPart.selIndex = activeEffect.srcInstance["skillPart"..suffix] or 1
14991499
if activeEffect.grantedEffect.parts[controls.mainSkillPart.selIndex].stages then
15001500
controls.mainSkillStageCount.shown = true
1501-
controls.mainSkillStageCount.buf = tostring(activeEffect.srcInstance["skillStageCount"..suffix] or activeEffect.grantedEffect.parts[controls.mainSkillPart.selIndex].stagesMin or 1)
1501+
controls.mainSkillStageCount.buf = tostring(activeEffect.srcInstance["skillStageCount"..suffix] or activeSkill.skillData.stagesMax or activeEffect.grantedEffect.parts[controls.mainSkillPart.selIndex].stagesMin or 1)
15021502
end
15031503
end
15041504
if activeSkill.skillFlags.mine then
@@ -1507,7 +1507,7 @@ function buildMode:RefreshSkillSelectControls(controls, mainGroup, suffix)
15071507
end
15081508
if activeSkill.skillFlags.multiStage and not (activeEffect.grantedEffect.parts and #activeEffect.grantedEffect.parts > 1) then
15091509
controls.mainSkillStageCount.shown = true
1510-
controls.mainSkillStageCount.buf = tostring(activeEffect.srcInstance["skillStageCount"..suffix] or activeSkill.skillData.stagesMin or 1)
1510+
controls.mainSkillStageCount.buf = tostring(activeEffect.srcInstance["skillStageCount"..suffix] or activeSkill.skillData.stagesMax or activeSkill.skillData.stagesMin or 1)
15111511
end
15121512
if not activeSkill.skillFlags.disable and (activeEffect.grantedEffect.minionList or activeSkill.minionList[1]) then
15131513
wipeTable(controls.mainSkillMinion.list)

src/Modules/CalcActiveSkill.lua

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -615,16 +615,15 @@ function calcs.buildActiveSkillModList(env, activeSkill)
615615
end
616616
end
617617

618-
if skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."MaxStages") > 0 then
618+
local limit = skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."MaxStages")
619+
activeSkill.skillData.stagesMax = limit > 0 and limit or nil
620+
if limit > 0 then
619621
skillFlags.multiStage = true
620-
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"))
621-
local limit = skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."MaxStages")
622-
if limit > 0 then
623-
if activeSkill.activeStageCount and activeSkill.activeStageCount > 0 then
624-
skillModList:NewMod("Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."Stage", "BASE", m_min(limit, activeSkill.activeStageCount), "Base")
625-
activeSkill.activeStageCount = (activeSkill.activeStageCount or 0) - 1
626-
skillModList:NewMod("Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."StageAfterFirst", "BASE", m_min(limit - 1, activeSkill.activeStageCount), "Base")
627-
end
622+
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"))
623+
if activeSkill.activeStageCount and activeSkill.activeStageCount > 0 then
624+
skillModList:NewMod("Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."Stage", "BASE", m_min(limit, activeSkill.activeStageCount), "Base")
625+
activeSkill.activeStageCount = (activeSkill.activeStageCount or 0) - 1
626+
skillModList:NewMod("Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."StageAfterFirst", "BASE", m_min(limit - 1, activeSkill.activeStageCount), "Base")
628627
end
629628
elseif noPotentialStage and activeEffect.srcInstance and not (activeEffect.gemData and activeEffect.gemData.secondaryGrantedEffect) then
630629
activeEffect.srcInstance.skillStageCountCalcs = nil

src/Modules/CalcSetup.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1791,6 +1791,7 @@ function calcs.initEnv(build, mode, override, specEnv)
17911791
activeSkill.skillData.soulPreventionDuration = activeSkill.soulPreventionDuration
17921792
activeSkill.skillData.totemLevel = skillData.totemLevel
17931793
activeSkill.skillData.damageEffectiveness = skillData.damageEffectiveness
1794+
activeSkill.skillData.stagesMax = skillData.stagesMax
17941795
activeSkill.skillData.manaReservationPercent = skillData.manaReservationPercent
17951796
end
17961797
end

0 commit comments

Comments
 (0)