code fixes
This commit is contained in:
parent
197bb9aebf
commit
af84ab56b3
@ -160,7 +160,7 @@ function endSearch(_, _, isRightClick)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- draw set aside cards (from the ground!)
|
-- draw set aside cards (from the ground!)
|
||||||
for _, obj in ipairs(searchLib.atPosition(setAsidePosition), "isCardOrDeck") do
|
for _, obj in ipairs(searchLib.atPosition(setAsidePosition, "isCardOrDeck")) do
|
||||||
if obj.type == "Deck" then
|
if obj.type == "Deck" then
|
||||||
Wait.time(function() obj.deal(#obj.getObjects(), handColor) end, 1)
|
Wait.time(function() obj.deal(#obj.getObjects(), handColor) end, 1)
|
||||||
elseif obj.type == "Card" then
|
elseif obj.type == "Card" then
|
||||||
|
@ -13,7 +13,7 @@ do
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- updates the token modifiers with the provided data
|
-- updates the token modifiers with the provided data
|
||||||
---@param tokenData Table Contains the chaos token metadata
|
---@param fullData Table Contains the chaos token metadata
|
||||||
TokenArrangerApi.onTokenDataChanged = function(fullData)
|
TokenArrangerApi.onTokenDataChanged = function(fullData)
|
||||||
callIfExistent("onTokenDataChanged", fullData)
|
callIfExistent("onTokenDataChanged", fullData)
|
||||||
end
|
end
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
local searchLib = require("util/SearchLib")
|
local searchLib = require("util/SearchLib")
|
||||||
|
|
||||||
function onload(saved_data)
|
function onload(savedData)
|
||||||
revealCardPositions = {
|
revealCardPositions = {
|
||||||
Vector(3.5, 0.25, 0),
|
Vector(3.5, 0.25, 0),
|
||||||
Vector(-3.5, 0.25, 0)
|
Vector(-3.5, 0.25, 0)
|
||||||
@ -30,8 +30,8 @@ function onload(saved_data)
|
|||||||
|
|
||||||
self.addContextMenuItem('Reset helper', resetHelper)
|
self.addContextMenuItem('Reset helper', resetHelper)
|
||||||
|
|
||||||
if saved_data != '' then
|
if savedData ~= '' then
|
||||||
local loaded_data = JSON.decode(saved_data)
|
local loaded_data = JSON.decode(savedData)
|
||||||
hiddenCards = loaded_data.saved_hiddenCards
|
hiddenCards = loaded_data.saved_hiddenCards
|
||||||
|
|
||||||
isSetup = true
|
isSetup = true
|
||||||
|
@ -83,7 +83,6 @@ end
|
|||||||
---@param loadAltInvestigator String Contains the name of alternative art for the investigator ("normal", "revised" or "promo")
|
---@param loadAltInvestigator String Contains the name of alternative art for the investigator ("normal", "revised" or "promo")
|
||||||
function loadCards(slots, investigatorId, bondedList, customizations, playerColor, loadAltInvestigator)
|
function loadCards(slots, investigatorId, bondedList, customizations, playerColor, loadAltInvestigator)
|
||||||
function coinside()
|
function coinside()
|
||||||
local yPos = {}
|
|
||||||
local cardsToSpawn = {}
|
local cardsToSpawn = {}
|
||||||
|
|
||||||
-- reset the startsInPlayCount
|
-- reset the startsInPlayCount
|
||||||
@ -218,7 +217,7 @@ function getCardName(cardId)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Split a single list of cards into a separate table of lists, keyed by the zone
|
-- Split a single list of cards into a separate table of lists, keyed by the zone
|
||||||
---@param cards: Table of {cardData, cardMetadata, zone}
|
---@param cards Table Table of {cardData, cardMetadata, zone}
|
||||||
---@return: Table of {zoneName=card list}
|
---@return: Table of {zoneName=card list}
|
||||||
function buildZoneLists(cards)
|
function buildZoneLists(cards)
|
||||||
local zoneList = {}
|
local zoneList = {}
|
||||||
@ -389,7 +388,7 @@ end
|
|||||||
-- For any customization upgrade cards in the card list, process the metadata from the deck to
|
-- 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
|
-- set the save state to show the correct checkboxes/text field values
|
||||||
---@param cardList Table Deck list being created
|
---@param cardList Table Deck list being created
|
||||||
---@param customizations Table Deck's meta table, extracted from ArkhamDB's deck structure
|
---@param customizations String ArkhamDB data for customizations on customizable cards
|
||||||
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
|
||||||
|
@ -42,7 +42,8 @@ do
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- adds bless / curse sealing to the hovered card
|
-- adds bless / curse sealing to the hovered card
|
||||||
---@param color String Color of the player to show the broadcast to
|
---@param playerColor String Color of the player to show the broadcast to
|
||||||
|
---@param hoveredObject TTSObject Hovered object
|
||||||
BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject)
|
BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject)
|
||||||
getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject })
|
getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject })
|
||||||
end
|
end
|
||||||
|
@ -416,8 +416,9 @@ end
|
|||||||
---------------------------------------------------------
|
---------------------------------------------------------
|
||||||
|
|
||||||
-- called for button creation on the difficulty selectors
|
-- called for button creation on the difficulty selectors
|
||||||
---@param object object Usually "self"
|
---@param args Table Parameters for this function:
|
||||||
---@param key string Name of the scenario
|
-- object TTSObject Usually "self"
|
||||||
|
-- key String Name of the scenario
|
||||||
function createSetupButtons(args)
|
function createSetupButtons(args)
|
||||||
local data = getDataValue('modeData', args.key)
|
local data = getDataValue('modeData', args.key)
|
||||||
if data ~= nil then
|
if data ~= nil then
|
||||||
@ -466,9 +467,10 @@ function createSetupButtons(args)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- called for adding chaos tokens
|
-- called for adding chaos tokens
|
||||||
---@param object object Usually "self"
|
---@param args Table Parameters for this function:
|
||||||
---@param key string Name of the scenario
|
-- object object Usually "self"
|
||||||
---@param mode string difficulty (e.g. "hard" or "expert")
|
-- key string Name of the scenario
|
||||||
|
-- mode string difficulty (e.g. "hard" or "expert")
|
||||||
function fillContainer(args)
|
function fillContainer(args)
|
||||||
local data = getDataValue('modeData', args.key)
|
local data = getDataValue('modeData', args.key)
|
||||||
if data == nil then return end
|
if data == nil then return end
|
||||||
@ -745,7 +747,7 @@ function onClick_download(player)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- the download button on the placeholder objects calls this to directly initiate a download
|
-- the download button on the placeholder objects calls this to directly initiate a download
|
||||||
---@param param Table contains url and guid of replacement object
|
---@param params Table contains url and guid of replacement object
|
||||||
function placeholder_download(params)
|
function placeholder_download(params)
|
||||||
local url = SOURCE_REPO .. '/' .. params.url
|
local url = SOURCE_REPO .. '/' .. params.url
|
||||||
requestObj = WebRequest.get(url, function (request) contentDownloadCallback(request, params) end)
|
requestObj = WebRequest.get(url, function (request) contentDownloadCallback(request, params) end)
|
||||||
|
@ -299,7 +299,7 @@ function rebuildConnectionList()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Extracts the card's icon string into a list of individual location icons
|
-- Extracts the card's icon string into a list of individual location icons
|
||||||
---@param cardID String GUID of the card to pull the icon data from
|
---@param cardId String GUID of the card to pull the icon data from
|
||||||
---@param iconCardList Table A table of icon->GUID list. Mutable, will be updated by this method
|
---@param iconCardList Table A table of icon->GUID list. Mutable, will be updated by this method
|
||||||
---@param locData Table A table containing the metadata for the card (for the correct side)
|
---@param locData Table A table containing the metadata for the card (for the correct side)
|
||||||
function buildLocListByIcon(cardId, iconCardList, locData)
|
function buildLocListByIcon(cardId, iconCardList, locData)
|
||||||
@ -357,10 +357,10 @@ function drawBaseConnections()
|
|||||||
-- Objects should reliably exist at this point, but since this can be called during onUpdate the
|
-- Objects should reliably exist at this point, but since this can be called during onUpdate the
|
||||||
-- object checks are conservative just to make sure.
|
-- object checks are conservative just to make sure.
|
||||||
local origin = getObjectFromGUID(originGuid)
|
local origin = getObjectFromGUID(originGuid)
|
||||||
if draggingGuids[originGuid] == nil and origin != nil then
|
if draggingGuids[originGuid] == nil and origin ~= nil then
|
||||||
for targetGuid, direction in pairs(targetGuids) do
|
for targetGuid, direction in pairs(targetGuids) do
|
||||||
local target = getObjectFromGUID(targetGuid)
|
local target = getObjectFromGUID(targetGuid)
|
||||||
if draggingGuids[targetGuid] == nil and target != nil then
|
if draggingGuids[targetGuid] == nil and target ~= nil then
|
||||||
-- Since we process the full list, we're guaranteed to hit any ONE_WAY connections later
|
-- Since we process the full list, we're guaranteed to hit any ONE_WAY connections later
|
||||||
-- so we can ignore INCOMING_ONE_WAY
|
-- so we can ignore INCOMING_ONE_WAY
|
||||||
if direction == BIDIRECTIONAL then
|
if direction == BIDIRECTIONAL then
|
||||||
@ -392,7 +392,7 @@ function drawDraggingConnections()
|
|||||||
ownedVectors[originGuid] = {}
|
ownedVectors[originGuid] = {}
|
||||||
for targetGuid, direction in pairs(targetGuids) do
|
for targetGuid, direction in pairs(targetGuids) do
|
||||||
local target = getObjectFromGUID(targetGuid)
|
local target = getObjectFromGUID(targetGuid)
|
||||||
if target != nil then
|
if target ~= nil then
|
||||||
if direction == BIDIRECTIONAL then
|
if direction == BIDIRECTIONAL then
|
||||||
addBidirectionalVector(origin, target, origin, ownedVectors[originGuid])
|
addBidirectionalVector(origin, target, origin, ownedVectors[originGuid])
|
||||||
elseif direction == ONE_WAY then
|
elseif direction == ONE_WAY then
|
||||||
@ -470,7 +470,7 @@ function addOneWayVector(origin, target, vectorOwner, lines)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Draws an arrowhead at the given position.
|
-- Draws an arrowhead at the given position.
|
||||||
---@param arrowheadPosition Table Centerpoint of the arrowhead to draw (NOT the tip of the arrow)
|
---@param arrowheadPos Table Centerpoint of the arrowhead to draw (NOT the tip of the arrow)
|
||||||
---@param originPos Table Origin point of the connection, used to position the arrow arms
|
---@param originPos Table Origin point of the connection, used to position the arrow arms
|
||||||
---@param vectorOwner Object The object which these lines will be set to. Used for relative
|
---@param vectorOwner Object The object which these lines will be set to. Used for relative
|
||||||
--- positioning and scaling, as well as highlighting connections during a drag operation
|
--- positioning and scaling, as well as highlighting connections during a drag operation
|
||||||
|
@ -64,7 +64,7 @@ do
|
|||||||
|
|
||||||
-- Sets this playmat's snap points to limit snapping to locations or not.
|
-- Sets this playmat's snap points to limit snapping to locations or not.
|
||||||
-- If matchTypes is false, snap points will be reset to snap all cards.
|
-- If matchTypes is false, snap points will be reset to snap all cards.
|
||||||
---@param matchTypes Boolean Whether snap points should only snap for the matching card types.
|
---@param matchCardTypes Boolean Whether snap points should only snap for the matching card types.
|
||||||
PlayAreaApi.setLimitSnapsByType = function(matchCardTypes)
|
PlayAreaApi.setLimitSnapsByType = function(matchCardTypes)
|
||||||
getPlayArea().call("setLimitSnapsByType", matchCardTypes)
|
getPlayArea().call("setLimitSnapsByType", matchCardTypes)
|
||||||
end
|
end
|
||||||
|
@ -136,7 +136,7 @@ function updateCount()
|
|||||||
victoryPoints.playArea = playAreaApi.countVP()
|
victoryPoints.playArea = playAreaApi.countVP()
|
||||||
|
|
||||||
-- count cards in victory display
|
-- count cards in victory display
|
||||||
for _, obj in ipairs(searchLib.onObject(self), "isCardOrDeck") do
|
for _, obj in ipairs(searchLib.onObject(self, "isCardOrDeck")) do
|
||||||
-- check metadata for VP
|
-- check metadata for VP
|
||||||
if obj.type == "Card" then
|
if obj.type == "Card" then
|
||||||
local VP = getCardVP(obj, JSON.decode(obj.getGMNotes()))
|
local VP = getCardVP(obj, JSON.decode(obj.getGMNotes()))
|
||||||
|
@ -157,7 +157,7 @@ do
|
|||||||
---@param tokenCount Number How many tokens to spawn. For damage or horror this value will be set to the
|
---@param tokenCount Number How many tokens to spawn. For damage or horror this value will be set to the
|
||||||
-- spawned state object rather than spawning multiple tokens
|
-- spawned state object rather than spawning multiple tokens
|
||||||
---@param shiftDown Number An offset for the z-value of this group of tokens
|
---@param shiftDown Number An offset for the z-value of this group of tokens
|
||||||
---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens
|
---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens
|
||||||
TokenManager.spawnTokenGroup = function(card, tokenType, tokenCount, shiftDown, subType)
|
TokenManager.spawnTokenGroup = function(card, tokenType, tokenCount, shiftDown, subType)
|
||||||
local optionPanel = optionPanelApi.getOptions()
|
local optionPanel = optionPanelApi.getOptions()
|
||||||
|
|
||||||
@ -199,7 +199,7 @@ do
|
|||||||
-- Other types should use spawnCounterToken()
|
-- Other types should use spawnCounterToken()
|
||||||
---@param tokenCount Number How many tokens to spawn
|
---@param tokenCount Number How many tokens to spawn
|
||||||
---@param shiftDown Number An offset for the z-value of this group of tokens
|
---@param shiftDown Number An offset for the z-value of this group of tokens
|
||||||
---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens
|
---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens
|
||||||
TokenManager.spawnMultipleTokens = function(card, tokenType, tokenCount, shiftDown, subType)
|
TokenManager.spawnMultipleTokens = function(card, tokenType, tokenCount, shiftDown, subType)
|
||||||
-- not checking the max at this point since clue offsets are calculated dynamically
|
-- not checking the max at this point since clue offsets are calculated dynamically
|
||||||
if tokenCount < 1 then return end
|
if tokenCount < 1 then return end
|
||||||
@ -408,7 +408,7 @@ do
|
|||||||
|
|
||||||
-- Spawn tokens for a location using data retrieved from the Data Helper.
|
-- Spawn tokens for a location using data retrieved from the Data Helper.
|
||||||
---@param card Object Card to maybe spawn tokens for
|
---@param card Object Card to maybe spawn tokens for
|
||||||
---@param playerData Table Location data structure retrieved from the DataHelper. Should be
|
---@param locationData Table Location data structure retrieved from the DataHelper. Should be
|
||||||
-- the right data for this card.
|
-- the right data for this card.
|
||||||
internal.spawnLocationTokensFromDataHelper = function(card, locationData)
|
internal.spawnLocationTokensFromDataHelper = function(card, locationData)
|
||||||
local clueCount = internal.getClueCountFromData(card, locationData)
|
local clueCount = internal.getClueCountFromData(card, locationData)
|
||||||
@ -491,7 +491,7 @@ do
|
|||||||
local clickableResourceCounter = nil
|
local clickableResourceCounter = nil
|
||||||
local foundTokens = 0
|
local foundTokens = 0
|
||||||
|
|
||||||
for _, obj in ipairs(searchLib.onObject(card), "isTileOrToken") do
|
for _, obj in ipairs(searchLib.onObject(card, "isTileOrToken")) do
|
||||||
local memo = obj.getMemo()
|
local memo = obj.getMemo()
|
||||||
|
|
||||||
if (stateTable[memo] or 0) > 0 then
|
if (stateTable[memo] or 0) > 0 then
|
||||||
|
@ -450,8 +450,7 @@ function spawnInvestigators(groupName)
|
|||||||
local position = getInvestigatorRowStartPos(investigatorCount, row)
|
local position = getInvestigatorRowStartPos(investigatorCount, row)
|
||||||
|
|
||||||
for i, investigatorName in ipairs(INVESTIGATOR_GROUPS[groupName]) do
|
for i, investigatorName in ipairs(INVESTIGATOR_GROUPS[groupName]) do
|
||||||
for _, spawnSpec in ipairs(buildInvestigatorSpawnSpec(
|
for _, spawnSpec in ipairs(buildInvestigatorSpawnSpec(investigatorName, INVESTIGATORS[investigatorName], position)) do
|
||||||
investigatorName, INVESTIGATORS[investigatorName], position, false)) do
|
|
||||||
spawnBag.spawn(spawnSpec)
|
spawnBag.spawn(spawnSpec)
|
||||||
end
|
end
|
||||||
position:add(investigatorPositionShiftCol)
|
position:add(investigatorPositionShiftCol)
|
||||||
|
@ -131,7 +131,7 @@ end
|
|||||||
-- "CustomDeck" field is a list of all CustomDecks used by cards within the
|
-- "CustomDeck" field is a list of all CustomDecks used by cards within the
|
||||||
-- deck, keyed by the DeckID and referencing the custom deck table
|
-- deck, keyed by the DeckID and referencing the custom deck table
|
||||||
---@param deck: TTS deck data structure to add to
|
---@param deck: TTS deck data structure to add to
|
||||||
---@param card: Data for the card to be inserted
|
---@param cardData: Data for the card to be inserted
|
||||||
Spawner.addCardToDeck = function(deck, cardData)
|
Spawner.addCardToDeck = function(deck, cardData)
|
||||||
for customDeckId, customDeckData in pairs(cardData.CustomDeck) do
|
for customDeckId, customDeckData in pairs(cardData.CustomDeck) do
|
||||||
if (deck.CustomDeck[customDeckId] == nil) then
|
if (deck.CustomDeck[customDeckId] == nil) then
|
||||||
|
@ -104,7 +104,7 @@ do
|
|||||||
else
|
else
|
||||||
-- TTS decks come out in reverse order of the cards, reverse the list so the input order stays
|
-- TTS decks come out in reverse order of the cards, reverse the list so the input order stays
|
||||||
-- This only applies for decks; spreads are spawned by us in the order given
|
-- This only applies for decks; spreads are spawned by us in the order given
|
||||||
if spawnSpec.rotation.z != 180 then
|
if spawnSpec.rotation.z ~= 180 then
|
||||||
cardsToSpawn = internal.reverseList(cardsToSpawn)
|
cardsToSpawn = internal.reverseList(cardsToSpawn)
|
||||||
end
|
end
|
||||||
Spawner.spawnCards(cardsToSpawn, spawnSpec.globalPos, spawnSpec.rotation, false, internal.recordPlacedObject)
|
Spawner.spawnCards(cardsToSpawn, spawnSpec.globalPos, spawnSpec.rotation, false, internal.recordPlacedObject)
|
||||||
|
@ -15,7 +15,7 @@ function searchSelf()
|
|||||||
clickableResourceCounter = nil
|
clickableResourceCounter = nil
|
||||||
foundTokens = 0
|
foundTokens = 0
|
||||||
|
|
||||||
for _, obj in ipairs(searchLib.onObject(self), "isTileOrToken") do
|
for _, obj in ipairs(searchLib.onObject(self, "isTileOrToken")) do
|
||||||
local image = obj.getCustomObject().image
|
local image = obj.getCustomObject().image
|
||||||
if image == "http://cloud-3.steamusercontent.com/ugc/1758068501357192910/11DDDC7EF621320962FDCF3AE3211D5EDC3D1573/" then
|
if image == "http://cloud-3.steamusercontent.com/ugc/1758068501357192910/11DDDC7EF621320962FDCF3AE3211D5EDC3D1573/" then
|
||||||
foundTokens = foundTokens + math.abs(obj.getQuantity())
|
foundTokens = foundTokens + math.abs(obj.getQuantity())
|
||||||
|
@ -129,15 +129,15 @@ do
|
|||||||
return playmatApi.transformLocalPosition(zoneData[playerColor][zoneName], playerColor)
|
return playmatApi.transformLocalPosition(zoneData[playerColor][zoneName], playerColor)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Return the global rotation for a card on the given player mat, based on its metadata.
|
-- Return the global rotation for a card on the given player mat, based on its zone.
|
||||||
---@param playerColor: Color name of the player mat to get the rotation for (e.g. "Red")
|
---@param playerColor: Color name of the player mat to get the rotation for (e.g. "Red")
|
||||||
---@param cardMetadata: Table of card metadata. Metadata fields type and permanent are required; all others are optional.
|
---@param zoneName: Name of the zone. See Zones object documentation for a list of valid zones.
|
||||||
---@return: Global rotation vector for the given card. This will include the
|
---@return: Global rotation vector for the given card. This will include the
|
||||||
-- Y rotation to orient the card on the given player mat as well as a
|
-- Y rotation to orient the card on the given player mat as well as a
|
||||||
-- Z rotation to place the card face up or face down.
|
-- Z rotation to place the card face up or face down.
|
||||||
Zones.getDefaultCardRotation = function(playerColor, zone)
|
Zones.getDefaultCardRotation = function(playerColor, zoneName)
|
||||||
local cardRotation = playmatApi.returnRotation(playerColor)
|
local cardRotation = playmatApi.returnRotation(playerColor)
|
||||||
if zone == "Deck" then
|
if zoneName == "Deck" then
|
||||||
cardRotation = cardRotation + Vector(0, 0, 180)
|
cardRotation = cardRotation + Vector(0, 0, 180)
|
||||||
end
|
end
|
||||||
return cardRotation
|
return cardRotation
|
||||||
|
@ -32,7 +32,7 @@ function onScriptingButtonDown(index, playerColor)
|
|||||||
|
|
||||||
-- check for subtype of resource based on card below
|
-- check for subtype of resource based on card below
|
||||||
if tokenType == "resource" then
|
if tokenType == "resource" then
|
||||||
for _, obj in ipairs(searchLib.belowPosition(position), "isCard") do
|
for _, obj in ipairs(searchLib.belowPosition(position, "isCard")) do
|
||||||
if not obj.is_face_down then
|
if not obj.is_face_down then
|
||||||
local metadata = JSON.decode(obj.getGMNotes()) or {}
|
local metadata = JSON.decode(obj.getGMNotes()) or {}
|
||||||
local uses = metadata.uses or {}
|
local uses = metadata.uses or {}
|
||||||
|
Loading…
Reference in New Issue
Block a user