Added Parallel Jim Deck Importer support
This commit is contained in:
parent
28cbcb7dbf
commit
1629f790b3
@ -88,6 +88,7 @@ function loadCards(slots, investigatorId, bondedList, customizations, playerColo
|
||||
handleAncestralKnowledge(cardsToSpawn)
|
||||
handleUnderworldMarket(cardsToSpawn, playerColor)
|
||||
handleHunchDeck(investigatorId, cardsToSpawn, playerColor)
|
||||
handleSpiritDeck(investigatorId, cardsToSpawn, playerColor)
|
||||
handleCustomizableUpgrades(cardsToSpawn, customizations)
|
||||
handlePeteSignatureAssets(investigatorId, cardsToSpawn)
|
||||
|
||||
@ -322,6 +323,46 @@ function handleHunchDeck(investigatorId, cardList, playerColor)
|
||||
end
|
||||
end
|
||||
|
||||
-- If the investigator is Parallel Jim Culver, extract all Ally assets to SetAside5 to build the Spirit
|
||||
-- Deck.
|
||||
---@param investigatorId String ID for the deck's investigator card. Passed separately because the
|
||||
--- investigator may not be included in the cardList
|
||||
---@param cardList Table Deck list being created
|
||||
---@param playerColor String Color this deck is being loaded for
|
||||
function handleSpiritDeck(investigatorId, cardList, playerColor)
|
||||
if investigatorId == "02004-p" or investigatorId == "02004-pb" then -- Parallel Jim Culver
|
||||
local spritList = {}
|
||||
for i, card in ipairs(cardList) do
|
||||
if card.metadata.id == "90053" or (card.metadata.type == "Asset"
|
||||
and card.metadata.traits ~= nil
|
||||
and string.match(card.metadata.traits, "Ally")
|
||||
and card.metadata.bonded_to == nil) then
|
||||
table.insert(spritList, i)
|
||||
end
|
||||
end
|
||||
-- Process allies to move them to the spirit deck. This is done in reverse
|
||||
-- order because the sorting needs to be reversed (deck sorts for face down)
|
||||
-- Performance here may be an issue, as table.remove() is an O(n) operation
|
||||
-- which makes the full shift O(n^2). But keep it simple unless it becomes
|
||||
-- a problem
|
||||
for i = #spritList, 1, -1 do
|
||||
local moving = cardList[spritList[i]]
|
||||
moving.zone = "SetAside5"
|
||||
table.remove(cardList, spritList[i])
|
||||
table.insert(cardList, moving)
|
||||
end
|
||||
if #spritList < 10 then
|
||||
printToAll("Jim's spirit deck must have 10 cards but the deck only has " .. #spritList ..
|
||||
" Ally assets.", playerColor)
|
||||
elseif #spritList > 11 then
|
||||
printToAll("Moved all " .. #spritList ..
|
||||
" Ally assets to the spirit deck, reduce it to 11.", playerColor)
|
||||
else
|
||||
printToAll("Built Jim's spirit deck", playerColor)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- For any customization upgrade cards in the card list, process the metadata from the deck to
|
||||
-- set the save state to show the correct checkboxes/text field values
|
||||
---@param cardList Table Deck list being created
|
||||
|
Loading…
Reference in New Issue
Block a user