Check for card types when updating customizable data
Avoids errors from GMNotes on tokens which aren't JSON
This commit is contained in:
parent
6990c8a628
commit
6a09da1723
@ -458,16 +458,18 @@ end
|
|||||||
function syncCustomizableMetadata(card)
|
function syncCustomizableMetadata(card)
|
||||||
local cardMetadata = JSON.decode(card.getGMNotes()) or { }
|
local cardMetadata = JSON.decode(card.getGMNotes()) or { }
|
||||||
if cardMetadata ~= nil and cardMetadata.customizations ~= nil then
|
if cardMetadata ~= nil and cardMetadata.customizations ~= nil then
|
||||||
for _, obj in ipairs(searchArea(PLAY_ZONE_POSITION, PLAY_ZONE_SCALE)) do
|
for _, collision in ipairs(searchArea(PLAY_ZONE_POSITION, PLAY_ZONE_SCALE)) do
|
||||||
local obj = obj.hit_object
|
local obj = collision.hit_object
|
||||||
local notes = JSON.decode(obj.getGMNotes()) or { }
|
if obj.name == "Card" or obj.name == "CardCustom" then
|
||||||
if notes.id == (cardMetadata.id .. "-c") then
|
local notes = JSON.decode(obj.getGMNotes()) or { }
|
||||||
for i, customization in ipairs(cardMetadata.customizations) do
|
if notes.id == (cardMetadata.id .. "-c") then
|
||||||
if obj.getVar("markedBoxes")[i] == customization.xp
|
for i, customization in ipairs(cardMetadata.customizations) do
|
||||||
and customization.replaces ~= nil
|
if obj.getVar("markedBoxes")[i] == customization.xp
|
||||||
and customization.replaces.uses ~= nil then
|
and customization.replaces ~= nil
|
||||||
cardMetadata.uses = customization.replaces.uses
|
and customization.replaces.uses ~= nil then
|
||||||
card.setGMNotes(JSON.encode(cardMetadata))
|
cardMetadata.uses = customization.replaces.uses
|
||||||
|
card.setGMNotes(JSON.encode(cardMetadata))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user