From b843fb311b18e25c48baa493a35e703da293e139 Mon Sep 17 00:00:00 2001 From: Kyle Mckinney Date: Fri, 19 Jun 2026 01:54:05 +0100 Subject: [PATCH] Refactor grantedEffectList ordering logic Added failsafe for grantedEffectDisplayOrder in cases where there are more effects granted than arguments in grantedEffectDisplayOrder to resolve "MetaMirageArcherPlayer" being discarded and thus spirit not being reserved for mirage archer and potentially other skills. --- src/Modules/Data.lua | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/Modules/Data.lua b/src/Modules/Data.lua index 8fc98820d9..2571c33c00 100644 --- a/src/Modules/Data.lua +++ b/src/Modules/Data.lua @@ -950,12 +950,20 @@ local function setupGem(gem, gemId) end if gem.grantedEffectDisplayOrder then local tempTable = {} - local moved = false - for i, temp in ipairs(gem.grantedEffectList) do - if gem.grantedEffectDisplayOrder[i] then - tempTable[i] = gem.grantedEffectList[gem.grantedEffectDisplayOrder[i] + 1] + local used = {} + for i, order in ipairs(gem.grantedEffectDisplayOrder) do + local index = order + 1 + if gem.grantedEffectList[index] and not used[index] then + tempTable[i] = gem.grantedEffectList[index] + used[index] = true else - tempTable[i] = temp + tempTable[i] = gem.grantedEffectList[i] + used[i] = true + end + end + for i, effect in ipairs(gem.grantedEffectList) do + if not used[i] then + table.insert(tempTable, effect) end end gem.grantedEffectList = tempTable