Skip to content

Commit 360022b

Browse files
author
LocalIdentity
committed
Fix minion imports
1 parent c7a00ed commit 360022b

2 files changed

Lines changed: 32 additions & 2 deletions

File tree

spec/System/TestImportReimport_spec.lua

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ describe("TestImportReimport", function()
8888

8989
it("preserves full DPS state and manually disabled gems when reimporting items and skills", function()
9090
build.skillsTab:PasteSocketGroup([[
91+
Slot: Gloves
9192
Dark Effigy 1/0 1
9293
Controlled Destruction 1/0 DISABLED 1
9394
]])
@@ -197,4 +198,31 @@ Fireball 20/0 1
197198
it("preserves minion skill when reimporting items and skills", function()
198199
assertReimportPreservesSkillSubstate("Linen Wraps", "Gloves", "Skeletal Sniper", "skillMinionSkill", 2)
199200
end)
201+
202+
it("preserves minion skill stat set when reimporting items and skills", function()
203+
build.skillsTab:PasteSocketGroup([[
204+
Skeletal Sniper 20/0 1
205+
]])
206+
runCallback("OnFrame")
207+
208+
local socketGroup = build.skillsTab.socketGroupList[1]
209+
local activeEffect = socketGroup.displaySkillList[1].activeEffect
210+
local grantedEffectId = activeEffect.grantedEffect.id
211+
local srcInstance = activeEffect.srcInstance
212+
srcInstance.skillMinionSkill = 2
213+
srcInstance.skillMinionSkillCalcs = 2
214+
srcInstance.skillMinionSkillStatSetIndexLookup = { [grantedEffectId] = { [2] = 3 } }
215+
srcInstance.skillMinionSkillStatSetIndexLookupCalcs = { [grantedEffectId] = { [2] = 2 } }
216+
217+
reimportSingleGem("Linen Wraps", "Gloves", "Skeletal Sniper")
218+
219+
socketGroup = build.skillsTab.socketGroupList[1]
220+
activeEffect = socketGroup.displaySkillList[1].activeEffect
221+
grantedEffectId = activeEffect.grantedEffect.id
222+
srcInstance = activeEffect.srcInstance
223+
assert.are.equal(2, srcInstance.skillMinionSkill)
224+
assert.are.equal(2, srcInstance.skillMinionSkillCalcs)
225+
assert.are.equal(3, srcInstance.skillMinionSkillStatSetIndexLookup[grantedEffectId][2])
226+
assert.are.equal(2, srcInstance.skillMinionSkillStatSetIndexLookupCalcs[grantedEffectId][2])
227+
end)
200228
end)

src/Classes/ImportTab.lua

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -825,8 +825,6 @@ local function getSocketGroupReimportKey(socketGroup)
825825
t_insert(gemNameParts, (gem.nameSpec or ""):lower())
826826
end
827827
return table.concat({
828-
socketGroup.slot or "",
829-
socketGroup.source or "",
830828
tostring(#socketGroup.gemList),
831829
table.concat(gemNameParts, SOCKET_GROUP_REIMPORT_KEY_SEPARATOR),
832830
}, SOCKET_GROUP_REIMPORT_KEY_SEPARATOR)
@@ -850,6 +848,8 @@ local function snapshotSocketGroupReimportState(socketGroup, isMainGroup)
850848
skillMinionItemSetCalcs = gem.skillMinionItemSetCalcs,
851849
skillMinionSkill = gem.skillMinionSkill,
852850
skillMinionSkillCalcs = gem.skillMinionSkillCalcs,
851+
skillMinionSkillStatSetIndexLookup = gem.skillMinionSkillStatSetIndexLookup and copyTable(gem.skillMinionSkillStatSetIndexLookup),
852+
skillMinionSkillStatSetIndexLookupCalcs = gem.skillMinionSkillStatSetIndexLookupCalcs and copyTable(gem.skillMinionSkillStatSetIndexLookupCalcs),
853853
enableGlobal1 = gem.enableGlobal1,
854854
enableGlobal2 = gem.enableGlobal2,
855855
}
@@ -881,6 +881,8 @@ local function applyGemReimportState(gem, state)
881881
gem.skillMinionItemSetCalcs = state.skillMinionItemSetCalcs
882882
gem.skillMinionSkill = state.skillMinionSkill
883883
gem.skillMinionSkillCalcs = state.skillMinionSkillCalcs
884+
gem.skillMinionSkillStatSetIndexLookup = state.skillMinionSkillStatSetIndexLookup and copyTable(state.skillMinionSkillStatSetIndexLookup)
885+
gem.skillMinionSkillStatSetIndexLookupCalcs = state.skillMinionSkillStatSetIndexLookupCalcs and copyTable(state.skillMinionSkillStatSetIndexLookupCalcs)
884886
gem.enableGlobal1 = state.enableGlobal1
885887
gem.enableGlobal2 = state.enableGlobal2
886888
end

0 commit comments

Comments
 (0)