Skip to content

Commit 7127369

Browse files
Fix crash related to uninitalised srcInstance (#5697)
* Fix crash related to uninitalised srcInstace * Don't clear srcInstance if secondary is multi part * Generlise to not reset on having a secondary effect * Fix crash
1 parent 000caca commit 7127369

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

src/Modules/Build.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1223,9 +1223,9 @@ function buildMode:RefreshSkillSelectControls(controls, mainGroup, suffix)
12231223
t_insert(controls.mainSkillPart.list, { val = i, label = part.name })
12241224
end
12251225
controls.mainSkillPart.selIndex = activeEffect.srcInstance["skillPart"..suffix] or 1
1226-
if activeEffect.grantedEffect.parts[activeEffect.srcInstance["skillPart"..suffix]].stages then
1226+
if activeEffect.grantedEffect.parts[controls.mainSkillPart.selIndex].stages then
12271227
controls.mainSkillStageCount.shown = true
1228-
controls.mainSkillStageCount.buf = tostring(activeEffect.srcInstance["skillStageCount"..suffix] or activeEffect.grantedEffect.parts[activeEffect.srcInstance["skillPart"..suffix]].stagesMin or 1)
1228+
controls.mainSkillStageCount.buf = tostring(activeEffect.srcInstance["skillStageCount"..suffix] or activeEffect.grantedEffect.parts[controls.mainSkillPart.selIndex].stagesMin or 1)
12291229
end
12301230
end
12311231
if activeSkill.skillFlags.mine then

src/Modules/CalcActiveSkill.lua

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ function calcs.buildActiveSkillModList(env, activeSkill)
216216

217217
-- Handle multipart skills
218218
local activeGemParts = activeGrantedEffect.parts
219-
if activeGemParts then
219+
if activeGemParts and #activeGemParts > 1 then
220220
if env.mode == "CALCS" and activeSkill == env.player.mainSkill then
221221
activeEffect.srcInstance.skillPartCalcs = m_min(#activeGemParts, activeEffect.srcInstance.skillPartCalcs or 1)
222222
activeSkill.skillPart = activeEffect.srcInstance.skillPartCalcs
@@ -234,7 +234,7 @@ function calcs.buildActiveSkillModList(env, activeSkill)
234234
end
235235
activeSkill.skillPartName = part.name
236236
skillFlags.multiPart = #activeGemParts > 1
237-
elseif activeEffect.srcInstance then
237+
elseif activeEffect.srcInstance and not (activeEffect.gemData and activeEffect.gemData.secondaryGrantedEffect) then
238238
activeEffect.srcInstance.skillPart = nil
239239
activeEffect.srcInstance.skillPartCalcs = nil
240240
end
@@ -513,7 +513,7 @@ function calcs.buildActiveSkillModList(env, activeSkill)
513513
skillModList:NewMod("Multiplier:ActiveMineCount", "BASE", activeSkill.activeMineCount, "Base")
514514
env.enemy.modDB.multipliers["ActiveMineCount"] = m_max(activeSkill.activeMineCount or 0, env.enemy.modDB.multipliers["ActiveMineCount"] or 0)
515515
end
516-
elseif activeEffect.srcInstance then
516+
elseif activeEffect.srcInstance and not (activeEffect.gemData and activeEffect.gemData.secondaryGrantedEffect) then
517517
activeEffect.srcInstance.skillMineCountCalcs = nil
518518
activeEffect.srcInstance.skillMineCount = nil
519519
end
@@ -529,7 +529,7 @@ function calcs.buildActiveSkillModList(env, activeSkill)
529529
skillModList:NewMod("Multiplier:"..activeGrantedEffect.name:gsub("%s+", "").."StageAfterFirst", "BASE", m_min(limit - 1, activeSkill.activeStageCount), "Base")
530530
end
531531
end
532-
elseif activeEffect.srcInstance then
532+
elseif activeEffect.srcInstance and not (activeEffect.gemData and activeEffect.gemData.secondaryGrantedEffect) then
533533
activeEffect.srcInstance.skillStageCountCalcs = nil
534534
activeEffect.srcInstance.skillStageCount = nil
535535
end
@@ -601,7 +601,7 @@ function calcs.buildActiveSkillModList(env, activeSkill)
601601
end
602602
minion.itemSet = env.build.itemsTab.itemSets[activeEffect.srcInstance.skillMinionItemSet]
603603
end
604-
elseif activeEffect.srcInstance then
604+
elseif activeEffect.srcInstance and not (activeEffect.gemData and activeEffect.gemData.secondaryGrantedEffect) then
605605
activeEffect.srcInstance.skillMinionItemSetCalcs = nil
606606
activeEffect.srcInstance.skillMinionItemSet = nil
607607
end
@@ -643,7 +643,7 @@ function calcs.buildActiveSkillModList(env, activeSkill)
643643
end
644644
end
645645
end
646-
elseif activeEffect.srcInstance then
646+
elseif activeEffect.srcInstance and not (activeEffect.gemData and activeEffect.gemData.secondaryGrantedEffect) then
647647
activeEffect.srcInstance.skillMinionCalcs = nil
648648
activeEffect.srcInstance.skillMinion = nil
649649
activeEffect.srcInstance.skillMinionItemSetCalcs = nil

0 commit comments

Comments
 (0)