Handle review comments, and add some documentation that got lost

This commit is contained in:
Buhallin 2022-11-17 01:39:49 -08:00
parent d19d35a310
commit 7c9d728820
No known key found for this signature in database
GPG Key ID: DB3C362823852294

View File

@ -226,6 +226,9 @@ function maybeAddInvestigatorCards(deck, slots)
end end
end end
-- Process the card list looking for the customizable cards, and add their upgrade sheets if needed
---@param slots: The slot list for cards in this deck. Table key is the cardId, value is the number
-- of those cards which will be spawned
function maybeAddCustomizeUpgradeSheets(slots, configuration) function maybeAddCustomizeUpgradeSheets(slots, configuration)
local allCardsBag = getObjectFromGUID(configuration.card_bag_guid) local allCardsBag = getObjectFromGUID(configuration.card_bag_guid)
for cardId, _ in pairs(slots) do for cardId, _ in pairs(slots) do
@ -237,11 +240,15 @@ function maybeAddCustomizeUpgradeSheets(slots, configuration)
end end
end end
-- Process the card list looking for the Summoned Servitor, and add its minicard to the list if
-- needed
---@param slots: The slot list for cards in this deck. Table key is the cardId, value is the number
-- of those cards which will be spawned
function maybeAddSummonedServitor(slots) function maybeAddSummonedServitor(slots)
for cardId, cardCount in pairs(slots) do for cardId, cardCount in pairs(slots) do
-- spawn additional minicard for 'Summoned Servitor' -- spawn additional minicard for 'Summoned Servitor'
if cardId == "09080" then if cardId == "09080" then
slots["09080-m"] = cardCount slots["09080-m"] = 1
return return
end end
end end
@ -299,7 +306,7 @@ end
---@param cardMetadata: Table of card metadata. Metadata fields type and permanent are required; all others are optional. ---@param cardMetadata: Table of card metadata. Metadata fields type and permanent are required; all others are optional.
---@return: Zone name such as "Deck", "SetAside1", etc. See Zones object documentation for a list of valid zones. ---@return: Zone name such as "Deck", "SetAside1", etc. See Zones object documentation for a list of valid zones.
function getDefaultCardZone(cardMetadata) function getDefaultCardZone(cardMetadata)
if (cardMetadata.id == "09080-m") then if (cardMetadata.id == "09080-m") then -- Have to check the Servitor before other minicards
return "SetAside6" return "SetAside6"
elseif cardMetadata.type == "Investigator" then elseif cardMetadata.type == "Investigator" then
return "Investigator" return "Investigator"
@ -307,12 +314,13 @@ function getDefaultCardZone(cardMetadata)
return "Minicard" return "Minicard"
elseif cardMetadata.type == "UpgradeSheet" then elseif cardMetadata.type == "UpgradeSheet" then
return "SetAside4" return "SetAside4"
elseif cardMetadata.startsInPlay then
return "BlankTop"
elseif cardMetadata.permanent then elseif cardMetadata.permanent then
return "SetAside1" return "SetAside1"
elseif bondedList[cardMetadata.id] then elseif bondedList[cardMetadata.id] then
return "SetAside2" return "SetAside2"
-- SetAside3 is used for Ancestral Knowledge / Underworld Market -- SetAside3 is used for Ancestral Knowledge / Underworld Market
-- SetAside4 is used for upgrade sheets
else else
return "Deck" return "Deck"
end end
@ -353,7 +361,6 @@ function loadCards(slots, investigatorId, customizations, playerColor, commandMa
-- TODO: Process commands for the cardsToSpawn list -- TODO: Process commands for the cardsToSpawn list
-- These should probably be commands, once the command handler is updated -- These should probably be commands, once the command handler is updated
handleStartsInPlay(cardsToSpawn)
handleAncestralKnowledge(cardsToSpawn) handleAncestralKnowledge(cardsToSpawn)
handleUnderworldMarket(cardsToSpawn, playerColor) handleUnderworldMarket(cardsToSpawn, playerColor)
handleHunchDeck(investigatorId, cardsToSpawn, playerColor) handleHunchDeck(investigatorId, cardsToSpawn, playerColor)
@ -496,13 +503,6 @@ function handleAltInvestigatorCard(cardList, altVersionTag, configuration)
end end
end end
-- Place cards which start in play (Duke, Sophie) in the play area
function handleStartsInPlay(cardList)
for _, card in ipairs(cardList) do
if card.metadata.startsInPlay then card.zone = "BlankTop" end
end
end
-- Check to see if the deck list has Ancestral Knowledge. If it does, move 5 random skills to SetAside3 -- Check to see if the deck list has Ancestral Knowledge. If it does, move 5 random skills to SetAside3
function handleAncestralKnowledge(cardList) function handleAncestralKnowledge(cardList)
local hasAncestralKnowledge = false local hasAncestralKnowledge = false
@ -611,6 +611,10 @@ function handleHunchDeck(investigatorId, cardList, playerColor)
end 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: Deck list being created
---@param customizations: Deck's meta table, extracted from ArkhamDB's deck structure
function handleCustomizableUpgrades(cardList, customizations) function handleCustomizableUpgrades(cardList, customizations)
for _, card in ipairs(cardList) do for _, card in ipairs(cardList) do
if card.metadata.type == "UpgradeSheet" then if card.metadata.type == "UpgradeSheet" then