diff --git a/library/games/CONTEST/0.json b/library/games/CONTEST/0.json
index 1f7ec86133..9dee72e181 100644
--- a/library/games/CONTEST/0.json
+++ b/library/games/CONTEST/0.json
@@ -1,29 +1,29 @@
{
"_meta": {
- "version": 16,
+ "version": 17,
"info": {
"name": "CONTEST",
+ "lastUpdate": 1736738752893,
"image": "/assets/-1336405461_70212",
- "rules": "https://boardgamegeek.com/filepage/288097/english-rules",
- "bgg": "https://boardgamegeek.com/boardgame/425056/conic",
- "year": "2024",
- "mode": "vs",
- "time": "20",
- "attribution": "Game layout and design originally by Shobu. Additional modifications and scripting done by Dexdouglas and released to the Public Domain by CC0.
Board design and library image by Dexdouglas using Microsoft paint and are released to the Public Domain by CC0.
",
- "lastUpdate": 1735489170120,
"showName": true,
- "skill": "low",
+ "time": "20",
+ "mode": "vs",
+ "skill": "Low",
"description": "In Contest, you are simultaneously playing discs and comparing your numbers to your opponents. The higher number (usually) wins a spot on the board.",
+ "variantImage": "",
+ "variant": "CONTEST",
+ "language": "en-GB",
+ "players": "2-4",
"similarImage": "",
"similarName": "CONIC",
+ "year": "2024",
"similarDesigner": "Reiner Knizia",
"similarAwards": "",
- "ruleText": "SUMMARY
In CONTEST, 2-4 players will compete for control over columns on the board, and score points for controlling the majority of the spaces in those columns. They will also score additional points for their largest contiguous grouping.
OVERVIEW
Each player gets 12 discs, numbered 0-10 with a single X. There are 16 spaces on the board and all 16 will have a disc on them at the end of the game. A round of the game consists of everyone selecting one of their discs and placing it in their holder. Everyone will reveal simultaneously and you will assess what happens next.
RESOLUTION
If anyone played a 0, they return this disc to their hand. If everyone played a 0, then return the 0s to everyone's hand, and place a black disc on the space with the pawn.
If everyone played numbers, you assess who played the highest number and that person replaces the pawn on the board with their numbered disc. They will select where the pawn will go next. **Note** If someone played a 10, and someone else played a 1, the 1 becomes the highest number and wins the round.
If an X is played, this player (or players) discards the X and replaces it with a numbered chip from their hand.
In case of a tie with the highest numbered disc, everyone else discards their discs and the tied players then play another disc simultaneously from their hand. This process is repeated until either one player is victorious, or a black disc needs to be played due to 0s being played.
SCORING
Assess each of the columns to see who scores points. Black discs do NOT affect scoring and should be ignored.
First, determine if someone has more discs in the column than any other player. If so, they win the points for that column (1,2,3,4). If no player has more discs than any other player, then tally the value of the discs in that column among the tied players. Whoever has the higher value, scores the points for the column. If players are tied in value, then nobody scores the column.
Players then score once for their largest group of adjacent discs. The discs need to be touching to be considered adjacent. As an example, no discs in the 4 column are touching each other, but they could be connected if they were each next to the same space in the 3 column.
**NOTE** in an earlier iteration of this game (CATENA), the adjacency points were not considered as part of final scoring. Feel free to try this variant if you prefer.
",
- "helpText": "Have all players take a seat. Your 12 discs will go to your hand. Place the pawn on either end of the center 4 column. Drag a disc from your hand to your holder. Once everyone has a disc in their holder, click on it to reveal it. The winner places their disc on the board, everyone else either discards their number or X, or returns the 0 disc to their hand.",
- "variantImage": "",
- "variant": "CONTEST",
- "language": "en-GB",
- "players": "2-4"
+ "bgg": "https://boardgamegeek.com/boardgame/425056/conic",
+ "rules": "https://boardgamegeek.com/filepage/288097/english-rules",
+ "ruleText": "SUMMARY
In CONTEST, 2-4 players will compete for control over columns on the board, and score points for controlling the majority of the spaces in those columns. They will also score additional points for their largest contiguous grouping.
OVERVIEW
Each player gets 12 discs, numbered 0-10 with a single X. There are 16 spaces on the board and it is likely, but not required, that all 16 will have a disc on them at the end of the game. A round of the game consists of everyone selecting one of their discs and placing it in their holder. Everyone will click on their disc to reveal it simultaneously and then assess what happens next.
RESOLUTION
If anyone played a 0, they return this disc to their hand. If everyone played a 0, then return the 0s to everyone's hand, and place a black \"Neutral\" disc on the space with the pawn.
If everyone played numbers, you assess who played the highest number and that person replaces the pawn on the board with their numbered disc. They will select where the pawn will go next. **Note** If someone played a 10, and someone else played a 1, the 1 becomes the highest number and wins the round.
If an X is played, this player (or players) discards the X and replaces it with a numbered chip from their hand.
In case of a tie with the highest numbered disc, everyone else discards their discs and the tied players then play another disc simultaneously from their hand. This process is repeated until either one player is victorious, or a black disc needs to be played due to 0s being played.
SCORING
Assess each of the columns to see who scores points. Black discs do NOT affect scoring and should be ignored.
First, determine if someone has more discs in the column than any other player. If so, they win the points for that column (1,2,3,4). If no player has more discs than any other player, then tally the value of the discs in that column among the tied players. Whoever has the higher value, scores the points for the column. If players are tied in value, then nobody scores the column.
Players then score once for their largest group of adjacent discs. The discs need to be touching to be considered adjacent. As an example, no discs in the 4 column are touching each other, but they could be connected if they were each next to the same space in the 3 column.
**NOTE** in an earlier iteration of this game (CATENA), the adjacency points were not considered as part of final scoring. Feel free to try this variant if you prefer.
",
+ "helpText": "Have all players take a seat. Your 12 discs will go to your hand. Place the pawn on either end of the center 4 column. Drag a disc from your hand to your holder. Once everyone has a disc in their holder, click on it to reveal it. The winner places their disc on the board, everyone else either discards their number or X, or returns the 0 disc to their hand. Pressing the Discard button while a 0 is in the holder, will return the 0 to your hand.
The Discard pile is visible on the table but is hidden information. In the event that someone has discarded something accidentally, you may retrieve it from this holder.
",
+ "attribution": "Game layout and design originally by Shobu. Additional modifications and scripting done by Dexdouglas and released to the Public Domain by CC0.
Board design and library image by Dexdouglas using Microsoft paint and are released to the Public Domain by CC0.
"
}
},
"8zjq": {
@@ -144,22 +144,9 @@
}
]
},
- "8byg": {
- "type": "label",
- "text": 0,
- "id": "8byg",
- "x": 130,
- "y": 128,
- "width": 65,
- "height": 40,
- "css": "font-size: 30px;",
- "editable": true,
- "hideWhenUnused": true,
- "linkedToSeat": "seat1"
- },
"8bygD": {
"id": "8bygD",
- "parent": "8byg",
+ "parent": "seat1Score",
"fixedParent": true,
"x": -38,
"y": 1,
@@ -182,7 +169,7 @@
},
"8bygU": {
"id": "8bygU",
- "parent": "8byg",
+ "parent": "seat1Score",
"fixedParent": true,
"x": 68,
"y": 1,
@@ -204,21 +191,9 @@
"hideWhenUnused": true,
"linkedToSeat": "seat1"
},
- "9byg": {
- "type": "label",
- "text": 0,
- "id": "9byg",
- "x": 1392,
- "y": 131,
- "width": 65,
- "height": 40,
- "css": "font-size: 30px;",
- "editable": true,
- "linkedToSeat": "seat2"
- },
"9bygD": {
"id": "9bygD",
- "parent": "9byg",
+ "parent": "seat2Score",
"fixedParent": true,
"x": -38,
"y": 1,
@@ -240,7 +215,7 @@
},
"9bygU": {
"id": "9bygU",
- "parent": "9byg",
+ "parent": "seat2Score",
"fixedParent": true,
"x": 68,
"y": 1,
@@ -261,10 +236,10 @@
]
},
"6o7j": {
- "x": 881,
- "y": 708,
- "width": 50.4,
- "height": 90,
+ "x": 783,
+ "y": 124,
+ "width": 40.4,
+ "height": 75,
"color": "#1f5ca6",
"css": "border-radius: 40% 40% 50% 50%/ 80% 80% 10% 10%; ",
"image": "i/game-pieces/3D/Pawn-3D.svg",
@@ -275,8 +250,12 @@
},
"borderColor": "black",
"borderWidth": 1,
- "z": 4160,
- "id": "6o7j"
+ "z": 4161,
+ "id": "6o7j",
+ "newReset": {
+ "x": 783,
+ "y": 124
+ }
},
"2wdt": {
"type": "deck",
@@ -975,168 +954,85 @@
"x": 12,
"parent": "holder4"
},
- "wjlu": {
- "type": "deck",
- "id": "wjlu",
- "cardTypes": {
- " of plain-circle": {
- "suit": "/i/game-icons.net/delapouite/plain-circle.svg",
- "suitColor": "#000000",
- "rank": "",
- "rankImage": "/i/cards-default/D-face.svg"
- }
- },
- "cardDefaults": {
- "width": 100,
- "height": 100
- },
- "faceTemplates": [
- {
- "border": 1,
- "radius": 56,
- "objects": [
- {
- "type": "image",
- "width": 100,
- "height": 100,
- "color": "#000000",
- "svgReplaces": {
- "currentColor": "logoColor"
- }
- }
- ]
- },
- {
- "radius": 16,
- "objects": [
- {
- "type": "image",
- "width": 100,
- "height": 100,
- "color": "transparent",
- "svgReplaces": {
- "#000": "suitColor"
- },
- "dynamicProperties": {
- "value": "suit"
- }
- },
- {
- "type": "text",
- "y": 18,
- "fontSize": 40,
- "textAlign": "center",
- "color": "white",
- "width": 100,
- "dynamicProperties": {
- "value": "rank"
- }
- }
- ]
- }
- ],
- "x": 759,
- "y": 714
- },
"wjlu of plain-circle": {
"type": "card",
"id": "wjlu of plain-circle",
- "deck": "wjlu",
+ "deck": "neutralDeck",
"cardType": " of plain-circle",
- "z": 3030,
- "activeFace": 1,
- "parent": "jkrv"
+ "z": 7256,
+ "parent": "30ty"
},
"oo0j": {
- "deck": "wjlu",
+ "deck": "neutralDeck",
"type": "card",
"cardType": " of plain-circle",
"id": "oo0j",
- "parent": "jkrv",
- "z": 9,
- "activeFace": 1
+ "parent": "30ty",
+ "z": 7257
},
"idf3": {
- "deck": "wjlu",
+ "deck": "neutralDeck",
"type": "card",
"cardType": " of plain-circle",
"id": "idf3",
- "z": 8,
- "parent": "jkrv",
- "activeFace": 1
- },
- "jkrv": {
- "type": "pile",
- "parent": null,
- "x": 753,
- "y": 708,
- "width": 80,
- "height": 80,
- "id": "jkrv",
- "z": 5807
+ "z": 7258,
+ "parent": "30ty"
},
"3cwf": {
- "deck": "wjlu",
+ "deck": "neutralDeck",
"type": "card",
"cardType": " of plain-circle",
"id": "3cwf",
- "z": 7,
- "parent": "jkrv",
- "activeFace": 1
+ "z": 7259,
+ "parent": "30ty"
},
"ltai": {
- "deck": "wjlu",
+ "deck": "neutralDeck",
"type": "card",
"cardType": " of plain-circle",
"id": "ltai",
- "z": 6,
- "parent": "jkrv",
- "activeFace": 1
+ "z": 7260,
+ "parent": "30ty"
},
"t8m8": {
- "deck": "wjlu",
+ "deck": "neutralDeck",
"type": "card",
"cardType": " of plain-circle",
"id": "t8m8",
- "z": 5,
- "parent": "jkrv",
- "activeFace": 1
+ "z": 7261,
+ "parent": "30ty"
},
"jknv": {
- "deck": "wjlu",
+ "deck": "neutralDeck",
"type": "card",
"cardType": " of plain-circle",
"id": "jknv",
- "z": 4,
- "parent": "jkrv",
- "activeFace": 1
+ "z": 7262,
+ "parent": "30ty"
},
"ewc7": {
- "deck": "wjlu",
+ "deck": "neutralDeck",
"type": "card",
"cardType": " of plain-circle",
"id": "ewc7",
- "z": 3,
- "parent": "jkrv",
- "activeFace": 1
+ "z": 7263,
+ "parent": "30ty"
},
"lan2": {
- "deck": "wjlu",
+ "deck": "neutralDeck",
"type": "card",
"cardType": " of plain-circle",
"id": "lan2",
- "z": 2,
- "parent": "jkrv",
- "activeFace": 1
+ "z": 7264,
+ "parent": "30ty"
},
"oguv": {
- "deck": "wjlu",
+ "deck": "neutralDeck",
"type": "card",
"cardType": " of plain-circle",
"id": "oguv",
- "z": 1,
- "parent": "jkrv",
- "activeFace": 1
+ "z": 7265,
+ "parent": "30ty"
},
"tqy8C": {
"id": "tqy8C",
@@ -1269,137 +1165,9 @@
}
}
},
- "5pb3B": {
- "id": "5pb3B",
- "parent": "holder1",
- "fixedParent": true,
- "y": 119,
- "width": 111,
- "height": 40,
- "type": "button",
- "text": "Recall",
- "movableInEdit": false,
- "clickRoutine": [
- {
- "func": "RECALL",
- "holder": "${PROPERTY parent}"
- },
- {
- "func": "FLIP",
- "holder": "${PROPERTY parent}",
- "face": 0
- },
- {
- "func": "SORT",
- "holder": "${PROPERTY parent}",
- "key": "rank"
- }
- ],
- "hideWhenUnused": true,
- "linkedToSeat": "seat1"
- },
- "qluzB": {
- "id": "qluzB",
- "parent": "holder3",
- "fixedParent": true,
- "y": 121,
- "width": 111,
- "height": 40,
- "type": "button",
- "text": "Recall",
- "movableInEdit": false,
- "clickRoutine": [
- {
- "func": "RECALL",
- "holder": "${PROPERTY parent}"
- },
- {
- "func": "FLIP",
- "holder": "${PROPERTY parent}",
- "face": 0
- },
- {
- "func": "SORT",
- "holder": "${PROPERTY parent}",
- "key": "rank"
- }
- ],
- "x": -6,
- "linkedToSeat": "seat3"
- },
- "ns70B": {
- "id": "ns70B",
- "parent": "holder2",
- "fixedParent": true,
- "y": 118,
- "width": 111,
- "height": 40,
- "type": "button",
- "text": "Recall",
- "movableInEdit": false,
- "clickRoutine": [
- {
- "func": "RECALL",
- "holder": "${PROPERTY parent}"
- },
- {
- "func": "FLIP",
- "holder": "${PROPERTY parent}",
- "face": 0
- },
- {
- "func": "SORT",
- "holder": "${PROPERTY parent}",
- "key": "rank"
- }
- ],
- "x": 1,
- "linkedToSeat": "seat2"
- },
- "bho1B": {
- "id": "bho1B",
- "parent": "holder4",
- "fixedParent": true,
- "y": 120,
- "width": 111,
- "height": 40,
- "type": "button",
- "text": "Recall",
- "movableInEdit": false,
- "clickRoutine": [
- {
- "func": "RECALL",
- "holder": "${PROPERTY parent}"
- },
- {
- "func": "FLIP",
- "holder": "${PROPERTY parent}",
- "face": 0
- },
- {
- "func": "SORT",
- "holder": "${PROPERTY parent}",
- "key": "rank"
- }
- ],
- "x": -2,
- "linkedToSeat": "seat4"
- },
- "11byg": {
- "type": "label",
- "text": 0,
- "id": "11byg",
- "x": 1385,
- "y": 737,
- "width": 65,
- "height": 40,
- "css": "font-size: 30px;",
- "editable": true,
- "linkedToSeat": "seat4"
- },
"13bygD": {
"id": "13bygD",
- "parent": "11byg",
+ "parent": "seat4Score",
"fixedParent": true,
"x": -38,
"y": 1,
@@ -1422,7 +1190,7 @@
},
"12bygU": {
"id": "12bygU",
- "parent": "11byg",
+ "parent": "seat4Score",
"fixedParent": true,
"x": 68,
"y": 1,
@@ -1443,21 +1211,9 @@
],
"linkedToSeat": "seat4"
},
- "12byg": {
- "type": "label",
- "text": 0,
- "id": "12byg",
- "x": 130,
- "y": 739,
- "width": 65,
- "height": 40,
- "css": "font-size: 30px;",
- "editable": true,
- "linkedToSeat": "seat3"
- },
"15bygD": {
"id": "15bygD",
- "parent": "12byg",
+ "parent": "seat3Score",
"fixedParent": true,
"y": 1,
"width": 36,
@@ -1480,7 +1236,7 @@
},
"14bygU": {
"id": "14bygU",
- "parent": "12byg",
+ "parent": "seat3Score",
"fixedParent": true,
"x": 68,
"y": 1,
@@ -1904,11 +1660,36 @@
"text": "Discard",
"clickRoutine": [
{
- "func": "MOVE",
- "from": "holder1",
- "count": 50,
- "to": "discard",
- "face": 1
+ "func": "SELECT",
+ "type": "card",
+ "property": "parent",
+ "value": "holder1"
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "GET",
+ "property": "rank"
+ },
+ {
+ "func": "IF",
+ "operand1": "${rank}",
+ "operand2": 0,
+ "thenRoutine": [
+ {
+ "func": "MOVE",
+ "to": "hand"
+ }
+ ],
+ "elseRoutine": [
+ {
+ "func": "MOVE",
+ "to": "discard"
+ }
+ ]
+ }
+ ]
}
],
"width": 100,
@@ -1918,11 +1699,11 @@
"discard": {
"type": "holder",
"id": "discard",
- "x": 722,
+ "x": 674,
"width": 110,
"height": 110,
"z": 1,
- "y": -127
+ "y": 652
},
"e453d1c2-1937-4359-a100-91aa209216b1": {
"type": "button",
@@ -1933,11 +1714,36 @@
"text": "Discard",
"clickRoutine": [
{
- "func": "MOVE",
- "from": "holder4",
- "count": 50,
- "to": "discard",
- "face": 1
+ "func": "SELECT",
+ "type": "card",
+ "property": "parent",
+ "value": "holder4"
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "GET",
+ "property": "rank"
+ },
+ {
+ "func": "IF",
+ "operand1": "${rank}",
+ "operand2": 0,
+ "thenRoutine": [
+ {
+ "func": "MOVE",
+ "to": "hand"
+ }
+ ],
+ "elseRoutine": [
+ {
+ "func": "MOVE",
+ "to": "discard"
+ }
+ ]
+ }
+ ]
}
],
"width": 100,
@@ -1953,11 +1759,36 @@
"text": "Discard",
"clickRoutine": [
{
- "func": "MOVE",
- "from": "holder3",
- "count": 50,
- "to": "discard",
- "face": 1
+ "func": "SELECT",
+ "type": "card",
+ "property": "parent",
+ "value": "holder3"
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "GET",
+ "property": "rank"
+ },
+ {
+ "func": "IF",
+ "operand1": "${rank}",
+ "operand2": 0,
+ "thenRoutine": [
+ {
+ "func": "MOVE",
+ "to": "hand"
+ }
+ ],
+ "elseRoutine": [
+ {
+ "func": "MOVE",
+ "to": "discard"
+ }
+ ]
+ }
+ ]
}
],
"width": 100,
@@ -1973,11 +1804,36 @@
"text": "Discard",
"clickRoutine": [
{
- "func": "MOVE",
- "from": "holder2",
- "count": 50,
- "to": "discard",
- "face": 1
+ "func": "SELECT",
+ "type": "card",
+ "property": "parent",
+ "value": "holder2"
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "GET",
+ "property": "rank"
+ },
+ {
+ "func": "IF",
+ "operand1": "${rank}",
+ "operand2": 0,
+ "thenRoutine": [
+ {
+ "func": "MOVE",
+ "to": "hand"
+ }
+ ],
+ "elseRoutine": [
+ {
+ "func": "MOVE",
+ "to": "discard"
+ }
+ ]
+ }
+ ]
}
],
"width": 100,
@@ -2245,419 +2101,647 @@
"type": "card",
"cardType": "0 of plain-circle",
"id": "y6ey",
- "z": 1,
- "parent": "bqgz"
+ "z": 7220,
+ "parent": "5rsg"
},
"vri3": {
"deck": "3vct",
"type": "card",
"cardType": "1 of plain-circle",
"id": "vri3",
- "z": 5867,
- "parent": "bqgz"
+ "z": 7221,
+ "parent": "5rsg"
},
"t9nm": {
"deck": "3vct",
"type": "card",
"cardType": "2 of plain-circle",
"id": "t9nm",
- "z": 5868,
- "parent": "bqgz"
+ "z": 7222,
+ "parent": "5rsg"
},
"2wcg": {
"deck": "3vct",
"type": "card",
"cardType": "3 of plain-circle",
"id": "2wcg",
- "z": 5869,
- "parent": "bqgz"
+ "z": 7223,
+ "parent": "5rsg"
},
"k68c": {
"deck": "3vct",
"type": "card",
"cardType": "4 of plain-circle",
"id": "k68c",
- "z": 5870,
- "parent": "bqgz"
+ "z": 7224,
+ "parent": "5rsg"
},
"ncx1": {
"deck": "3vct",
"type": "card",
"cardType": "5 of plain-circle",
"id": "ncx1",
- "z": 5871,
- "parent": "bqgz"
+ "z": 7225,
+ "parent": "5rsg"
},
"1orr": {
"deck": "3vct",
"type": "card",
"cardType": "6 of plain-circle",
"id": "1orr",
- "z": 5872,
- "parent": "bqgz"
+ "z": 7226,
+ "parent": "5rsg"
},
"fyef": {
"deck": "3vct",
"type": "card",
"cardType": "7 of plain-circle",
"id": "fyef",
- "z": 5873,
- "parent": "bqgz"
+ "z": 7227,
+ "parent": "5rsg"
},
"2p9j": {
"deck": "3vct",
"type": "card",
"cardType": "8 of plain-circle",
"id": "2p9j",
- "z": 5874,
- "parent": "bqgz"
+ "z": 7228,
+ "parent": "5rsg"
},
"v1lm": {
"deck": "3vct",
"type": "card",
"cardType": "9 of plain-circle",
"id": "v1lm",
- "z": 5875,
- "parent": "bqgz"
+ "z": 7229,
+ "parent": "5rsg"
},
"8bwu": {
"deck": "3vct",
"type": "card",
"cardType": "10 of plain-circle",
"id": "8bwu",
- "z": 5876,
- "parent": "bqgz"
+ "z": 7230,
+ "parent": "5rsg"
},
"wd82": {
"deck": "3vct",
"type": "card",
"cardType": "X of plain-circle",
"id": "wd82",
- "z": 5877,
- "parent": "bqgz"
+ "z": 7231,
+ "parent": "5rsg"
},
"09oh": {
"deck": "7j02",
"type": "card",
"cardType": "0 of plain-circle",
"id": "09oh",
- "z": 1,
- "parent": "6zng"
+ "z": 7208,
+ "parent": "4jj7"
},
"2q87": {
"deck": "7j02",
"type": "card",
"cardType": "1 of plain-circle",
"id": "2q87",
- "z": 5972,
- "parent": "6zng"
+ "z": 7209,
+ "parent": "4jj7"
},
"eeed": {
"deck": "7j02",
"type": "card",
"cardType": "2 of plain-circle",
"id": "eeed",
- "z": 5973,
- "parent": "6zng"
+ "z": 7210,
+ "parent": "4jj7"
},
"hl2d": {
"deck": "7j02",
"type": "card",
"cardType": "3 of plain-circle",
"id": "hl2d",
- "z": 5974,
- "parent": "6zng"
+ "z": 7211,
+ "parent": "4jj7"
},
"v507": {
"deck": "7j02",
"type": "card",
"cardType": "4 of plain-circle",
"id": "v507",
- "z": 5975,
- "parent": "6zng"
+ "z": 7212,
+ "parent": "4jj7"
},
"pp73": {
"deck": "7j02",
"type": "card",
"cardType": "5 of plain-circle",
"id": "pp73",
- "z": 5976,
- "parent": "6zng"
+ "z": 7213,
+ "parent": "4jj7"
},
"ai4m": {
"deck": "7j02",
"type": "card",
"cardType": "6 of plain-circle",
"id": "ai4m",
- "z": 5977,
- "parent": "6zng"
+ "z": 7214,
+ "parent": "4jj7"
},
"wfol": {
"deck": "7j02",
"type": "card",
"cardType": "7 of plain-circle",
"id": "wfol",
- "z": 5978,
- "parent": "6zng"
+ "z": 7215,
+ "parent": "4jj7"
},
"3phb": {
"deck": "7j02",
"type": "card",
"cardType": "8 of plain-circle",
"id": "3phb",
- "z": 5979,
- "parent": "6zng"
+ "z": 7216,
+ "parent": "4jj7"
},
"r3zh": {
"deck": "7j02",
"type": "card",
"cardType": "9 of plain-circle",
"id": "r3zh",
- "z": 5980,
- "parent": "6zng"
+ "z": 7217,
+ "parent": "4jj7"
},
"7e25": {
"deck": "7j02",
"type": "card",
"cardType": "10 of plain-circle",
"id": "7e25",
- "z": 5981,
- "parent": "6zng"
+ "z": 7218,
+ "parent": "4jj7"
},
"64tz": {
"deck": "7j02",
"type": "card",
"cardType": "X of plain-circle",
"id": "64tz",
- "z": 5982,
- "parent": "6zng"
+ "z": 7219,
+ "parent": "4jj7"
},
"0pd4": {
"deck": "2wdt",
"type": "card",
"cardType": "0 of plain-circle",
"id": "0pd4",
- "z": 1,
- "parent": "1d17"
+ "z": 7232,
+ "parent": "c1as"
},
"fa7b": {
"deck": "2wdt",
"type": "card",
"cardType": "1 of plain-circle",
"id": "fa7b",
- "z": 5937,
- "parent": "1d17"
+ "z": 7233,
+ "parent": "c1as"
},
"2d5y": {
"deck": "2wdt",
"type": "card",
"cardType": "2 of plain-circle",
"id": "2d5y",
- "z": 5938,
- "parent": "1d17"
+ "z": 7234,
+ "parent": "c1as"
},
"7xhf": {
"deck": "2wdt",
"type": "card",
"cardType": "3 of plain-circle",
"id": "7xhf",
- "z": 5939,
- "parent": "1d17"
+ "z": 7235,
+ "parent": "c1as"
},
"34lh": {
"deck": "2wdt",
"type": "card",
"cardType": "4 of plain-circle",
"id": "34lh",
- "z": 5940,
- "parent": "1d17"
+ "z": 7236,
+ "parent": "c1as"
},
"8yn3": {
"deck": "2wdt",
"type": "card",
"cardType": "5 of plain-circle",
"id": "8yn3",
- "z": 5941,
- "parent": "1d17"
+ "z": 7237,
+ "parent": "c1as"
},
"miyr": {
"deck": "2wdt",
"type": "card",
"cardType": "6 of plain-circle",
"id": "miyr",
- "z": 5942,
- "parent": "1d17"
+ "z": 7238,
+ "parent": "c1as"
},
"aclz": {
"deck": "2wdt",
"type": "card",
"cardType": "7 of plain-circle",
"id": "aclz",
- "z": 5943,
- "parent": "1d17"
+ "z": 7239,
+ "parent": "c1as"
},
"6i18": {
"deck": "2wdt",
"type": "card",
"cardType": "8 of plain-circle",
"id": "6i18",
- "z": 5944,
- "parent": "1d17"
+ "z": 7240,
+ "parent": "c1as"
},
"xlx1": {
"deck": "2wdt",
"type": "card",
"cardType": "9 of plain-circle",
"id": "xlx1",
- "z": 5945,
- "parent": "1d17"
+ "z": 7241,
+ "parent": "c1as"
},
"73hf": {
"deck": "2wdt",
"type": "card",
"cardType": "10 of plain-circle",
"id": "73hf",
- "z": 5946,
- "parent": "1d17"
+ "z": 7242,
+ "parent": "c1as"
},
"ap0y": {
"deck": "2wdt",
"type": "card",
"cardType": "X of plain-circle",
"id": "ap0y",
- "z": 5947,
- "parent": "1d17"
+ "z": 7243,
+ "parent": "c1as"
},
"ps1g": {
"deck": "6ggy",
"type": "card",
"cardType": "0 of plain-circle",
"id": "ps1g",
- "z": 1,
- "parent": "5gn1"
+ "z": 7244,
+ "parent": "zmq2"
},
"qo8q": {
"deck": "6ggy",
"type": "card",
"cardType": "1 of plain-circle",
"id": "qo8q",
- "z": 5902,
- "parent": "5gn1"
+ "z": 7245,
+ "parent": "zmq2"
},
"q4ay": {
"deck": "6ggy",
"type": "card",
"cardType": "2 of plain-circle",
"id": "q4ay",
- "z": 5903,
- "parent": "5gn1"
+ "z": 7246,
+ "parent": "zmq2"
},
"kzvo": {
"deck": "6ggy",
"type": "card",
"cardType": "3 of plain-circle",
"id": "kzvo",
- "z": 5904,
- "parent": "5gn1"
+ "z": 7247,
+ "parent": "zmq2"
},
"r8eo": {
"deck": "6ggy",
"type": "card",
"cardType": "4 of plain-circle",
"id": "r8eo",
- "z": 5905,
- "parent": "5gn1"
+ "z": 7248,
+ "parent": "zmq2"
},
"e7qn": {
"deck": "6ggy",
"type": "card",
"cardType": "5 of plain-circle",
"id": "e7qn",
- "z": 5906,
- "parent": "5gn1"
+ "z": 7249,
+ "parent": "zmq2"
},
"iahp": {
"deck": "6ggy",
"type": "card",
"cardType": "6 of plain-circle",
"id": "iahp",
- "z": 5907,
- "parent": "5gn1"
+ "z": 7250,
+ "parent": "zmq2"
},
"2z04": {
"deck": "6ggy",
"type": "card",
"cardType": "7 of plain-circle",
"id": "2z04",
- "z": 5908,
- "parent": "5gn1"
+ "z": 7251,
+ "parent": "zmq2"
},
"u0kp": {
"deck": "6ggy",
"type": "card",
"cardType": "8 of plain-circle",
"id": "u0kp",
- "z": 5909,
- "parent": "5gn1"
+ "z": 7252,
+ "parent": "zmq2"
},
"mr4q": {
"deck": "6ggy",
"type": "card",
"cardType": "9 of plain-circle",
"id": "mr4q",
- "z": 5910,
- "parent": "5gn1"
+ "z": 7253,
+ "parent": "zmq2"
},
"86c9": {
"deck": "6ggy",
"type": "card",
"cardType": "10 of plain-circle",
"id": "86c9",
- "z": 5911,
- "parent": "5gn1"
+ "z": 7254,
+ "parent": "zmq2"
},
"n46b": {
"deck": "6ggy",
"type": "card",
"cardType": "X of plain-circle",
"id": "n46b",
- "z": 5912,
- "parent": "5gn1"
+ "z": 7255,
+ "parent": "zmq2"
+ },
+ "vdjl": {
+ "type": "button",
+ "text": "New Game",
+ "clickRoutine": [
+ {
+ "func": "INPUT",
+ "header": "Start a new game?",
+ "fields": [
+ {
+ "type": "text",
+ "text": "Are you sure you want to recall all discs and start a new game?"
+ }
+ ]
+ },
+ {
+ "func": "RECALL",
+ "holder": [
+ "holder1",
+ "holder2",
+ "holder3",
+ "holder4",
+ "neutralHolder"
+ ],
+ "owned": true
+ },
+ {
+ "func": "FLIP",
+ "holder": [
+ "holder1",
+ "holder2",
+ "holder3",
+ "holder4",
+ "neutralHolder"
+ ],
+ "face": 0
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "seat1Score",
+ "seat2Score",
+ "seat3Score",
+ "seat4Score"
+ ],
+ "property": "text",
+ "value": 0
+ },
+ {
+ "func": "SELECT",
+ "property": "newReset",
+ "relation": "!=",
+ "value": null
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "FOREACH",
+ "in": "${PROPERTY newReset OF $widgetID}",
+ "loopRoutine": [
+ {
+ "func": "SET",
+ "property": "${key}",
+ "value": "${value}"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "x": 757,
+ "y": 13,
+ "z": 14121,
+ "id": "vdjl"
+ },
+ "seat2Score": {
+ "type": "label",
+ "id": "seat2Score",
+ "x": 1392,
+ "y": 131,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat2",
+ "text": 0
+ },
+ "seat1Score": {
+ "type": "label",
+ "id": "seat1Score",
+ "x": 130,
+ "y": 128,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat1",
+ "text": 0,
+ "hideWhenUnused": true
},
- "bqgz": {
+ "seat4Score": {
+ "type": "label",
+ "id": "seat4Score",
+ "x": 1385,
+ "y": 737,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat4",
+ "text": 0
+ },
+ "seat3Score": {
+ "type": "label",
+ "id": "seat3Score",
+ "x": 130,
+ "y": 739,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat3",
+ "text": 0
+ },
+ "4jj7": {
+ "type": "pile",
+ "parent": "holder1",
+ "x": 4,
+ "y": 4,
+ "width": 100,
+ "height": 100,
+ "id": "4jj7"
+ },
+ "5rsg": {
"type": "pile",
"parent": "holder2",
"x": 4,
"y": 4,
"width": 100,
"height": 100,
- "id": "bqgz"
+ "id": "5rsg"
},
- "5gn1": {
+ "zmq2": {
"type": "pile",
"parent": "holder4",
"x": 4,
"y": 4,
"width": 100,
"height": 100,
- "id": "5gn1"
+ "id": "zmq2"
+ },
+ "u8rv": {
+ "type": "label",
+ "text": "Discards",
+ "css": "font-size: 30px",
+ "height": 42,
+ "width": 200,
+ "x": 629,
+ "y": 768,
+ "z": 1,
+ "id": "u8rv"
+ },
+ "ijf6": {
+ "type": "label",
+ "text": "Neutral",
+ "css": "font-size: 30px",
+ "height": 42,
+ "width": 200,
+ "x": 837,
+ "y": 759,
+ "z": 2,
+ "id": "ijf6"
+ },
+ "neutralHolder": {
+ "type": "holder",
+ "id": "neutralHolder",
+ "x": 882,
+ "y": 652,
+ "width": 110,
+ "height": 110,
+ "z": 1
},
- "1d17": {
+ "neutralDeck": {
+ "type": "deck",
+ "id": "neutralDeck",
+ "x": 14,
+ "y": 18,
+ "cardDefaults": {
+ "width": 100,
+ "height": 100
+ },
+ "cardTypes": {
+ " of plain-circle": {
+ "suit": "/i/game-icons.net/delapouite/plain-circle.svg",
+ "suitColor": "#000000",
+ "rank": "",
+ "rankImage": "/i/cards-default/D-face.svg"
+ }
+ },
+ "faceTemplates": [
+ {
+ "border": 1,
+ "radius": 56,
+ "objects": [
+ {
+ "type": "image",
+ "width": 100,
+ "height": 100,
+ "color": "#000000",
+ "svgReplaces": {
+ "currentColor": "logoColor"
+ }
+ }
+ ]
+ },
+ {
+ "radius": 16,
+ "objects": [
+ {
+ "type": "image",
+ "width": 100,
+ "height": 100,
+ "color": "transparent",
+ "svgReplaces": {
+ "#000": "suitColor"
+ },
+ "dynamicProperties": {
+ "value": "suit"
+ }
+ },
+ {
+ "type": "text",
+ "y": 18,
+ "fontSize": 40,
+ "textAlign": "center",
+ "color": "white",
+ "width": 100,
+ "dynamicProperties": {
+ "value": "rank"
+ }
+ }
+ ]
+ }
+ ],
+ "parent": "neutralHolder"
+ },
+ "30ty": {
"type": "pile",
- "parent": "holder3",
+ "parent": "neutralHolder",
"x": 4,
"y": 4,
"width": 100,
"height": 100,
- "id": "1d17"
+ "id": "30ty"
},
- "6zng": {
+ "c1as": {
"type": "pile",
- "parent": "holder1",
+ "parent": "holder3",
"x": 4,
"y": 4,
"width": 100,
"height": 100,
- "id": "6zng"
+ "id": "c1as"
}
}
\ No newline at end of file
diff --git a/library/games/Card Constructor/0.json b/library/games/Card Constructor/0.json
new file mode 100644
index 0000000000..27ff9f2b9b
--- /dev/null
+++ b/library/games/Card Constructor/0.json
@@ -0,0 +1,4255 @@
+{
+ "_meta": {
+ "version": 17,
+ "info": {
+ "name": "Card Constructor",
+ "image": "/assets/1757111183_1666161",
+ "rules": "https://www.alderac.com/wp-content/uploads/2017/02/custom-heroes-rulebook-v2.pdf",
+ "bgg": "https://boardgamegeek.com/boardgame/223049/custom-heroes",
+ "year": "2017",
+ "mode": "vs",
+ "time": "45",
+ "attribution": "Layout by Mitchell Stolycia. Credit is also awarded to ArnoldSmith86 for creating the script for the combiner. All other scripting was done my Mitchell Stolycia.
The βjoinβ icon used for the combiner button is from game-icons.net, created by Delapouite, and available for use as described in the About section.
All card backs are defaults from virtualtabletop.io, created by Adrian Kennard, and available for use as described in the About section.
Card faces and the public library image were created by\nMitchell Stolycia, released to the public domain under CC0.
",
+ "lastUpdate": 1737483345389,
+ "showName": true,
+ "skill": "",
+ "description": "Construct and modify your own cards in a simple ladder climbing game.",
+ "similarImage": "",
+ "similarName": "Custom Heroes",
+ "similarDesigner": "John D. Clair",
+ "similarAwards": "2018 Origins Awards Best Card Game Nominee\n2017 Golden Geek Best Card Game Nominee",
+ "ruleText": "",
+ "helpText": "Combining cards
Add card and advancements to the combiner. Click the combiner button. As per the game rules, do not combine multiple cards/advancements which have their attributes in the same region of the card.
For example, you can combine two advancements if they contain a +6 on the bottom left of the card and a -1 on the bottom right of the card respectively. However, advancements containing +6 and -1 both on the bottom left of their cards cannot be combined.
Playing cards
Play cards to one of the play areas. On the next player's turn, they should play cards to the empty play area.
Player turns will get skipped automatically if they are out of the round (have zero cards in hand).
Starting a new round
Make sure no cards are left on the table before beginning a new round.
IMPORTANT: Place all played green cards left over either back into your hand or into an active play area before beginning a new round.
",
+ "variantImage": "",
+ "variant": "Card Constructor",
+ "language": "en-GB",
+ "players": "3-6"
+ }
+ },
+ "template": {
+ "type": "card",
+ "id": "template",
+ "deck": "clone",
+ "cardType": "dummy",
+ "x": -341,
+ "y": -17
+ },
+ "trash": {
+ "type": "holder",
+ "id": "trash",
+ "x": 1696,
+ "y": 187
+ },
+ "cpwv": {
+ "id": "cpwv",
+ "image": "/i/game-icons.net/delapouite/trash-can.svg",
+ "x": 1755,
+ "y": 292,
+ "movable": false
+ },
+ "combiner": {
+ "type": "holder",
+ "id": "combiner",
+ "x": 1040,
+ "y": 639,
+ "onEnter": {
+ "activeFace": 1
+ },
+ "height": 170,
+ "width": 122
+ },
+ "combine": {
+ "type": "button",
+ "id": "combine",
+ "x": 1125,
+ "y": 593,
+ "image": "/i/game-icons.net/delapouite/join.svg",
+ "clickRoutine": [
+ {
+ "func": "SELECT",
+ "value": "combiner"
+ },
+ {
+ "func": "GET",
+ "property": "image",
+ "aggregation": "array"
+ },
+ {
+ "func": "FOREACH",
+ "range": [
+ 0,
+ 4
+ ],
+ "loopRoutine": [
+ {
+ "func": "GET",
+ "property": "image${value}",
+ "aggregation": "array",
+ "variable": "new"
+ },
+ "var image = concat ${image} ${new}"
+ ]
+ },
+ {
+ "func": "MOVE",
+ "to": "trash"
+ },
+ {
+ "func": "CLONE",
+ "source": [
+ "template"
+ ]
+ },
+ "var counter = 0",
+ {
+ "func": "FOREACH",
+ "in": "${image}",
+ "loopRoutine": [
+ {
+ "func": "IF",
+ "condition": "${value}",
+ "thenRoutine": [
+ {
+ "func": "SET",
+ "property": "image${counter}",
+ "value": "${value}"
+ },
+ "var counter = ${counter} + 1"
+ ]
+ }
+ ]
+ },
+ {
+ "func": "MOVE",
+ "to": "combiner"
+ }
+ ],
+ "css": {
+ "default": {
+ "font-size": "20px",
+ "color": "black",
+ "background": "grey",
+ "border-color": "black"
+ },
+ ":hover": {
+ "background": "darkgrey"
+ }
+ }
+ },
+ "mjfk": {
+ "id": "mjfk",
+ "x": -438,
+ "y": 148,
+ "text": "This is a card that is just a template to CLONE. It can be offscreen. Edit the deck in the top left to customize the combined cards.",
+ "width": 328,
+ "height": 99,
+ "movable": false
+ },
+ "greenHolder": {
+ "type": "holder",
+ "id": "greenHolder",
+ "x": 1188,
+ "dropTarget": {
+ "type": "card"
+ },
+ "y": -307
+ },
+ "pinkHolder": {
+ "type": "holder",
+ "id": "pinkHolder",
+ "x": 1409,
+ "y": -306,
+ "dropTarget": {
+ "type": "card"
+ }
+ },
+ "pinkL": {
+ "type": "label",
+ "id": "pinkL",
+ "x": 1415,
+ "y": -332,
+ "z": 1,
+ "text": "Pink"
+ },
+ "greenL": {
+ "type": "label",
+ "id": "greenL",
+ "x": 1193,
+ "y": -332,
+ "z": 1,
+ "text": "Green"
+ },
+ "baseHolder": {
+ "type": "holder",
+ "id": "baseHolder",
+ "x": -326,
+ "y": 526,
+ "z": 1,
+ "dropTarget": {
+ "type": "card"
+ }
+ },
+ "overlayHolder": {
+ "type": "holder",
+ "id": "overlayHolder",
+ "x": 48,
+ "y": 172,
+ "z": 2275,
+ "dropTarget": {
+ "type": "card"
+ },
+ "width": 122
+ },
+ "hand": {
+ "type": "holder",
+ "onEnter": {
+ "activeFace": 1
+ },
+ "onLeave": {
+ "activeFace": 0
+ },
+ "dropOffsetX": 5,
+ "dropOffsetY": 5,
+ "stackOffsetX": 114,
+ "childrenPerOwner": true,
+ "dropShadow": true,
+ "hidePlayerCursors": true,
+ "x": 12,
+ "y": 818,
+ "width": 1150,
+ "height": 170,
+ "id": "hand"
+ },
+ "overlayHand": {
+ "type": "holder",
+ "id": "overlayHand",
+ "x": 12,
+ "y": 639,
+ "width": 922,
+ "height": 170,
+ "childrenPerOwner": true,
+ "dropOffsetX": 5,
+ "dropOffsetY": 5,
+ "dropShadow": true,
+ "hidePlayerCursors": true,
+ "onEnter": {
+ "activeFace": 1
+ },
+ "onLeave": {
+ "activeFace": 0
+ },
+ "stackOffsetX": 114
+ },
+ "reset": {
+ "type": "button",
+ "id": "reset",
+ "parent": "overlayHolder",
+ "fixedParent": true,
+ "y": 84,
+ "width": 111,
+ "height": 40,
+ "movableInEdit": false,
+ "text": "Reset",
+ "clickRoutine": [
+ {
+ "func": "RECALL",
+ "holder": "${PROPERTY parent}"
+ },
+ {
+ "func": "FLIP",
+ "holder": "${PROPERTY parent}",
+ "face": 0
+ },
+ {
+ "func": "SHUFFLE",
+ "holder": "${PROPERTY parent}"
+ },
+ {
+ "func": "SELECT",
+ "property": "clonedFrom",
+ "value": "template"
+ },
+ {
+ "func": "DELETE"
+ }
+ ],
+ "x": -304
+ },
+ "baseHolderB": {
+ "type": "button",
+ "id": "baseHolderB",
+ "parent": "baseHolder",
+ "fixedParent": true,
+ "y": 171.36,
+ "width": 111,
+ "height": 40,
+ "movableInEdit": false,
+ "text": "Recall & Shuffle",
+ "clickRoutine": [
+ {
+ "func": "RECALL",
+ "holder": "${PROPERTY parent}"
+ },
+ {
+ "func": "FLIP",
+ "holder": "${PROPERTY parent}",
+ "face": 0
+ },
+ {
+ "func": "SHUFFLE",
+ "holder": "${PROPERTY parent}"
+ }
+ ]
+ },
+ "holder4p": {
+ "type": "holder",
+ "id": "holder4p",
+ "x": 11,
+ "y": -377,
+ "dropTarget": {
+ "type": "card"
+ }
+ },
+ "holder5p": {
+ "type": "holder",
+ "id": "holder5p",
+ "x": 218,
+ "y": -377,
+ "dropTarget": {
+ "type": "card"
+ }
+ },
+ "holder6p": {
+ "type": "holder",
+ "id": "holder6p",
+ "x": 426,
+ "y": -377,
+ "dropTarget": {
+ "type": "card"
+ }
+ },
+ "setup": {
+ "type": "button",
+ "id": "setup",
+ "x": 13,
+ "y": 9,
+ "z": 5,
+ "css": {
+ "default": {
+ "background-color": "#84E291",
+ "border-color": "#595959",
+ "color": "black"
+ },
+ ":hover": {
+ "background-color": "#595959",
+ "border-color": "#84E291"
+ }
+ },
+ "text": "Setup",
+ "clickRoutine": [
+ "var a = 4",
+ {
+ "func": "INPUT",
+ "header": "Start new game?",
+ "confirmButtonText": "Yes",
+ "cancelButtonText": "No",
+ "fields": [
+ {
+ "type": "subtitle",
+ "text": "Are you sure you want to erase any progress and start a new game?"
+ }
+ ]
+ },
+ {
+ "func": "SELECT",
+ "property": "id",
+ "value": "reset"
+ },
+ {
+ "func": "CLICK"
+ },
+ {
+ "func": "SELECT",
+ "property": "id",
+ "value": "baseHolderB"
+ },
+ {
+ "func": "CLICK"
+ },
+ {
+ "func": "SELECT",
+ "property": "id",
+ "value": "refHolderB"
+ },
+ {
+ "func": "CLICK"
+ },
+ {
+ "func": "FOREACH",
+ "range": 3,
+ "loopRoutine": [
+ {
+ "func": "SELECT",
+ "property": "id",
+ "value": "holder${a}pB"
+ },
+ {
+ "func": "CLICK"
+ },
+ "var a = ${a} + 1"
+ ]
+ },
+ {
+ "func": "SELECT",
+ "property": "id",
+ "value": "greenHolderB"
+ },
+ {
+ "func": "CLICK"
+ },
+ {
+ "func": "SELECT",
+ "property": "id",
+ "value": "pinkHolderB"
+ },
+ {
+ "func": "CLICK"
+ },
+ {
+ "note": "move each seat into the DEFAULT collection",
+ "func": "SELECT",
+ "type": "seat",
+ "property": "player",
+ "relation": "!=",
+ "value": ""
+ },
+ {
+ "note": "count the number of seats",
+ "func": "COUNT"
+ },
+ "var pCount = ${COUNT}",
+ {
+ "func": "IF",
+ "operand1": "${COUNT}",
+ "relation": ">",
+ "operand2": 3,
+ "thenRoutine": [
+ {
+ "func": "MOVE",
+ "from": "holder4p",
+ "to": "baseHolder",
+ "count": 10
+ },
+ {
+ "func": "IF",
+ "operand1": "${COUNT}",
+ "relation": ">",
+ "operand2": 4,
+ "thenRoutine": [
+ {
+ "func": "MOVE",
+ "from": "holder5p",
+ "to": "baseHolder",
+ "count": 10
+ },
+ {
+ "func": "IF",
+ "operand1": "${COUNT}",
+ "relation": ">",
+ "operand2": 5,
+ "thenRoutine": [
+ {
+ "func": "MOVE",
+ "from": "holder6p",
+ "to": "baseHolder",
+ "count": 10
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "func": "SELECT",
+ "property": "parent",
+ "value": "refHolder"
+ },
+ {
+ "func": "SELECT",
+ "property": "cardType",
+ "collection": "DEFAULT",
+ "value": "${pCount}ref.jpg"
+ },
+ {
+ "func": "MOVE",
+ "to": "refDisplayHolder"
+ },
+ {
+ "func": "SHUFFLE",
+ "holder": "baseHolder"
+ },
+ {
+ "note": "move each seat into the DEFAULT collection",
+ "func": "SELECT",
+ "type": "seat",
+ "property": "player",
+ "relation": "!=",
+ "value": ""
+ },
+ {
+ "note": "count the number of seats",
+ "func": "COUNT"
+ },
+ {
+ "func": "SET",
+ "property": "hand",
+ "value": "overlayHand"
+ },
+ {
+ "note": "for each widget (seat) in the default collection...",
+ "func": "FOREACH",
+ "collection": "DEFAULT",
+ "loopRoutine": [
+ {
+ "func": "MOVE",
+ "from": "greenHolder",
+ "to": "${widgetID}",
+ "count": 1
+ },
+ {
+ "func": "MOVE",
+ "from": "pinkHolder",
+ "to": "${widgetID}",
+ "count": 1
+ },
+ {
+ "func": "MOVE",
+ "from": "overlayHolder",
+ "to": "${widgetID}",
+ "count": 1
+ }
+ ]
+ },
+ {
+ "func": "SET",
+ "property": "hand",
+ "value": "hand"
+ },
+ {
+ "note": "for each widget (seat) in the default collection...",
+ "func": "FOREACH",
+ "collection": "DEFAULT",
+ "loopRoutine": [
+ {
+ "func": "MOVE",
+ "from": "baseHolder",
+ "to": "${widgetID}",
+ "count": 10
+ },
+ {
+ "func": "SORT",
+ "holder": "hand",
+ "key": "cardType"
+ }
+ ]
+ },
+ "var a = 1",
+ {
+ "note": "for each widget (seat) in the default collection...",
+ "func": "FOREACH",
+ "range": 6,
+ "loopRoutine": [
+ {
+ "func": "LABEL",
+ "label": "p${a}",
+ "value": 1
+ },
+ {
+ "func": "LABEL",
+ "label": "c${a}",
+ "value": 2
+ },
+ "var a = ${a} + 1"
+ ]
+ },
+ {
+ "note": "Set a random player as start player",
+ "func": "TURN",
+ "turnCycle": "random"
+ }
+ ]
+ },
+ "holder4pB": {
+ "type": "button",
+ "id": "holder4pB",
+ "parent": "holder4p",
+ "fixedParent": true,
+ "y": 171.36,
+ "width": 111,
+ "height": 40,
+ "movableInEdit": false,
+ "text": "Recall & Shuffle",
+ "clickRoutine": [
+ {
+ "func": "RECALL",
+ "holder": "${PROPERTY parent}"
+ },
+ {
+ "func": "FLIP",
+ "holder": "${PROPERTY parent}",
+ "face": 0
+ },
+ {
+ "func": "SHUFFLE",
+ "holder": "${PROPERTY parent}"
+ }
+ ]
+ },
+ "holder5pB": {
+ "type": "button",
+ "id": "holder5pB",
+ "parent": "holder5p",
+ "fixedParent": true,
+ "y": 171.36,
+ "width": 111,
+ "height": 40,
+ "movableInEdit": false,
+ "text": "Recall & Shuffle",
+ "clickRoutine": [
+ {
+ "func": "RECALL",
+ "holder": "${PROPERTY parent}"
+ },
+ {
+ "func": "FLIP",
+ "holder": "${PROPERTY parent}",
+ "face": 0
+ },
+ {
+ "func": "SHUFFLE",
+ "holder": "${PROPERTY parent}"
+ }
+ ]
+ },
+ "holder6pB": {
+ "type": "button",
+ "id": "holder6pB",
+ "parent": "holder6p",
+ "fixedParent": true,
+ "y": 171.36,
+ "width": 111,
+ "height": 40,
+ "movableInEdit": false,
+ "text": "Recall & Shuffle",
+ "clickRoutine": [
+ {
+ "func": "RECALL",
+ "holder": "${PROPERTY parent}"
+ },
+ {
+ "func": "FLIP",
+ "holder": "${PROPERTY parent}",
+ "face": 0
+ },
+ {
+ "func": "SHUFFLE",
+ "holder": "${PROPERTY parent}"
+ }
+ ]
+ },
+ "greenHolderB": {
+ "type": "button",
+ "id": "greenHolderB",
+ "parent": "greenHolder",
+ "fixedParent": true,
+ "y": 171.36,
+ "width": 111,
+ "height": 40,
+ "movableInEdit": false,
+ "text": "Recall & Shuffle",
+ "clickRoutine": [
+ {
+ "func": "RECALL",
+ "holder": "${PROPERTY parent}"
+ },
+ {
+ "func": "FLIP",
+ "holder": "${PROPERTY parent}",
+ "face": 0
+ },
+ {
+ "func": "SHUFFLE",
+ "holder": "${PROPERTY parent}"
+ }
+ ]
+ },
+ "pinkHolderB": {
+ "type": "button",
+ "id": "pinkHolderB",
+ "parent": "pinkHolder",
+ "fixedParent": true,
+ "y": 171.36,
+ "width": 111,
+ "height": 40,
+ "movableInEdit": false,
+ "text": "Recall & Shuffle",
+ "clickRoutine": [
+ {
+ "func": "RECALL",
+ "holder": "${PROPERTY parent}"
+ },
+ {
+ "func": "FLIP",
+ "holder": "${PROPERTY parent}",
+ "face": 0
+ },
+ {
+ "func": "SHUFFLE",
+ "holder": "${PROPERTY parent}"
+ }
+ ]
+ },
+ "holder1": {
+ "type": "holder",
+ "id": "holder1",
+ "x": 441,
+ "y": 189,
+ "width": 694,
+ "height": 170,
+ "z": 2276,
+ "dropOffsetX": 5,
+ "dropOffsetY": 5,
+ "onEnter": {
+ "activeFace": 1
+ },
+ "onLeave": {
+ "activeFace": 0
+ },
+ "stackOffsetX": 114,
+ "enterRoutine": [
+ {
+ "func": "MOVE",
+ "from": "holder2",
+ "to": "baseHolder",
+ "count": "all"
+ }
+ ]
+ },
+ "holder2": {
+ "type": "holder",
+ "id": "holder2",
+ "x": 441,
+ "y": 384,
+ "width": 694,
+ "height": 170,
+ "z": 2276,
+ "dropOffsetX": 5,
+ "dropOffsetY": 5,
+ "onEnter": {
+ "activeFace": 1
+ },
+ "onLeave": {
+ "activeFace": 0
+ },
+ "stackOffsetX": 114,
+ "enterRoutine": [
+ {
+ "func": "MOVE",
+ "from": "holder1",
+ "to": "baseHolder",
+ "count": "all"
+ }
+ ]
+ },
+ "qioy": {
+ "type": "label",
+ "x": 441,
+ "y": 362,
+ "z": 2,
+ "id": "qioy",
+ "width": 694,
+ "text": "Active play areas",
+ "color": "black",
+ "css": {
+ "color": "black"
+ }
+ },
+ "jr7c": {
+ "x": 1402,
+ "y": 350,
+ "width": 164,
+ "height": 147,
+ "layer": -3,
+ "editorGroup": true,
+ "movable": false,
+ "id": "jr7c"
+ },
+ "qnh6": {
+ "type": "label",
+ "css": "font-size: 30px",
+ "height": 42,
+ "width": 30,
+ "y": 105,
+ "z": 5,
+ "id": "qnh6",
+ "text": "$",
+ "linkedToSeat": "seat5",
+ "parent": "jr7c"
+ },
+ "seat5": {
+ "type": "seat",
+ "id": "seat5",
+ "index": 5,
+ "x": 14,
+ "y": 45,
+ "z": 3,
+ "hideWhenUnused": true,
+ "parent": "jr7c"
+ },
+ "xg7cC": {
+ "id": "xg7cC",
+ "parent": "seat5",
+ "fixedParent": true,
+ "x": -20,
+ "y": -20,
+ "width": 30,
+ "height": 30,
+ "borderRadius": 100,
+ "movable": false,
+ "movableInEdit": false,
+ "clickable": false,
+ "css": {
+ "font-size": "18px",
+ "display": "flex",
+ "align-items": "center",
+ "justify-content": "center",
+ "color": "#6d6d6d",
+ "background": "#e4e4e4",
+ "border": "2px solid #999999"
+ },
+ "text": 0,
+ "ownerGlobalUpdateRoutine": [
+ "var parent = ${PROPERTY parent}",
+ "var COUNT = 0",
+ {
+ "func": "SELECT",
+ "property": "_ancestor",
+ "value": "${PROPERTY hand OF $parent}"
+ },
+ {
+ "func": "COUNT",
+ "owner": "${PROPERTY player OF $parent}"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "text",
+ "value": "${COUNT}"
+ }
+ ],
+ "playerGlobalUpdateRoutine": [
+ {
+ "func": "CALL",
+ "routine": "ownerGlobalUpdateRoutine",
+ "widget": "${PROPERTY id}"
+ }
+ ]
+ },
+ "4fvf": {
+ "x": 1402,
+ "y": 13,
+ "width": 164,
+ "height": 147,
+ "layer": -3,
+ "editorGroup": true,
+ "movable": false,
+ "id": "4fvf"
+ },
+ "seat4": {
+ "type": "seat",
+ "id": "seat4",
+ "index": 4,
+ "x": 14,
+ "y": 45,
+ "hideWhenUnused": true,
+ "z": 3,
+ "parent": "4fvf"
+ },
+ "xg4cC": {
+ "id": "xg4cC",
+ "parent": "seat4",
+ "fixedParent": true,
+ "x": -20,
+ "y": -20,
+ "width": 30,
+ "height": 30,
+ "borderRadius": 100,
+ "movable": false,
+ "movableInEdit": false,
+ "clickable": false,
+ "css": {
+ "font-size": "18px",
+ "display": "flex",
+ "align-items": "center",
+ "justify-content": "center",
+ "color": "#6d6d6d",
+ "background": "#e4e4e4",
+ "border": "2px solid #999999"
+ },
+ "text": 0,
+ "ownerGlobalUpdateRoutine": [
+ "var parent = ${PROPERTY parent}",
+ "var COUNT = 0",
+ {
+ "func": "SELECT",
+ "property": "_ancestor",
+ "value": "${PROPERTY hand OF $parent}"
+ },
+ {
+ "func": "COUNT",
+ "owner": "${PROPERTY player OF $parent}"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "text",
+ "value": "${COUNT}"
+ }
+ ],
+ "playerGlobalUpdateRoutine": [
+ {
+ "func": "CALL",
+ "routine": "ownerGlobalUpdateRoutine",
+ "widget": "${PROPERTY id}"
+ }
+ ]
+ },
+ "qnh5": {
+ "type": "label",
+ "css": "font-size: 30px",
+ "height": 42,
+ "width": 30,
+ "y": 105,
+ "z": 5,
+ "id": "qnh5",
+ "text": "$",
+ "linkedToSeat": "seat4",
+ "parent": "4fvf"
+ },
+ "xgws": {
+ "x": 18,
+ "y": 438,
+ "width": 160,
+ "height": 147,
+ "layer": -3,
+ "editorGroup": true,
+ "movable": false,
+ "id": "xgws"
+ },
+ "qnh8": {
+ "type": "label",
+ "css": "font-size: 30px",
+ "height": 42,
+ "width": 30,
+ "y": 105,
+ "z": 5,
+ "id": "qnh8",
+ "text": "$",
+ "linkedToSeat": "seat1",
+ "parent": "xgws"
+ },
+ "seat1": {
+ "type": "seat",
+ "id": "seat1",
+ "x": 10,
+ "y": 45,
+ "z": 2,
+ "hand": "overlayHand",
+ "hideWhenUnused": true,
+ "parent": "xgws"
+ },
+ "xg6cC": {
+ "id": "xg6cC",
+ "parent": "seat1",
+ "fixedParent": true,
+ "x": -20,
+ "y": -20,
+ "width": 30,
+ "height": 30,
+ "borderRadius": 100,
+ "movable": false,
+ "movableInEdit": false,
+ "clickable": false,
+ "css": {
+ "font-size": "18px",
+ "display": "flex",
+ "align-items": "center",
+ "justify-content": "center",
+ "color": "#6d6d6d",
+ "background": "#e4e4e4",
+ "border": "2px solid #999999"
+ },
+ "text": 0,
+ "ownerGlobalUpdateRoutine": [
+ "var parent = ${PROPERTY parent}",
+ "var COUNT = 0",
+ {
+ "func": "SELECT",
+ "property": "_ancestor",
+ "value": "${PROPERTY hand OF $parent}"
+ },
+ {
+ "func": "COUNT",
+ "owner": "${PROPERTY player OF $parent}"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "text",
+ "value": "${COUNT}"
+ }
+ ],
+ "playerGlobalUpdateRoutine": [
+ {
+ "func": "CALL",
+ "routine": "ownerGlobalUpdateRoutine",
+ "widget": "${PROPERTY id}"
+ }
+ ]
+ },
+ "l5gk": {
+ "x": 269,
+ "y": 13,
+ "width": 160,
+ "height": 147,
+ "layer": -3,
+ "editorGroup": true,
+ "movable": false,
+ "id": "l5gk"
+ },
+ "qnh7": {
+ "type": "label",
+ "css": "font-size: 30px",
+ "height": 42,
+ "width": 30,
+ "y": 105,
+ "z": 5,
+ "id": "qnh7",
+ "text": "$",
+ "linkedToSeat": "seat2",
+ "parent": "l5gk"
+ },
+ "seat2": {
+ "type": "seat",
+ "id": "seat2",
+ "index": 2,
+ "x": 10,
+ "y": 45,
+ "z": 2,
+ "hideWhenUnused": true,
+ "parent": "l5gk"
+ },
+ "xg5cC": {
+ "id": "xg5cC",
+ "parent": "seat2",
+ "fixedParent": true,
+ "x": -20,
+ "y": -20,
+ "width": 30,
+ "height": 30,
+ "borderRadius": 100,
+ "movable": false,
+ "movableInEdit": false,
+ "clickable": false,
+ "css": {
+ "font-size": "18px",
+ "display": "flex",
+ "align-items": "center",
+ "justify-content": "center",
+ "color": "#6d6d6d",
+ "background": "#e4e4e4",
+ "border": "2px solid #999999"
+ },
+ "text": 0,
+ "ownerGlobalUpdateRoutine": [
+ "var parent = ${PROPERTY parent}",
+ "var COUNT = 0",
+ {
+ "func": "SELECT",
+ "property": "_ancestor",
+ "value": "${PROPERTY hand OF $parent}"
+ },
+ {
+ "func": "COUNT",
+ "owner": "${PROPERTY player OF $parent}"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "text",
+ "value": "${COUNT}"
+ }
+ ],
+ "playerGlobalUpdateRoutine": [
+ {
+ "func": "CALL",
+ "routine": "ownerGlobalUpdateRoutine",
+ "widget": "${PROPERTY id}"
+ }
+ ]
+ },
+ "jr8c": {
+ "x": 1402,
+ "y": 687,
+ "width": 164,
+ "height": 147,
+ "layer": -3,
+ "editorGroup": true,
+ "movable": false,
+ "id": "jr8c"
+ },
+ "qnh9": {
+ "type": "label",
+ "css": "font-size: 30px",
+ "height": 42,
+ "width": 30,
+ "y": 105,
+ "z": 5,
+ "id": "qnh9",
+ "text": "$",
+ "linkedToSeat": "seat6",
+ "parent": "jr8c"
+ },
+ "seat6": {
+ "type": "seat",
+ "id": "seat6",
+ "index": 6,
+ "x": 14,
+ "y": 45,
+ "z": 3,
+ "hideWhenUnused": true,
+ "parent": "jr8c"
+ },
+ "xg8cC": {
+ "id": "xg8cC",
+ "parent": "seat6",
+ "fixedParent": true,
+ "x": -20,
+ "y": -20,
+ "width": 30,
+ "height": 30,
+ "borderRadius": 100,
+ "movable": false,
+ "movableInEdit": false,
+ "clickable": false,
+ "css": {
+ "font-size": "18px",
+ "display": "flex",
+ "align-items": "center",
+ "justify-content": "center",
+ "color": "#6d6d6d",
+ "background": "#e4e4e4",
+ "border": "2px solid #999999"
+ },
+ "text": 0,
+ "ownerGlobalUpdateRoutine": [
+ "var parent = ${PROPERTY parent}",
+ "var COUNT = 0",
+ {
+ "func": "SELECT",
+ "property": "_ancestor",
+ "value": "${PROPERTY hand OF $parent}"
+ },
+ {
+ "func": "COUNT",
+ "owner": "${PROPERTY player OF $parent}"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "text",
+ "value": "${COUNT}"
+ }
+ ],
+ "playerGlobalUpdateRoutine": [
+ {
+ "func": "CALL",
+ "routine": "ownerGlobalUpdateRoutine",
+ "widget": "${PROPERTY id}"
+ }
+ ]
+ },
+ "xvti": {
+ "x": 836,
+ "y": 13,
+ "width": 160,
+ "height": 147,
+ "layer": -3,
+ "editorGroup": true,
+ "movable": false,
+ "id": "xvti"
+ },
+ "seat3": {
+ "type": "seat",
+ "id": "seat3",
+ "index": 3,
+ "x": 10,
+ "y": 45,
+ "hideWhenUnused": true,
+ "z": 2,
+ "parent": "xvti",
+ "turn": true
+ },
+ "xg3cC": {
+ "id": "xg3cC",
+ "parent": "seat3",
+ "fixedParent": true,
+ "x": -20,
+ "y": -20,
+ "width": 30,
+ "height": 30,
+ "borderRadius": 100,
+ "movable": false,
+ "movableInEdit": false,
+ "clickable": false,
+ "css": {
+ "font-size": "18px",
+ "display": "flex",
+ "align-items": "center",
+ "justify-content": "center",
+ "color": "#6d6d6d",
+ "background": "#e4e4e4",
+ "border": "2px solid #999999"
+ },
+ "text": 0,
+ "ownerGlobalUpdateRoutine": [
+ "var parent = ${PROPERTY parent}",
+ "var COUNT = 0",
+ {
+ "func": "SELECT",
+ "property": "_ancestor",
+ "value": "${PROPERTY hand OF $parent}"
+ },
+ {
+ "func": "COUNT",
+ "owner": "${PROPERTY player OF $parent}"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "text",
+ "value": "${COUNT}"
+ }
+ ],
+ "playerGlobalUpdateRoutine": [
+ {
+ "func": "CALL",
+ "routine": "ownerGlobalUpdateRoutine",
+ "widget": "${PROPERTY id}"
+ }
+ ]
+ },
+ "qnh4": {
+ "type": "label",
+ "css": "font-size: 30px",
+ "height": 42,
+ "width": 30,
+ "y": 105,
+ "z": 5,
+ "id": "qnh4",
+ "text": "$",
+ "linkedToSeat": "seat3",
+ "parent": "xvti"
+ },
+ "p1": {
+ "type": "label",
+ "id": "p1",
+ "parent": "xgws",
+ "x": 68,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat1",
+ "text": 0
+ },
+ "deufD8": {
+ "id": "deufD8",
+ "parent": "p1",
+ "fixedParent": true,
+ "x": -38,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": "font-size: 28px",
+ "text": "remove",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "dec",
+ "value": 1
+ }
+ ]
+ },
+ "deufU8": {
+ "id": "deufU8",
+ "parent": "p1",
+ "fixedParent": true,
+ "x": 68,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": "font-size: 28px",
+ "text": "add",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "p2": {
+ "type": "label",
+ "id": "p2",
+ "parent": "l5gk",
+ "x": 68,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat2",
+ "text": 0
+ },
+ "deufD6": {
+ "id": "deufD6",
+ "parent": "p2",
+ "fixedParent": true,
+ "x": -38,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": "font-size: 28px",
+ "text": "remove",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "dec",
+ "value": 1
+ }
+ ]
+ },
+ "deufU6": {
+ "id": "deufU6",
+ "parent": "p2",
+ "fixedParent": true,
+ "x": 68,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": "font-size: 28px",
+ "text": "add",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "p3": {
+ "type": "label",
+ "id": "p3",
+ "parent": "xvti",
+ "x": 68,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat3",
+ "text": 0
+ },
+ "deufD": {
+ "id": "deufD",
+ "parent": "p3",
+ "fixedParent": true,
+ "x": -38,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": "font-size: 28px",
+ "text": "remove",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "dec",
+ "value": 1
+ }
+ ]
+ },
+ "deufU": {
+ "id": "deufU",
+ "parent": "p3",
+ "fixedParent": true,
+ "x": 68,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": "font-size: 28px",
+ "text": "add",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "p4": {
+ "type": "label",
+ "id": "p4",
+ "parent": "4fvf",
+ "x": 68,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat4",
+ "text": 0
+ },
+ "deufD3": {
+ "id": "deufD3",
+ "parent": "p4",
+ "fixedParent": true,
+ "x": -38,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": "font-size: 28px",
+ "text": "remove",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "dec",
+ "value": 1
+ }
+ ]
+ },
+ "deufU3": {
+ "id": "deufU3",
+ "parent": "p4",
+ "fixedParent": true,
+ "x": 68,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": "font-size: 28px",
+ "text": "add",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "p5": {
+ "type": "label",
+ "id": "p5",
+ "parent": "jr7c",
+ "x": 68,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat5",
+ "text": 0
+ },
+ "deufD5": {
+ "id": "deufD5",
+ "parent": "p5",
+ "fixedParent": true,
+ "x": -38,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": "font-size: 28px",
+ "text": "remove",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "dec",
+ "value": 1
+ }
+ ]
+ },
+ "deufU5": {
+ "id": "deufU5",
+ "parent": "p5",
+ "fixedParent": true,
+ "x": 68,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": "font-size: 28px",
+ "text": "add",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "p6": {
+ "type": "label",
+ "id": "p6",
+ "parent": "jr8c",
+ "x": 68,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat6",
+ "text": 0
+ },
+ "deufD11": {
+ "id": "deufD11",
+ "parent": "p6",
+ "fixedParent": true,
+ "x": -38,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": "font-size: 28px",
+ "text": "remove",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "dec",
+ "value": 1
+ }
+ ]
+ },
+ "deufU11": {
+ "id": "deufU11",
+ "parent": "p6",
+ "fixedParent": true,
+ "x": 68,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": "font-size: 28px",
+ "text": "add",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "c6": {
+ "type": "label",
+ "id": "c6",
+ "parent": "jr8c",
+ "y": 105,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat6",
+ "text": 0,
+ "x": 65
+ },
+ "deufD10": {
+ "id": "deufD10",
+ "parent": "c6",
+ "fixedParent": true,
+ "x": -38,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": {
+ "default": {
+ "font-size": "28px",
+ "background-color": "gold",
+ "border-color": "black",
+ "color": "black"
+ },
+ ":hover": {
+ "background": "orange"
+ }
+ },
+ "text": "remove",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "dec",
+ "value": 1
+ }
+ ]
+ },
+ "deufU10": {
+ "id": "deufU10",
+ "parent": "c6",
+ "fixedParent": true,
+ "x": 68,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": {
+ "default": {
+ "font-size": "28px",
+ "background-color": "gold",
+ "border-color": "black",
+ "color": "black"
+ },
+ ":hover": {
+ "background": "orange"
+ }
+ },
+ "text": "add",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "c5": {
+ "type": "label",
+ "id": "c5",
+ "parent": "jr7c",
+ "x": 68,
+ "y": 105,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat5",
+ "text": 0
+ },
+ "deufD4": {
+ "id": "deufD4",
+ "parent": "c5",
+ "fixedParent": true,
+ "x": -38,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": {
+ "default": {
+ "font-size": "28px",
+ "background-color": "gold",
+ "border-color": "black",
+ "color": "black"
+ },
+ ":hover": {
+ "background": "orange"
+ }
+ },
+ "text": "remove",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "dec",
+ "value": 1
+ }
+ ]
+ },
+ "deufU4": {
+ "id": "deufU4",
+ "parent": "c5",
+ "fixedParent": true,
+ "x": 68,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": {
+ "default": {
+ "font-size": "28px",
+ "background-color": "gold",
+ "border-color": "black",
+ "color": "black"
+ },
+ ":hover": {
+ "background": "orange"
+ }
+ },
+ "text": "add",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "c4": {
+ "type": "label",
+ "id": "c4",
+ "parent": "4fvf",
+ "x": 68,
+ "y": 105,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat4",
+ "text": 0
+ },
+ "deufD2": {
+ "id": "deufD2",
+ "parent": "c4",
+ "fixedParent": true,
+ "x": -38,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": {
+ "default": {
+ "font-size": "28px",
+ "background-color": "gold",
+ "border-color": "black",
+ "color": "black"
+ },
+ ":hover": {
+ "background": "orange"
+ }
+ },
+ "text": "remove",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "dec",
+ "value": 1
+ }
+ ]
+ },
+ "deufU2": {
+ "id": "deufU2",
+ "parent": "c4",
+ "fixedParent": true,
+ "x": 68,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": {
+ "default": {
+ "font-size": "28px",
+ "background-color": "gold",
+ "border-color": "black",
+ "color": "black"
+ },
+ ":hover": {
+ "background": "orange"
+ }
+ },
+ "text": "add",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "c3": {
+ "type": "label",
+ "id": "c3",
+ "parent": "xvti",
+ "x": 68,
+ "y": 105,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat3",
+ "text": 0
+ },
+ "deufD1": {
+ "id": "deufD1",
+ "parent": "c3",
+ "fixedParent": true,
+ "x": -38,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": {
+ "default": {
+ "font-size": "28px",
+ "background-color": "gold",
+ "border-color": "black",
+ "color": "black"
+ },
+ ":hover": {
+ "background": "orange"
+ }
+ },
+ "text": "remove",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "dec",
+ "value": 1
+ }
+ ]
+ },
+ "deufU1": {
+ "id": "deufU1",
+ "parent": "c3",
+ "fixedParent": true,
+ "x": 68,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": {
+ "default": {
+ "font-size": "28px",
+ "background-color": "gold",
+ "border-color": "black",
+ "color": "black"
+ },
+ ":hover": {
+ "background": "orange"
+ }
+ },
+ "text": "add",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "c2": {
+ "type": "label",
+ "id": "c2",
+ "parent": "l5gk",
+ "x": 68,
+ "y": 105,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat2",
+ "text": 0
+ },
+ "deufD7": {
+ "id": "deufD7",
+ "parent": "c2",
+ "fixedParent": true,
+ "x": -38,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": {
+ "default": {
+ "font-size": "28px",
+ "background-color": "gold",
+ "border-color": "black",
+ "color": "black"
+ },
+ ":hover": {
+ "background": "orange"
+ }
+ },
+ "text": "remove",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "dec",
+ "value": 1
+ }
+ ]
+ },
+ "deufU7": {
+ "id": "deufU7",
+ "parent": "c2",
+ "fixedParent": true,
+ "x": 68,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": {
+ "default": {
+ "font-size": "28px",
+ "background-color": "gold",
+ "border-color": "black",
+ "color": "black"
+ },
+ ":hover": {
+ "background": "orange"
+ }
+ },
+ "text": "add",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "c1": {
+ "type": "label",
+ "id": "c1",
+ "parent": "xgws",
+ "x": 68,
+ "y": 105,
+ "width": 65,
+ "height": 40,
+ "css": "font-size: 30px;",
+ "editable": true,
+ "linkedToSeat": "seat1",
+ "text": 0
+ },
+ "deufD9": {
+ "id": "deufD9",
+ "parent": "c1",
+ "fixedParent": true,
+ "x": -38,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": {
+ "default": {
+ "font-size": "28px",
+ "background-color": "gold",
+ "border-color": "black",
+ "color": "black"
+ },
+ ":hover": {
+ "background": "orange"
+ }
+ },
+ "text": "remove",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "dec",
+ "value": 1
+ }
+ ]
+ },
+ "deufU9": {
+ "id": "deufU9",
+ "parent": "c1",
+ "fixedParent": true,
+ "x": 68,
+ "y": 1,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "classes": "symbols",
+ "css": {
+ "default": {
+ "font-size": "28px",
+ "background-color": "gold",
+ "border-color": "black",
+ "color": "black"
+ },
+ ":hover": {
+ "background": "orange"
+ }
+ },
+ "text": "add",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "${PROPERTY parent}",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "fs7e 4ref.jpg": {
+ "type": "card",
+ "id": "fs7e 4ref.jpg",
+ "deck": "ref",
+ "cardType": "4ref.jpg",
+ "activeFace": 1,
+ "z": 33703,
+ "parent": "6lt9"
+ },
+ "fs7e 3ref.jpg": {
+ "type": "card",
+ "id": "fs7e 3ref.jpg",
+ "deck": "ref",
+ "cardType": "3ref.jpg",
+ "activeFace": 1,
+ "z": 33705,
+ "parent": "6lt9"
+ },
+ "fs7e 5ref.jpg": {
+ "type": "card",
+ "id": "fs7e 5ref.jpg",
+ "deck": "ref",
+ "cardType": "5ref.jpg",
+ "activeFace": 1,
+ "z": 33706,
+ "parent": "6lt9"
+ },
+ "fs7e 6ref.jpg": {
+ "type": "card",
+ "id": "fs7e 6ref.jpg",
+ "deck": "ref",
+ "cardType": "6ref.jpg",
+ "activeFace": 1,
+ "z": 33707,
+ "parent": "6lt9"
+ },
+ "ref": {
+ "type": "deck",
+ "id": "ref",
+ "x": 4,
+ "y": 4,
+ "z": 20362,
+ "cardDefaults": {
+ "width": 200,
+ "height": 100,
+ "movable": false,
+ "enlarge": 2
+ },
+ "cardTypes": {
+ "4ref.jpg": {
+ "image": "/assets/2001965392_9340"
+ },
+ "3ref.jpg": {
+ "image": "/assets/1316810046_8400"
+ },
+ "5ref.jpg": {
+ "image": "/assets/1935281935_10136"
+ },
+ "6ref.jpg": {
+ "image": "/assets/-1182264925_10394"
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "type": "image",
+ "color": "transparent",
+ "dynamicProperties": {
+ "value": "image",
+ "height": "height",
+ "width": "width"
+ }
+ }
+ ]
+ }
+ ],
+ "parent": "refHolder",
+ "width": 81,
+ "height": 81
+ },
+ "refDisplayHolder": {
+ "type": "holder",
+ "id": "refDisplayHolder",
+ "x": 1214,
+ "y": 878,
+ "z": 2277,
+ "css": {
+ "background-color": "transparent",
+ "border-color": "transparent"
+ }
+ },
+ "refHolder": {
+ "type": "holder",
+ "id": "refHolder",
+ "x": 1710,
+ "y": 720,
+ "dropTarget": {
+ "type": "card"
+ }
+ },
+ "refHolderB": {
+ "type": "button",
+ "id": "refHolderB",
+ "parent": "refHolder",
+ "fixedParent": true,
+ "y": 171.36,
+ "width": 111,
+ "height": 40,
+ "movableInEdit": false,
+ "text": "Recall",
+ "clickRoutine": [
+ {
+ "func": "RECALL",
+ "holder": "${PROPERTY parent}"
+ },
+ {
+ "func": "FLIP",
+ "holder": "${PROPERTY parent}",
+ "face": 1
+ }
+ ]
+ },
+ "6lt9": {
+ "type": "pile",
+ "parent": "refHolder",
+ "x": 4,
+ "y": 4,
+ "width": 323,
+ "height": 160,
+ "id": "6lt9"
+ },
+ "3wby": {
+ "type": "label",
+ "text": "Advancements",
+ "x": 48,
+ "y": 147,
+ "z": 6,
+ "id": "3wby",
+ "width": 122,
+ "css": {
+ "color": "black"
+ }
+ },
+ "kusv": {
+ "type": "button",
+ "text": "Next round",
+ "clickRoutine": [
+ {
+ "func": "INPUT",
+ "header": "Start new round?",
+ "confirmButtonText": "Yes",
+ "cancelButtonText": "No",
+ "fields": [
+ {
+ "type": "subtitle",
+ "text": "Are you sure you want to start a new round?"
+ }
+ ]
+ },
+ {
+ "func": "MOVE",
+ "from": "holder1",
+ "to": "baseHolder",
+ "count": "all"
+ },
+ {
+ "func": "MOVE",
+ "from": "holder2",
+ "to": "baseHolder",
+ "count": "all"
+ },
+ {
+ "func": "SET",
+ "property": "hand",
+ "value": "hand"
+ },
+ {
+ "note": "move each seat into the DEFAULT collection",
+ "func": "SELECT",
+ "type": "seat",
+ "property": "player",
+ "relation": "!=",
+ "value": ""
+ },
+ {
+ "note": "count the number of seats",
+ "func": "COUNT"
+ },
+ {
+ "note": "for each widget (seat) in the default collection...",
+ "func": "FOREACH",
+ "collection": "DEFAULT",
+ "loopRoutine": [
+ {
+ "func": "MOVE",
+ "from": "${widgetID}",
+ "to": "baseHolder",
+ "count": "all"
+ }
+ ]
+ },
+ {
+ "func": "SHUFFLE",
+ "holder": "baseHolder"
+ },
+ {
+ "func": "SET",
+ "property": "hand",
+ "value": "hand"
+ },
+ {
+ "note": "for each widget (seat) in the default collection...",
+ "func": "FOREACH",
+ "collection": "DEFAULT",
+ "loopRoutine": [
+ {
+ "func": "MOVE",
+ "from": "baseHolder",
+ "to": "${widgetID}",
+ "count": 10
+ },
+ {
+ "func": "SORT",
+ "holder": "hand",
+ "key": "cardType"
+ }
+ ]
+ }
+ ],
+ "x": 1501,
+ "y": 907,
+ "z": 7,
+ "id": "kusv",
+ "css": {
+ "default": {
+ "background-color": "brown",
+ "border-color": "#595959",
+ "color": "black",
+ "font-size": "20px"
+ },
+ ":hover": {
+ "background-color": "#595959",
+ "border-color": "brown"
+ }
+ }
+ },
+ "background": {
+ "id": "background",
+ "width": 1600,
+ "height": 1000,
+ "layer": -4,
+ "z": 94,
+ "movable": false,
+ "movableInEdit": false,
+ "css": {
+ "background-image": "linear-gradient(15deg, lightgrey 0%, #96a7cf 75%)"
+ }
+ },
+ "turnB": {
+ "type": "button",
+ "id": "turnB",
+ "x": 1155,
+ "y": 333,
+ "z": 8,
+ "css": {
+ "default": {
+ "font-size": "20px",
+ "color": "black",
+ "background": "pink",
+ "border-color": "black",
+ "clip-path": "polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)"
+ },
+ ":hover": {
+ "background": "hotpink"
+ }
+ },
+ "text": "End turn",
+ "clickRoutine": [
+ {
+ "func": "TURN",
+ "turnCycle": "forward"
+ },
+ {
+ "func": "FOREACH",
+ "range": 5,
+ "loopRoutine": [
+ {
+ "func": "SELECT",
+ "property": "turn",
+ "value": true
+ },
+ {
+ "func": "GET",
+ "property": "player",
+ "collection": "DEFAULT"
+ },
+ {
+ "func": "SELECT",
+ "owner": "${player}",
+ "property": "parent",
+ "value": "hand",
+ "collection": "DEFAULT"
+ },
+ {
+ "func": "COUNT",
+ "collection": "DEFAULT",
+ "holder": "hand",
+ "owner": "${player}"
+ },
+ {
+ "func": "IF",
+ "operand1": "${COUNT}",
+ "relation": "==",
+ "operand2": 0,
+ "thenRoutine": [
+ {
+ "func": "TURN",
+ "turnCycle": "forward"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "borderRadius": 5
+ },
+ "5h1j": {
+ "deck": "6p",
+ "type": "card",
+ "cardType": "Picture03.png",
+ "id": "5h1j",
+ "z": 31119,
+ "parent": "37p0",
+ "x": null,
+ "y": null
+ },
+ "lv0w": {
+ "deck": "6p",
+ "type": "card",
+ "cardType": "Picture06.png",
+ "id": "lv0w",
+ "z": 31140,
+ "parent": "9n63",
+ "x": null,
+ "y": null
+ },
+ "xmd7 Picture01.png": {
+ "type": "card",
+ "id": "xmd7 Picture01.png",
+ "deck": "6p",
+ "cardType": "Picture01.png",
+ "z": 33668,
+ "parent": "8jss"
+ },
+ "xmd7 Picture02.png": {
+ "type": "card",
+ "id": "xmd7 Picture02.png",
+ "deck": "6p",
+ "cardType": "Picture02.png",
+ "z": 33669,
+ "parent": "8jss"
+ },
+ "xmd7 Picture03.png": {
+ "type": "card",
+ "id": "xmd7 Picture03.png",
+ "deck": "6p",
+ "cardType": "Picture03.png",
+ "z": 33672,
+ "parent": "8jss"
+ },
+ "xmd7 Picture05.png": {
+ "type": "card",
+ "id": "xmd7 Picture05.png",
+ "deck": "6p",
+ "cardType": "Picture05.png",
+ "z": 33671,
+ "parent": "8jss"
+ },
+ "xmd7 Picture04.png": {
+ "type": "card",
+ "id": "xmd7 Picture04.png",
+ "deck": "6p",
+ "cardType": "Picture04.png",
+ "z": 33665,
+ "parent": "8jss"
+ },
+ "xmd7 Picture06.png": {
+ "type": "card",
+ "id": "xmd7 Picture06.png",
+ "deck": "6p",
+ "cardType": "Picture06.png",
+ "z": 33667,
+ "parent": "8jss"
+ },
+ "xmd7 Picture07.png": {
+ "type": "card",
+ "id": "xmd7 Picture07.png",
+ "deck": "6p",
+ "cardType": "Picture07.png",
+ "z": 33670,
+ "parent": "8jss"
+ },
+ "xmd7 Picture08.png": {
+ "type": "card",
+ "id": "xmd7 Picture08.png",
+ "deck": "6p",
+ "cardType": "Picture08.png",
+ "z": 33666,
+ "parent": "8jss"
+ },
+ "xmd7 Picture09.png": {
+ "type": "card",
+ "id": "xmd7 Picture09.png",
+ "deck": "6p",
+ "cardType": "Picture09.png",
+ "z": 33664,
+ "parent": "8jss"
+ },
+ "xmd7 Picture10.png": {
+ "type": "card",
+ "id": "xmd7 Picture10.png",
+ "deck": "6p",
+ "cardType": "Picture10.png",
+ "z": 33663,
+ "parent": "8jss"
+ },
+ "6p": {
+ "type": "deck",
+ "id": "6p",
+ "parent": "holder6p",
+ "x": 4,
+ "y": 4,
+ "z": 31184,
+ "cardDefaults": {
+ "width": 114,
+ "height": 160,
+ "borderRadius": 21,
+ "enlarge": 3
+ },
+ "cardTypes": {
+ "Picture01.png": {
+ "image": "/assets/-1901006310_3378"
+ },
+ "Picture02.png": {
+ "image": "/assets/1127128173_3756"
+ },
+ "Picture03.png": {
+ "image": "/assets/-1262057051_3796"
+ },
+ "Picture05.png": {
+ "image": "/assets/126394475_3642"
+ },
+ "Picture04.png": {
+ "image": "/assets/396403453_3564"
+ },
+ "Picture06.png": {
+ "image": "/assets/-2099534226_3856"
+ },
+ "Picture07.png": {
+ "image": "/assets/943754758_3572"
+ },
+ "Picture08.png": {
+ "image": "/assets/-172271381_3902"
+ },
+ "Picture09.png": {
+ "image": "/assets/-1605499213_3880"
+ },
+ "Picture10.png": {
+ "image": "/assets/-197203168_3856"
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "type": "image",
+ "color": "transparent",
+ "value": "/i/cards-default/2B.svg",
+ "dynamicProperties": {
+ "height": "height",
+ "width": "width"
+ }
+ }
+ ]
+ },
+ {
+ "objects": [
+ {
+ "type": "image",
+ "color": "transparent",
+ "dynamicProperties": {
+ "value": "image",
+ "height": "height",
+ "width": "width"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "8jss": {
+ "type": "pile",
+ "parent": "holder6p",
+ "x": 4,
+ "y": 4,
+ "width": 114,
+ "height": 160,
+ "id": "8jss"
+ },
+ "rg2m Picture02.png": {
+ "type": "card",
+ "id": "rg2m Picture02.png",
+ "deck": "5p",
+ "cardType": "Picture02.png",
+ "z": 33650,
+ "parent": "qkqm"
+ },
+ "rg2m Picture03.png": {
+ "type": "card",
+ "id": "rg2m Picture03.png",
+ "deck": "5p",
+ "cardType": "Picture03.png",
+ "z": 33652,
+ "parent": "qkqm"
+ },
+ "rg2m Picture01.png": {
+ "type": "card",
+ "id": "rg2m Picture01.png",
+ "deck": "5p",
+ "cardType": "Picture01.png",
+ "z": 33645,
+ "parent": "qkqm"
+ },
+ "rg2m Picture04.png": {
+ "type": "card",
+ "id": "rg2m Picture04.png",
+ "deck": "5p",
+ "cardType": "Picture04.png",
+ "z": 33649,
+ "parent": "qkqm"
+ },
+ "rg2m Picture05.png": {
+ "type": "card",
+ "id": "rg2m Picture05.png",
+ "deck": "5p",
+ "cardType": "Picture05.png",
+ "z": 33644,
+ "parent": "qkqm"
+ },
+ "rg2m Picture06.png": {
+ "type": "card",
+ "id": "rg2m Picture06.png",
+ "deck": "5p",
+ "cardType": "Picture06.png",
+ "z": 33646,
+ "parent": "qkqm"
+ },
+ "rg2m Picture07.png": {
+ "type": "card",
+ "id": "rg2m Picture07.png",
+ "deck": "5p",
+ "cardType": "Picture07.png",
+ "z": 33643,
+ "parent": "qkqm"
+ },
+ "rg2m Picture08.png": {
+ "type": "card",
+ "id": "rg2m Picture08.png",
+ "deck": "5p",
+ "cardType": "Picture08.png",
+ "z": 33648,
+ "parent": "qkqm"
+ },
+ "rg2m Picture10.png": {
+ "type": "card",
+ "id": "rg2m Picture10.png",
+ "deck": "5p",
+ "cardType": "Picture10.png",
+ "z": 33647,
+ "parent": "qkqm"
+ },
+ "rg2m Picture09.png": {
+ "type": "card",
+ "id": "rg2m Picture09.png",
+ "deck": "5p",
+ "cardType": "Picture09.png",
+ "z": 33651,
+ "parent": "qkqm"
+ },
+ "5p": {
+ "type": "deck",
+ "id": "5p",
+ "parent": "holder5p",
+ "x": 4,
+ "y": 4,
+ "z": 31216,
+ "cardDefaults": {
+ "width": 114,
+ "height": 160,
+ "borderRadius": 21,
+ "enlarge": 3
+ },
+ "cardTypes": {
+ "Picture02.png": {
+ "image": "/assets/1127128173_3756"
+ },
+ "Picture03.png": {
+ "image": "/assets/-1262057051_3796"
+ },
+ "Picture01.png": {
+ "image": "/assets/-1901006310_3378"
+ },
+ "Picture04.png": {
+ "image": "/assets/396403453_3564"
+ },
+ "Picture05.png": {
+ "image": "/assets/126394475_3642"
+ },
+ "Picture06.png": {
+ "image": "/assets/-2099534226_3856"
+ },
+ "Picture07.png": {
+ "image": "/assets/943754758_3572"
+ },
+ "Picture08.png": {
+ "image": "/assets/-172271381_3902"
+ },
+ "Picture10.png": {
+ "image": "/assets/-197203168_3856"
+ },
+ "Picture09.png": {
+ "image": "/assets/-1605499213_3880"
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "type": "image",
+ "color": "transparent",
+ "value": "/i/cards-default/2B.svg",
+ "dynamicProperties": {
+ "height": "height",
+ "width": "width"
+ }
+ }
+ ]
+ },
+ {
+ "objects": [
+ {
+ "type": "image",
+ "color": "transparent",
+ "dynamicProperties": {
+ "value": "image",
+ "height": "height",
+ "width": "width"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "qkqm": {
+ "type": "pile",
+ "parent": "holder5p",
+ "x": 4,
+ "y": 4,
+ "width": 114,
+ "height": 160,
+ "id": "qkqm"
+ },
+ "b3kd Picture02.png": {
+ "type": "card",
+ "id": "b3kd Picture02.png",
+ "deck": "4p",
+ "cardType": "Picture02.png",
+ "z": 33395,
+ "parent": "a6n9"
+ },
+ "b3kd Picture03.png": {
+ "type": "card",
+ "id": "b3kd Picture03.png",
+ "deck": "4p",
+ "cardType": "Picture03.png",
+ "z": 33393,
+ "parent": "a6n9"
+ },
+ "b3kd Picture04.png": {
+ "type": "card",
+ "id": "b3kd Picture04.png",
+ "deck": "4p",
+ "cardType": "Picture04.png",
+ "z": 33391,
+ "parent": "a6n9"
+ },
+ "b3kd Picture01.png": {
+ "type": "card",
+ "id": "b3kd Picture01.png",
+ "deck": "4p",
+ "cardType": "Picture01.png",
+ "z": 33394,
+ "parent": "a6n9"
+ },
+ "b3kd Picture06.png": {
+ "type": "card",
+ "id": "b3kd Picture06.png",
+ "deck": "4p",
+ "cardType": "Picture06.png",
+ "z": 33392,
+ "parent": "a6n9"
+ },
+ "b3kd Picture05.png": {
+ "type": "card",
+ "id": "b3kd Picture05.png",
+ "deck": "4p",
+ "cardType": "Picture05.png",
+ "z": 33396,
+ "parent": "a6n9"
+ },
+ "b3kd Picture07.png": {
+ "type": "card",
+ "id": "b3kd Picture07.png",
+ "deck": "4p",
+ "cardType": "Picture07.png",
+ "z": 33397,
+ "parent": "a6n9"
+ },
+ "b3kd Picture08.png": {
+ "type": "card",
+ "id": "b3kd Picture08.png",
+ "deck": "4p",
+ "cardType": "Picture08.png",
+ "z": 33400,
+ "parent": "a6n9"
+ },
+ "b3kd Picture10.png": {
+ "type": "card",
+ "id": "b3kd Picture10.png",
+ "deck": "4p",
+ "cardType": "Picture10.png",
+ "z": 33398,
+ "parent": "a6n9"
+ },
+ "b3kd Picture09.png": {
+ "type": "card",
+ "id": "b3kd Picture09.png",
+ "deck": "4p",
+ "cardType": "Picture09.png",
+ "z": 33399,
+ "parent": "a6n9"
+ },
+ "4p": {
+ "type": "deck",
+ "id": "4p",
+ "parent": "holder4p",
+ "x": 4,
+ "y": 4,
+ "z": 31250,
+ "cardDefaults": {
+ "width": 114,
+ "height": 160,
+ "borderRadius": 21,
+ "enlarge": 3
+ },
+ "cardTypes": {
+ "Picture02.png": {
+ "image": "/assets/1127128173_3756"
+ },
+ "Picture03.png": {
+ "image": "/assets/-1262057051_3796"
+ },
+ "Picture04.png": {
+ "image": "/assets/396403453_3564"
+ },
+ "Picture01.png": {
+ "image": "/assets/-1901006310_3378"
+ },
+ "Picture06.png": {
+ "image": "/assets/-2099534226_3856"
+ },
+ "Picture05.png": {
+ "image": "/assets/126394475_3642"
+ },
+ "Picture07.png": {
+ "image": "/assets/943754758_3572"
+ },
+ "Picture08.png": {
+ "image": "/assets/-172271381_3902"
+ },
+ "Picture10.png": {
+ "image": "/assets/-197203168_3856"
+ },
+ "Picture09.png": {
+ "image": "/assets/-1605499213_3880"
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "type": "image",
+ "color": "transparent",
+ "value": "/i/cards-default/2B.svg",
+ "dynamicProperties": {
+ "height": "height",
+ "width": "width"
+ }
+ }
+ ]
+ },
+ {
+ "objects": [
+ {
+ "type": "image",
+ "color": "transparent",
+ "dynamicProperties": {
+ "value": "image",
+ "height": "height",
+ "width": "width"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "ymjf Picture02.png 1": {
+ "type": "card",
+ "id": "ymjf Picture02.png 1",
+ "deck": "base",
+ "cardType": "Picture02.png",
+ "z": 33609,
+ "parent": "a8v1"
+ },
+ "ymjf Picture02.png 2": {
+ "type": "card",
+ "id": "ymjf Picture02.png 2",
+ "deck": "base",
+ "cardType": "Picture02.png",
+ "z": 33611,
+ "parent": "a8v1"
+ },
+ "ymjf Picture02.png 3": {
+ "type": "card",
+ "id": "ymjf Picture02.png 3",
+ "deck": "base",
+ "cardType": "Picture02.png",
+ "z": 33605,
+ "parent": "a8v1"
+ },
+ "ymjf Picture01.png 1": {
+ "type": "card",
+ "id": "ymjf Picture01.png 1",
+ "deck": "base",
+ "cardType": "Picture01.png",
+ "z": 33618,
+ "parent": "a8v1"
+ },
+ "ymjf Picture01.png 2": {
+ "type": "card",
+ "id": "ymjf Picture01.png 2",
+ "deck": "base",
+ "cardType": "Picture01.png",
+ "z": 33619,
+ "parent": "a8v1"
+ },
+ "ymjf Picture01.png 3": {
+ "type": "card",
+ "id": "ymjf Picture01.png 3",
+ "deck": "base",
+ "cardType": "Picture01.png",
+ "z": 33625,
+ "parent": "a8v1"
+ },
+ "ymjf Picture03.png 1": {
+ "type": "card",
+ "id": "ymjf Picture03.png 1",
+ "deck": "base",
+ "cardType": "Picture03.png",
+ "z": 33606,
+ "parent": "a8v1"
+ },
+ "ymjf Picture03.png 2": {
+ "type": "card",
+ "id": "ymjf Picture03.png 2",
+ "deck": "base",
+ "cardType": "Picture03.png",
+ "z": 33610,
+ "parent": "a8v1"
+ },
+ "ymjf Picture03.png 3": {
+ "type": "card",
+ "id": "ymjf Picture03.png 3",
+ "deck": "base",
+ "cardType": "Picture03.png",
+ "z": 33630,
+ "parent": "a8v1"
+ },
+ "ymjf Picture04.png 1": {
+ "type": "card",
+ "id": "ymjf Picture04.png 1",
+ "deck": "base",
+ "cardType": "Picture04.png",
+ "z": 33627,
+ "parent": "a8v1"
+ },
+ "ymjf Picture04.png 2": {
+ "type": "card",
+ "id": "ymjf Picture04.png 2",
+ "deck": "base",
+ "cardType": "Picture04.png",
+ "z": 33615,
+ "parent": "a8v1"
+ },
+ "ymjf Picture04.png 3": {
+ "type": "card",
+ "id": "ymjf Picture04.png 3",
+ "deck": "base",
+ "cardType": "Picture04.png",
+ "z": 33607,
+ "parent": "a8v1"
+ },
+ "ymjf Picture06.png 1": {
+ "type": "card",
+ "id": "ymjf Picture06.png 1",
+ "deck": "base",
+ "cardType": "Picture06.png",
+ "z": 33621,
+ "parent": "a8v1"
+ },
+ "ymjf Picture06.png 2": {
+ "type": "card",
+ "id": "ymjf Picture06.png 2",
+ "deck": "base",
+ "cardType": "Picture06.png",
+ "z": 33613,
+ "parent": "a8v1"
+ },
+ "ymjf Picture06.png 3": {
+ "type": "card",
+ "id": "ymjf Picture06.png 3",
+ "deck": "base",
+ "cardType": "Picture06.png",
+ "z": 33620,
+ "parent": "a8v1"
+ },
+ "ymjf Picture05.png 1": {
+ "type": "card",
+ "id": "ymjf Picture05.png 1",
+ "deck": "base",
+ "cardType": "Picture05.png",
+ "z": 33632,
+ "parent": "a8v1"
+ },
+ "ymjf Picture05.png 2": {
+ "type": "card",
+ "id": "ymjf Picture05.png 2",
+ "deck": "base",
+ "cardType": "Picture05.png",
+ "z": 33608,
+ "parent": "a8v1"
+ },
+ "ymjf Picture05.png 3": {
+ "type": "card",
+ "id": "ymjf Picture05.png 3",
+ "deck": "base",
+ "cardType": "Picture05.png",
+ "z": 33617,
+ "parent": "a8v1"
+ },
+ "ymjf Picture07.png 1": {
+ "type": "card",
+ "id": "ymjf Picture07.png 1",
+ "deck": "base",
+ "cardType": "Picture07.png",
+ "z": 33623,
+ "parent": "a8v1"
+ },
+ "ymjf Picture07.png 2": {
+ "type": "card",
+ "id": "ymjf Picture07.png 2",
+ "deck": "base",
+ "cardType": "Picture07.png",
+ "z": 33629,
+ "parent": "a8v1"
+ },
+ "ymjf Picture07.png 3": {
+ "type": "card",
+ "id": "ymjf Picture07.png 3",
+ "deck": "base",
+ "cardType": "Picture07.png",
+ "z": 33614,
+ "parent": "a8v1"
+ },
+ "ymjf Picture09.png 1": {
+ "type": "card",
+ "id": "ymjf Picture09.png 1",
+ "deck": "base",
+ "cardType": "Picture09.png",
+ "z": 33616,
+ "parent": "a8v1"
+ },
+ "ymjf Picture09.png 2": {
+ "type": "card",
+ "id": "ymjf Picture09.png 2",
+ "deck": "base",
+ "cardType": "Picture09.png",
+ "z": 33626,
+ "parent": "a8v1"
+ },
+ "ymjf Picture09.png 3": {
+ "type": "card",
+ "id": "ymjf Picture09.png 3",
+ "deck": "base",
+ "cardType": "Picture09.png",
+ "z": 33603,
+ "parent": "a8v1"
+ },
+ "ymjf Picture08.png 1": {
+ "type": "card",
+ "id": "ymjf Picture08.png 1",
+ "deck": "base",
+ "cardType": "Picture08.png",
+ "z": 33624,
+ "parent": "a8v1"
+ },
+ "ymjf Picture08.png 2": {
+ "type": "card",
+ "id": "ymjf Picture08.png 2",
+ "deck": "base",
+ "cardType": "Picture08.png",
+ "z": 33628,
+ "parent": "a8v1"
+ },
+ "ymjf Picture08.png 3": {
+ "type": "card",
+ "id": "ymjf Picture08.png 3",
+ "deck": "base",
+ "cardType": "Picture08.png",
+ "z": 33622,
+ "parent": "a8v1"
+ },
+ "ymjf Picture10.png 1": {
+ "type": "card",
+ "id": "ymjf Picture10.png 1",
+ "deck": "base",
+ "cardType": "Picture10.png",
+ "z": 33631,
+ "parent": "a8v1"
+ },
+ "ymjf Picture10.png 2": {
+ "type": "card",
+ "id": "ymjf Picture10.png 2",
+ "deck": "base",
+ "cardType": "Picture10.png",
+ "z": 33612,
+ "parent": "a8v1"
+ },
+ "ymjf Picture10.png 3": {
+ "type": "card",
+ "id": "ymjf Picture10.png 3",
+ "deck": "base",
+ "cardType": "Picture10.png",
+ "z": 33604,
+ "parent": "a8v1"
+ },
+ "base": {
+ "type": "deck",
+ "id": "base",
+ "parent": "baseHolder",
+ "x": 4,
+ "y": 4,
+ "z": 31284,
+ "cardDefaults": {
+ "width": 114,
+ "height": 160,
+ "borderRadius": 21,
+ "enlarge": 3
+ },
+ "cardTypes": {
+ "Picture02.png": {
+ "image": "/assets/1127128173_3756"
+ },
+ "Picture01.png": {
+ "image": "/assets/-1901006310_3378"
+ },
+ "Picture03.png": {
+ "image": "/assets/-1262057051_3796"
+ },
+ "Picture04.png": {
+ "image": "/assets/396403453_3564"
+ },
+ "Picture06.png": {
+ "image": "/assets/-2099534226_3856"
+ },
+ "Picture05.png": {
+ "image": "/assets/126394475_3642"
+ },
+ "Picture07.png": {
+ "image": "/assets/943754758_3572"
+ },
+ "Picture09.png": {
+ "image": "/assets/-1605499213_3880"
+ },
+ "Picture08.png": {
+ "image": "/assets/-172271381_3902"
+ },
+ "Picture10.png": {
+ "image": "/assets/-197203168_3856"
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "type": "image",
+ "color": "transparent",
+ "value": "/i/cards-default/2B.svg",
+ "dynamicProperties": {
+ "height": "height",
+ "width": "width"
+ }
+ }
+ ]
+ },
+ {
+ "objects": [
+ {
+ "type": "image",
+ "color": "transparent",
+ "dynamicProperties": {
+ "value": "image",
+ "height": "height",
+ "width": "width"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "rkpu +3.png 1": {
+ "type": "card",
+ "id": "rkpu +3.png 1",
+ "deck": "overlay",
+ "cardType": "+3.png",
+ "z": 33489,
+ "parent": "1oqf"
+ },
+ "rkpu +3.png 2": {
+ "type": "card",
+ "id": "rkpu +3.png 2",
+ "deck": "overlay",
+ "cardType": "+3.png",
+ "z": 33481,
+ "parent": "1oqf"
+ },
+ "rkpu +2.png 1": {
+ "type": "card",
+ "id": "rkpu +2.png 1",
+ "deck": "overlay",
+ "cardType": "+2.png",
+ "z": 33510,
+ "parent": "1oqf"
+ },
+ "rkpu +2.png 2": {
+ "type": "card",
+ "id": "rkpu +2.png 2",
+ "deck": "overlay",
+ "cardType": "+2.png",
+ "z": 33498,
+ "parent": "1oqf"
+ },
+ "rkpu +7.png": {
+ "type": "card",
+ "id": "rkpu +7.png",
+ "deck": "overlay",
+ "cardType": "+7.png",
+ "z": 33483,
+ "parent": "1oqf"
+ },
+ "rkpu +1.png 1": {
+ "type": "card",
+ "id": "rkpu +1.png 1",
+ "deck": "overlay",
+ "cardType": "+1.png",
+ "z": 33547,
+ "parent": "1oqf"
+ },
+ "rkpu +1.png 2": {
+ "type": "card",
+ "id": "rkpu +1.png 2",
+ "deck": "overlay",
+ "cardType": "+1.png",
+ "z": 33533,
+ "parent": "1oqf"
+ },
+ "rkpu +4.png 1": {
+ "type": "card",
+ "id": "rkpu +4.png 1",
+ "deck": "overlay",
+ "cardType": "+4.png",
+ "z": 33522,
+ "parent": "1oqf"
+ },
+ "rkpu +4.png 2": {
+ "type": "card",
+ "id": "rkpu +4.png 2",
+ "deck": "overlay",
+ "cardType": "+4.png",
+ "z": 33515,
+ "parent": "1oqf"
+ },
+ "rkpu +6.png": {
+ "type": "card",
+ "id": "rkpu +6.png",
+ "deck": "overlay",
+ "cardType": "+6.png",
+ "z": 33536,
+ "parent": "1oqf"
+ },
+ "rkpu +9.png": {
+ "type": "card",
+ "id": "rkpu +9.png",
+ "deck": "overlay",
+ "cardType": "+9.png",
+ "z": 33523,
+ "parent": "1oqf"
+ },
+ "rkpu +8.png": {
+ "type": "card",
+ "id": "rkpu +8.png",
+ "deck": "overlay",
+ "cardType": "+8.png",
+ "z": 33548,
+ "parent": "1oqf"
+ },
+ "rkpu -1.png 2": {
+ "type": "card",
+ "id": "rkpu -1.png 2",
+ "deck": "overlay",
+ "cardType": "-1.png",
+ "z": 33487,
+ "parent": "1oqf"
+ },
+ "rkpu -1.png 3": {
+ "type": "card",
+ "id": "rkpu -1.png 3",
+ "deck": "overlay",
+ "cardType": "-1.png",
+ "z": 33499,
+ "parent": "1oqf"
+ },
+ "rkpu -3.png": {
+ "type": "card",
+ "id": "rkpu -3.png",
+ "deck": "overlay",
+ "cardType": "-3.png",
+ "z": 33543,
+ "parent": "1oqf"
+ },
+ "rkpu -4.png": {
+ "type": "card",
+ "id": "rkpu -4.png",
+ "deck": "overlay",
+ "cardType": "-4.png",
+ "z": 33514,
+ "parent": "1oqf"
+ },
+ "rkpu a+1.png 1": {
+ "type": "card",
+ "id": "rkpu a+1.png 1",
+ "deck": "overlay",
+ "cardType": "a+1.png",
+ "z": 33482,
+ "parent": "1oqf"
+ },
+ "rkpu a+1.png 2": {
+ "type": "card",
+ "id": "rkpu a+1.png 2",
+ "deck": "overlay",
+ "cardType": "a+1.png",
+ "z": 33491,
+ "parent": "1oqf"
+ },
+ "rkpu a+2.png 1": {
+ "type": "card",
+ "id": "rkpu a+2.png 1",
+ "deck": "overlay",
+ "cardType": "a+2.png",
+ "z": 33500,
+ "parent": "1oqf"
+ },
+ "rkpu a+2.png 2": {
+ "type": "card",
+ "id": "rkpu a+2.png 2",
+ "deck": "overlay",
+ "cardType": "a+2.png",
+ "z": 33525,
+ "parent": "1oqf"
+ },
+ "rkpu a+3.png 1": {
+ "type": "card",
+ "id": "rkpu a+3.png 1",
+ "deck": "overlay",
+ "cardType": "a+3.png",
+ "z": 33496,
+ "parent": "1oqf"
+ },
+ "rkpu a+3.png 2": {
+ "type": "card",
+ "id": "rkpu a+3.png 2",
+ "deck": "overlay",
+ "cardType": "a+3.png",
+ "z": 33542,
+ "parent": "1oqf"
+ },
+ "rkpu a+4.png 1": {
+ "type": "card",
+ "id": "rkpu a+4.png 1",
+ "deck": "overlay",
+ "cardType": "a+4.png",
+ "z": 33507,
+ "parent": "1oqf"
+ },
+ "rkpu a+4.png 2": {
+ "type": "card",
+ "id": "rkpu a+4.png 2",
+ "deck": "overlay",
+ "cardType": "a+4.png",
+ "z": 33505,
+ "parent": "1oqf"
+ },
+ "rkpu a+5.png 1": {
+ "type": "card",
+ "id": "rkpu a+5.png 1",
+ "deck": "overlay",
+ "cardType": "a+5.png",
+ "z": 33478,
+ "parent": "1oqf"
+ },
+ "rkpu a+5.png 2": {
+ "type": "card",
+ "id": "rkpu a+5.png 2",
+ "deck": "overlay",
+ "cardType": "a+5.png",
+ "z": 33524,
+ "parent": "1oqf"
+ },
+ "rkpu a+7.png": {
+ "type": "card",
+ "id": "rkpu a+7.png",
+ "deck": "overlay",
+ "cardType": "a+7.png",
+ "z": 33488,
+ "parent": "1oqf"
+ },
+ "rkpu a+8.png": {
+ "type": "card",
+ "id": "rkpu a+8.png",
+ "deck": "overlay",
+ "cardType": "a+8.png",
+ "z": 33497,
+ "parent": "1oqf"
+ },
+ "rkpu a-1.png 1": {
+ "type": "card",
+ "id": "rkpu a-1.png 1",
+ "deck": "overlay",
+ "cardType": "a-1.png",
+ "z": 33512,
+ "parent": "1oqf"
+ },
+ "rkpu a-1.png 2": {
+ "type": "card",
+ "id": "rkpu a-1.png 2",
+ "deck": "overlay",
+ "cardType": "a-1.png",
+ "z": 33495,
+ "parent": "1oqf"
+ },
+ "rkpu a-2.png 1": {
+ "type": "card",
+ "id": "rkpu a-2.png 1",
+ "deck": "overlay",
+ "cardType": "a-2.png",
+ "z": 33479,
+ "parent": "1oqf"
+ },
+ "rkpu a-2.png 2": {
+ "type": "card",
+ "id": "rkpu a-2.png 2",
+ "deck": "overlay",
+ "cardType": "a-2.png",
+ "z": 33501,
+ "parent": "1oqf"
+ },
+ "rkpu a-2.png 3": {
+ "type": "card",
+ "id": "rkpu a-2.png 3",
+ "deck": "overlay",
+ "cardType": "a-2.png",
+ "z": 33484,
+ "parent": "1oqf"
+ },
+ "rkpu power3.png 1": {
+ "type": "card",
+ "id": "rkpu power3.png 1",
+ "deck": "overlay",
+ "cardType": "power3.png",
+ "z": 33504,
+ "parent": "1oqf"
+ },
+ "rkpu power3.png 2": {
+ "type": "card",
+ "id": "rkpu power3.png 2",
+ "deck": "overlay",
+ "cardType": "power3.png",
+ "z": 33530,
+ "parent": "1oqf"
+ },
+ "rkpu power3.png 3": {
+ "type": "card",
+ "id": "rkpu power3.png 3",
+ "deck": "overlay",
+ "cardType": "power3.png",
+ "z": 33494,
+ "parent": "1oqf"
+ },
+ "rkpu power3.png 4": {
+ "type": "card",
+ "id": "rkpu power3.png 4",
+ "deck": "overlay",
+ "cardType": "power3.png",
+ "z": 33519,
+ "parent": "1oqf"
+ },
+ "rkpu power4.png 1": {
+ "type": "card",
+ "id": "rkpu power4.png 1",
+ "deck": "overlay",
+ "cardType": "power4.png",
+ "z": 33527,
+ "parent": "1oqf"
+ },
+ "rkpu power4.png 2": {
+ "type": "card",
+ "id": "rkpu power4.png 2",
+ "deck": "overlay",
+ "cardType": "power4.png",
+ "z": 33521,
+ "parent": "1oqf"
+ },
+ "rkpu power4.png 3": {
+ "type": "card",
+ "id": "rkpu power4.png 3",
+ "deck": "overlay",
+ "cardType": "power4.png",
+ "z": 33534,
+ "parent": "1oqf"
+ },
+ "rkpu power4.png 4": {
+ "type": "card",
+ "id": "rkpu power4.png 4",
+ "deck": "overlay",
+ "cardType": "power4.png",
+ "z": 33529,
+ "parent": "1oqf"
+ },
+ "rkpu power4.png 5": {
+ "type": "card",
+ "id": "rkpu power4.png 5",
+ "deck": "overlay",
+ "cardType": "power4.png",
+ "z": 33532,
+ "parent": "1oqf"
+ },
+ "rkpu power5.png 1": {
+ "type": "card",
+ "id": "rkpu power5.png 1",
+ "deck": "overlay",
+ "cardType": "power5.png",
+ "z": 33508,
+ "parent": "1oqf"
+ },
+ "rkpu power5.png 2": {
+ "type": "card",
+ "id": "rkpu power5.png 2",
+ "deck": "overlay",
+ "cardType": "power5.png",
+ "z": 33517,
+ "parent": "1oqf"
+ },
+ "rkpu power5.png 3": {
+ "type": "card",
+ "id": "rkpu power5.png 3",
+ "deck": "overlay",
+ "cardType": "power5.png",
+ "z": 33544,
+ "parent": "1oqf"
+ },
+ "rkpu power5.png 4": {
+ "type": "card",
+ "id": "rkpu power5.png 4",
+ "deck": "overlay",
+ "cardType": "power5.png",
+ "z": 33545,
+ "parent": "1oqf"
+ },
+ "rkpu power5.png 5": {
+ "type": "card",
+ "id": "rkpu power5.png 5",
+ "deck": "overlay",
+ "cardType": "power5.png",
+ "z": 33531,
+ "parent": "1oqf"
+ },
+ "rkpu power5.png 6": {
+ "type": "card",
+ "id": "rkpu power5.png 6",
+ "deck": "overlay",
+ "cardType": "power5.png",
+ "z": 33503,
+ "parent": "1oqf"
+ },
+ "rkpu power5.png 7": {
+ "type": "card",
+ "id": "rkpu power5.png 7",
+ "deck": "overlay",
+ "cardType": "power5.png",
+ "z": 33540,
+ "parent": "1oqf"
+ },
+ "rkpu power5.png 8": {
+ "type": "card",
+ "id": "rkpu power5.png 8",
+ "deck": "overlay",
+ "cardType": "power5.png",
+ "z": 33520,
+ "parent": "1oqf"
+ },
+ "rkpu power6.png 1": {
+ "type": "card",
+ "id": "rkpu power6.png 1",
+ "deck": "overlay",
+ "cardType": "power6.png",
+ "z": 33493,
+ "parent": "1oqf"
+ },
+ "rkpu power6.png 2": {
+ "type": "card",
+ "id": "rkpu power6.png 2",
+ "deck": "overlay",
+ "cardType": "power6.png",
+ "z": 33518,
+ "parent": "1oqf"
+ },
+ "rkpu power6.png 3": {
+ "type": "card",
+ "id": "rkpu power6.png 3",
+ "deck": "overlay",
+ "cardType": "power6.png",
+ "z": 33546,
+ "parent": "1oqf"
+ },
+ "rkpu power6.png 4": {
+ "type": "card",
+ "id": "rkpu power6.png 4",
+ "deck": "overlay",
+ "cardType": "power6.png",
+ "z": 33490,
+ "parent": "1oqf"
+ },
+ "rkpu power6.png 5": {
+ "type": "card",
+ "id": "rkpu power6.png 5",
+ "deck": "overlay",
+ "cardType": "power6.png",
+ "z": 33511,
+ "parent": "1oqf"
+ },
+ "rkpu power6.png 6": {
+ "type": "card",
+ "id": "rkpu power6.png 6",
+ "deck": "overlay",
+ "cardType": "power6.png",
+ "z": 33539,
+ "parent": "1oqf"
+ },
+ "rkpu power6.png 7": {
+ "type": "card",
+ "id": "rkpu power6.png 7",
+ "deck": "overlay",
+ "cardType": "power6.png",
+ "z": 33535,
+ "parent": "1oqf"
+ },
+ "rkpu power6.png 8": {
+ "type": "card",
+ "id": "rkpu power6.png 8",
+ "deck": "overlay",
+ "cardType": "power6.png",
+ "z": 33513,
+ "parent": "1oqf"
+ },
+ "rkpu r5.png": {
+ "type": "card",
+ "id": "rkpu r5.png",
+ "deck": "overlay",
+ "cardType": "r5.png",
+ "z": 33509,
+ "parent": "1oqf"
+ },
+ "rkpu r6.png": {
+ "type": "card",
+ "id": "rkpu r6.png",
+ "deck": "overlay",
+ "cardType": "r6.png",
+ "z": 33485,
+ "parent": "1oqf"
+ },
+ "rkpu r7.png": {
+ "type": "card",
+ "id": "rkpu r7.png",
+ "deck": "overlay",
+ "cardType": "r7.png",
+ "z": 33477,
+ "parent": "1oqf"
+ },
+ "rkpu r8.png 1": {
+ "type": "card",
+ "id": "rkpu r8.png 1",
+ "deck": "overlay",
+ "cardType": "r8.png",
+ "z": 33492,
+ "parent": "1oqf"
+ },
+ "rkpu r8.png 2": {
+ "type": "card",
+ "id": "rkpu r8.png 2",
+ "deck": "overlay",
+ "cardType": "r8.png",
+ "z": 33541,
+ "parent": "1oqf"
+ },
+ "rkpu r9.png 1": {
+ "type": "card",
+ "id": "rkpu r9.png 1",
+ "deck": "overlay",
+ "cardType": "r9.png",
+ "z": 33538,
+ "parent": "1oqf"
+ },
+ "rkpu r9.png 2": {
+ "type": "card",
+ "id": "rkpu r9.png 2",
+ "deck": "overlay",
+ "cardType": "r9.png",
+ "z": 33537,
+ "parent": "1oqf"
+ },
+ "rkpu r10.png 1": {
+ "type": "card",
+ "id": "rkpu r10.png 1",
+ "deck": "overlay",
+ "cardType": "r10.png",
+ "z": 33480,
+ "parent": "1oqf"
+ },
+ "rkpu r10.png 2": {
+ "type": "card",
+ "id": "rkpu r10.png 2",
+ "deck": "overlay",
+ "cardType": "r10.png",
+ "z": 33486,
+ "parent": "1oqf"
+ },
+ "rkpu r11.png 1": {
+ "type": "card",
+ "id": "rkpu r11.png 1",
+ "deck": "overlay",
+ "cardType": "r11.png",
+ "z": 33526,
+ "parent": "1oqf"
+ },
+ "rkpu r11.png 2": {
+ "type": "card",
+ "id": "rkpu r11.png 2",
+ "deck": "overlay",
+ "cardType": "r11.png",
+ "z": 33549,
+ "parent": "1oqf"
+ },
+ "rkpu r12.png 1": {
+ "type": "card",
+ "id": "rkpu r12.png 1",
+ "deck": "overlay",
+ "cardType": "r12.png",
+ "z": 33506,
+ "parent": "1oqf"
+ },
+ "rkpu r12.png 2": {
+ "type": "card",
+ "id": "rkpu r12.png 2",
+ "deck": "overlay",
+ "cardType": "r12.png",
+ "z": 33528,
+ "parent": "1oqf"
+ },
+ "rkpu r13.png": {
+ "type": "card",
+ "id": "rkpu r13.png",
+ "deck": "overlay",
+ "cardType": "r13.png",
+ "z": 33502,
+ "parent": "1oqf"
+ },
+ "rkpu r14.png": {
+ "type": "card",
+ "id": "rkpu r14.png",
+ "deck": "overlay",
+ "cardType": "r14.png",
+ "z": 33516,
+ "parent": "1oqf"
+ },
+ "overlay": {
+ "type": "deck",
+ "id": "overlay",
+ "x": 4,
+ "y": 4,
+ "z": 32169,
+ "cardDefaults": {
+ "width": 114,
+ "height": 160,
+ "borderRadius": 21,
+ "enlarge": 3
+ },
+ "cardTypes": {
+ "+3.png": {
+ "image": "/assets/-1755525626_3654"
+ },
+ "+2.png": {
+ "image": "/assets/-265594535_3616"
+ },
+ "+7.png": {
+ "image": "/assets/-527686661_3486"
+ },
+ "+1.png": {
+ "image": "/assets/-777391847_3374"
+ },
+ "+4.png": {
+ "image": "/assets/1743029808_3482"
+ },
+ "+6.png": {
+ "image": "/assets/-771936621_3696"
+ },
+ "+9.png": {
+ "image": "/assets/-1440910883_3694"
+ },
+ "+8.png": {
+ "image": "/assets/-81993917_3726"
+ },
+ "-1.png": {
+ "image": "/assets/155520333_3362"
+ },
+ "-3.png": {
+ "image": "/assets/353379491_3644"
+ },
+ "-4.png": {
+ "image": "/assets/2093712591_3474"
+ },
+ "a+1.png": {
+ "image": "/assets/-840476346_3384"
+ },
+ "a+2.png": {
+ "image": "/assets/1601829989_3612"
+ },
+ "a+3.png": {
+ "image": "/assets/-1052381827_3640"
+ },
+ "a+4.png": {
+ "image": "/assets/1172412350_3496"
+ },
+ "a+5.png": {
+ "image": "/assets/-764332961_3544"
+ },
+ "a+7.png": {
+ "image": "/assets/-689761578_3484"
+ },
+ "a+8.png": {
+ "image": "/assets/-1256036319_3708"
+ },
+ "a-1.png": {
+ "image": "/assets/-530775508_3376"
+ },
+ "a-2.png": {
+ "image": "/assets/-434840459_3604"
+ },
+ "power3.png": {
+ "image": "/assets/409752096_13517"
+ },
+ "power4.png": {
+ "image": "/assets/-1926915507_15015"
+ },
+ "power5.png": {
+ "image": "/assets/-107050133_10522"
+ },
+ "power6.png": {
+ "image": "/assets/936210691_15078"
+ },
+ "r5.png": {
+ "image": "/assets/1413990882_3954"
+ },
+ "r6.png": {
+ "image": "/assets/772967497_4158"
+ },
+ "r7.png": {
+ "image": "/assets/-2068678353_3868"
+ },
+ "r8.png": {
+ "image": "/assets/-782783609_4216"
+ },
+ "r9.png": {
+ "image": "/assets/654295661_4166"
+ },
+ "r10.png": {
+ "image": "/assets/-340460091_4150"
+ },
+ "r11.png": {
+ "image": "/assets/-710166324_3792"
+ },
+ "r12.png": {
+ "image": "/assets/-338533193_4174"
+ },
+ "r13.png": {
+ "image": "/assets/-2085522384_4206"
+ },
+ "r14.png": {
+ "image": "/assets/-889247058_3962"
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "type": "image",
+ "color": "transparent",
+ "value": "/i/cards-plastic/2B.svg",
+ "dynamicProperties": {
+ "height": "height",
+ "width": "width"
+ }
+ }
+ ]
+ },
+ {
+ "objects": [
+ {
+ "type": "image",
+ "color": "transparent",
+ "dynamicProperties": {
+ "value": "image",
+ "height": "height",
+ "width": "width"
+ }
+ }
+ ]
+ }
+ ],
+ "parent": "overlayHolder"
+ },
+ "1oqf": {
+ "type": "pile",
+ "parent": "overlayHolder",
+ "x": 4,
+ "y": 4,
+ "width": 114,
+ "height": 160,
+ "id": "1oqf"
+ },
+ "r0ox power2.png 1": {
+ "type": "card",
+ "id": "r0ox power2.png 1",
+ "deck": "pink",
+ "cardType": "power2.png",
+ "z": 33701,
+ "parent": "dlf0"
+ },
+ "r0ox power2.png 2": {
+ "type": "card",
+ "id": "r0ox power2.png 2",
+ "deck": "pink",
+ "cardType": "power2.png",
+ "z": 33700,
+ "parent": "dlf0"
+ },
+ "r0ox power2.png 3": {
+ "type": "card",
+ "id": "r0ox power2.png 3",
+ "deck": "pink",
+ "cardType": "power2.png",
+ "z": 33698,
+ "parent": "dlf0"
+ },
+ "r0ox power2.png 4": {
+ "type": "card",
+ "id": "r0ox power2.png 4",
+ "deck": "pink",
+ "cardType": "power2.png",
+ "z": 33702,
+ "parent": "dlf0"
+ },
+ "r0ox power2.png 5": {
+ "type": "card",
+ "id": "r0ox power2.png 5",
+ "deck": "pink",
+ "cardType": "power2.png",
+ "z": 33697,
+ "parent": "dlf0"
+ },
+ "r0ox power2.png 6": {
+ "type": "card",
+ "id": "r0ox power2.png 6",
+ "deck": "pink",
+ "cardType": "power2.png",
+ "z": 33699,
+ "parent": "dlf0"
+ },
+ "pink": {
+ "type": "deck",
+ "id": "pink",
+ "parent": "pinkHolder",
+ "x": 4,
+ "y": 4,
+ "z": 32393,
+ "cardDefaults": {
+ "width": 114,
+ "height": 160,
+ "borderRadius": 21,
+ "enlarge": 3
+ },
+ "cardTypes": {
+ "power2.png": {
+ "image": "/assets/1787638140_12487"
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "type": "image",
+ "color": "transparent",
+ "value": "/i/cards-default/3B.svg",
+ "dynamicProperties": {
+ "height": "height",
+ "width": "width"
+ }
+ }
+ ]
+ },
+ {
+ "objects": [
+ {
+ "type": "image",
+ "color": "transparent",
+ "dynamicProperties": {
+ "value": "image",
+ "height": "height",
+ "width": "width"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "njv7 power1.png 1": {
+ "type": "card",
+ "id": "njv7 power1.png 1",
+ "deck": "green",
+ "cardType": "power1.png",
+ "z": 33683,
+ "parent": "u4o0"
+ },
+ "njv7 power1.png 2": {
+ "type": "card",
+ "id": "njv7 power1.png 2",
+ "deck": "green",
+ "cardType": "power1.png",
+ "z": 33686,
+ "parent": "u4o0"
+ },
+ "njv7 power1.png 3": {
+ "type": "card",
+ "id": "njv7 power1.png 3",
+ "deck": "green",
+ "cardType": "power1.png",
+ "z": 33687,
+ "parent": "u4o0"
+ },
+ "njv7 power1.png 4": {
+ "type": "card",
+ "id": "njv7 power1.png 4",
+ "deck": "green",
+ "cardType": "power1.png",
+ "z": 33684,
+ "parent": "u4o0"
+ },
+ "njv7 power1.png 5": {
+ "type": "card",
+ "id": "njv7 power1.png 5",
+ "deck": "green",
+ "cardType": "power1.png",
+ "z": 33685,
+ "parent": "u4o0"
+ },
+ "njv7 power1.png 6": {
+ "type": "card",
+ "id": "njv7 power1.png 6",
+ "deck": "green",
+ "cardType": "power1.png",
+ "z": 33682,
+ "parent": "u4o0"
+ },
+ "green": {
+ "type": "deck",
+ "id": "green",
+ "parent": "greenHolder",
+ "x": 4,
+ "y": 4,
+ "z": 32398,
+ "cardDefaults": {
+ "width": 114,
+ "height": 160,
+ "borderRadius": 21,
+ "enlarge": 3
+ },
+ "cardTypes": {
+ "power1.png": {
+ "image": "/assets/-82755797_16281"
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "type": "image",
+ "color": "transparent",
+ "value": "/i/cards-plastic/1B.svg",
+ "dynamicProperties": {
+ "height": "height",
+ "width": "width"
+ }
+ }
+ ]
+ },
+ {
+ "objects": [
+ {
+ "type": "image",
+ "color": "transparent",
+ "dynamicProperties": {
+ "value": "image",
+ "height": "height",
+ "width": "width"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "u4o0": {
+ "type": "pile",
+ "parent": "greenHolder",
+ "x": 4,
+ "y": 4,
+ "width": 114,
+ "height": 160,
+ "id": "u4o0"
+ },
+ "a6n9": {
+ "type": "pile",
+ "parent": "holder4p",
+ "x": 4,
+ "y": 4,
+ "width": 114,
+ "height": 160,
+ "id": "a6n9"
+ },
+ "dlf0": {
+ "type": "pile",
+ "parent": "pinkHolder",
+ "x": 4,
+ "y": 4,
+ "width": 114,
+ "height": 160,
+ "id": "dlf0"
+ },
+ "clone": {
+ "type": "deck",
+ "id": "clone",
+ "x": 1206,
+ "y": 20,
+ "z": 19568,
+ "cardDefaults": {
+ "width": 114,
+ "height": 160,
+ "borderRadius": 21,
+ "enlarge": 3
+ },
+ "cardTypes": {
+ "dummy": {}
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "width": 114,
+ "height": 160,
+ "color": "transparent",
+ "dynamicProperties": {
+ "value": "image0"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "width": 114,
+ "height": 160,
+ "color": "transparent",
+ "dynamicProperties": {
+ "value": "image1"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "width": 114,
+ "height": 160,
+ "color": "transparent",
+ "dynamicProperties": {
+ "value": "image2"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "width": 114,
+ "height": 160,
+ "color": "transparent",
+ "dynamicProperties": {
+ "value": "image3"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "width": 114,
+ "height": 160,
+ "color": "transparent",
+ "dynamicProperties": {
+ "value": "image4"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "nrtb": {
+ "type": "label",
+ "text": "Combiner",
+ "x": 1040,
+ "y": 782,
+ "z": 7,
+ "id": "nrtb",
+ "width": 122
+ },
+ "a8v1": {
+ "type": "pile",
+ "parent": "baseHolder",
+ "x": 4,
+ "y": 4,
+ "width": 114,
+ "height": 160,
+ "id": "a8v1"
+ }
+}
\ No newline at end of file
diff --git a/library/games/Card Constructor/assets/-1052381827_3640 b/library/games/Card Constructor/assets/-1052381827_3640
new file mode 100644
index 0000000000..2be3706e32
Binary files /dev/null and b/library/games/Card Constructor/assets/-1052381827_3640 differ
diff --git a/library/games/Card Constructor/assets/-107050133_10522 b/library/games/Card Constructor/assets/-107050133_10522
new file mode 100644
index 0000000000..7216056317
Binary files /dev/null and b/library/games/Card Constructor/assets/-107050133_10522 differ
diff --git a/library/games/Card Constructor/assets/-1182264925_10394 b/library/games/Card Constructor/assets/-1182264925_10394
new file mode 100644
index 0000000000..747063df75
Binary files /dev/null and b/library/games/Card Constructor/assets/-1182264925_10394 differ
diff --git a/library/games/Card Constructor/assets/-1256036319_3708 b/library/games/Card Constructor/assets/-1256036319_3708
new file mode 100644
index 0000000000..7b1d907623
Binary files /dev/null and b/library/games/Card Constructor/assets/-1256036319_3708 differ
diff --git a/library/games/Card Constructor/assets/-1262057051_3796 b/library/games/Card Constructor/assets/-1262057051_3796
new file mode 100644
index 0000000000..b897199b3b
Binary files /dev/null and b/library/games/Card Constructor/assets/-1262057051_3796 differ
diff --git a/library/games/Card Constructor/assets/-1440910883_3694 b/library/games/Card Constructor/assets/-1440910883_3694
new file mode 100644
index 0000000000..2f9253dadb
Binary files /dev/null and b/library/games/Card Constructor/assets/-1440910883_3694 differ
diff --git a/library/games/Card Constructor/assets/-1605499213_3880 b/library/games/Card Constructor/assets/-1605499213_3880
new file mode 100644
index 0000000000..47575c00f4
Binary files /dev/null and b/library/games/Card Constructor/assets/-1605499213_3880 differ
diff --git a/library/games/Card Constructor/assets/-172271381_3902 b/library/games/Card Constructor/assets/-172271381_3902
new file mode 100644
index 0000000000..b28a918c95
Binary files /dev/null and b/library/games/Card Constructor/assets/-172271381_3902 differ
diff --git a/library/games/Card Constructor/assets/-1755525626_3654 b/library/games/Card Constructor/assets/-1755525626_3654
new file mode 100644
index 0000000000..56e22cbef7
Binary files /dev/null and b/library/games/Card Constructor/assets/-1755525626_3654 differ
diff --git a/library/games/Card Constructor/assets/-1901006310_3378 b/library/games/Card Constructor/assets/-1901006310_3378
new file mode 100644
index 0000000000..bb41b3b40d
Binary files /dev/null and b/library/games/Card Constructor/assets/-1901006310_3378 differ
diff --git a/library/games/Card Constructor/assets/-1926915507_15015 b/library/games/Card Constructor/assets/-1926915507_15015
new file mode 100644
index 0000000000..2520051d45
Binary files /dev/null and b/library/games/Card Constructor/assets/-1926915507_15015 differ
diff --git a/library/games/Card Constructor/assets/-197203168_3856 b/library/games/Card Constructor/assets/-197203168_3856
new file mode 100644
index 0000000000..6a0fdb1c4a
Binary files /dev/null and b/library/games/Card Constructor/assets/-197203168_3856 differ
diff --git a/library/games/Card Constructor/assets/-2068678353_3868 b/library/games/Card Constructor/assets/-2068678353_3868
new file mode 100644
index 0000000000..dc4d300315
Binary files /dev/null and b/library/games/Card Constructor/assets/-2068678353_3868 differ
diff --git a/library/games/Card Constructor/assets/-2085522384_4206 b/library/games/Card Constructor/assets/-2085522384_4206
new file mode 100644
index 0000000000..673e856551
Binary files /dev/null and b/library/games/Card Constructor/assets/-2085522384_4206 differ
diff --git a/library/games/Card Constructor/assets/-2099534226_3856 b/library/games/Card Constructor/assets/-2099534226_3856
new file mode 100644
index 0000000000..5b45d58952
Binary files /dev/null and b/library/games/Card Constructor/assets/-2099534226_3856 differ
diff --git a/library/games/Card Constructor/assets/-265594535_3616 b/library/games/Card Constructor/assets/-265594535_3616
new file mode 100644
index 0000000000..d43482fc78
Binary files /dev/null and b/library/games/Card Constructor/assets/-265594535_3616 differ
diff --git a/library/games/Card Constructor/assets/-338533193_4174 b/library/games/Card Constructor/assets/-338533193_4174
new file mode 100644
index 0000000000..3b142d5b58
Binary files /dev/null and b/library/games/Card Constructor/assets/-338533193_4174 differ
diff --git a/library/games/Card Constructor/assets/-340460091_4150 b/library/games/Card Constructor/assets/-340460091_4150
new file mode 100644
index 0000000000..7cbc632290
Binary files /dev/null and b/library/games/Card Constructor/assets/-340460091_4150 differ
diff --git a/library/games/Card Constructor/assets/-434840459_3604 b/library/games/Card Constructor/assets/-434840459_3604
new file mode 100644
index 0000000000..a352aa91a0
Binary files /dev/null and b/library/games/Card Constructor/assets/-434840459_3604 differ
diff --git a/library/games/Card Constructor/assets/-527686661_3486 b/library/games/Card Constructor/assets/-527686661_3486
new file mode 100644
index 0000000000..29aed0debf
Binary files /dev/null and b/library/games/Card Constructor/assets/-527686661_3486 differ
diff --git a/library/games/Card Constructor/assets/-530775508_3376 b/library/games/Card Constructor/assets/-530775508_3376
new file mode 100644
index 0000000000..adc9f8b294
Binary files /dev/null and b/library/games/Card Constructor/assets/-530775508_3376 differ
diff --git a/library/games/Card Constructor/assets/-689761578_3484 b/library/games/Card Constructor/assets/-689761578_3484
new file mode 100644
index 0000000000..c1c933986d
Binary files /dev/null and b/library/games/Card Constructor/assets/-689761578_3484 differ
diff --git a/library/games/Card Constructor/assets/-710166324_3792 b/library/games/Card Constructor/assets/-710166324_3792
new file mode 100644
index 0000000000..604ee5f1f8
Binary files /dev/null and b/library/games/Card Constructor/assets/-710166324_3792 differ
diff --git a/library/games/Card Constructor/assets/-764332961_3544 b/library/games/Card Constructor/assets/-764332961_3544
new file mode 100644
index 0000000000..b9694352df
Binary files /dev/null and b/library/games/Card Constructor/assets/-764332961_3544 differ
diff --git a/library/games/Card Constructor/assets/-771936621_3696 b/library/games/Card Constructor/assets/-771936621_3696
new file mode 100644
index 0000000000..6283cee861
Binary files /dev/null and b/library/games/Card Constructor/assets/-771936621_3696 differ
diff --git a/library/games/Card Constructor/assets/-777391847_3374 b/library/games/Card Constructor/assets/-777391847_3374
new file mode 100644
index 0000000000..61e10af872
Binary files /dev/null and b/library/games/Card Constructor/assets/-777391847_3374 differ
diff --git a/library/games/Card Constructor/assets/-782783609_4216 b/library/games/Card Constructor/assets/-782783609_4216
new file mode 100644
index 0000000000..92115f86d7
Binary files /dev/null and b/library/games/Card Constructor/assets/-782783609_4216 differ
diff --git a/library/games/Card Constructor/assets/-81993917_3726 b/library/games/Card Constructor/assets/-81993917_3726
new file mode 100644
index 0000000000..213330c577
Binary files /dev/null and b/library/games/Card Constructor/assets/-81993917_3726 differ
diff --git a/library/games/Card Constructor/assets/-82755797_16281 b/library/games/Card Constructor/assets/-82755797_16281
new file mode 100644
index 0000000000..19d5b95b4c
Binary files /dev/null and b/library/games/Card Constructor/assets/-82755797_16281 differ
diff --git a/library/games/Card Constructor/assets/-840476346_3384 b/library/games/Card Constructor/assets/-840476346_3384
new file mode 100644
index 0000000000..67f028f8fe
Binary files /dev/null and b/library/games/Card Constructor/assets/-840476346_3384 differ
diff --git a/library/games/Card Constructor/assets/-889247058_3962 b/library/games/Card Constructor/assets/-889247058_3962
new file mode 100644
index 0000000000..64ea2f8740
Binary files /dev/null and b/library/games/Card Constructor/assets/-889247058_3962 differ
diff --git a/library/games/Card Constructor/assets/1127128173_3756 b/library/games/Card Constructor/assets/1127128173_3756
new file mode 100644
index 0000000000..6b6b8cde94
Binary files /dev/null and b/library/games/Card Constructor/assets/1127128173_3756 differ
diff --git a/library/games/Card Constructor/assets/1172412350_3496 b/library/games/Card Constructor/assets/1172412350_3496
new file mode 100644
index 0000000000..08ea44fb21
Binary files /dev/null and b/library/games/Card Constructor/assets/1172412350_3496 differ
diff --git a/library/games/Card Constructor/assets/126394475_3642 b/library/games/Card Constructor/assets/126394475_3642
new file mode 100644
index 0000000000..1f5fca677b
Binary files /dev/null and b/library/games/Card Constructor/assets/126394475_3642 differ
diff --git a/library/games/Card Constructor/assets/1316810046_8400 b/library/games/Card Constructor/assets/1316810046_8400
new file mode 100644
index 0000000000..41da70c83b
Binary files /dev/null and b/library/games/Card Constructor/assets/1316810046_8400 differ
diff --git a/library/games/Card Constructor/assets/1413990882_3954 b/library/games/Card Constructor/assets/1413990882_3954
new file mode 100644
index 0000000000..5b279149b1
Binary files /dev/null and b/library/games/Card Constructor/assets/1413990882_3954 differ
diff --git a/library/games/Card Constructor/assets/155520333_3362 b/library/games/Card Constructor/assets/155520333_3362
new file mode 100644
index 0000000000..81e3169cc3
Binary files /dev/null and b/library/games/Card Constructor/assets/155520333_3362 differ
diff --git a/library/games/Card Constructor/assets/1601829989_3612 b/library/games/Card Constructor/assets/1601829989_3612
new file mode 100644
index 0000000000..2364854b98
Binary files /dev/null and b/library/games/Card Constructor/assets/1601829989_3612 differ
diff --git a/library/games/Card Constructor/assets/1743029808_3482 b/library/games/Card Constructor/assets/1743029808_3482
new file mode 100644
index 0000000000..8e36dd220c
Binary files /dev/null and b/library/games/Card Constructor/assets/1743029808_3482 differ
diff --git a/library/games/Card Constructor/assets/1757111183_1666161 b/library/games/Card Constructor/assets/1757111183_1666161
new file mode 100644
index 0000000000..6b209127ea
Binary files /dev/null and b/library/games/Card Constructor/assets/1757111183_1666161 differ
diff --git a/library/games/Card Constructor/assets/1787638140_12487 b/library/games/Card Constructor/assets/1787638140_12487
new file mode 100644
index 0000000000..75a347f027
Binary files /dev/null and b/library/games/Card Constructor/assets/1787638140_12487 differ
diff --git a/library/games/Card Constructor/assets/1935281935_10136 b/library/games/Card Constructor/assets/1935281935_10136
new file mode 100644
index 0000000000..8aa67bb4e5
Binary files /dev/null and b/library/games/Card Constructor/assets/1935281935_10136 differ
diff --git a/library/games/Card Constructor/assets/2001965392_9340 b/library/games/Card Constructor/assets/2001965392_9340
new file mode 100644
index 0000000000..09e714fc2d
Binary files /dev/null and b/library/games/Card Constructor/assets/2001965392_9340 differ
diff --git a/library/games/Card Constructor/assets/2093712591_3474 b/library/games/Card Constructor/assets/2093712591_3474
new file mode 100644
index 0000000000..a373b298a3
Binary files /dev/null and b/library/games/Card Constructor/assets/2093712591_3474 differ
diff --git a/library/games/Card Constructor/assets/353379491_3644 b/library/games/Card Constructor/assets/353379491_3644
new file mode 100644
index 0000000000..6c4b04012c
Binary files /dev/null and b/library/games/Card Constructor/assets/353379491_3644 differ
diff --git a/library/games/Card Constructor/assets/396403453_3564 b/library/games/Card Constructor/assets/396403453_3564
new file mode 100644
index 0000000000..cdf98a3efb
Binary files /dev/null and b/library/games/Card Constructor/assets/396403453_3564 differ
diff --git a/library/games/Card Constructor/assets/409752096_13517 b/library/games/Card Constructor/assets/409752096_13517
new file mode 100644
index 0000000000..f71afc6773
Binary files /dev/null and b/library/games/Card Constructor/assets/409752096_13517 differ
diff --git a/library/games/Card Constructor/assets/654295661_4166 b/library/games/Card Constructor/assets/654295661_4166
new file mode 100644
index 0000000000..14a7047fb8
Binary files /dev/null and b/library/games/Card Constructor/assets/654295661_4166 differ
diff --git a/library/games/Card Constructor/assets/772967497_4158 b/library/games/Card Constructor/assets/772967497_4158
new file mode 100644
index 0000000000..207baf04da
Binary files /dev/null and b/library/games/Card Constructor/assets/772967497_4158 differ
diff --git a/library/games/Card Constructor/assets/936210691_15078 b/library/games/Card Constructor/assets/936210691_15078
new file mode 100644
index 0000000000..8912980323
Binary files /dev/null and b/library/games/Card Constructor/assets/936210691_15078 differ
diff --git a/library/games/Card Constructor/assets/943754758_3572 b/library/games/Card Constructor/assets/943754758_3572
new file mode 100644
index 0000000000..7537776c59
Binary files /dev/null and b/library/games/Card Constructor/assets/943754758_3572 differ
diff --git a/library/games/Everything Must Go_/0.json b/library/games/Everything Must Go_/0.json
index 4e8b5221da..a2ec81a4d6 100644
--- a/library/games/Everything Must Go_/0.json
+++ b/library/games/Everything Must Go_/0.json
@@ -59,33 +59,6 @@
"editable": true,
"z": 20
},
- "_meta": {
- "version": 17,
- "info": {
- "name": "Everything Must Go!",
- "image": "/assets/-2049741076_35361",
- "rules": "https://cdn.shopify.com/s/files/1/0143/6178/8473/files/Bites_Rulebook_190807.pdf?v=1645044345",
- "bgg": "https://boardgamegeek.com/boardgame/277927/bites",
- "year": "2020",
- "mode": "vs",
- "time": "20",
- "attribution": "Room layout and design maddie. Released to the Public Domain under CC0.
Cover image by Basher Eyre (CC BY-SA 2.0). Available at: https://commons.wikimedia.org/w/index.php?curid=13795463",
- "lastUpdate": 1736903343165,
- "showName": true,
- "skill": "",
- "description": "It's Black Friday and the meeples are on a shopping spree! As a salesperson of the store, directΒ the customers towards the right products to maximize your commissions.",
- "similarImage": "",
- "similarName": "Bites",
- "similarDesigner": "Wolfgang Ditt, Brigitte Ditt",
- "similarAwards": "2020 Golden Geek Light Game of the Year Nominee",
- "ruleText": "",
- "helpText": "This module adapts only the base setup of Bites.",
- "variantImage": "",
- "variant": "",
- "language": "en-US",
- "players": "2-5"
- }
- },
"h1": {
"type": "holder",
"id": "h1",
@@ -994,8 +967,8 @@
"type": "card",
"cardType": "fridge",
"id": "agjk",
- "z": 11762,
- "parent": "h24",
+ "z": 12857,
+ "parent": "h4",
"x": -20,
"y": -20
},
@@ -1004,8 +977,8 @@
"type": "card",
"cardType": "fridge",
"id": "sj9j",
- "z": 11767,
- "parent": "h29",
+ "z": 12888,
+ "parent": "h35",
"x": -20,
"y": -20
},
@@ -1014,8 +987,8 @@
"type": "card",
"cardType": "fridge",
"id": "n0i7",
- "z": 11777,
- "parent": "h39",
+ "z": 12882,
+ "parent": "h29",
"x": -20,
"y": -20
},
@@ -1024,8 +997,8 @@
"type": "card",
"cardType": "fridge",
"id": "sncz",
- "z": 11768,
- "parent": "h30",
+ "z": 12877,
+ "parent": "h24",
"x": -20,
"y": -20
},
@@ -1034,8 +1007,8 @@
"type": "card",
"cardType": "fridge",
"id": "a2ix",
- "z": 11769,
- "parent": "h31",
+ "z": 12864,
+ "parent": "h11",
"x": -20,
"y": -20
},
@@ -1044,8 +1017,8 @@
"type": "card",
"cardType": "fridge",
"id": "3pgd",
- "z": 11789,
- "parent": "h51",
+ "z": 12866,
+ "parent": "h13",
"x": -20,
"y": -20
},
@@ -1054,8 +1027,8 @@
"type": "card",
"cardType": "fridge",
"id": "fizq",
- "z": 11745,
- "parent": "h7",
+ "z": 12881,
+ "parent": "h28",
"x": -20,
"y": -20
},
@@ -1064,8 +1037,8 @@
"type": "card",
"cardType": "fridge",
"id": "6hxe",
- "z": 11744,
- "parent": "h6",
+ "z": 12891,
+ "parent": "h38",
"x": -20,
"y": -20
},
@@ -1074,8 +1047,8 @@
"type": "card",
"cardType": "fridge",
"id": "azze",
- "z": 11787,
- "parent": "h49",
+ "z": 12875,
+ "parent": "h22",
"x": -20,
"y": -20
},
@@ -1084,8 +1057,8 @@
"type": "card",
"cardType": "necklace",
"id": "rxqp",
- "z": 11770,
- "parent": "h32",
+ "z": 12884,
+ "parent": "h31",
"x": -20,
"y": -20
},
@@ -1094,8 +1067,8 @@
"type": "card",
"cardType": "necklace",
"id": "xwfo",
- "z": 11753,
- "parent": "h15",
+ "z": 12871,
+ "parent": "h18",
"x": -20,
"y": -20
},
@@ -1104,8 +1077,8 @@
"type": "card",
"cardType": "necklace",
"id": "52n8",
- "z": 11775,
- "parent": "h37",
+ "z": 12870,
+ "parent": "h17",
"x": -20,
"y": -20
},
@@ -1114,8 +1087,8 @@
"type": "card",
"cardType": "necklace",
"id": "dl56",
- "z": 11790,
- "parent": "h52",
+ "z": 12878,
+ "parent": "h25",
"x": -20,
"y": -20
},
@@ -1124,8 +1097,8 @@
"type": "card",
"cardType": "necklace",
"id": "z0m9",
- "z": 11759,
- "parent": "h21",
+ "z": 12897,
+ "parent": "h44",
"x": -20,
"y": -20
},
@@ -1134,8 +1107,8 @@
"type": "card",
"cardType": "necklace",
"id": "o309",
- "z": 11743,
- "parent": "h5",
+ "z": 12902,
+ "parent": "h49",
"x": -20,
"y": -20
},
@@ -1144,8 +1117,8 @@
"type": "card",
"cardType": "necklace",
"id": "vj5r",
- "z": 11778,
- "parent": "h40",
+ "z": 12869,
+ "parent": "h16",
"x": -20,
"y": -20
},
@@ -1154,8 +1127,8 @@
"type": "card",
"cardType": "necklace",
"id": "xs00",
- "z": 11739,
- "parent": "h1",
+ "z": 12892,
+ "parent": "h39",
"x": -20,
"y": -20
},
@@ -1164,8 +1137,8 @@
"type": "card",
"cardType": "necklace",
"id": "0zph",
- "z": 11764,
- "parent": "h26",
+ "z": 12907,
+ "parent": "h54",
"x": -20,
"y": -20
},
@@ -1174,7 +1147,7 @@
"type": "card",
"cardType": "xbox",
"id": "o9no",
- "z": 11748,
+ "z": 12863,
"parent": "h10",
"x": -20,
"y": -20
@@ -1184,8 +1157,8 @@
"type": "card",
"cardType": "xbox",
"id": "zv9j",
- "z": 11792,
- "parent": "h54",
+ "z": 12887,
+ "parent": "h34",
"x": -20,
"y": -20
},
@@ -1194,8 +1167,8 @@
"type": "card",
"cardType": "xbox",
"id": "qdx1",
- "z": 11776,
- "parent": "h38",
+ "z": 12868,
+ "parent": "h15",
"x": -20,
"y": -20
},
@@ -1204,8 +1177,8 @@
"type": "card",
"cardType": "xbox",
"id": "tt4h",
- "z": 11772,
- "parent": "h34",
+ "z": 12903,
+ "parent": "h50",
"x": -20,
"y": -20
},
@@ -1214,8 +1187,8 @@
"type": "card",
"cardType": "xbox",
"id": "zkdm",
- "z": 11780,
- "parent": "h42",
+ "z": 12867,
+ "parent": "h14",
"x": -20,
"y": -20
},
@@ -1224,8 +1197,8 @@
"type": "card",
"cardType": "xbox",
"id": "mkds",
- "z": 11757,
- "parent": "h19",
+ "z": 12879,
+ "parent": "h26",
"x": -20,
"y": -20
},
@@ -1234,8 +1207,8 @@
"type": "card",
"cardType": "xbox",
"id": "7hr7",
- "z": 11746,
- "parent": "h8",
+ "z": 12890,
+ "parent": "h37",
"x": -20,
"y": -20
},
@@ -1244,8 +1217,8 @@
"type": "card",
"cardType": "xbox",
"id": "easv",
- "z": 11774,
- "parent": "h36",
+ "z": 12885,
+ "parent": "h32",
"x": -20,
"y": -20
},
@@ -1254,8 +1227,8 @@
"type": "card",
"cardType": "xbox",
"id": "t8tb",
- "z": 11750,
- "parent": "h12",
+ "z": 12876,
+ "parent": "h23",
"x": -20,
"y": -20
},
@@ -1264,8 +1237,8 @@
"type": "card",
"cardType": "shoes",
"id": "7suz",
- "z": 11765,
- "parent": "h27",
+ "z": 12860,
+ "parent": "h7",
"x": -20,
"y": -20
},
@@ -1274,8 +1247,8 @@
"type": "card",
"cardType": "shoes",
"id": "rm7k",
- "z": 11747,
- "parent": "h9",
+ "z": 12896,
+ "parent": "h43",
"x": -20,
"y": -20
},
@@ -1284,8 +1257,8 @@
"type": "card",
"cardType": "shoes",
"id": "j1ua",
- "z": 11761,
- "parent": "h23",
+ "z": 12901,
+ "parent": "h48",
"x": -20,
"y": -20
},
@@ -1294,8 +1267,8 @@
"type": "card",
"cardType": "shoes",
"id": "p7u1",
- "z": 11749,
- "parent": "h11",
+ "z": 12854,
+ "parent": "h1",
"x": -20,
"y": -20
},
@@ -1304,8 +1277,8 @@
"type": "card",
"cardType": "shoes",
"id": "s3kf",
- "z": 11786,
- "parent": "h48",
+ "z": 12861,
+ "parent": "h8",
"x": -20,
"y": -20
},
@@ -1314,8 +1287,8 @@
"type": "card",
"cardType": "shoes",
"id": "744a",
- "z": 11760,
- "parent": "h22",
+ "z": 12865,
+ "parent": "h12",
"x": -20,
"y": -20
},
@@ -1324,8 +1297,8 @@
"type": "card",
"cardType": "shoes",
"id": "m8wg",
- "z": 11779,
- "parent": "h41",
+ "z": 12906,
+ "parent": "h53",
"x": -20,
"y": -20
},
@@ -1334,8 +1307,8 @@
"type": "card",
"cardType": "shoes",
"id": "cy2j",
- "z": 11793,
- "parent": "h55",
+ "z": 12856,
+ "parent": "h3",
"x": -20,
"y": -20
},
@@ -1344,8 +1317,8 @@
"type": "card",
"cardType": "shoes",
"id": "5hul",
- "z": 11741,
- "parent": "h3",
+ "z": 12886,
+ "parent": "h33",
"x": -20,
"y": -20
},
@@ -1354,8 +1327,8 @@
"type": "card",
"cardType": "coupon",
"id": "ie4d",
- "z": 11740,
- "parent": "h2",
+ "z": 12895,
+ "parent": "h42",
"x": -20,
"y": -20
},
@@ -1364,8 +1337,8 @@
"type": "card",
"cardType": "coupon",
"id": "a537",
- "z": 11763,
- "parent": "h25",
+ "z": 12894,
+ "parent": "h41",
"x": -20,
"y": -20
},
@@ -1374,8 +1347,8 @@
"type": "card",
"cardType": "coupon",
"id": "1qzh",
- "z": 11785,
- "parent": "h47",
+ "z": 12859,
+ "parent": "h6",
"x": -20,
"y": -20
},
@@ -1384,8 +1357,8 @@
"type": "card",
"cardType": "coupon",
"id": "b0jx",
- "z": 11771,
- "parent": "h33",
+ "z": 12855,
+ "parent": "h2",
"x": -20,
"y": -20
},
@@ -1394,8 +1367,8 @@
"type": "card",
"cardType": "coupon",
"id": "3ui7",
- "z": 11781,
- "parent": "h43",
+ "z": 12873,
+ "parent": "h20",
"x": -20,
"y": -20
},
@@ -1404,8 +1377,8 @@
"type": "card",
"cardType": "wine",
"id": "airb",
- "z": 11751,
- "parent": "h13",
+ "z": 12874,
+ "parent": "h21",
"x": -20,
"y": -20
},
@@ -1414,8 +1387,8 @@
"type": "card",
"cardType": "wine",
"id": "dtun",
- "z": 11784,
- "parent": "h46",
+ "z": 12880,
+ "parent": "h27",
"x": -20,
"y": -20
},
@@ -1424,8 +1397,8 @@
"type": "card",
"cardType": "wine",
"id": "73yi",
- "z": 11742,
- "parent": "h4",
+ "z": 12883,
+ "parent": "h30",
"x": -20,
"y": -20
},
@@ -1434,8 +1407,8 @@
"type": "card",
"cardType": "wine",
"id": "tuya",
- "z": 11754,
- "parent": "h16",
+ "z": 12900,
+ "parent": "h47",
"x": -20,
"y": -20
},
@@ -1444,8 +1417,8 @@
"type": "card",
"cardType": "wine",
"id": "v03f",
- "z": 11791,
- "parent": "h53",
+ "z": 12872,
+ "parent": "h19",
"x": -20,
"y": -20
},
@@ -1454,8 +1427,8 @@
"type": "card",
"cardType": "tv",
"id": "aks6",
- "z": 11752,
- "parent": "h14",
+ "z": 12905,
+ "parent": "h52",
"x": -20,
"y": -20
},
@@ -1464,8 +1437,8 @@
"type": "card",
"cardType": "tv",
"id": "k28o",
- "z": 11783,
- "parent": "h45",
+ "z": 12908,
+ "parent": "h55",
"x": -20,
"y": -20
},
@@ -1474,8 +1447,8 @@
"type": "card",
"cardType": "tv",
"id": "fi6s",
- "z": 11773,
- "parent": "h35",
+ "z": 12898,
+ "parent": "h45",
"x": -20,
"y": -20
},
@@ -1484,8 +1457,8 @@
"type": "card",
"cardType": "tv",
"id": "9g9z",
- "z": 11755,
- "parent": "h17",
+ "z": 12889,
+ "parent": "h36",
"x": -20,
"y": -20
},
@@ -1494,8 +1467,8 @@
"type": "card",
"cardType": "tv",
"id": "be4r",
- "z": 11766,
- "parent": "h28",
+ "z": 12899,
+ "parent": "h46",
"x": -20,
"y": -20
},
@@ -1504,8 +1477,8 @@
"type": "card",
"cardType": "tv",
"id": "u1ru",
- "z": 11788,
- "parent": "h50",
+ "z": 12904,
+ "parent": "h51",
"x": -20,
"y": -20
},
@@ -1514,8 +1487,8 @@
"type": "card",
"cardType": "tv",
"id": "udri",
- "z": 11756,
- "parent": "h18",
+ "z": 12862,
+ "parent": "h9",
"x": -20,
"y": -20
},
@@ -1524,8 +1497,8 @@
"type": "card",
"cardType": "tv",
"id": "4d7h",
- "z": 11782,
- "parent": "h44",
+ "z": 12893,
+ "parent": "h40",
"x": -20,
"y": -20
},
@@ -1534,8 +1507,8 @@
"type": "card",
"cardType": "tv",
"id": "vlqu",
- "z": 11758,
- "parent": "h20",
+ "z": 12858,
+ "parent": "h5",
"x": -20,
"y": -20
},
@@ -1622,10 +1595,14 @@
"h55"
],
"from": "bigbag"
+ },
+ {
+ "func": "TURN",
+ "turnCycle": "random"
}
],
"x": 119,
- "y": 2
+ "y": 26
},
"final1": {
"type": "holder",
@@ -2031,14 +2008,6 @@
"y": -20,
"parent": "final2"
},
- "bbdc4": {
- "type": "seat",
- "index": 1,
- "x": 1433,
- "y": 784,
- "id": "bbdc4",
- "z": 35
- },
"ph1": {
"type": "holder",
"id": "ph1",
@@ -2110,38 +2079,6 @@
"movable": false,
"movableInEdit": true
},
- "bbdc5": {
- "type": "seat",
- "index": 1,
- "x": 1433,
- "y": 621,
- "id": "bbdc5",
- "z": 34
- },
- "bbdc6": {
- "type": "seat",
- "index": 1,
- "x": 1432,
- "y": 445,
- "id": "bbdc6",
- "z": 33
- },
- "bbdc7": {
- "type": "seat",
- "index": 1,
- "x": 1432,
- "y": 272,
- "id": "bbdc7",
- "z": 31
- },
- "bbdc8": {
- "type": "seat",
- "index": 1,
- "x": 1431,
- "y": 946,
- "id": "bbdc8",
- "z": 37
- },
"ph7": {
"type": "holder",
"id": "ph7",
@@ -2689,5 +2626,90 @@
"value": 1
}
]
+ },
+ "s1": {
+ "type": "seat",
+ "id": "s1",
+ "x": 1432,
+ "y": 272,
+ "z": 31,
+ "hideWhenUnused": true
+ },
+ "s2": {
+ "type": "seat",
+ "id": "s2",
+ "x": 1432,
+ "y": 445,
+ "z": 33,
+ "hideWhenUnused": true,
+ "index": 2
+ },
+ "s3": {
+ "type": "seat",
+ "id": "s3",
+ "x": 1433,
+ "y": 621,
+ "z": 34,
+ "index": 3,
+ "hideWhenUnused": true
+ },
+ "s4": {
+ "type": "seat",
+ "id": "s4",
+ "x": 1433,
+ "y": 784,
+ "z": 35,
+ "index": 4,
+ "hideWhenUnused": true
+ },
+ "s5": {
+ "type": "seat",
+ "id": "s5",
+ "x": 1431,
+ "y": 946,
+ "z": 37,
+ "hideWhenUnused": true,
+ "index": 5
+ },
+ "ejpz": {
+ "type": "button",
+ "clickRoutine": [
+ {
+ "func": "TURN",
+ "turnCycle": "forward"
+ }
+ ],
+ "x": 1459,
+ "y": 26,
+ "z": 39,
+ "id": "ejpz",
+ "text": "END TURN"
+ },
+ "_meta": {
+ "version": 17,
+ "info": {
+ "name": "Everything Must Go!",
+ "image": "/assets/-2049741076_35361",
+ "rules": "https://cdn.shopify.com/s/files/1/0143/6178/8473/files/Bites_Rulebook_190807.pdf?v=1645044345",
+ "bgg": "https://boardgamegeek.com/boardgame/277927/bites",
+ "year": "2020",
+ "mode": "vs",
+ "time": "20",
+ "attribution": "Room layout and design by maddie. Released to the Public Domain under CC0.
Cover image by Basher Eyre (CC BY-SA 2.0). Available at: https://commons.wikimedia.org/w/index.php?curid=13795463",
+ "lastUpdate": 1737353634640,
+ "showName": true,
+ "skill": "",
+ "description": "It's Black Friday and the meeples are on a shopping spree! As a salesperson of the store, directΒ the customers towards the right products to maximize your commissions.",
+ "similarImage": "",
+ "similarName": "Bites",
+ "similarDesigner": "Wolfgang Ditt, Brigitte Ditt",
+ "similarAwards": "2020 Golden Geek Light Game of the Year Nominee",
+ "ruleText": "This module adapts only the base setup of Bites.
The following are alternative rules that can be used with this module:
Meeple Allocation:
1. Meeples are allocated to the checkouts from highest position to lowest.
2. Meeples are allocated from lowest position to highest.
3. Meeples are allocated in this order: 4, 2, 0, 3, 1.
Coupon Ability:
1. Before or after your turn, choose a player to give you one product of their choice (make sure there are no coupons in the first 1/4 of the trail before playing).
2. When moving a meeple, skip the first product that matches their color.
3. Replacing normal turn, move a meeple one space forward (ignoring color), then take the products both in front and behind it.
4. Before or after turn, move a meeple at the checkout to an adjacent empty position at the checkout. Each meeple can only be moved once total.
5. Take a second turn, moving a meeple backward rather than forward. Take a product like usual.
6. Replacing your turn, move a meeple back to the start of the trail, then take two moves with it.
7. Before your turn, pick up the three items at the very beginning of the trail. Choose one to keep, and place the other two at the end of the trail.
Wine Scoring:
1. Each wine is worth one point for each of the product you have the most of.
2. Each wine is worth one point for each product you have that is worth 1 or 0 points.
3. Each wine is worth one point for each wine you have total.
4. 0 Wine = -3 Points, 1 = 2P, 2 = 3P, 3 = 12P, 4 = 12P, 5 = 12P
5. 0 Wine = 0 Points, 1 = 5P, 2 = 8P, 3 = 9P, 4 = 8P, 5 = 5P
6. If you end the game with exactly 1 wine, gain 7 points, otherwise gain 0 points.
",
+ "helpText": "",
+ "variantImage": "",
+ "variant": "",
+ "language": "en-US",
+ "players": "2-5"
+ }
}
}
\ No newline at end of file
diff --git a/library/games/Green Streams/0.json b/library/games/Green Streams/0.json
index c9cebd96dd..e92c964a16 100644
--- a/library/games/Green Streams/0.json
+++ b/library/games/Green Streams/0.json
@@ -23,430 +23,6 @@
"z": 14685,
"parent": "skqn"
},
- "0589119d-a1eb-454c-a9a2-d9b78f7003f2": {
- "id": "0589119d-a1eb-454c-a9a2-d9b78f7003f2",
- "x": 1456,
- "y": 525,
- "z": 6022,
- "type": "seat",
- "display": "seatIndex",
- "displayEmpty": "seatIndex",
- "hideWhenUnused": true,
- "index": 3,
- "height": 42,
- "width": 42,
- "css": "box-sizing:border-box;border-width:2px;",
- "borderRadius": "50%",
- "playerChangeRoutine": [
- {
- "func": "SELECT",
- "value": "${PROPERTY id}",
- "type": "button"
- },
- {
- "func": "SELECT",
- "value": "${PROPERTY id}",
- "collection": "LABEL"
- },
- {
- "func": "SELECT",
- "source": "LABEL",
- "property": "TYPE",
- "value": "label",
- "collection": "LABEL"
- },
- {
- "func": "SELECT",
- "value": "${PROPERTY id}",
- "collection": "COUNT"
- },
- {
- "func": "SELECT",
- "source": "COUNT",
- "property": "TYPE",
- "value": "count",
- "collection": "COUNT"
- },
- {
- "func": "IF",
- "condition": "${value}",
- "thenRoutine": [
- {
- "func": "SET",
- "property": "owner",
- "value": []
- },
- {
- "func": "SET",
- "collection": "LABEL",
- "property": "text",
- "value": "${playerName}"
- },
- {
- "func": "SET",
- "collection": "COUNT",
- "property": "owner"
- }
- ],
- "elseRoutine": [
- {
- "func": "SET",
- "property": "owner"
- },
- {
- "func": "SET",
- "collection": "LABEL",
- "property": "text",
- "value": "Player ${PROPERTY index}"
- },
- {
- "func": "SET",
- "collection": "COUNT",
- "property": "owner",
- "value": []
- }
- ]
- }
- ]
- },
- "0589119d-a1eb-454c-a9a2-d9b78f7003f2label": {
- "id": "0589119d-a1eb-454c-a9a2-d9b78f7003f2label",
- "parent": "0589119d-a1eb-454c-a9a2-d9b78f7003f2",
- "x": -71,
- "y": 36,
- "layer": 0,
- "height": 44,
- "width": 180,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "label",
- "text": "Player 3",
- "css": "background:white;border:1px solid lightgrey;font-size:18px;display: flex;justify-content: center;align-items: center;",
- "borderRadius": "36%",
- "clickRoutine": [
- {
- "func": "SELECT",
- "property": "id",
- "value": "${PROPERTY parent}"
- },
- {
- "func": "CLICK"
- }
- ]
- },
- "0589119d-a1eb-454c-a9a2-d9b78f7003f2sit": {
- "id": "0589119d-a1eb-454c-a9a2-d9b78f7003f2sit",
- "type": "button",
- "parent": "0589119d-a1eb-454c-a9a2-d9b78f7003f2",
- "x": -23.5,
- "y": 74,
- "layer": 1,
- "height": 28,
- "width": 85,
- "movable": false,
- "movableInEdit": false,
- "text": "Sit Here",
- "css": "background: white; color: black;font-size:16px; border:1px solid lightgrey",
- "borderRadius": 4,
- "clickRoutine": [
- {
- "func": "SELECT",
- "property": "id",
- "value": "${PROPERTY parent}"
- },
- {
- "func": "CLICK"
- }
- ]
- },
- "0589119d-a1eb-454c-a9a2-d9b78f7003f2count": {
- "id": "0589119d-a1eb-454c-a9a2-d9b78f7003f2count",
- "parent": "0589119d-a1eb-454c-a9a2-d9b78f7003f2",
- "x": -40,
- "y": 2,
- "layer": 3,
- "height": 38,
- "width": 30,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "count",
- "text": 0,
- "css": "background: white; color: black;font-size:18px; border:1px solid lightgrey;display: flex;justify-content: center;align-items: center;",
- "borderRadius": 4,
- "clickRoutine": [
- {
- "func": "SELECT",
- "property": "id",
- "value": "${PROPERTY parent}"
- },
- {
- "func": "CLICK"
- }
- ],
- "ownerGlobalUpdateRoutine": [
- "var parent = ${PROPERTY parent}",
- "var player = ${PROPERTY player OF $parent}",
- {
- "func": "SELECT",
- "property": "owner",
- "value": "${player}"
- },
- {
- "func": "COUNT"
- },
- {
- "func": "SET",
- "collection": "thisButton",
- "property": "text",
- "value": "${COUNT}"
- }
- ],
- "owner": []
- },
- "0589119d-a1eb-454c-a9a2-d9b78f7003f2count1": {
- "id": "0589119d-a1eb-454c-a9a2-d9b78f7003f2count1",
- "parent": "0589119d-a1eb-454c-a9a2-d9b78f7003f2",
- "x": -40,
- "y": 2,
- "layer": 2,
- "height": 38,
- "width": 30,
- "rotation": -6,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "count",
- "css": "background: white; color: black;font-size:16px; border:1px solid lightgrey;transform-origin:bottom left",
- "borderRadius": 4,
- "owner": []
- },
- "0589119d-a1eb-454c-a9a2-d9b78f7003f2count2": {
- "id": "0589119d-a1eb-454c-a9a2-d9b78f7003f2count2",
- "parent": "0589119d-a1eb-454c-a9a2-d9b78f7003f2",
- "x": -40,
- "y": 2,
- "layer": 1,
- "height": 38,
- "width": 30,
- "rotation": -12,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "count",
- "css": "background: white; border-radius: 4px; color: black;font-size:16px; border:1px solid lightgrey;transform-origin:bottom left",
- "borderRadius": 4,
- "owner": []
- },
- "ae3512be-62de-436e-b2a1-225334230a59": {
- "id": "ae3512be-62de-436e-b2a1-225334230a59",
- "x": 1456,
- "y": 24,
- "type": "seat",
- "display": "seatIndex",
- "displayEmpty": "seatIndex",
- "hideWhenUnused": true,
- "index": 1,
- "height": 42,
- "width": 42,
- "css": "box-sizing:border-box;border-width:2px;",
- "borderRadius": "50%",
- "playerChangeRoutine": [
- {
- "func": "SELECT",
- "value": "${PROPERTY id}",
- "type": "button"
- },
- {
- "func": "SELECT",
- "value": "${PROPERTY id}",
- "collection": "LABEL"
- },
- {
- "func": "SELECT",
- "source": "LABEL",
- "property": "TYPE",
- "value": "label",
- "collection": "LABEL"
- },
- {
- "func": "SELECT",
- "value": "${PROPERTY id}",
- "collection": "COUNT"
- },
- {
- "func": "SELECT",
- "source": "COUNT",
- "property": "TYPE",
- "value": "count",
- "collection": "COUNT"
- },
- {
- "func": "IF",
- "condition": "${value}",
- "thenRoutine": [
- {
- "func": "SET",
- "property": "owner",
- "value": []
- },
- {
- "func": "SET",
- "collection": "LABEL",
- "property": "text",
- "value": "${playerName}"
- },
- {
- "func": "SET",
- "collection": "COUNT",
- "property": "owner"
- }
- ],
- "elseRoutine": [
- {
- "func": "SET",
- "property": "owner"
- },
- {
- "func": "SET",
- "collection": "LABEL",
- "property": "text",
- "value": "Player ${PROPERTY index}"
- },
- {
- "func": "SET",
- "collection": "COUNT",
- "property": "owner",
- "value": []
- }
- ]
- }
- ],
- "z": 5906
- },
- "ae3512be-62de-436e-b2a1-225334230a59label": {
- "id": "ae3512be-62de-436e-b2a1-225334230a59label",
- "parent": "ae3512be-62de-436e-b2a1-225334230a59",
- "x": -71,
- "y": 36,
- "layer": 0,
- "height": 44,
- "width": 180,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "label",
- "text": "Player 1",
- "css": "background:white;border:1px solid lightgrey;font-size:18px;display: flex;justify-content: center;align-items: center;",
- "borderRadius": "36%",
- "clickRoutine": [
- {
- "func": "SELECT",
- "property": "id",
- "value": "${PROPERTY parent}"
- },
- {
- "func": "CLICK"
- }
- ]
- },
- "ae3512be-62de-436e-b2a1-225334230a59sit": {
- "id": "ae3512be-62de-436e-b2a1-225334230a59sit",
- "type": "button",
- "parent": "ae3512be-62de-436e-b2a1-225334230a59",
- "x": -23.5,
- "y": 74,
- "layer": 1,
- "height": 28,
- "width": 85,
- "movable": false,
- "movableInEdit": false,
- "text": "Sit Here",
- "css": "background: white; color: black;font-size:16px; border:1px solid lightgrey",
- "borderRadius": 4,
- "clickRoutine": [
- {
- "func": "SELECT",
- "property": "id",
- "value": "${PROPERTY parent}"
- },
- {
- "func": "CLICK"
- }
- ]
- },
- "ae3512be-62de-436e-b2a1-225334230a59count": {
- "id": "ae3512be-62de-436e-b2a1-225334230a59count",
- "parent": "ae3512be-62de-436e-b2a1-225334230a59",
- "x": -40,
- "y": 2,
- "layer": 3,
- "height": 38,
- "width": 30,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "count",
- "text": 0,
- "css": "background: white; color: black;font-size:18px; border:1px solid lightgrey;display: flex;justify-content: center;align-items: center;",
- "borderRadius": 4,
- "clickRoutine": [
- {
- "func": "SELECT",
- "property": "id",
- "value": "${PROPERTY parent}"
- },
- {
- "func": "CLICK"
- }
- ],
- "ownerGlobalUpdateRoutine": [
- "var parent = ${PROPERTY parent}",
- "var player = ${PROPERTY player OF $parent}",
- {
- "func": "SELECT",
- "property": "owner",
- "value": "${player}"
- },
- {
- "func": "COUNT"
- },
- {
- "func": "SET",
- "collection": "thisButton",
- "property": "text",
- "value": "${COUNT}"
- }
- ],
- "owner": []
- },
- "ae3512be-62de-436e-b2a1-225334230a59count1": {
- "id": "ae3512be-62de-436e-b2a1-225334230a59count1",
- "parent": "ae3512be-62de-436e-b2a1-225334230a59",
- "x": -40,
- "y": 2,
- "layer": 2,
- "height": 38,
- "width": 30,
- "rotation": -6,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "count",
- "css": "background: white; color: black;font-size:16px; border:1px solid lightgrey;transform-origin:bottom left",
- "borderRadius": 4,
- "owner": []
- },
- "ae3512be-62de-436e-b2a1-225334230a59count2": {
- "id": "ae3512be-62de-436e-b2a1-225334230a59count2",
- "parent": "ae3512be-62de-436e-b2a1-225334230a59",
- "x": -40,
- "y": 2,
- "layer": 1,
- "height": 38,
- "width": 30,
- "rotation": -12,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "count",
- "css": "background: white; border-radius: 4px; color: black;font-size:16px; border:1px solid lightgrey;transform-origin:bottom left",
- "borderRadius": 4,
- "owner": []
- },
"325d0647-3a5b-4392-8410-97d6b0392f27": {
"id": "325d0647-3a5b-4392-8410-97d6b0392f27",
"x": 1407,
@@ -548,219 +124,6 @@
}
]
},
- "94057628-d7ed-4e75-874e-9ef652fd0d3b": {
- "id": "94057628-d7ed-4e75-874e-9ef652fd0d3b",
- "x": 1456,
- "y": 259,
- "z": 6023,
- "type": "seat",
- "display": "seatIndex",
- "displayEmpty": "seatIndex",
- "hideWhenUnused": true,
- "index": 2,
- "height": 42,
- "width": 42,
- "css": "box-sizing:border-box;border-width:2px;",
- "borderRadius": "50%",
- "playerChangeRoutine": [
- {
- "func": "SELECT",
- "value": "${PROPERTY id}",
- "type": "button"
- },
- {
- "func": "SELECT",
- "value": "${PROPERTY id}",
- "collection": "LABEL"
- },
- {
- "func": "SELECT",
- "source": "LABEL",
- "property": "TYPE",
- "value": "label",
- "collection": "LABEL"
- },
- {
- "func": "SELECT",
- "value": "${PROPERTY id}",
- "collection": "COUNT"
- },
- {
- "func": "SELECT",
- "source": "COUNT",
- "property": "TYPE",
- "value": "count",
- "collection": "COUNT"
- },
- {
- "func": "IF",
- "condition": "${value}",
- "thenRoutine": [
- {
- "func": "SET",
- "property": "owner",
- "value": []
- },
- {
- "func": "SET",
- "collection": "LABEL",
- "property": "text",
- "value": "${playerName}"
- },
- {
- "func": "SET",
- "collection": "COUNT",
- "property": "owner"
- }
- ],
- "elseRoutine": [
- {
- "func": "SET",
- "property": "owner"
- },
- {
- "func": "SET",
- "collection": "LABEL",
- "property": "text",
- "value": "Player ${PROPERTY index}"
- },
- {
- "func": "SET",
- "collection": "COUNT",
- "property": "owner",
- "value": []
- }
- ]
- }
- ]
- },
- "94057628-d7ed-4e75-874e-9ef652fd0d3blabel": {
- "id": "94057628-d7ed-4e75-874e-9ef652fd0d3blabel",
- "parent": "94057628-d7ed-4e75-874e-9ef652fd0d3b",
- "x": -71,
- "y": 36,
- "layer": 0,
- "height": 44,
- "width": 180,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "label",
- "text": "Player 2",
- "css": "background:white;border:1px solid lightgrey;font-size:18px;display: flex;justify-content: center;align-items: center;",
- "borderRadius": "36%",
- "clickRoutine": [
- {
- "func": "SELECT",
- "property": "id",
- "value": "${PROPERTY parent}"
- },
- {
- "func": "CLICK"
- }
- ]
- },
- "94057628-d7ed-4e75-874e-9ef652fd0d3bsit": {
- "id": "94057628-d7ed-4e75-874e-9ef652fd0d3bsit",
- "type": "button",
- "parent": "94057628-d7ed-4e75-874e-9ef652fd0d3b",
- "x": -23.5,
- "y": 74,
- "layer": 1,
- "height": 28,
- "width": 85,
- "movable": false,
- "movableInEdit": false,
- "text": "Sit Here",
- "css": "background: white; color: black;font-size:16px; border:1px solid lightgrey",
- "borderRadius": 4,
- "clickRoutine": [
- {
- "func": "SELECT",
- "property": "id",
- "value": "${PROPERTY parent}"
- },
- {
- "func": "CLICK"
- }
- ],
- "z": 1340
- },
- "94057628-d7ed-4e75-874e-9ef652fd0d3bcount": {
- "id": "94057628-d7ed-4e75-874e-9ef652fd0d3bcount",
- "parent": "94057628-d7ed-4e75-874e-9ef652fd0d3b",
- "x": -40,
- "y": 2,
- "layer": 3,
- "height": 38,
- "width": 30,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "count",
- "text": 0,
- "css": "background: white; color: black;font-size:18px; border:1px solid lightgrey;display: flex;justify-content: center;align-items: center;",
- "borderRadius": 4,
- "clickRoutine": [
- {
- "func": "SELECT",
- "property": "id",
- "value": "${PROPERTY parent}"
- },
- {
- "func": "CLICK"
- }
- ],
- "ownerGlobalUpdateRoutine": [
- "var parent = ${PROPERTY parent}",
- "var player = ${PROPERTY player OF $parent}",
- {
- "func": "SELECT",
- "property": "owner",
- "value": "${player}"
- },
- {
- "func": "COUNT"
- },
- {
- "func": "SET",
- "collection": "thisButton",
- "property": "text",
- "value": "${COUNT}"
- }
- ],
- "owner": []
- },
- "94057628-d7ed-4e75-874e-9ef652fd0d3bcount1": {
- "id": "94057628-d7ed-4e75-874e-9ef652fd0d3bcount1",
- "parent": "94057628-d7ed-4e75-874e-9ef652fd0d3b",
- "x": -40,
- "y": 2,
- "layer": 2,
- "height": 38,
- "width": 30,
- "rotation": -6,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "count",
- "css": "background: white; color: black;font-size:16px; border:1px solid lightgrey;transform-origin:bottom left",
- "borderRadius": 4,
- "owner": []
- },
- "94057628-d7ed-4e75-874e-9ef652fd0d3bcount2": {
- "id": "94057628-d7ed-4e75-874e-9ef652fd0d3bcount2",
- "parent": "94057628-d7ed-4e75-874e-9ef652fd0d3b",
- "x": -40,
- "y": 2,
- "layer": 1,
- "height": 38,
- "width": 30,
- "rotation": -12,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "count",
- "css": "background: white; border-radius: 4px; color: black;font-size:16px; border:1px solid lightgrey;transform-origin:bottom left",
- "borderRadius": 4,
- "owner": []
- },
"2e2d04fa-68a3-4d1b-a519-9e7f04b53874": {
"id": "2e2d04fa-68a3-4d1b-a519-9e7f04b53874",
"x": 1407,
@@ -815,7 +178,7 @@
"id": "b8883529-94c0-4371-b380-d54a89a52a3e",
"x": 1407,
"y": 675,
- "z": 1384,
+ "z": 6180,
"type": "label",
"width": 140,
"height": 44,
@@ -862,7 +225,7 @@
]
},
"83pu": {
- "image": "/assets/-1154482413_19220",
+ "image": "/assets/-1866911662_42944",
"movable": false,
"width": 1075,
"height": 872,
@@ -873,218 +236,6 @@
"y": 52,
"movableInEdit": false
},
- "6e6c10cb-e366-48d9-8d12-6bc99d75b51c": {
- "id": "6e6c10cb-e366-48d9-8d12-6bc99d75b51c",
- "x": 1458,
- "y": 750,
- "z": 6024,
- "type": "seat",
- "display": "seatIndex",
- "displayEmpty": "seatIndex",
- "hideWhenUnused": true,
- "index": 4,
- "height": 42,
- "width": 42,
- "css": "box-sizing:border-box;border-width:2px;",
- "borderRadius": "50%",
- "playerChangeRoutine": [
- {
- "func": "SELECT",
- "value": "${PROPERTY id}",
- "type": "button"
- },
- {
- "func": "SELECT",
- "value": "${PROPERTY id}",
- "collection": "LABEL"
- },
- {
- "func": "SELECT",
- "source": "LABEL",
- "property": "TYPE",
- "value": "label",
- "collection": "LABEL"
- },
- {
- "func": "SELECT",
- "value": "${PROPERTY id}",
- "collection": "COUNT"
- },
- {
- "func": "SELECT",
- "source": "COUNT",
- "property": "TYPE",
- "value": "count",
- "collection": "COUNT"
- },
- {
- "func": "IF",
- "condition": "${value}",
- "thenRoutine": [
- {
- "func": "SET",
- "property": "owner",
- "value": []
- },
- {
- "func": "SET",
- "collection": "LABEL",
- "property": "text",
- "value": "${playerName}"
- },
- {
- "func": "SET",
- "collection": "COUNT",
- "property": "owner"
- }
- ],
- "elseRoutine": [
- {
- "func": "SET",
- "property": "owner"
- },
- {
- "func": "SET",
- "collection": "LABEL",
- "property": "text",
- "value": "Player ${PROPERTY index}"
- },
- {
- "func": "SET",
- "collection": "COUNT",
- "property": "owner",
- "value": []
- }
- ]
- }
- ]
- },
- "6e6c10cb-e366-48d9-8d12-6bc99d75b51ccount": {
- "id": "6e6c10cb-e366-48d9-8d12-6bc99d75b51ccount",
- "parent": "6e6c10cb-e366-48d9-8d12-6bc99d75b51c",
- "x": -40,
- "y": 2,
- "layer": 3,
- "height": 38,
- "width": 30,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "count",
- "text": 0,
- "css": "background: white; color: black;font-size:18px; border:1px solid lightgrey;display: flex;justify-content: center;align-items: center;",
- "borderRadius": 4,
- "clickRoutine": [
- {
- "func": "SELECT",
- "property": "id",
- "value": "${PROPERTY parent}"
- },
- {
- "func": "CLICK"
- }
- ],
- "ownerGlobalUpdateRoutine": [
- "var parent = ${PROPERTY parent}",
- "var player = ${PROPERTY player OF $parent}",
- {
- "func": "SELECT",
- "property": "owner",
- "value": "${player}"
- },
- {
- "func": "COUNT"
- },
- {
- "func": "SET",
- "collection": "thisButton",
- "property": "text",
- "value": "${COUNT}"
- }
- ],
- "owner": []
- },
- "6e6c10cb-e366-48d9-8d12-6bc99d75b51ccount1": {
- "id": "6e6c10cb-e366-48d9-8d12-6bc99d75b51ccount1",
- "parent": "6e6c10cb-e366-48d9-8d12-6bc99d75b51c",
- "x": -40,
- "y": 2,
- "layer": 2,
- "height": 38,
- "width": 30,
- "rotation": -6,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "count",
- "css": "background: white; color: black;font-size:16px; border:1px solid lightgrey;transform-origin:bottom left",
- "borderRadius": 4,
- "owner": []
- },
- "6e6c10cb-e366-48d9-8d12-6bc99d75b51ccount2": {
- "id": "6e6c10cb-e366-48d9-8d12-6bc99d75b51ccount2",
- "parent": "6e6c10cb-e366-48d9-8d12-6bc99d75b51c",
- "x": -40,
- "y": 2,
- "layer": 1,
- "height": 38,
- "width": 30,
- "rotation": -12,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "count",
- "css": "background: white; border-radius: 4px; color: black;font-size:16px; border:1px solid lightgrey;transform-origin:bottom left",
- "borderRadius": 4,
- "owner": []
- },
- "6e6c10cb-e366-48d9-8d12-6bc99d75b51csit": {
- "id": "6e6c10cb-e366-48d9-8d12-6bc99d75b51csit",
- "type": "button",
- "parent": "6e6c10cb-e366-48d9-8d12-6bc99d75b51c",
- "x": -23.5,
- "y": 74,
- "layer": 1,
- "height": 28,
- "width": 85,
- "movable": false,
- "movableInEdit": false,
- "text": "Sit Here",
- "css": "background: white; color: black;font-size:16px; border:1px solid lightgrey",
- "borderRadius": 4,
- "clickRoutine": [
- {
- "func": "SELECT",
- "property": "id",
- "value": "${PROPERTY parent}"
- },
- {
- "func": "CLICK"
- }
- ]
- },
- "6e6c10cb-e366-48d9-8d12-6bc99d75b51clabel": {
- "id": "6e6c10cb-e366-48d9-8d12-6bc99d75b51clabel",
- "parent": "6e6c10cb-e366-48d9-8d12-6bc99d75b51c",
- "x": -71,
- "y": 36,
- "layer": 0,
- "height": 44,
- "width": 180,
- "movable": false,
- "movableInEdit": false,
- "TYPE": "label",
- "text": "Player 4",
- "css": "background:white;border:1px solid lightgrey;font-size:18px;display: flex;justify-content: center;align-items: center;",
- "borderRadius": "36%",
- "clickRoutine": [
- {
- "func": "SELECT",
- "property": "id",
- "value": "${PROPERTY parent}"
- },
- {
- "func": "CLICK"
- }
- ]
- },
"b8883529-94c0-4371-b380-d54a89a52a4e": {
"id": "b8883529-94c0-4371-b380-d54a89a52a4e",
"x": 1407,
@@ -1239,8 +390,8 @@
"b8883529-94c0-4371-b380-d54a89a52a7e": {
"id": "b8883529-94c0-4371-b380-d54a89a52a7e",
"x": 1407,
- "y": 632,
- "z": 1339,
+ "y": 625,
+ "z": 6179,
"type": "label",
"width": 140,
"height": 44,
@@ -1835,259 +986,259 @@
},
"6b156ca4-d95b-4b4c-a092-fcc52265ae49": {
"id": "6b156ca4-d95b-4b4c-a092-fcc52265ae49",
- "z": 22223,
+ "z": 23441,
"type": "card",
"deck": "goodies",
"cardType": "type-1ff9b910-1303-42a6-a61d-e9e1f8aeb945",
- "parent": "h61p"
+ "parent": "emov"
},
"e192a410-8cbc-4683-ba61-c456ec00a867": {
"id": "e192a410-8cbc-4683-ba61-c456ec00a867",
- "z": 22225,
+ "z": 23443,
"type": "card",
"deck": "goodies",
"cardType": "type-1ff9b910-1303-42a6-a61d-e9e1f8aeb945",
- "parent": "h61p"
+ "parent": "emov"
},
"3c153211-6558-4e1c-aef4-7681f33e490b": {
"id": "3c153211-6558-4e1c-aef4-7681f33e490b",
- "z": 22227,
+ "z": 23445,
"type": "card",
"deck": "goodies",
"cardType": "type-1ff9b910-1303-42a6-a61d-e9e1f8aeb945",
- "parent": "h61p"
+ "parent": "emov"
},
"32e05130-7904-4a8b-b34a-87a394f532ec": {
"id": "32e05130-7904-4a8b-b34a-87a394f532ec",
- "z": 22229,
+ "z": 23447,
"type": "card",
"deck": "goodies",
"cardType": "type-1ff9b910-1303-42a6-a61d-e9e1f8aeb945",
- "parent": "h61p"
+ "parent": "emov"
},
"4din": {
"deck": "goodies",
"type": "card",
"cardType": "type-1ff9b910-1303-42a6-a61d-e9e1f8aeb945",
"id": "4din",
- "z": 22231,
- "parent": "h61p"
+ "z": 23449,
+ "parent": "emov"
},
"w2h8": {
"deck": "goodies",
"type": "card",
"cardType": "type-7bbcd848-c929-454a-bd9f-2d39fe5b6099",
"id": "w2h8",
- "z": 22233,
- "parent": "h61p"
+ "z": 23451,
+ "parent": "emov"
},
"g1zf": {
"deck": "goodies",
"type": "card",
"cardType": "type-7bbcd848-c929-454a-bd9f-2d39fe5b6099",
"id": "g1zf",
- "z": 22235,
- "parent": "h61p"
+ "z": 23453,
+ "parent": "emov"
},
"zbwn": {
"deck": "goodies",
"type": "card",
"cardType": "type-7bbcd848-c929-454a-bd9f-2d39fe5b6099",
"id": "zbwn",
- "z": 22237,
- "parent": "h61p"
+ "z": 23455,
+ "parent": "emov"
},
"rcex": {
"deck": "goodies",
"type": "card",
"cardType": "type-7bbcd848-c929-454a-bd9f-2d39fe5b6099",
"id": "rcex",
- "z": 22239,
- "parent": "h61p"
+ "z": 23457,
+ "parent": "emov"
},
"ttqo": {
"deck": "goodies",
"type": "card",
"cardType": "type-7bbcd848-c929-454a-bd9f-2d39fe5b6099",
"id": "ttqo",
- "z": 22241,
- "parent": "h61p"
+ "z": 23459,
+ "parent": "emov"
},
"h4fk": {
"deck": "goodies",
"type": "card",
"cardType": "type-f4022e26-1945-4085-9401-9c385fcb18ce",
"id": "h4fk",
- "z": 22243,
- "parent": "h61p"
+ "z": 23461,
+ "parent": "emov"
},
"vqoy": {
"deck": "goodies",
"type": "card",
"cardType": "type-f4022e26-1945-4085-9401-9c385fcb18ce",
"id": "vqoy",
- "z": 22245,
- "parent": "h61p"
+ "z": 23463,
+ "parent": "emov"
},
"aftv": {
"deck": "goodies",
"type": "card",
"cardType": "type-1ff9b910-1303-42a6-a61d-e9e1f8aeb945",
"id": "aftv",
- "z": 22247,
- "parent": "h61p"
+ "z": 23465,
+ "parent": "emov"
},
"c4rd": {
"deck": "goodies",
"type": "card",
"cardType": "type-7bbcd848-c929-454a-bd9f-2d39fe5b6099",
"id": "c4rd",
- "z": 22249,
- "parent": "h61p"
+ "z": 23467,
+ "parent": "emov"
},
"uzev": {
"deck": "goodies",
"type": "card",
"cardType": "type-f4022e26-1945-4085-9401-9c385fcb18ce",
"id": "uzev",
- "z": 22251,
- "parent": "h61p"
+ "z": 23469,
+ "parent": "emov"
},
"mnpr": {
"deck": "goodies",
"type": "card",
"cardType": "type-f4022e26-1945-4085-9401-9c385fcb18ce",
"id": "mnpr",
- "z": 22253,
- "parent": "h61p"
+ "z": 23471,
+ "parent": "emov"
},
"n6f7": {
"deck": "goodies",
"type": "card",
"cardType": "type-f4022e26-1945-4085-9401-9c385fcb18ce",
"id": "n6f7",
- "z": 22255,
- "parent": "h61p"
+ "z": 23473,
+ "parent": "emov"
},
"or1j": {
"deck": "goodies",
"type": "card",
"cardType": "type-f4022e26-1945-4085-9401-9c385fcb18ce",
"id": "or1j",
- "z": 22257,
- "parent": "h61p"
+ "z": 23475,
+ "parent": "emov"
},
"1pke": {
"deck": "goodies",
"type": "card",
"cardType": "ngm4",
"id": "1pke",
- "z": 22259,
- "parent": "h61p"
+ "z": 23477,
+ "parent": "emov"
},
"n2ep": {
"deck": "goodies",
"type": "card",
"cardType": "ngm4",
"id": "n2ep",
- "z": 22261,
- "parent": "h61p"
+ "z": 23479,
+ "parent": "emov"
},
"myq1": {
"deck": "goodies",
"type": "card",
"cardType": "ngm4",
"id": "myq1",
- "z": 22263,
- "parent": "h61p"
+ "z": 23481,
+ "parent": "emov"
},
"pjt3": {
"deck": "goodies",
"type": "card",
"cardType": "ngm4",
"id": "pjt3",
- "z": 22265,
- "parent": "h61p"
+ "z": 23483,
+ "parent": "emov"
},
"puzp": {
"deck": "goodies",
"type": "card",
"cardType": "ngm4",
"id": "puzp",
- "z": 22267,
- "parent": "h61p"
+ "z": 23485,
+ "parent": "emov"
},
"1jd6": {
"deck": "goodies",
"type": "card",
"cardType": "ngm4",
"id": "1jd6",
- "z": 22269,
- "parent": "h61p"
+ "z": 23487,
+ "parent": "emov"
},
"yfku": {
"deck": "goodies",
"type": "card",
"cardType": "Totem",
"id": "yfku",
- "z": 22271,
- "parent": "h61p"
+ "z": 23489,
+ "parent": "emov"
},
"hyzd": {
"deck": "goodies",
"type": "card",
"cardType": "Totem",
"id": "hyzd",
- "z": 22273,
- "parent": "h61p"
+ "z": 23491,
+ "parent": "emov"
},
"vq3a": {
"deck": "goodies",
"type": "card",
"cardType": "Totem",
"id": "vq3a",
- "z": 22275,
- "parent": "h61p"
+ "z": 23493,
+ "parent": "emov"
},
"gf8t": {
"deck": "goodies",
"type": "card",
"cardType": "Totem",
"id": "gf8t",
- "z": 22277,
- "parent": "h61p"
+ "z": 23495,
+ "parent": "emov"
},
"m33z": {
"deck": "goodies",
"type": "card",
"cardType": "Totem",
"id": "m33z",
- "z": 22279,
- "parent": "h61p"
+ "z": 23497,
+ "parent": "emov"
},
"iqfl": {
"deck": "goodies",
"type": "card",
"cardType": "Totem",
"id": "iqfl",
- "z": 22281,
- "parent": "h61p"
+ "z": 23499,
+ "parent": "emov"
},
"y72w": {
"deck": "goodies",
"type": "card",
"cardType": "Totem",
"id": "y72w",
- "z": 22283,
- "parent": "h61p"
+ "z": 23501,
+ "parent": "emov"
},
"1z8l": {
"deck": "goodies",
"type": "card",
"cardType": "Totem",
"id": "1z8l",
- "z": 22285,
- "parent": "h61p"
+ "z": 23503,
+ "parent": "emov"
},
"recall-goodies": {
"type": "button",
@@ -2102,6 +1253,14 @@
"holder": "goodie-bag",
"owned": "false"
}
+ ],
+ "gameStartRoutine": [
+ {
+ "func": "CLICK",
+ "collection": [
+ "spread-goodies"
+ ]
+ }
]
},
"spread-goodies": {
@@ -2443,10 +1602,10 @@
"type": "holder",
"id": "pink-people-holder",
"x": 1326,
- "y": 480,
+ "y": 516,
"width": 57,
"height": 57,
- "z": 6180,
+ "z": 6175,
"inheritChildZ": true,
"dropOffsetX": 6,
"dropOffsetY": 6,
@@ -2765,7 +1924,7 @@
"y": 279,
"width": 57,
"height": 57,
- "z": 6177,
+ "z": 1384,
"inheritChildZ": true,
"dropOffsetX": 6,
"dropOffsetY": 6,
@@ -2779,7 +1938,7 @@
"type": "holder",
"id": "pink-people-holder5",
"x": 1250,
- "y": 771,
+ "y": 752,
"width": 57,
"height": 57,
"z": 6182,
@@ -3089,7 +2248,7 @@
"type": "holder",
"id": "orange-people-holder",
"x": 1325,
- "y": 771,
+ "y": 752,
"width": 57,
"height": 57,
"z": 6187,
@@ -3149,10 +2308,10 @@
"type": "holder",
"id": "pink-hut-holder",
"x": 1250,
- "y": 482,
+ "y": 516,
"width": 57,
"height": 57,
- "z": 6179,
+ "z": 6177,
"inheritChildZ": true,
"dropOffsetX": 6,
"dropOffsetY": 6,
@@ -3614,7 +2773,7 @@
"type": "holder",
"id": "green-people-holder",
"x": 1326,
- "y": 41,
+ "y": 43,
"width": 57,
"height": 57,
"z": 6172,
@@ -3777,7 +2936,7 @@
"y": 279,
"width": 57,
"height": 57,
- "z": 6175,
+ "z": 1339,
"inheritChildZ": true,
"dropOffsetX": 6,
"dropOffsetY": 6,
@@ -3936,7 +3095,7 @@
]
},
"_meta": {
- "version": 16,
+ "version": 17,
"info": {
"name": "Green Streams",
"image": "/assets/449419710_47714",
@@ -3946,7 +3105,7 @@
"mode": "vs",
"time": "30-45",
"attribution": "Room layout, design, and library image by maddie. Released to the Public Domain under CC0.
All icons by Lorc and Delapouite under CC BY 3.0 from https://game-icons.net/ at: https://game-icons.net/1x1/delapouite/island.html https://game-icons.net/1x1/delapouite/coconuts.html https://game-icons.net/1x1/delapouite/bamboo.html https://game-icons.net/1x1/delapouite/waterskin.html https://game-icons.net/1x1/delapouite/stone-stack.html https://game-icons.net/1x1/lorc/totem-head.html https://game-icons.net/1x1/delapouite/plain-circle.html
SVG board by ArnoldSmith86 available under CC0.
",
- "lastUpdate": 1732991224853,
+ "lastUpdate": 1737226222102,
"showName": true,
"skill": "",
"description": "Place out your tribespeople to explore the islands of the marshland, collect resources, and get in the way of your opponents.",
@@ -4310,15 +3469,6 @@
"y": 294,
"z": 1
},
- "h61p": {
- "type": "pile",
- "parent": "goodie-bag",
- "x": 6,
- "y": 6,
- "width": 50,
- "height": 50,
- "id": "h61p"
- },
"snsq": {
"image": "/assets/-79713834_5066",
"id": "snsq",
@@ -4392,5 +3542,123 @@
"y": 382,
"z": 1436,
"id": "ywt5"
+ },
+ "57rp": {
+ "type": "button",
+ "text": "END TURN",
+ "clickRoutine": [
+ {
+ "func": "TURN",
+ "turnCycle": "forward"
+ }
+ ],
+ "x": 130,
+ "y": 601,
+ "z": 6033,
+ "id": "57rp"
+ },
+ "us13": {
+ "type": "seat",
+ "x": 1404,
+ "y": 72,
+ "id": "us13",
+ "z": 6027,
+ "hideWhenUnused": true,
+ "color": "#785FEE",
+ "colorEmpty": "#785FEE",
+ "clickRoutine": [
+ {
+ "func": "CLICK",
+ "collection": "thisButton",
+ "mode": "ignoreClickRoutine"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "color",
+ "value": "${PROPERTY colorEmpty}"
+ }
+ ]
+ },
+ "us14": {
+ "type": "seat",
+ "index": 2,
+ "x": 1404,
+ "y": 310,
+ "id": "us14",
+ "z": 6028,
+ "hideWhenUnused": true,
+ "color": "#FFAF00",
+ "colorEmpty": "#FFAF00",
+ "clickRoutine": [
+ {
+ "func": "CLICK",
+ "collection": "thisButton",
+ "mode": "ignoreClickRoutine"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "color",
+ "value": "${PROPERTY colorEmpty}"
+ }
+ ]
+ },
+ "us15": {
+ "type": "seat",
+ "x": 1404,
+ "y": 565,
+ "id": "us15",
+ "z": 6029,
+ "index": 3,
+ "hideWhenUnused": true,
+ "color": "#DD267F",
+ "colorEmpty": "#DD267F",
+ "clickRoutine": [
+ {
+ "func": "CLICK",
+ "collection": "thisButton",
+ "mode": "ignoreClickRoutine"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "color",
+ "value": "${PROPERTY colorEmpty}"
+ }
+ ]
+ },
+ "us16": {
+ "type": "seat",
+ "index": 4,
+ "x": 1404,
+ "y": 795,
+ "id": "us16",
+ "z": 6031,
+ "hideWhenUnused": true,
+ "color": "#FE6100",
+ "colorEmpty": "#FE6100",
+ "clickRoutine": [
+ {
+ "func": "CLICK",
+ "collection": "thisButton",
+ "mode": "ignoreClickRoutine"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "color",
+ "value": "${PROPERTY colorEmpty}"
+ }
+ ]
+ },
+ "emov": {
+ "type": "pile",
+ "parent": "goodie-bag",
+ "x": 6,
+ "y": 6,
+ "width": 50,
+ "height": 50,
+ "id": "emov"
}
}
\ No newline at end of file
diff --git a/library/games/Green Streams/assets/-1154482413_19220 b/library/games/Green Streams/assets/-1154482413_19220
deleted file mode 100644
index 6a0edc7228..0000000000
--- a/library/games/Green Streams/assets/-1154482413_19220
+++ /dev/null
@@ -1,214 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/library/games/Green Streams/assets/-1866911662_42944 b/library/games/Green Streams/assets/-1866911662_42944
new file mode 100644
index 0000000000..c1756bcdee
--- /dev/null
+++ b/library/games/Green Streams/assets/-1866911662_42944
@@ -0,0 +1,1050 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/library/games/Happy Landings/0.json b/library/games/Happy Landings/0.json
new file mode 100644
index 0000000000..b443bbdbaa
--- /dev/null
+++ b/library/games/Happy Landings/0.json
@@ -0,0 +1,4133 @@
+{
+ "_meta": {
+ "version": 17,
+ "info": {
+ "name": "Happy Landings",
+ "image": "/assets/1955387621_478168",
+ "rules": "https://boardgamegeek.com/filepage/265335/havalandi-english-rulebook",
+ "bgg": "https://boardgamegeek.com/boardgame/396543/havalandi",
+ "year": "2023",
+ "mode": "vs",
+ "time": "45",
+ "attribution": "Original programming, design, and layout by QwertyMartin is in the public domain under CC0. Additional functionality incorporated by DexDouglas and is in the public domain under CC0.All icons are from game-icons.net and available for use as described in the About button.
Cover Image generated using https://labs.google/fx/tools/image-fx with prompt \"stained glass image of four hot air balloons , colors black , purple , orange , and teal.\"
",
+ "lastUpdate": 1736982921290,
+ "showName": true,
+ "skill": "Medium",
+ "description": "Take a trip around the scenic landscape and set up your hot air balloons to launch at the best locations to get the most points!",
+ "similarImage": "",
+ "similarName": "Havalandi",
+ "similarDesigner": "Reiner Knizia",
+ "similarAwards": "",
+ "ruleText": "",
+ "helpText": "Click to sit at any seat. Once all players are seated, choose Board A or Board B. If you are playing with 2 players, the board will automatically have some of the spaces filled with neutral pieces. If you are playing a 4-player game, 3 of your 20 balloons will be removed. A random player will be selected to start the game. Their name will be glowing. If you need to revert to the starting setup, hit the Reset button. The two scoring objectives for the game are in the upper right. They are randomly selected when the game is loaded and when resetting, but you can click to change either of these.
On your turn, click the die next to your name to roll. Click and drag the hot air balloon the full number of spaces that you rolled to determine your line of sight. When you are at a corner hex, the balloon's line of sight is along each of the two edges of the board it is next to.
Drag a circular balloon token from either of your holders, according to the rules and place it on the board. If you are done with your turn, hit the \"End Turn\" button to shift the turn to the next player in clockwise order.
When you score points, you can increment them with the + - buttons above your player name, or you can select the value and type in a new amount.
",
+ "variantImage": "",
+ "variant": "Happy Landings",
+ "language": "en-US",
+ "players": "2-4"
+ }
+ },
+ "67r0": {
+ "id": "67r0",
+ "type": "pile",
+ "x": 6,
+ "y": 7,
+ "width": 50,
+ "height": 50,
+ "parent": "tealHolder"
+ },
+ "nns9": {
+ "id": "nns9",
+ "type": "pile",
+ "x": 6,
+ "width": 50,
+ "height": 50,
+ "parent": "purpleHolder"
+ },
+ "v77l": {
+ "id": "v77l",
+ "type": "pile",
+ "x": 6,
+ "y": 8,
+ "width": 50,
+ "height": 50,
+ "parent": "blackHolder"
+ },
+ "uvep": {
+ "id": "uvep",
+ "type": "pile",
+ "x": 6,
+ "y": 7,
+ "width": 50,
+ "height": 50,
+ "parent": "orangeHolder"
+ },
+ "d74579c5-5b85-410f-a789-724293aaccdc": {
+ "id": "d74579c5-5b85-410f-a789-724293aaccdc",
+ "z": 24430,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "76701031-1f26-436d-a66b-f67e47e5dd03": {
+ "id": "76701031-1f26-436d-a66b-f67e47e5dd03",
+ "z": 24431,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "4fa7201a-7403-4e4d-988c-0872ab41a9ed": {
+ "id": "4fa7201a-7403-4e4d-988c-0872ab41a9ed",
+ "z": 24407,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "978d6fb2-a416-448f-be7e-2078bfdd06b8": {
+ "id": "978d6fb2-a416-448f-be7e-2078bfdd06b8",
+ "z": 24432,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "c2f9bb26-7a4a-4820-bede-5a27026baf65": {
+ "id": "c2f9bb26-7a4a-4820-bede-5a27026baf65",
+ "z": 24408,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "754dcc1e-8bfa-4d5f-a89e-d7826266ec46_decrementButton": {
+ "id": "754dcc1e-8bfa-4d5f-a89e-d7826266ec46_decrementButton",
+ "parent": "seat4Score",
+ "x": 4,
+ "y": -2,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "text": "-",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "seat4Score",
+ "mode": "inc",
+ "value": -1
+ }
+ ]
+ },
+ "754dcc1e-8bfa-4d5f-a89e-d7826266ec46_incrementButton": {
+ "id": "754dcc1e-8bfa-4d5f-a89e-d7826266ec46_incrementButton",
+ "parent": "seat4Score",
+ "x": 100,
+ "y": -2,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "text": "+",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "seat4Score",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "db082dcb-c8ff-4a80-9396-b8f2d5bb5d1e": {
+ "id": "db082dcb-c8ff-4a80-9396-b8f2d5bb5d1e",
+ "z": 10088,
+ "type": "card",
+ "deck": "59869004-b3db-4c60-bd64-f0940fb9b27e",
+ "cardType": "type-1e7b37ca-8914-4bfc-b52d-470694c1bfb3",
+ "x": 620,
+ "y": 2000,
+ "2BPagoda": {
+ "x": 1198,
+ "y": 811
+ },
+ "2APagoda": {
+ "x": 620,
+ "y": 2000
+ }
+ },
+ "d0c10176-b42f-448f-8dbf-a203c45ea83e": {
+ "id": "d0c10176-b42f-448f-8dbf-a203c45ea83e",
+ "z": 24433,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "afbf392d-45e9-4abc-8d9c-99995bd1c11e": {
+ "id": "afbf392d-45e9-4abc-8d9c-99995bd1c11e",
+ "x": 1072.53,
+ "y": 336.14,
+ "z": 5071,
+ "type": "deck",
+ "cardTypes": {
+ "chooser": {
+ "sortingOrder": 1
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "width": 120,
+ "height": 170,
+ "type": "image",
+ "color": "white",
+ "value": ""
+ },
+ {
+ "type": "text",
+ "x": 0,
+ "y": 14.41,
+ "fontSize": "22",
+ "value": "1VP for each isolated balloon",
+ "textAlign": "center",
+ "textFont": null,
+ "color": "rgb(0,0,0)",
+ "width": 120
+ }
+ ],
+ "border": false,
+ "radius": false
+ },
+ {
+ "objects": [
+ {
+ "width": 120,
+ "height": 170,
+ "type": "image",
+ "color": "white",
+ "value": ""
+ },
+ {
+ "type": "text",
+ "x": 0,
+ "y": 14.41,
+ "fontSize": "22",
+ "value": "1VP for each launched balloon on path",
+ "textAlign": "center",
+ "textFont": null,
+ "color": "rgb(0,0,0)",
+ "width": 120
+ }
+ ],
+ "border": false,
+ "radius": false
+ },
+ {
+ "objects": [
+ {
+ "width": 120,
+ "height": 170,
+ "type": "image",
+ "color": "white",
+ "value": ""
+ },
+ {
+ "type": "text",
+ "x": 0,
+ "y": 14.41,
+ "fontSize": "22",
+ "value": "1VP for each launched balloon on edge",
+ "textAlign": "center",
+ "textFont": null,
+ "color": "rgb(0,0,0)",
+ "width": 120
+ }
+ ],
+ "border": false,
+ "radius": false
+ },
+ {
+ "objects": [
+ {
+ "width": 120,
+ "height": 170,
+ "type": "image",
+ "color": "white",
+ "value": ""
+ },
+ {
+ "type": "text",
+ "x": 0,
+ "y": 14.41,
+ "fontSize": "22",
+ "value": "8/4VP for most/2nd launched balloons",
+ "textAlign": "center",
+ "textFont": null,
+ "color": "rgb(0,0,0)",
+ "width": 120
+ }
+ ],
+ "border": false,
+ "radius": false
+ },
+ {
+ "objects": [
+ {
+ "width": 120,
+ "height": 170,
+ "type": "image",
+ "color": "white",
+ "value": ""
+ },
+ {
+ "type": "text",
+ "x": 0,
+ "y": 14.41,
+ "fontSize": "22",
+ "value": "1VP for each launched balloon in biggest fleet",
+ "textAlign": "center",
+ "textFont": null,
+ "color": "rgb(0,0,0)",
+ "width": 120
+ }
+ ],
+ "border": false,
+ "radius": false
+ },
+ {
+ "objects": [
+ {
+ "width": 120,
+ "height": 170,
+ "type": "image",
+ "color": "white",
+ "value": ""
+ },
+ {
+ "type": "text",
+ "x": 0,
+ "y": 14.41,
+ "fontSize": "22",
+ "value": "1VP for each balloon in edge-to-edge chain",
+ "textAlign": "center",
+ "textFont": null,
+ "color": "rgb(0,0,0)",
+ "width": 120
+ }
+ ],
+ "border": false,
+ "radius": false
+ },
+ {
+ "objects": [
+ {
+ "width": 120,
+ "height": 170,
+ "type": "image",
+ "color": "white",
+ "value": ""
+ },
+ {
+ "type": "text",
+ "x": 0,
+ "y": 14.41,
+ "fontSize": "22",
+ "value": "8VP for connecting four pavilions",
+ "textAlign": "center",
+ "textFont": null,
+ "color": "rgb(0,0,0)",
+ "width": 120
+ }
+ ],
+ "border": false,
+ "radius": false
+ }
+ ],
+ "cardDefaults": {
+ "width": 120,
+ "height": 170,
+ "movable": false,
+ "borderRadius": 12,
+ "css": "border: 4px solid #dedede",
+ "clickRoutine": [
+ {
+ "func": "INPUT",
+ "fields": [
+ {
+ "type": "choose",
+ "source": [
+ "${PROPERTY id}"
+ ],
+ "mode": "faces",
+ "variable": "face"
+ }
+ ]
+ },
+ {
+ "func": "SET",
+ "property": "activeFace",
+ "value": "${face}"
+ }
+ ]
+ }
+ },
+ "e75b075c-7b0c-43f5-9014-6ad6786970c1": {
+ "id": "e75b075c-7b0c-43f5-9014-6ad6786970c1",
+ "x": 58,
+ "y": 4,
+ "z": 24404,
+ "type": "card",
+ "deck": "blackSpecials",
+ "cardType": "type-7e3a5dfc-2369-4fbf-914d-db1890946dc4",
+ "parent": "blackSpecialsHolder"
+ },
+ "811f6b88-781a-4513-9d8c-b422b5f41796": {
+ "id": "811f6b88-781a-4513-9d8c-b422b5f41796",
+ "z": 24409,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "59869004-b3db-4c60-bd64-f0940fb9b27e": {
+ "id": "59869004-b3db-4c60-bd64-f0940fb9b27e",
+ "x": 1169.51,
+ "y": 337.6,
+ "z": 6385,
+ "type": "deck",
+ "cardTypes": {
+ "type-0c796687-dc9c-4688-b9ce-7709d00344d8": {
+ "label": "white pavilion",
+ "image": "/assets/1477033782_3780",
+ "sortingOrder": 1
+ },
+ "type-1e7b37ca-8914-4bfc-b52d-470694c1bfb3": {
+ "image": "/assets/1102741850_3782",
+ "label": "red pavilion",
+ "sortingOrder": 2
+ },
+ "type-553c5e7a-db4c-4d64-bf03-093fb895271f": {
+ "label": "blue pavilion",
+ "image": "/assets/-350134830_3780",
+ "sortingOrder": 3
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image1"
+ }
+ }
+ ],
+ "border": false,
+ "radius": false
+ }
+ ],
+ "cardDefaults": {
+ "width": 50,
+ "height": 50,
+ "movable": false,
+ "onPileCreation": {
+ "nothing": "nothing"
+ }
+ }
+ },
+ "2d794eba-d39d-4e0b-9b93-5faadb21d7c5": {
+ "id": "2d794eba-d39d-4e0b-9b93-5faadb21d7c5",
+ "z": 24410,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "cbcba8d7-c6ab-419d-af2d-9b5c4ac18518": {
+ "id": "cbcba8d7-c6ab-419d-af2d-9b5c4ac18518",
+ "z": 24384,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "274824c8-0ec5-4b1a-8544-52cca47724f2": {
+ "id": "274824c8-0ec5-4b1a-8544-52cca47724f2",
+ "z": 24411,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "100875a6-cd06-4fe0-b40b-386fd7d6da5f": {
+ "id": "100875a6-cd06-4fe0-b40b-386fd7d6da5f",
+ "z": 24453,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "00639723-4d3a-4eab-894e-3009c79e0ff4": {
+ "id": "00639723-4d3a-4eab-894e-3009c79e0ff4",
+ "x": 56,
+ "y": 6,
+ "z": 24473,
+ "type": "card",
+ "deck": "orangeSpecials",
+ "cardType": "type-7e3a5dfc-2369-4fbf-914d-db1890946dc4",
+ "parent": "orangeSpecialsHolder"
+ },
+ "0334024c-4b07-44aa-88c6-88281d9129f6": {
+ "id": "0334024c-4b07-44aa-88c6-88281d9129f6",
+ "z": 24385,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "f55a115d-a50a-4b5c-a35a-92bfe5687298": {
+ "id": "f55a115d-a50a-4b5c-a35a-92bfe5687298",
+ "z": 24434,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "f3e798d4-b5ba-4478-9142-76bd80f75ed6": {
+ "id": "f3e798d4-b5ba-4478-9142-76bd80f75ed6",
+ "z": 24454,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "efd5f93f-0dd4-49fc-ac70-542240f086c8": {
+ "id": "efd5f93f-0dd4-49fc-ac70-542240f086c8",
+ "z": 24455,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "f0e079b7-1254-4d08-9492-50414cd63c8e": {
+ "id": "f0e079b7-1254-4d08-9492-50414cd63c8e",
+ "x": 106,
+ "y": 6,
+ "z": 24450,
+ "type": "card",
+ "deck": "tealSpecials",
+ "cardType": "type-b0b5da2c-113d-4818-8276-4f122d786546",
+ "parent": "tealSpecialsHolder"
+ },
+ "04cc49c9-cd99-4e2b-9407-e31bd3313311": {
+ "id": "04cc49c9-cd99-4e2b-9407-e31bd3313311",
+ "z": 24412,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "614c1fa8-d1e6-4cf7-b159-2ba4e33788a9": {
+ "id": "614c1fa8-d1e6-4cf7-b159-2ba4e33788a9",
+ "x": 4,
+ "y": 4,
+ "z": 24405,
+ "type": "card",
+ "deck": "blackSpecials",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "hoverParent": "blackSpecialsHolder",
+ "parent": "blackSpecialsHolder"
+ },
+ "2cd12869-65a6-4aca-ab1e-cca6ed49a7e8": {
+ "id": "2cd12869-65a6-4aca-ab1e-cca6ed49a7e8",
+ "x": 620,
+ "y": 2000,
+ "z": 10082,
+ "type": "card",
+ "deck": "59869004-b3db-4c60-bd64-f0940fb9b27e",
+ "cardType": "type-1e7b37ca-8914-4bfc-b52d-470694c1bfb3",
+ "2BPagoda": {
+ "x": 390,
+ "y": 879
+ },
+ "2APagoda": {
+ "x": 620,
+ "y": 2000
+ }
+ },
+ "de76e834-4a43-4efa-a54c-ef66752413e0": {
+ "id": "de76e834-4a43-4efa-a54c-ef66752413e0",
+ "z": 24456,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "1d684051-06e5-45ae-819d-ef5b72213b00": {
+ "id": "1d684051-06e5-45ae-819d-ef5b72213b00",
+ "z": 24386,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "ee94c8b9-1f89-42f4-ada6-b5df9f5fc495": {
+ "id": "ee94c8b9-1f89-42f4-ada6-b5df9f5fc495",
+ "z": 24413,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "3b9698c6-398b-46b3-877c-7c66c2fb23cb": {
+ "id": "3b9698c6-398b-46b3-877c-7c66c2fb23cb",
+ "z": 24387,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "58b14639-d08c-4a2b-b84a-7385efd35f1f": {
+ "id": "58b14639-d08c-4a2b-b84a-7385efd35f1f",
+ "z": 24414,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "5a6f0135-58bc-4c5c-9a88-a93e05c697a1": {
+ "id": "5a6f0135-58bc-4c5c-9a88-a93e05c697a1",
+ "z": 24457,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "4d627d20-dd97-470d-a8b0-760bb246d7ca": {
+ "id": "4d627d20-dd97-470d-a8b0-760bb246d7ca",
+ "z": 24435,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "2738bfca-547f-4e0a-a643-7b43dc21fafa": {
+ "id": "2738bfca-547f-4e0a-a643-7b43dc21fafa",
+ "z": 24415,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "c8ba4295-1a06-4559-881d-e4136d9b5258": {
+ "id": "c8ba4295-1a06-4559-881d-e4136d9b5258",
+ "z": 24436,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "40201a4d-fcb7-4cd7-a342-858efda22c49_decrementButton": {
+ "id": "40201a4d-fcb7-4cd7-a342-858efda22c49_decrementButton",
+ "parent": "seat1Score",
+ "x": 4,
+ "y": -2,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "text": "-",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "seat1Score",
+ "mode": "inc",
+ "value": -1
+ }
+ ]
+ },
+ "40201a4d-fcb7-4cd7-a342-858efda22c49_incrementButton": {
+ "id": "40201a4d-fcb7-4cd7-a342-858efda22c49_incrementButton",
+ "parent": "seat1Score",
+ "x": 100,
+ "y": -2,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "text": "+",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "seat1Score",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "c9b73543-ad5e-4104-b6eb-58851c14328c": {
+ "id": "c9b73543-ad5e-4104-b6eb-58851c14328c",
+ "x": 106,
+ "y": 6,
+ "z": 24474,
+ "type": "card",
+ "deck": "orangeSpecials",
+ "cardType": "type-b0b5da2c-113d-4818-8276-4f122d786546",
+ "parent": "orangeSpecialsHolder"
+ },
+ "e35ec8e1-0ce6-4b2b-b6db-497d0fcbc962": {
+ "id": "e35ec8e1-0ce6-4b2b-b6db-497d0fcbc962",
+ "z": 24458,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "2b9c82db-4ad5-4332-ad7e-2da51e0b9492": {
+ "id": "2b9c82db-4ad5-4332-ad7e-2da51e0b9492",
+ "z": 24388,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "e4a4dca3-345b-46a0-9397-23596ea4cb75": {
+ "id": "e4a4dca3-345b-46a0-9397-23596ea4cb75",
+ "x": 620,
+ "y": 2000,
+ "z": 10079,
+ "type": "card",
+ "deck": "59869004-b3db-4c60-bd64-f0940fb9b27e",
+ "cardType": "type-1e7b37ca-8914-4bfc-b52d-470694c1bfb3",
+ "2BPagoda": {
+ "x": 735,
+ "y": 147
+ },
+ "2APagoda": {
+ "x": 620,
+ "y": 2000
+ }
+ },
+ "e4e9b716-d3b6-46e1-9fa1-3207fa66159a": {
+ "id": "e4e9b716-d3b6-46e1-9fa1-3207fa66159a",
+ "z": 24416,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "b63c4537-5804-45f6-a72e-df228bba8c8c": {
+ "id": "b63c4537-5804-45f6-a72e-df228bba8c8c",
+ "z": 24417,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "bdf1ac0f-523e-40ee-8c25-86ef88b3cba8": {
+ "id": "bdf1ac0f-523e-40ee-8c25-86ef88b3cba8",
+ "z": 24437,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "d96e9ed8-7ad7-47e9-9ce6-15666a2be1d6": {
+ "id": "d96e9ed8-7ad7-47e9-9ce6-15666a2be1d6",
+ "z": 24459,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "56facb61-e746-48aa-ab6a-dee718c0f6c9": {
+ "id": "56facb61-e746-48aa-ab6a-dee718c0f6c9",
+ "z": 24460,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "9a0fda64-95c6-4e2e-b76d-b7f713e79415": {
+ "id": "9a0fda64-95c6-4e2e-b76d-b7f713e79415",
+ "z": 24389,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "1720c3a3-c41c-4573-8d3c-a9d305ad437e": {
+ "id": "1720c3a3-c41c-4573-8d3c-a9d305ad437e",
+ "z": 24390,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "8eedd904-16a0-4f3a-be32-6f39e1202d4c": {
+ "id": "8eedd904-16a0-4f3a-be32-6f39e1202d4c",
+ "z": 5049,
+ "type": "card",
+ "deck": "59869004-b3db-4c60-bd64-f0940fb9b27e",
+ "cardType": "type-0c796687-dc9c-4688-b9ce-7709d00344d8",
+ "2APagoda": {
+ "x": 620,
+ "y": 343
+ },
+ "2BPagoda": {
+ "x": 620,
+ "y": 343
+ },
+ "x": 620,
+ "y": 343
+ },
+ "f11610f9-9d2e-4160-9b70-a1d064940ca3": {
+ "id": "f11610f9-9d2e-4160-9b70-a1d064940ca3",
+ "z": 24438,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "abed8c4a-4ee1-4fdf-9f56-cab60ce4e304": {
+ "id": "abed8c4a-4ee1-4fdf-9f56-cab60ce4e304",
+ "z": 24461,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "251e7247-f058-462f-9aa7-69279ad4a491": {
+ "id": "251e7247-f058-462f-9aa7-69279ad4a491",
+ "z": 24439,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "6510e655-b6a6-4380-ab7e-cfbf857a31c0": {
+ "id": "6510e655-b6a6-4380-ab7e-cfbf857a31c0",
+ "z": 24418,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "abe91c08-99cb-4427-aa01-fa8ccd048084": {
+ "id": "abe91c08-99cb-4427-aa01-fa8ccd048084",
+ "z": 24462,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "9d304d21-e0b8-484f-b5e5-c83c62ecad1f": {
+ "id": "9d304d21-e0b8-484f-b5e5-c83c62ecad1f",
+ "z": 24463,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "aea5a550-333e-42a2-948f-7d4090816e50": {
+ "id": "aea5a550-333e-42a2-948f-7d4090816e50",
+ "z": 24440,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "babcf820-30c0-4efa-a966-aaf8e804779a": {
+ "id": "babcf820-30c0-4efa-a966-aaf8e804779a",
+ "z": 24391,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "db662b1b-5eb6-495f-8656-df72c54abbaf": {
+ "id": "db662b1b-5eb6-495f-8656-df72c54abbaf",
+ "z": 24419,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "c1c813b3-981c-421a-bd98-2d4e95f879e0": {
+ "id": "c1c813b3-981c-421a-bd98-2d4e95f879e0",
+ "z": 24441,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "057d166b-5f76-4b7a-ba18-d20aad695557": {
+ "id": "057d166b-5f76-4b7a-ba18-d20aad695557",
+ "z": 24464,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "59aa59e4-a86a-4d6e-8d0a-2b5836c9eb75": {
+ "id": "59aa59e4-a86a-4d6e-8d0a-2b5836c9eb75",
+ "z": 24442,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "cb74cfb1-41fa-4dd4-8e06-ded9d9c36506": {
+ "id": "cb74cfb1-41fa-4dd4-8e06-ded9d9c36506",
+ "z": 24392,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "744694e5-d728-4271-88ff-c7270f03bcad": {
+ "id": "744694e5-d728-4271-88ff-c7270f03bcad",
+ "x": 929,
+ "y": 877,
+ "z": 10078,
+ "type": "card",
+ "deck": "59869004-b3db-4c60-bd64-f0940fb9b27e",
+ "cardType": "type-0c796687-dc9c-4688-b9ce-7709d00344d8",
+ "2APagoda": {
+ "x": 929,
+ "y": 877
+ },
+ "2BPagoda": {
+ "x": 621,
+ "y": 876
+ }
+ },
+ "6a45a754-70e3-4ebd-87d5-6ef732f8e064": {
+ "id": "6a45a754-70e3-4ebd-87d5-6ef732f8e064",
+ "x": 6,
+ "y": 6,
+ "z": 24475,
+ "type": "card",
+ "deck": "orangeSpecials",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "orangeSpecialsHolder"
+ },
+ "2e059fd9-3703-474f-98ed-41333c3d4da6": {
+ "id": "2e059fd9-3703-474f-98ed-41333c3d4da6",
+ "z": 24393,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "6a68d02b-9230-4e74-9539-a4f55b13acd7": {
+ "id": "6a68d02b-9230-4e74-9539-a4f55b13acd7",
+ "x": 56,
+ "y": 6,
+ "z": 24451,
+ "type": "card",
+ "deck": "tealSpecials",
+ "cardType": "type-7e3a5dfc-2369-4fbf-914d-db1890946dc4",
+ "parent": "tealSpecialsHolder"
+ },
+ "d9a02436-3799-48cb-a36f-761550ac74a2": {
+ "id": "d9a02436-3799-48cb-a36f-761550ac74a2",
+ "z": 24394,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "3e45941a-b001-472a-960e-6ae30dfe7949": {
+ "id": "3e45941a-b001-472a-960e-6ae30dfe7949",
+ "x": 58,
+ "y": 4,
+ "z": 24427,
+ "type": "card",
+ "deck": "purpleSpecials",
+ "cardType": "type-7e3a5dfc-2369-4fbf-914d-db1890946dc4",
+ "hoverParent": "purpleSpecialsHolder",
+ "parent": "purpleSpecialsHolder"
+ },
+ "3d876751-20c1-49e5-842a-fc6582f55e7b": {
+ "id": "3d876751-20c1-49e5-842a-fc6582f55e7b",
+ "z": 24443,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "8260eaa7-c846-43cb-9454-6d6086fe52d2": {
+ "id": "8260eaa7-c846-43cb-9454-6d6086fe52d2",
+ "x": 6,
+ "y": 6,
+ "z": 24452,
+ "type": "card",
+ "deck": "tealSpecials",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "tealSpecialsHolder"
+ },
+ "0ab6dc03-d435-4f00-b5aa-e4f4a9755351": {
+ "id": "0ab6dc03-d435-4f00-b5aa-e4f4a9755351",
+ "z": 24395,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "d15a05f2-b831-4d9c-abeb-3f7e4ea15350": {
+ "id": "d15a05f2-b831-4d9c-abeb-3f7e4ea15350",
+ "z": 24465,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "7261d823-81d7-4abf-b2ab-17b139801dc5": {
+ "id": "7261d823-81d7-4abf-b2ab-17b139801dc5",
+ "z": 24444,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "d2c09058-fccf-4604-82c3-6fd1034ce132": {
+ "id": "d2c09058-fccf-4604-82c3-6fd1034ce132",
+ "z": 24396,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "d6ec113b-1f4a-41f0-a4b6-3719caf6324e": {
+ "id": "d6ec113b-1f4a-41f0-a4b6-3719caf6324e",
+ "z": 24466,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "738b00d2-04c5-449b-958c-c8f26c085b24": {
+ "id": "738b00d2-04c5-449b-958c-c8f26c085b24",
+ "z": 24445,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "a7f20de5-4706-4404-a1f8-6b065aacab25": {
+ "id": "a7f20de5-4706-4404-a1f8-6b065aacab25",
+ "z": 24420,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "ae6bf9a1-a77c-426a-8912-ad01eef6150a": {
+ "id": "ae6bf9a1-a77c-426a-8912-ad01eef6150a",
+ "z": 24421,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "927dfeec-a581-4a08-a681-5d5501596d59": {
+ "id": "927dfeec-a581-4a08-a681-5d5501596d59",
+ "z": 24397,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "c2c0d233-b85c-4943-b75b-d9d5a6e57929": {
+ "id": "c2c0d233-b85c-4943-b75b-d9d5a6e57929",
+ "z": 24398,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "6a8bf813-cf6a-4d23-94ab-ed892049887d": {
+ "id": "6a8bf813-cf6a-4d23-94ab-ed892049887d",
+ "z": 24446,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "808287fb-2a0f-470e-9740-0fcf1c35b319": {
+ "id": "808287fb-2a0f-470e-9740-0fcf1c35b319",
+ "z": 24399,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "fc32a037-81b5-46be-99a4-2d8c8feddace": {
+ "id": "fc32a037-81b5-46be-99a4-2d8c8feddace",
+ "z": 24467,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "5c9a042b-6b1a-413a-a1df-bebf8338c85f": {
+ "id": "5c9a042b-6b1a-413a-a1df-bebf8338c85f",
+ "z": 24400,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "fd36886e-44ae-4dbe-9794-3c44d2ed16a8_decrementButton": {
+ "id": "fd36886e-44ae-4dbe-9794-3c44d2ed16a8_decrementButton",
+ "parent": "seat3Score",
+ "x": 4,
+ "y": -2,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "text": "-",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "seat3Score",
+ "mode": "inc",
+ "value": -1
+ }
+ ]
+ },
+ "fd36886e-44ae-4dbe-9794-3c44d2ed16a8_incrementButton": {
+ "id": "fd36886e-44ae-4dbe-9794-3c44d2ed16a8_incrementButton",
+ "parent": "seat3Score",
+ "x": 100,
+ "y": -2,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "text": "+",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "seat3Score",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "f6500f56-ff77-4fe3-8604-f2c5d2e17676": {
+ "id": "f6500f56-ff77-4fe3-8604-f2c5d2e17676",
+ "z": 24447,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "bad0df35-6966-4a1b-9bcd-5a43a6539ecc": {
+ "id": "bad0df35-6966-4a1b-9bcd-5a43a6539ecc",
+ "z": 24422,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "474d8f9f-fca2-4d8f-9145-f26c19ee87ae": {
+ "id": "474d8f9f-fca2-4d8f-9145-f26c19ee87ae",
+ "x": 112,
+ "y": 4,
+ "z": 24406,
+ "type": "card",
+ "deck": "blackSpecials",
+ "cardType": "type-b0b5da2c-113d-4818-8276-4f122d786546",
+ "hoverParent": "blackSpecialsHolder",
+ "parent": "blackSpecialsHolder"
+ },
+ "73362c02-9b7d-44da-9dde-55c80f9a2224": {
+ "id": "73362c02-9b7d-44da-9dde-55c80f9a2224",
+ "z": 24448,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "cded1726-40f9-40de-9a85-cf0d1e95c575": {
+ "id": "cded1726-40f9-40de-9a85-cf0d1e95c575",
+ "z": 24401,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "f567983d-7a22-4c70-ba5a-d0638717f1a3": {
+ "id": "f567983d-7a22-4c70-ba5a-d0638717f1a3",
+ "z": 24468,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "db306fee-5078-4c31-a04c-4ac06c84eeb1": {
+ "id": "db306fee-5078-4c31-a04c-4ac06c84eeb1",
+ "z": 24402,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "30650195-3c8a-493e-914e-5106ef43d1b3": {
+ "id": "30650195-3c8a-493e-914e-5106ef43d1b3",
+ "x": 4,
+ "y": 4,
+ "z": 24428,
+ "type": "card",
+ "deck": "purpleSpecials",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "hoverParent": "purpleSpecialsHolder",
+ "parent": "purpleSpecialsHolder"
+ },
+ "81a97c64-3136-4e1b-806e-be396259f4d6": {
+ "id": "81a97c64-3136-4e1b-806e-be396259f4d6",
+ "z": 24403,
+ "type": "card",
+ "deck": "blackDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "v77l"
+ },
+ "1195c6b6-600d-4ac2-97bc-7b8b58b3f373": {
+ "id": "1195c6b6-600d-4ac2-97bc-7b8b58b3f373",
+ "z": 24469,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "7223e608-37de-4304-bc4d-1bf2b5fe7f17": {
+ "id": "7223e608-37de-4304-bc4d-1bf2b5fe7f17",
+ "z": 24423,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "be05bd15-a631-4681-8d64-3d58dad78464": {
+ "id": "be05bd15-a631-4681-8d64-3d58dad78464",
+ "z": 24424,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "7e229d7f-fbcf-4d24-900e-7758ed121678": {
+ "id": "7e229d7f-fbcf-4d24-900e-7758ed121678",
+ "z": 24425,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "b82a3655-dc4a-438a-9e86-627f0421af4a": {
+ "id": "b82a3655-dc4a-438a-9e86-627f0421af4a",
+ "x": 112,
+ "y": 4,
+ "z": 24429,
+ "type": "card",
+ "deck": "purpleSpecials",
+ "cardType": "type-b0b5da2c-113d-4818-8276-4f122d786546",
+ "parent": "purpleSpecialsHolder"
+ },
+ "91ffc20b-b6f9-459f-b239-24f266fcb87b_decrementButton": {
+ "id": "91ffc20b-b6f9-459f-b239-24f266fcb87b_decrementButton",
+ "parent": "seat2Score",
+ "x": 4,
+ "y": -2,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "text": "-",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "seat2Score",
+ "mode": "inc",
+ "value": -1
+ }
+ ]
+ },
+ "91ffc20b-b6f9-459f-b239-24f266fcb87b_incrementButton": {
+ "id": "91ffc20b-b6f9-459f-b239-24f266fcb87b_incrementButton",
+ "parent": "seat2Score",
+ "x": 100,
+ "y": -2,
+ "width": 36,
+ "height": 36,
+ "type": "button",
+ "movableInEdit": false,
+ "text": "+",
+ "clickRoutine": [
+ {
+ "func": "LABEL",
+ "label": "seat2Score",
+ "mode": "inc",
+ "value": 1
+ }
+ ]
+ },
+ "964fdd93-0369-4cd7-beba-bd70124d9317": {
+ "id": "964fdd93-0369-4cd7-beba-bd70124d9317",
+ "x": 889,
+ "y": 276,
+ "z": 10077,
+ "type": "card",
+ "deck": "59869004-b3db-4c60-bd64-f0940fb9b27e",
+ "cardType": "type-0c796687-dc9c-4688-b9ce-7709d00344d8",
+ "2APagoda": {
+ "x": 889,
+ "y": 276
+ },
+ "2BPagoda": {
+ "x": 1082,
+ "y": 612
+ }
+ },
+ "da2f4b01-ec23-4dbf-b984-886510f4a4ab": {
+ "id": "da2f4b01-ec23-4dbf-b984-886510f4a4ab",
+ "z": 24426,
+ "type": "card",
+ "deck": "purpleDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "nns9"
+ },
+ "d8a389d5-74a1-473b-968a-0ef7ac6c3eeb": {
+ "id": "d8a389d5-74a1-473b-968a-0ef7ac6c3eeb",
+ "z": 24449,
+ "type": "card",
+ "deck": "tealDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "67r0"
+ },
+ "1e31fa5a-ff7f-40ee-ba0f-741cbac012f9": {
+ "id": "1e31fa5a-ff7f-40ee-ba0f-741cbac012f9",
+ "z": 24470,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "12f545cf-da6e-4782-98d4-10512833f5e1": {
+ "id": "12f545cf-da6e-4782-98d4-10512833f5e1",
+ "z": 24471,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "14e68902-efcb-4f79-9f8e-e6405e1b218a": {
+ "id": "14e68902-efcb-4f79-9f8e-e6405e1b218a",
+ "z": 24472,
+ "type": "card",
+ "deck": "orangeDeck",
+ "cardType": "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1",
+ "parent": "uvep"
+ },
+ "eb41a386-2b18-40ce-bf59-de963e585407": {
+ "id": "eb41a386-2b18-40ce-bf59-de963e585407",
+ "x": 620,
+ "y": 2000,
+ "z": 10084,
+ "type": "card",
+ "deck": "59869004-b3db-4c60-bd64-f0940fb9b27e",
+ "cardType": "type-553c5e7a-db4c-4d64-bf03-093fb895271f",
+ "2BPagoda": {
+ "x": 928,
+ "y": 346
+ },
+ "2APagoda": {
+ "x": 620,
+ "y": 2000
+ }
+ },
+ "7c37cdad-92d4-4ef0-abd4-1c0894e573ed": {
+ "id": "7c37cdad-92d4-4ef0-abd4-1c0894e573ed",
+ "x": 620,
+ "y": 2000,
+ "z": 10085,
+ "type": "card",
+ "deck": "59869004-b3db-4c60-bd64-f0940fb9b27e",
+ "cardType": "type-553c5e7a-db4c-4d64-bf03-093fb895271f",
+ "2BPagoda": {
+ "x": 464,
+ "y": 611
+ },
+ "2APagoda": {
+ "x": 620,
+ "y": 2000
+ }
+ },
+ "e1bb10b2-723c-4b61-8504-03ce5d33efd7": {
+ "id": "e1bb10b2-723c-4b61-8504-03ce5d33efd7",
+ "x": 620,
+ "y": 2000,
+ "z": 10086,
+ "type": "card",
+ "deck": "59869004-b3db-4c60-bd64-f0940fb9b27e",
+ "cardType": "type-553c5e7a-db4c-4d64-bf03-093fb895271f",
+ "2BPagoda": {
+ "x": 927,
+ "y": 877
+ },
+ "2APagoda": {
+ "x": 620,
+ "y": 2000
+ }
+ },
+ "seat1": {
+ "type": "seat",
+ "id": "seat1",
+ "x": 47,
+ "y": 86,
+ "color": "black",
+ "colorEmpty": "black",
+ "clickRoutine": [
+ {
+ "func": "CLICK",
+ "collection": "thisButton",
+ "mode": "ignoreClickRoutine"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "color",
+ "value": "${PROPERTY colorEmpty}"
+ }
+ ],
+ "hideWhenUnused": true
+ },
+ "seat2": {
+ "type": "seat",
+ "id": "seat2",
+ "x": 1366,
+ "y": 86,
+ "index": 2,
+ "linkedToSeat": "seat2",
+ "hideWhenUnused": true,
+ "color": "#00ffd5",
+ "colorEmpty": "#00ffd5",
+ "clickRoutine": [
+ {
+ "func": "CLICK",
+ "collection": "thisButton",
+ "mode": "ignoreClickRoutine"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "color",
+ "value": "${PROPERTY colorEmpty}"
+ }
+ ]
+ },
+ "seat3": {
+ "type": "seat",
+ "id": "seat3",
+ "x": 1365,
+ "y": 536,
+ "index": 3,
+ "color": "#ffae00",
+ "colorEmpty": "#ffae00",
+ "hideWhenUnused": true,
+ "linkedToSeat": "seat3",
+ "clickRoutine": [
+ {
+ "func": "CLICK",
+ "collection": "thisButton",
+ "mode": "ignoreClickRoutine"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "color",
+ "value": "${PROPERTY colorEmpty}"
+ }
+ ]
+ },
+ "seat4": {
+ "type": "seat",
+ "id": "seat4",
+ "x": 47,
+ "y": 536,
+ "index": 4,
+ "color": "#b626df",
+ "colorEmpty": "#b626df",
+ "hideWhenUnused": true,
+ "clickRoutine": [
+ {
+ "func": "CLICK",
+ "collection": "thisButton",
+ "mode": "ignoreClickRoutine"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "color",
+ "value": "${PROPERTY colorEmpty}"
+ }
+ ]
+ },
+ "8uh4": {
+ "type": "dice",
+ "x": 222,
+ "y": 177,
+ "z": 6387,
+ "faces": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6
+ ],
+ "id": "8uh4",
+ "color": "black",
+ "rollCount": 7,
+ "linkedToSeat": "seat1"
+ },
+ "7jco": {
+ "type": "dice",
+ "x": 1314,
+ "y": 177,
+ "z": 6388,
+ "faces": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6
+ ],
+ "id": "7jco",
+ "color": "#00ffd5",
+ "linkedToSeat": "seat2",
+ "hideWhenUnused": true
+ },
+ "cjdj": {
+ "type": "dice",
+ "x": 1314,
+ "y": 635,
+ "z": 6389,
+ "faces": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6
+ ],
+ "id": "cjdj",
+ "color": "#ffae00",
+ "linkedToSeat": "seat3"
+ },
+ "h273": {
+ "type": "dice",
+ "x": 224,
+ "y": 634,
+ "z": 6390,
+ "faces": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6
+ ],
+ "id": "h273",
+ "color": "#b626df",
+ "linkedToSeat": "seat4",
+ "hideWhenUnused": true,
+ "rollCount": 1
+ },
+ "nvi0": {
+ "type": "button",
+ "text": "End Turn",
+ "clickRoutine": [
+ {
+ "func": "TURN"
+ }
+ ],
+ "x": 224,
+ "y": 75,
+ "z": 5171,
+ "id": "nvi0",
+ "hideWhenUnused": true,
+ "linkedToSeat": "seat1"
+ },
+ "nvi1": {
+ "type": "button",
+ "text": "End Turn",
+ "clickRoutine": [
+ {
+ "func": "TURN"
+ }
+ ],
+ "x": 224,
+ "y": 525,
+ "z": 5171,
+ "id": "nvi1",
+ "linkedToSeat": "seat4",
+ "hideWhenUnused": true
+ },
+ "nvi2": {
+ "type": "button",
+ "text": "End Turn",
+ "clickRoutine": [
+ {
+ "func": "TURN"
+ }
+ ],
+ "x": 1280,
+ "y": 525,
+ "z": 5171,
+ "id": "nvi2",
+ "linkedToSeat": "seat3"
+ },
+ "nvi3": {
+ "type": "button",
+ "text": "End Turn",
+ "clickRoutine": [
+ {
+ "func": "TURN"
+ }
+ ],
+ "x": 1280,
+ "y": 75,
+ "z": 5171,
+ "id": "nvi3",
+ "linkedToSeat": "seat2",
+ "hideWhenUnused": true
+ },
+ "whiteDie": {
+ "type": "dice",
+ "id": "whiteDie",
+ "x": 782,
+ "z": 6386,
+ "activeFace": 2,
+ "rollCount": 3,
+ "y": -75
+ },
+ "setupBoardA": {
+ "type": "button",
+ "id": "setupBoardA",
+ "x": 381,
+ "y": 5,
+ "width": 100,
+ "height": 40,
+ "z": 5172,
+ "text": "Board A",
+ "clickRoutine": [
+ {
+ "func": "TURN",
+ "turnCycle": "random"
+ },
+ {
+ "func": "INPUT",
+ "header": "Ready to start?",
+ "fields": [
+ {
+ "type": "text",
+ "text": "Is everyone seated?"
+ }
+ ]
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "boardB"
+ ],
+ "property": "display",
+ "value": false
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "boardA"
+ ],
+ "property": "display",
+ "value": true
+ },
+ {
+ "func": "RECALL",
+ "holder": [
+ "blackHolder",
+ "blackSpecialsHolder",
+ "purpleHolder",
+ "purpleSpecialsHolder",
+ "tealHolder",
+ "tealSpecialsHolder",
+ "orangeHolder",
+ "orangeSpecialsHolder"
+ ],
+ "owned": false
+ },
+ {
+ "func": "FLIP",
+ "holder": [
+ "blackHolder",
+ "blackSpecialsHolder",
+ "purpleHolder",
+ "purpleSpecialsHolder",
+ "tealHolder",
+ "tealSpecialsHolder",
+ "orangeHolder",
+ "orangeSpecialsHolder"
+ ],
+ "face": 0
+ },
+ {
+ "func": "SELECT",
+ "property": "otherReset",
+ "relation": "!=",
+ "value": null
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "FOREACH",
+ "in": "${PROPERTY otherReset OF $widgetID}",
+ "loopRoutine": [
+ {
+ "func": "SET",
+ "property": "${key}",
+ "value": "${value}"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "func": "SELECT",
+ "property": "2APagoda",
+ "relation": "!=",
+ "value": null
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "FOREACH",
+ "in": "${PROPERTY 2APagoda OF $widgetID}",
+ "loopRoutine": [
+ {
+ "func": "SET",
+ "property": "${key}",
+ "value": "${value}"
+ }
+ ]
+ }
+ ]
+ },
+ "var buttonY = ${PROPERTY y OF setupBoardA} - 400",
+ {
+ "func": "SET",
+ "collection": [
+ "setupBoardA"
+ ],
+ "property": "y",
+ "value": "${buttonY}"
+ },
+ "var buttonY = ${PROPERTY y OF setupBoardB} - 400",
+ {
+ "func": "SET",
+ "collection": [
+ "setupBoardB"
+ ],
+ "property": "y",
+ "value": "${buttonY}"
+ },
+ "var buttonY = ${PROPERTY y OF reset} + 125",
+ {
+ "func": "SET",
+ "collection": [
+ "reset"
+ ],
+ "property": "y",
+ "value": "${buttonY}"
+ },
+ "var playerCount = length ${activeSeats}",
+ "var 2p = ${playerCount} < 3",
+ "var 4p = ${playerCount} == 4",
+ {
+ "func": "IF",
+ "condition": "${4p}",
+ "thenRoutine": [
+ {
+ "func": "MOVE",
+ "count": 3,
+ "from": "blackHolder",
+ "to": "offHolder",
+ "face": 1
+ },
+ {
+ "func": "MOVE",
+ "count": 3,
+ "from": "purpleHolder",
+ "to": "offHolder",
+ "face": 1
+ },
+ {
+ "func": "MOVE",
+ "count": 3,
+ "from": "orangeHolder",
+ "to": "offHolder",
+ "face": 1
+ },
+ {
+ "func": "MOVE",
+ "count": 3,
+ "from": "tealHolder",
+ "to": "offHolder",
+ "face": 1
+ }
+ ],
+ "elseRoutine": [
+ {
+ "func": "IF",
+ "condition": "${2p}",
+ "thenRoutine": [
+ {
+ "func": "CLICK",
+ "collection": [
+ "2ABoard"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "boardB": {
+ "id": "boardB",
+ "x": 300,
+ "y": 60,
+ "width": 1000,
+ "height": 888,
+ "layer": -4,
+ "z": 4933,
+ "movable": false,
+ "image": "/assets/-204920953_33312",
+ "display": false
+ },
+ "boardA": {
+ "id": "boardA",
+ "x": 300,
+ "y": 60,
+ "width": 1000,
+ "height": 888,
+ "layer": -4,
+ "z": 2640,
+ "movable": false,
+ "image": "/assets/-615974834_33324"
+ },
+ "reset": {
+ "type": "button",
+ "id": "reset",
+ "x": 441,
+ "z": 5170,
+ "text": "Reset",
+ "clickRoutine": [
+ {
+ "func": "INPUT",
+ "header": "Reset?",
+ "fields": [
+ {
+ "type": "text",
+ "text": "Reset the game board?"
+ }
+ ]
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "boardB"
+ ],
+ "property": "display",
+ "value": false
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "boardA"
+ ],
+ "property": "display",
+ "value": true
+ },
+ {
+ "func": "RECALL",
+ "holder": [
+ "blackHolder",
+ "blackSpecialsHolder",
+ "purpleHolder",
+ "purpleSpecialsHolder",
+ "tealHolder",
+ "tealSpecialsHolder",
+ "orangeHolder",
+ "orangeSpecialsHolder"
+ ],
+ "owned": false
+ },
+ {
+ "func": "FLIP",
+ "holder": [
+ "blackHolder",
+ "blackSpecialsHolder",
+ "purpleHolder",
+ "purpleSpecialsHolder",
+ "tealHolder",
+ "tealSpecialsHolder",
+ "orangeHolder",
+ "orangeSpecialsHolder"
+ ],
+ "face": 0
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "seat1Score",
+ "seat2Score",
+ "seat3Score",
+ "seat4Score"
+ ],
+ "property": "text",
+ "value": 0
+ },
+ {
+ "func": "SELECT",
+ "property": "otherReset",
+ "relation": "!=",
+ "value": null
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "FOREACH",
+ "in": "${PROPERTY otherReset OF $widgetID}",
+ "loopRoutine": [
+ {
+ "func": "SET",
+ "property": "${key}",
+ "value": "${value}"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "func": "SELECT",
+ "property": "2APagoda",
+ "relation": "!=",
+ "value": null
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "FOREACH",
+ "in": "${PROPERTY 2APagoda OF $widgetID}",
+ "loopRoutine": [
+ {
+ "func": "SET",
+ "property": "${key}",
+ "value": "${value}"
+ }
+ ]
+ }
+ ]
+ },
+ "var buttonY = ${PROPERTY y OF setupBoardA} + 400",
+ {
+ "func": "SET",
+ "collection": [
+ "setupBoardA"
+ ],
+ "property": "y",
+ "value": "${buttonY}"
+ },
+ "var buttonY = ${PROPERTY y OF setupBoardB} + 400",
+ {
+ "func": "SET",
+ "collection": [
+ "setupBoardB"
+ ],
+ "property": "y",
+ "value": "${buttonY}"
+ },
+ "var buttonY = ${PROPERTY y OF reset} - 125",
+ {
+ "func": "SET",
+ "collection": [
+ "reset"
+ ],
+ "property": "y",
+ "value": "${buttonY}"
+ },
+ {
+ "func": "CALL",
+ "routine": "gameStartRoutine"
+ }
+ ],
+ "width": 100,
+ "height": 40,
+ "y": -96,
+ "gameStartRoutine": [
+ {
+ "func": "FLIP",
+ "collection": [
+ "goal1",
+ "goal2"
+ ],
+ "faceCycle": "random"
+ }
+ ]
+ },
+ "tealHolder": {
+ "type": "holder",
+ "id": "tealHolder",
+ "x": 1414.39,
+ "y": 170.91,
+ "width": 62,
+ "height": 62,
+ "z": 277,
+ "inheritChildZ": true,
+ "dropOffsetX": 6,
+ "dropOffsetY": 6,
+ "dropTarget": [
+ {
+ "deck": "tealDeck"
+ }
+ ],
+ "linkedToSeat": "seat2",
+ "hideWhenUnused": true
+ },
+ "tealDeck": {
+ "type": "deck",
+ "id": "tealDeck",
+ "parent": "tealHolder",
+ "x": -12,
+ "y": -12,
+ "z": 307,
+ "cardDefaults": {
+ "width": 50,
+ "height": 50
+ },
+ "cardTypes": {
+ "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1": {
+ "label": "black standard",
+ "sortingOrder": 1
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "/assets/-1846597079_521",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ }
+ ],
+ "border": false,
+ "radius": false
+ },
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "/assets/1117406649_1604",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ }
+ ],
+ "border": false,
+ "radius": false
+ }
+ ]
+ },
+ "tealSpecials": {
+ "type": "deck",
+ "id": "tealSpecials",
+ "parent": "tealSpecialsHolder",
+ "x": 38,
+ "y": -12.000000000000028,
+ "z": 5547,
+ "cardDefaults": {
+ "width": 50,
+ "height": 50,
+ "overlap": false
+ },
+ "cardTypes": {
+ "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1": {
+ "label": "teal neighbour",
+ "image1": "",
+ "image": "/assets/-1031337013_565",
+ "sortingOrder": 1
+ },
+ "type-7e3a5dfc-2369-4fbf-914d-db1890946dc4": {
+ "label": "teal wind",
+ "image": "/assets/-1331701761_889",
+ "sortingOrder": 2
+ },
+ "type-b0b5da2c-113d-4818-8276-4f122d786546": {
+ "label": "teal share",
+ "image1": "",
+ "image": "/assets/1149542000_728",
+ "sortingOrder": 3
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image1"
+ }
+ }
+ ],
+ "border": false,
+ "radius": false
+ },
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "/assets/1117406649_1604",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ }
+ ],
+ "border": false,
+ "radius": false
+ }
+ ]
+ },
+ "tealSpecialsHolder": {
+ "type": "holder",
+ "id": "tealSpecialsHolder",
+ "x": 1366.07,
+ "y": 257.22,
+ "width": 162,
+ "height": 62,
+ "z": 4680,
+ "dropTarget": [
+ {
+ "deck": "tealSpecials"
+ }
+ ],
+ "preventPiles": true,
+ "stackOffsetX": 111,
+ "linkedToSeat": "seat2",
+ "hideWhenUnused": true
+ },
+ "orangeHolder": {
+ "type": "holder",
+ "id": "orangeHolder",
+ "x": 1413.11,
+ "y": 627.56,
+ "width": 62,
+ "height": 62,
+ "z": 306,
+ "inheritChildZ": true,
+ "dropOffsetX": 6,
+ "dropOffsetY": 6,
+ "dropTarget": [
+ {
+ "deck": "orangeDeck"
+ }
+ ],
+ "linkedToSeat": "seat3"
+ },
+ "orangeDeck": {
+ "type": "deck",
+ "id": "orangeDeck",
+ "parent": "orangeHolder",
+ "x": -12,
+ "y": -12,
+ "z": 372,
+ "cardDefaults": {
+ "width": 50,
+ "height": 50
+ },
+ "cardTypes": {
+ "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1": {
+ "label": "black standard",
+ "sortingOrder": 1
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "/assets/-1445173039_521",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ }
+ ],
+ "border": false,
+ "radius": false
+ },
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "/assets/-688596875_1604",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ }
+ ],
+ "border": false,
+ "radius": false
+ }
+ ]
+ },
+ "orangeSpecialsHolder": {
+ "type": "holder",
+ "id": "orangeSpecialsHolder",
+ "x": 1363.26,
+ "y": 716.13,
+ "width": 162,
+ "height": 62,
+ "z": 5739,
+ "dropOffsetX": 51,
+ "dropTarget": [
+ {
+ "deck": "orangeSpecials"
+ }
+ ],
+ "preventPiles": true,
+ "stackOffsetX": -111,
+ "linkedToSeat": "seat3"
+ },
+ "orangeSpecials": {
+ "type": "deck",
+ "id": "orangeSpecials",
+ "parent": "orangeSpecialsHolder",
+ "x": 38,
+ "y": -12,
+ "z": 5553,
+ "cardDefaults": {
+ "width": 50,
+ "height": 50,
+ "overlap": false
+ },
+ "cardTypes": {
+ "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1": {
+ "label": "black neighbour",
+ "image1": "",
+ "image": "/assets/46002597_565",
+ "sortingOrder": 1
+ },
+ "type-7e3a5dfc-2369-4fbf-914d-db1890946dc4": {
+ "label": "black wind",
+ "image": "/assets/1591205177_889",
+ "sortingOrder": 2
+ },
+ "type-b0b5da2c-113d-4818-8276-4f122d786546": {
+ "label": "black share",
+ "image1": "",
+ "image": "/assets/-1548614177_728",
+ "sortingOrder": 3
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image1"
+ }
+ }
+ ],
+ "border": false,
+ "radius": false
+ },
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "/assets/-688596875_1604",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ }
+ ],
+ "border": false,
+ "radius": false
+ }
+ ]
+ },
+ "purpleHolder": {
+ "type": "holder",
+ "id": "purpleHolder",
+ "x": 92.3,
+ "y": 631.06,
+ "width": 62,
+ "height": 62,
+ "z": 3567,
+ "inheritChildZ": true,
+ "dropOffsetX": 6,
+ "dropOffsetY": 6,
+ "dropTarget": [
+ {
+ "deck": "purpleDeck"
+ }
+ ],
+ "linkedToSeat": "seat4",
+ "hideWhenUnused": true
+ },
+ "purpleDeck": {
+ "type": "deck",
+ "id": "purpleDeck",
+ "parent": "purpleHolder",
+ "x": -12,
+ "y": -12,
+ "z": 3569,
+ "cardDefaults": {
+ "width": 50,
+ "height": 50
+ },
+ "cardTypes": {
+ "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1": {
+ "label": "purple standard",
+ "sortingOrder": 1
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "/assets/-174494427_521",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ }
+ ],
+ "border": false,
+ "radius": false
+ },
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "/assets/961243997_1604",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ }
+ ],
+ "border": false,
+ "radius": false
+ }
+ ]
+ },
+ "purpleSpecialsHolder": {
+ "type": "holder",
+ "id": "purpleSpecialsHolder",
+ "x": 42.89,
+ "y": 717.91,
+ "width": 162,
+ "height": 62,
+ "z": 5690,
+ "dropTarget": [
+ {
+ "deck": "purpleSpecials"
+ }
+ ],
+ "preventPiles": true,
+ "stackOffsetX": -111,
+ "linkedToSeat": "seat4",
+ "hideWhenUnused": true
+ },
+ "purpleSpecials": {
+ "type": "deck",
+ "id": "purpleSpecials",
+ "parent": "purpleSpecialsHolder",
+ "x": 38,
+ "y": -12,
+ "z": 5541,
+ "cardDefaults": {
+ "width": 50,
+ "height": 50,
+ "overlap": false
+ },
+ "cardTypes": {
+ "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1": {
+ "label": "purple neighbour",
+ "image1": "",
+ "image": "/assets/838130514_565",
+ "sortingOrder": 1
+ },
+ "type-7e3a5dfc-2369-4fbf-914d-db1890946dc4": {
+ "label": "purple wind",
+ "image": "/assets/1689731655_889",
+ "sortingOrder": 2
+ },
+ "type-b0b5da2c-113d-4818-8276-4f122d786546": {
+ "label": "purple share",
+ "image1": "",
+ "image": "/assets/-889532612_728",
+ "sortingOrder": 3
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image1"
+ }
+ }
+ ],
+ "border": false,
+ "radius": false
+ },
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "/assets/961243997_1604",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ }
+ ],
+ "border": false,
+ "radius": false
+ }
+ ]
+ },
+ "blackHolder": {
+ "type": "holder",
+ "id": "blackHolder",
+ "x": 93.55,
+ "y": 168.4,
+ "width": 62,
+ "height": 62,
+ "z": 268,
+ "inheritChildZ": true,
+ "dropOffsetX": 6,
+ "dropOffsetY": 6,
+ "dropTarget": [
+ {
+ "deck": "blackDeck"
+ }
+ ],
+ "hideWhenUnused": true,
+ "linkedToSeat": "seat1"
+ },
+ "blackDeck": {
+ "type": "deck",
+ "id": "blackDeck",
+ "parent": "blackHolder",
+ "x": -12,
+ "y": -12,
+ "z": 379,
+ "cardDefaults": {
+ "width": 50,
+ "height": 50
+ },
+ "cardTypes": {
+ "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1": {
+ "label": "black standard",
+ "sortingOrder": 1
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "/assets/-2048626508_518",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ }
+ ],
+ "border": false,
+ "radius": false
+ },
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "/assets/696058306_1601",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ }
+ ],
+ "border": false,
+ "radius": false
+ }
+ ]
+ },
+ "blackSpecialsHolder": {
+ "type": "holder",
+ "id": "blackSpecialsHolder",
+ "x": 44.43,
+ "y": 255.21,
+ "width": 162,
+ "height": 62,
+ "z": 5684,
+ "dropTarget": [
+ {
+ "deck": "blackSpecials"
+ }
+ ],
+ "preventPiles": true,
+ "stackOffsetX": 111,
+ "hideWhenUnused": true,
+ "linkedToSeat": "seat1"
+ },
+ "blackSpecials": {
+ "type": "deck",
+ "id": "blackSpecials",
+ "parent": "blackSpecialsHolder",
+ "x": 38.00000000000001,
+ "y": -12,
+ "z": 5535,
+ "cardDefaults": {
+ "width": 50,
+ "height": 50,
+ "overlap": false
+ },
+ "cardTypes": {
+ "type-9f8ed78e-ec01-43cd-aeb9-10548e2b84a1": {
+ "label": "black neighbour",
+ "image1": "",
+ "image": "/assets/-1302946465_565",
+ "sortingOrder": 1
+ },
+ "type-7e3a5dfc-2369-4fbf-914d-db1890946dc4": {
+ "label": "black wind",
+ "image": "/assets/725845089_889",
+ "sortingOrder": 2
+ },
+ "type-b0b5da2c-113d-4818-8276-4f122d786546": {
+ "label": "black share",
+ "image1": "",
+ "image": "/assets/1759771905_728",
+ "sortingOrder": 3
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image1"
+ }
+ }
+ ],
+ "border": false,
+ "radius": false
+ },
+ {
+ "objects": [
+ {
+ "width": 50,
+ "height": 50,
+ "type": "image",
+ "color": "transparent",
+ "value": ""
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "color": "transparent",
+ "width": 50,
+ "height": 50,
+ "dynamicProperties": {
+ "value": "image"
+ }
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ },
+ {
+ "type": "image",
+ "x": 0,
+ "y": 0,
+ "value": "/assets/696058306_1601",
+ "color": "rgba(255, 255, 255, 0)",
+ "width": 50,
+ "height": 50
+ }
+ ],
+ "border": false,
+ "radius": false
+ }
+ ]
+ },
+ "j59m of plain-circle": {
+ "type": "card",
+ "id": "j59m of plain-circle",
+ "deck": "boardBBlockers",
+ "cardType": " of plain-circle",
+ "z": 12327,
+ "2BReset": {
+ "x": 694,
+ "y": 208
+ },
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 655,
+ "y": 406
+ },
+ "x": 2000,
+ "y": 2000
+ },
+ "mv39": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "mv39",
+ "z": 8299,
+ "2BReset": {
+ "x": 652,
+ "y": 276
+ },
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 731,
+ "y": 542
+ },
+ "x": 2000,
+ "y": 2000
+ },
+ "prvc": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "prvc",
+ "z": 8295,
+ "activeFace": 1,
+ "2BReset": {
+ "x": 884,
+ "y": 273
+ },
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 926,
+ "y": 342
+ },
+ "x": 2000,
+ "y": 2000
+ },
+ "n7bo": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "n7bo",
+ "z": 7535,
+ "activeFace": 1,
+ "x": 2000,
+ "y": 2000,
+ "2BReset": {
+ "x": 806,
+ "y": 541
+ },
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 806,
+ "y": 541
+ }
+ },
+ "ab38": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "ab38",
+ "z": 8301,
+ "x": 2000,
+ "y": 2000,
+ "2BReset": {
+ "x": 770,
+ "y": 606
+ },
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 693,
+ "y": 608
+ }
+ },
+ "2hg9": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "2hg9",
+ "z": 8300,
+ "x": 2000,
+ "y": 2000,
+ "2BReset": {
+ "x": 694,
+ "y": 608
+ },
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 883,
+ "y": 542
+ }
+ },
+ "jfnk": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "jfnk",
+ "z": 8302,
+ "activeFace": 1,
+ "x": 2000,
+ "y": 2000,
+ "2BReset": {
+ "x": 808,
+ "y": 675
+ },
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 578,
+ "y": 675
+ }
+ },
+ "nzui": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "nzui",
+ "z": 8314,
+ "activeFace": 1,
+ "x": 2000,
+ "y": 2000,
+ "2BReset": {
+ "x": 1115,
+ "y": 675
+ },
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 1077,
+ "y": 739
+ }
+ },
+ "ouhw": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "ouhw",
+ "z": 8313,
+ "activeFace": 1,
+ "x": 2000,
+ "y": 2000,
+ "2BReset": {
+ "x": 1156,
+ "y": 743
+ },
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 1039,
+ "y": 808
+ }
+ },
+ "xds4": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "xds4",
+ "z": 8312,
+ "activeFace": 1,
+ "x": 2000,
+ "y": 2000,
+ "2BReset": {
+ "x": 997,
+ "y": 875
+ },
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 1120,
+ "y": 807
+ }
+ },
+ "fxmn": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "fxmn",
+ "z": 8304,
+ "activeFace": 1,
+ "x": 2000,
+ "y": 2000,
+ "2BReset": {
+ "x": 541,
+ "y": 874
+ },
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 461,
+ "y": 740
+ }
+ },
+ "z4xg": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "z4xg",
+ "z": 8303,
+ "activeFace": 1,
+ "2BReset": {
+ "x": 463,
+ "y": 872
+ },
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 385,
+ "y": 743
+ },
+ "x": 2000,
+ "y": 2000
+ },
+ "8cal": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "8cal",
+ "z": 7248,
+ "activeFace": 1,
+ "x": 2000,
+ "y": 2000,
+ "2BReset": {
+ "x": 425,
+ "y": 676
+ },
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 425,
+ "y": 676
+ }
+ },
+ "boardBBlockers": {
+ "type": "deck",
+ "id": "boardBBlockers",
+ "x": 597,
+ "y": 107,
+ "movable": false,
+ "cardDefaults": {
+ "width": 60,
+ "height": 60,
+ "movable": false,
+ "onPileCreation": {
+ "nothing": "nothing"
+ }
+ },
+ "cardTypes": {
+ " of plain-circle": {
+ "suit": "/i/game-icons.net/delapouite/plain-circle.svg",
+ "suitColor": "#f7f7f7",
+ "rank": "",
+ "rankImage": "/i/game-icons.net/delapouite/plain-circle.svg"
+ }
+ },
+ "faceTemplates": [
+ {
+ "objects": [
+ {
+ "type": "image",
+ "width": 60,
+ "height": 60,
+ "color": "#fcfcfc",
+ "svgReplaces": {
+ "#000": "suitColor"
+ },
+ "dynamicProperties": {
+ "value": "suit"
+ }
+ }
+ ],
+ "radius": 30,
+ "border": 5
+ }
+ ]
+ },
+ "2BBoard": {
+ "type": "button",
+ "id": "2BBoard",
+ "x": -200,
+ "y": 57,
+ "width": 100,
+ "height": 40,
+ "z": 5175,
+ "text": "Board B for 2 player",
+ "clickRoutine": [
+ {
+ "func": "TURN",
+ "turnCycle": "random"
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "boardA"
+ ],
+ "property": "display",
+ "value": false
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "boardB"
+ ],
+ "property": "display",
+ "value": true
+ },
+ {
+ "func": "RECALL",
+ "holder": [
+ "blackHolder",
+ "blackSpecialsHolder",
+ "purpleHolder",
+ "purpleSpecialsHolder",
+ "tealHolder",
+ "tealSpecialsHolder",
+ "orangeHolder",
+ "orangeSpecialsHolder"
+ ],
+ "owned": false
+ },
+ {
+ "func": "FLIP",
+ "holder": [
+ "blackHolder",
+ "blackSpecialsHolder",
+ "purpleHolder",
+ "purpleSpecialsHolder",
+ "tealHolder",
+ "tealSpecialsHolder",
+ "orangeHolder",
+ "orangeSpecialsHolder"
+ ],
+ "face": 0
+ },
+ {
+ "func": "SELECT",
+ "property": "otherReset",
+ "relation": "!=",
+ "value": null
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "FOREACH",
+ "in": "${PROPERTY otherReset OF $widgetID}",
+ "loopRoutine": [
+ {
+ "func": "SET",
+ "property": "${key}",
+ "value": "${value}"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "func": "SELECT",
+ "property": "2BReset",
+ "relation": "!=",
+ "value": null
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "FOREACH",
+ "in": "${PROPERTY 2BReset OF $widgetID}",
+ "loopRoutine": [
+ {
+ "func": "SET",
+ "property": "${key}",
+ "value": "${value}"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "func": "SELECT",
+ "property": "2BPagoda",
+ "relation": "!=",
+ "value": null
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "FOREACH",
+ "in": "${PROPERTY 2BPagoda OF $widgetID}",
+ "loopRoutine": [
+ {
+ "func": "SET",
+ "property": "${key}",
+ "value": "${value}"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "o8sw": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "o8sw",
+ "z": 8283,
+ "x": 2000,
+ "y": 2000,
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 769,
+ "y": 74
+ }
+ },
+ "t08s": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "t08s",
+ "z": 12512,
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 732,
+ "y": 141
+ },
+ "x": 2000,
+ "y": 2000
+ },
+ "rzwj": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "rzwj",
+ "z": 10459,
+ "activeFace": 1,
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 463,
+ "y": 876
+ },
+ "x": 2000,
+ "y": 2000
+ },
+ "bvdt": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "bvdt",
+ "z": 8306,
+ "activeFace": 1,
+ "x": 2000,
+ "y": 2000,
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 693,
+ "y": 873
+ }
+ },
+ "x9fn": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "x9fn",
+ "z": 8307,
+ "activeFace": 1,
+ "x": 2000,
+ "y": 2000,
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 772,
+ "y": 876
+ }
+ },
+ "nrc0": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "nrc0",
+ "z": 8308,
+ "activeFace": 1,
+ "x": 2000,
+ "y": 2000,
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 850,
+ "y": 874
+ }
+ },
+ "iimw": {
+ "deck": "boardBBlockers",
+ "type": "card",
+ "cardType": " of plain-circle",
+ "id": "iimw",
+ "z": 8315,
+ "activeFace": 1,
+ "x": 2000,
+ "y": 2000,
+ "otherReset": {
+ "x": 2000,
+ "y": 2000
+ },
+ "2AReset": {
+ "x": 1074,
+ "y": 607
+ }
+ },
+ "8eedd904-16a0-4f3a-be32-6f39e1202d5c": {
+ "id": "8eedd904-16a0-4f3a-be32-6f39e1202d5c",
+ "x": 1044,
+ "y": 544,
+ "z": 10081,
+ "type": "card",
+ "deck": "59869004-b3db-4c60-bd64-f0940fb9b27e",
+ "cardType": "type-0c796687-dc9c-4688-b9ce-7709d00344d8",
+ "2APagoda": {
+ "x": 1044,
+ "y": 544
+ },
+ "2BPagoda": {
+ "x": 927,
+ "y": 2000
+ }
+ },
+ "8eedd904-16a0-4f3a-be32-6f39e1202d6c": {
+ "id": "8eedd904-16a0-4f3a-be32-6f39e1202d6c",
+ "x": 391,
+ "y": 872,
+ "z": 10080,
+ "type": "card",
+ "deck": "59869004-b3db-4c60-bd64-f0940fb9b27e",
+ "cardType": "type-0c796687-dc9c-4688-b9ce-7709d00344d8",
+ "2APagoda": {
+ "x": 391,
+ "y": 872
+ },
+ "2BPagoda": {
+ "x": 927,
+ "y": 2000
+ }
+ },
+ "8eedd904-16a0-4f3a-be32-6f39e1202d7c": {
+ "id": "8eedd904-16a0-4f3a-be32-6f39e1202d7c",
+ "x": 469,
+ "y": 612,
+ "z": 10083,
+ "type": "card",
+ "deck": "59869004-b3db-4c60-bd64-f0940fb9b27e",
+ "cardType": "type-0c796687-dc9c-4688-b9ce-7709d00344d8",
+ "2APagoda": {
+ "x": 469,
+ "y": 612
+ },
+ "2BPagoda": {
+ "x": 927,
+ "y": 2000
+ }
+ },
+ "8eedd904-16a0-4f3a-be32-6f39e1202d8c": {
+ "id": "8eedd904-16a0-4f3a-be32-6f39e1202d8c",
+ "x": 1198,
+ "y": 809,
+ "z": 10087,
+ "type": "card",
+ "deck": "59869004-b3db-4c60-bd64-f0940fb9b27e",
+ "cardType": "type-0c796687-dc9c-4688-b9ce-7709d00344d8",
+ "2APagoda": {
+ "x": 1198,
+ "y": 809
+ },
+ "2BPagoda": {
+ "x": 927,
+ "y": 2000
+ }
+ },
+ "setupBoardB": {
+ "type": "button",
+ "id": "setupBoardB",
+ "x": 491,
+ "y": 5,
+ "width": 100,
+ "height": 40,
+ "z": 5173,
+ "text": "Board B",
+ "clickRoutine": [
+ {
+ "func": "TURN",
+ "turnCycle": "random"
+ },
+ {
+ "func": "INPUT",
+ "header": "Ready to start?",
+ "fields": [
+ {
+ "type": "text",
+ "text": "Is everyone seated?"
+ }
+ ]
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "boardA"
+ ],
+ "property": "display",
+ "value": false
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "boardB"
+ ],
+ "property": "display",
+ "value": true
+ },
+ {
+ "func": "RECALL",
+ "holder": [
+ "blackHolder",
+ "blackSpecialsHolder",
+ "purpleHolder",
+ "purpleSpecialsHolder",
+ "tealHolder",
+ "tealSpecialsHolder",
+ "orangeHolder",
+ "orangeSpecialsHolder"
+ ],
+ "owned": false
+ },
+ {
+ "func": "FLIP",
+ "holder": [
+ "blackHolder",
+ "blackSpecialsHolder",
+ "purpleHolder",
+ "purpleSpecialsHolder",
+ "tealHolder",
+ "tealSpecialsHolder",
+ "orangeHolder",
+ "orangeSpecialsHolder"
+ ],
+ "face": 0
+ },
+ {
+ "func": "SELECT",
+ "property": "otherReset",
+ "relation": "!=",
+ "value": null
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "FOREACH",
+ "in": "${PROPERTY otherReset OF $widgetID}",
+ "loopRoutine": [
+ {
+ "func": "SET",
+ "property": "${key}",
+ "value": "${value}"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "func": "SELECT",
+ "property": "2BPagoda",
+ "relation": "!=",
+ "value": null
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "FOREACH",
+ "in": "${PROPERTY 2BPagoda OF $widgetID}",
+ "loopRoutine": [
+ {
+ "func": "SET",
+ "property": "${key}",
+ "value": "${value}"
+ }
+ ]
+ }
+ ]
+ },
+ "var buttonY = ${PROPERTY y OF setupBoardA} - 400",
+ {
+ "func": "SET",
+ "collection": [
+ "setupBoardA"
+ ],
+ "property": "y",
+ "value": "${buttonY}"
+ },
+ "var buttonY = ${PROPERTY y OF setupBoardB} - 400",
+ {
+ "func": "SET",
+ "collection": [
+ "setupBoardB"
+ ],
+ "property": "y",
+ "value": "${buttonY}"
+ },
+ "var buttonY = ${PROPERTY y OF reset} + 125",
+ {
+ "func": "SET",
+ "collection": [
+ "reset"
+ ],
+ "property": "y",
+ "value": "${buttonY}"
+ },
+ "var playerCount = length ${activeSeats}",
+ "var 2p = ${playerCount} < 3",
+ "var 4p = ${playerCount} == 4",
+ {
+ "func": "IF",
+ "condition": "${4p}",
+ "thenRoutine": [
+ {
+ "func": "MOVE",
+ "count": 3,
+ "from": "blackHolder",
+ "to": "offHolder",
+ "face": 1
+ },
+ {
+ "func": "MOVE",
+ "count": 3,
+ "from": "purpleHolder",
+ "to": "offHolder",
+ "face": 1
+ },
+ {
+ "func": "MOVE",
+ "count": 3,
+ "from": "orangeHolder",
+ "to": "offHolder",
+ "face": 1
+ },
+ {
+ "func": "MOVE",
+ "count": 3,
+ "from": "tealHolder",
+ "to": "offHolder",
+ "face": 1
+ }
+ ],
+ "elseRoutine": [
+ {
+ "func": "IF",
+ "condition": "${2p}",
+ "thenRoutine": [
+ {
+ "func": "CLICK",
+ "collection": [
+ "2BBoard"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "2ABoard": {
+ "type": "button",
+ "id": "2ABoard",
+ "x": -300,
+ "y": 57,
+ "width": 100,
+ "height": 40,
+ "z": 5174,
+ "text": "Board A for 2 player",
+ "clickRoutine": [
+ {
+ "func": "TURN",
+ "turnCycle": "random"
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "boardB"
+ ],
+ "property": "display",
+ "value": false
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "boardA"
+ ],
+ "property": "display",
+ "value": true
+ },
+ {
+ "func": "RECALL",
+ "holder": [
+ "blackHolder",
+ "blackSpecialsHolder",
+ "purpleHolder",
+ "purpleSpecialsHolder",
+ "tealHolder",
+ "tealSpecialsHolder",
+ "orangeHolder",
+ "orangeSpecialsHolder"
+ ],
+ "owned": false
+ },
+ {
+ "func": "FLIP",
+ "holder": [
+ "blackHolder",
+ "blackSpecialsHolder",
+ "purpleHolder",
+ "purpleSpecialsHolder",
+ "tealHolder",
+ "tealSpecialsHolder",
+ "orangeHolder",
+ "orangeSpecialsHolder"
+ ],
+ "face": 0
+ },
+ {
+ "func": "SELECT",
+ "property": "otherReset",
+ "relation": "!=",
+ "value": null
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "FOREACH",
+ "in": "${PROPERTY otherReset OF $widgetID}",
+ "loopRoutine": [
+ {
+ "func": "SET",
+ "property": "${key}",
+ "value": "${value}"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "func": "SELECT",
+ "property": "2AReset",
+ "relation": "!=",
+ "value": null
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "FOREACH",
+ "in": "${PROPERTY 2AReset OF $widgetID}",
+ "loopRoutine": [
+ {
+ "func": "SET",
+ "property": "${key}",
+ "value": "${value}"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "func": "SELECT",
+ "property": "2APagoda",
+ "relation": "!=",
+ "value": null
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "FOREACH",
+ "in": "${PROPERTY 2APagoda OF $widgetID}",
+ "loopRoutine": [
+ {
+ "func": "SET",
+ "property": "${key}",
+ "value": "${value}"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "offHolder": {
+ "type": "holder",
+ "id": "offHolder",
+ "x": 903,
+ "y": -202,
+ "width": 50,
+ "height": 50,
+ "z": 5740
+ },
+ "goal1": {
+ "type": "card",
+ "id": "goal1",
+ "deck": "afbf392d-45e9-4abc-8d9c-99995bd1c11e",
+ "cardType": "chooser",
+ "x": 953,
+ "y": 17,
+ "z": 5070,
+ "activeFace": 5
+ },
+ "goal2": {
+ "type": "card",
+ "id": "goal2",
+ "deck": "afbf392d-45e9-4abc-8d9c-99995bd1c11e",
+ "cardType": "chooser",
+ "x": 1089,
+ "y": 17,
+ "z": 5069,
+ "activeFace": 2
+ },
+ "balloon": {
+ "id": "balloon",
+ "x": 769,
+ "width": 60.4,
+ "height": 60,
+ "z": 6471,
+ "color": "#ff0000",
+ "css": "border-radius: 40% 40% 50% 50%/ 80% 80% 10% 10%; ",
+ "image": "/i/game-icons.net/delapouite/air-balloon.svg",
+ "svgReplaces": {
+ "#000": "newColor"
+ },
+ "otherReset": {
+ "x": 769,
+ "y": 0
+ },
+ "newColor": "red"
+ },
+ "seat1Score": {
+ "type": "label",
+ "id": "seat1Score",
+ "x": 58,
+ "y": 29.02,
+ "width": 140,
+ "height": 44,
+ "z": 71,
+ "css": "font-size: 30px;color: black",
+ "editable": true,
+ "linkedToSeat": "seat1",
+ "text": 0
+ },
+ "seat2Score": {
+ "type": "label",
+ "id": "seat2Score",
+ "x": 1377,
+ "y": 29.68,
+ "width": 140,
+ "height": 44,
+ "z": 67,
+ "css": "font-size: 30px;color: black",
+ "editable": true,
+ "linkedToSeat": "seat2",
+ "text": 0
+ },
+ "seat3Score": {
+ "type": "label",
+ "id": "seat3Score",
+ "x": 1377,
+ "y": 486.15,
+ "width": 140,
+ "height": 44,
+ "z": 70,
+ "css": "font-size: 30px;color: black",
+ "editable": true,
+ "linkedToSeat": "seat3",
+ "text": 0
+ },
+ "seat4Score": {
+ "type": "label",
+ "id": "seat4Score",
+ "x": 58,
+ "y": 483.16,
+ "width": 140,
+ "height": 44,
+ "z": 64,
+ "css": "font-size: 30px;color: black",
+ "editable": true,
+ "linkedToSeat": "seat4",
+ "text": 0
+ }
+}
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/-1031337013_565 b/library/games/Happy Landings/assets/-1031337013_565
new file mode 100644
index 0000000000..31da09dd8c
--- /dev/null
+++ b/library/games/Happy Landings/assets/-1031337013_565
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/-1302946465_565 b/library/games/Happy Landings/assets/-1302946465_565
new file mode 100644
index 0000000000..3bbfe88ee3
--- /dev/null
+++ b/library/games/Happy Landings/assets/-1302946465_565
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/-1331701761_889 b/library/games/Happy Landings/assets/-1331701761_889
new file mode 100644
index 0000000000..2cd1b8096f
--- /dev/null
+++ b/library/games/Happy Landings/assets/-1331701761_889
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/-1445173039_521 b/library/games/Happy Landings/assets/-1445173039_521
new file mode 100644
index 0000000000..31e4cf0220
--- /dev/null
+++ b/library/games/Happy Landings/assets/-1445173039_521
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/-1548614177_728 b/library/games/Happy Landings/assets/-1548614177_728
new file mode 100644
index 0000000000..32766892c5
--- /dev/null
+++ b/library/games/Happy Landings/assets/-1548614177_728
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/-174494427_521 b/library/games/Happy Landings/assets/-174494427_521
new file mode 100644
index 0000000000..67e893a167
--- /dev/null
+++ b/library/games/Happy Landings/assets/-174494427_521
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/-1846597079_521 b/library/games/Happy Landings/assets/-1846597079_521
new file mode 100644
index 0000000000..0c1973e33f
--- /dev/null
+++ b/library/games/Happy Landings/assets/-1846597079_521
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/-2048626508_518 b/library/games/Happy Landings/assets/-2048626508_518
new file mode 100644
index 0000000000..4c80b8d5a2
--- /dev/null
+++ b/library/games/Happy Landings/assets/-2048626508_518
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/-204920953_33312 b/library/games/Happy Landings/assets/-204920953_33312
new file mode 100644
index 0000000000..f1f27021e5
--- /dev/null
+++ b/library/games/Happy Landings/assets/-204920953_33312
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/-350134830_3780 b/library/games/Happy Landings/assets/-350134830_3780
new file mode 100644
index 0000000000..5467f99b6d
--- /dev/null
+++ b/library/games/Happy Landings/assets/-350134830_3780
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/-615974834_33324 b/library/games/Happy Landings/assets/-615974834_33324
new file mode 100644
index 0000000000..d414fdd7eb
--- /dev/null
+++ b/library/games/Happy Landings/assets/-615974834_33324
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/-688596875_1604 b/library/games/Happy Landings/assets/-688596875_1604
new file mode 100644
index 0000000000..3907ef37cd
--- /dev/null
+++ b/library/games/Happy Landings/assets/-688596875_1604
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/-889532612_728 b/library/games/Happy Landings/assets/-889532612_728
new file mode 100644
index 0000000000..5ab8d9a667
--- /dev/null
+++ b/library/games/Happy Landings/assets/-889532612_728
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/1102741850_3782 b/library/games/Happy Landings/assets/1102741850_3782
new file mode 100644
index 0000000000..db0f761104
--- /dev/null
+++ b/library/games/Happy Landings/assets/1102741850_3782
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/1117406649_1604 b/library/games/Happy Landings/assets/1117406649_1604
new file mode 100644
index 0000000000..9e5460212b
--- /dev/null
+++ b/library/games/Happy Landings/assets/1117406649_1604
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/1149542000_728 b/library/games/Happy Landings/assets/1149542000_728
new file mode 100644
index 0000000000..fa67cb9df1
--- /dev/null
+++ b/library/games/Happy Landings/assets/1149542000_728
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/1477033782_3780 b/library/games/Happy Landings/assets/1477033782_3780
new file mode 100644
index 0000000000..77380ea263
--- /dev/null
+++ b/library/games/Happy Landings/assets/1477033782_3780
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/1591205177_889 b/library/games/Happy Landings/assets/1591205177_889
new file mode 100644
index 0000000000..84de9dd650
--- /dev/null
+++ b/library/games/Happy Landings/assets/1591205177_889
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/1689731655_889 b/library/games/Happy Landings/assets/1689731655_889
new file mode 100644
index 0000000000..ebf891d912
--- /dev/null
+++ b/library/games/Happy Landings/assets/1689731655_889
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/1759771905_728 b/library/games/Happy Landings/assets/1759771905_728
new file mode 100644
index 0000000000..8585f137d3
--- /dev/null
+++ b/library/games/Happy Landings/assets/1759771905_728
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/1955387621_478168 b/library/games/Happy Landings/assets/1955387621_478168
new file mode 100644
index 0000000000..9f47042162
Binary files /dev/null and b/library/games/Happy Landings/assets/1955387621_478168 differ
diff --git a/library/games/Happy Landings/assets/46002597_565 b/library/games/Happy Landings/assets/46002597_565
new file mode 100644
index 0000000000..438f991aa1
--- /dev/null
+++ b/library/games/Happy Landings/assets/46002597_565
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/696058306_1601 b/library/games/Happy Landings/assets/696058306_1601
new file mode 100644
index 0000000000..5c0c538530
--- /dev/null
+++ b/library/games/Happy Landings/assets/696058306_1601
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/725845089_889 b/library/games/Happy Landings/assets/725845089_889
new file mode 100644
index 0000000000..3526f82937
--- /dev/null
+++ b/library/games/Happy Landings/assets/725845089_889
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/838130514_565 b/library/games/Happy Landings/assets/838130514_565
new file mode 100644
index 0000000000..63d76a05b8
--- /dev/null
+++ b/library/games/Happy Landings/assets/838130514_565
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/games/Happy Landings/assets/961243997_1604 b/library/games/Happy Landings/assets/961243997_1604
new file mode 100644
index 0000000000..f6bc565aa2
--- /dev/null
+++ b/library/games/Happy Landings/assets/961243997_1604
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/library/tutorials/Icons_ Symbols_ and Emojis/0.json b/library/tutorials/Icons_ Symbols_ and Emojis/0.json
new file mode 100644
index 0000000000..81bc4103b4
--- /dev/null
+++ b/library/tutorials/Icons_ Symbols_ and Emojis/0.json
@@ -0,0 +1,436 @@
+{
+ "_meta": {
+ "version": 17,
+ "info": {
+ "name": "Icons, Symbols, and Emojis",
+ "image": "/assets/1923406359_3510",
+ "rules": "",
+ "bgg": "",
+ "year": "",
+ "mode": "Tutorial",
+ "time": "0",
+ "attribution": "",
+ "lastUpdate": 1737418482866,
+ "showName": false,
+ "skill": "",
+ "description": "",
+ "similarImage": "",
+ "similarName": "",
+ "similarDesigner": "",
+ "similarAwards": "",
+ "ruleText": "",
+ "helpText": "",
+ "variantImage": "",
+ "variant": "CSS",
+ "language": "en-US",
+ "players": "1"
+ }
+ },
+ "header": {
+ "id": "header",
+ "x": 300,
+ "y": -2,
+ "height": 60,
+ "z": 74,
+ "movable": false,
+ "movableInEdit": false,
+ "css": "font-size: 60px;text-align:center",
+ "text": "Icons, Symbols, and Emojis: CSS",
+ "width": 1000
+ },
+ "mainText": {
+ "id": "mainText",
+ "x": 100,
+ "y": 100,
+ "width": 1405,
+ "height": 150,
+ "layer": -3,
+ "z": 124,
+ "css": "font-size: 25px; ",
+ "movable": false,
+ "html": "The items below are expressed in VTT as either a `text` property or an `image` property. See the Fonts and Symbols wiki page for additional information about which items can be text, which images, and which can be either. In each group, the top left item has limited css applied. The top right item uses a varierty of different drop-shadow techniques. The lower left image demonstrates borderRadius (a special VTT property) and box-shadow. The bottom right image is clickable and uses a transition to show the difference between filter attributes (from left to right): blur, brightness, contrast, saturation."
+ },
+ "button1Text": {
+ "id": "button1Text",
+ "x": 60,
+ "y": 587,
+ "width": 300,
+ "z": 185,
+ "movable": false,
+ "text": "The paint buckets are from game-icons.net and are expressed in the image property. Open the JSON Editor and select one. Put the cursor on the image property and a button appears at the top of the row of buttons allowing you to choose another image.\n\nThe top right paint bucket has this `filter` css: `drop-shadow(0 0 5px gold)`. The first value is the horizontal offset in pixels. It can be negative. The second value is the vertical offset in pixels and it can also be negative. The third value is the amount of blur (in pixels) for the shadow. The last value is the shadow color. "
+ },
+ "button2Text": {
+ "id": "button2Text",
+ "x": 410,
+ "y": 587,
+ "width": 300,
+ "z": 121,
+ "movable": false,
+ "text": "The buses are part of the material symbols font and are expressed in the text property. To see some font options, put the cursor on the classes property in a widget above. Then put the cursor on the text value and you will get a button to change to one of the many symbols available. Some css appears on all of these widgets for basic formatting: font-size (self-explanatory); display, justify-content, align-items (used to center the image inside the widget); color (self-explanatory).\n\nThe bottom left bus has this `box-shadow` css: `5px 5px 10px 2px #4c556a`. The values are for the horizontal and vertical spread and color."
+ },
+ "button3Text": {
+ "id": "button3Text",
+ "x": 760,
+ "y": 587,
+ "width": 300,
+ "z": 9732,
+ "movable": false,
+ "text": "The pumpkins are part of the (monocolor) emoji font that is expressed through the classes and text properties like the buses. They have the same css as the buses to size, center, and color the pumpkins.\n\nThe bottom left pumpkin combines box-shadow and drop-shadow."
+ },
+ "background": {
+ "id": "background",
+ "width": 1600,
+ "height": 1000,
+ "layer": -4,
+ "z": 94,
+ "movable": false,
+ "movableInEdit": false,
+ "css": {
+ "background-color": "#96a7cf"
+ }
+ },
+ "example2": {
+ "id": "example2",
+ "x": 210,
+ "y": 292,
+ "z": 10098,
+ "css": {
+ "filter": "drop-shadow(0 0 5px gold)"
+ },
+ "image": "/i/game-icons.net/delapouite/paint-bucket.svg",
+ "movable": false
+ },
+ "example1": {
+ "id": "example1",
+ "x": 100,
+ "y": 292,
+ "z": 10097,
+ "image": "/i/game-icons.net/delapouite/paint-bucket.svg",
+ "movable": false
+ },
+ "example3": {
+ "id": "example3",
+ "x": 100,
+ "y": 416,
+ "z": 10100,
+ "css": {
+ "box-shadow": "0 0 10px 2px #4c556a"
+ },
+ "image": "/i/game-icons.net/delapouite/paint-bucket.svg",
+ "movable": false
+ },
+ "example4": {
+ "id": "example4",
+ "x": 210,
+ "y": 416,
+ "z": 10099,
+ "css": {
+ "filter": "blur(${PROPERTY blur}px)",
+ "transition": "linear 0.5s"
+ },
+ "image": "/i/game-icons.net/delapouite/paint-bucket.svg",
+ "movable": false,
+ "clickRoutine": [
+ {
+ "func": "IF",
+ "operand1": "${PROPERTY blur}",
+ "operand2": 5,
+ "thenRoutine": [
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "blur",
+ "value": 0
+ }
+ ],
+ "elseRoutine": [
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "blur",
+ "value": 5
+ }
+ ]
+ }
+ ],
+ "blur": 5
+ },
+ "example5": {
+ "id": "example5",
+ "x": 570,
+ "y": 292,
+ "z": 10098,
+ "css": {
+ "font-size": "90px",
+ "display": "flex",
+ "justify-content": "center",
+ "align-items": "center",
+ "color": "#2d5da8",
+ "filter": "drop-shadow(-7px 0 6px #2d5da8bb)"
+ },
+ "movable": false,
+ "classes": "material-symbols",
+ "text": "directions_bus"
+ },
+ "example6": {
+ "id": "example6",
+ "x": 460,
+ "y": 292,
+ "z": 10097,
+ "movable": false,
+ "classes": "material-symbols",
+ "text": "directions_bus",
+ "css": {
+ "font-size": "90px",
+ "display": "flex",
+ "justify-content": "center",
+ "align-items": "center",
+ "color": "#2d5da8"
+ }
+ },
+ "example7": {
+ "id": "example7",
+ "x": 460,
+ "y": 416,
+ "z": 10100,
+ "css": {
+ "font-size": "90px",
+ "display": "flex",
+ "justify-content": "center",
+ "align-items": "center",
+ "color": "#2d5da8",
+ "box-shadow": "5px 5px 10px 2px #4c556a"
+ },
+ "borderRadius": 8,
+ "movable": false,
+ "classes": "material-symbols",
+ "text": "directions_bus"
+ },
+ "example8": {
+ "id": "example8",
+ "x": 570,
+ "y": 416,
+ "z": 10099,
+ "css": {
+ "font-size": "90px",
+ "display": "flex",
+ "justify-content": "center",
+ "align-items": "center",
+ "color": "#2d5da8",
+ "filter": "brightness(${PROPERTY brightness})",
+ "transition": "linear 0.5s"
+ },
+ "movable": false,
+ "clickRoutine": [
+ {
+ "func": "IF",
+ "operand1": "${PROPERTY brightness}",
+ "operand2": 0.5,
+ "thenRoutine": [
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "brightness",
+ "value": 1.5
+ }
+ ],
+ "elseRoutine": [
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "brightness",
+ "value": 0.5
+ }
+ ]
+ }
+ ],
+ "classes": "material-symbols",
+ "text": "directions_bus",
+ "brightness": 0.5
+ },
+ "example9": {
+ "id": "example9",
+ "x": 919,
+ "y": 292,
+ "z": 10098,
+ "css": {
+ "font-size": "90px",
+ "display": "flex",
+ "justify-content": "center",
+ "align-items": "center",
+ "color": "#e4651c",
+ "filter": "drop-shadow(2px 2px 2px #000000)"
+ },
+ "movable": false,
+ "text": "π",
+ "classes": "emoji-monochrome"
+ },
+ "example10": {
+ "id": "example10",
+ "x": 809,
+ "y": 292,
+ "z": 10097,
+ "movable": false,
+ "classes": "emoji-monochrome",
+ "text": "π",
+ "css": {
+ "font-size": "90px",
+ "display": "flex",
+ "justify-content": "center",
+ "align-items": "center",
+ "color": "#e4651c"
+ }
+ },
+ "example11": {
+ "id": "example11",
+ "x": 809,
+ "y": 416,
+ "z": 10100,
+ "css": {
+ "font-size": "90px",
+ "display": "flex",
+ "justify-content": "center",
+ "align-items": "center",
+ "color": "#e4651c",
+ "box-shadow": "3px 3px 3px 9px #606060",
+ "filter": "drop-shadow(10px 5px 9px #0000)"
+ },
+ "borderRadius": 20,
+ "movable": false,
+ "text": "π",
+ "classes": "emoji-monochrome"
+ },
+ "example12": {
+ "id": "example12",
+ "x": 919,
+ "y": 416,
+ "z": 10099,
+ "css": {
+ "font-size": "90px",
+ "display": "flex",
+ "justify-content": "center",
+ "align-items": "center",
+ "color": "#e4651c",
+ "filter": "contrast(${PROPERTY contrast})",
+ "transition": "linear 0.5s"
+ },
+ "movable": false,
+ "clickRoutine": [
+ {
+ "func": "IF",
+ "operand1": "${PROPERTY contrast}",
+ "operand2": 0.5,
+ "thenRoutine": [
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "contrast",
+ "value": 2
+ }
+ ],
+ "elseRoutine": [
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "contrast",
+ "value": 0.5
+ }
+ ]
+ }
+ ],
+ "classes": "emoji-monochrome",
+ "text": "π",
+ "contrast": 0.5
+ },
+ "button4Text": {
+ "id": "button4Text",
+ "x": 1110,
+ "y": 587,
+ "width": 300,
+ "z": 9732,
+ "movable": false,
+ "text": "The octopuses are part of the colored emoji font that is expressed through the image property. Recoloring images like the octopuses and paint buckets requires either using `svgReplaces` or css filter properties, both of which are demonstrated in the other variants of this tutorial."
+ },
+ "example13": {
+ "id": "example13",
+ "x": 1269,
+ "y": 292,
+ "z": 10098,
+ "css": {
+ "font-size": "90px",
+ "display": "flex",
+ "justify-content": "center",
+ "align-items": "center",
+ "color": "#e4651c",
+ "filter": "drop-shadow(0 0 20px #ffffff)"
+ },
+ "movable": false,
+ "image": "/i/noto-emoji/emoji_u1f419.svg"
+ },
+ "example14": {
+ "id": "example14",
+ "x": 1159,
+ "y": 292,
+ "z": 10097,
+ "movable": false,
+ "image": "/i/noto-emoji/emoji_u1f419.svg"
+ },
+ "example15": {
+ "id": "example15",
+ "x": 1159,
+ "y": 416,
+ "z": 10100,
+ "css": {
+ "font-size": "90px",
+ "display": "flex",
+ "justify-content": "center",
+ "align-items": "center",
+ "color": "#e4651c",
+ "box-shadow": "3px 3px 7px 7px #4c556a"
+ },
+ "borderRadius": 100,
+ "movable": false,
+ "image": "/i/noto-emoji/emoji_u1f419.svg"
+ },
+ "example16": {
+ "id": "example16",
+ "x": 1269,
+ "y": 416,
+ "z": 10099,
+ "css": {
+ "font-size": "90px",
+ "display": "flex",
+ "justify-content": "center",
+ "align-items": "center",
+ "color": "#e4651c",
+ "filter": "saturate(${PROPERTY saturate})",
+ "transition": "linear 0.5s"
+ },
+ "movable": false,
+ "clickRoutine": [
+ {
+ "func": "IF",
+ "operand1": "${PROPERTY saturate}",
+ "operand2": 0.5,
+ "thenRoutine": [
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "saturate",
+ "value": 2
+ }
+ ],
+ "elseRoutine": [
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "saturate",
+ "value": 0.5
+ }
+ ]
+ }
+ ],
+ "image": "/i/noto-emoji/emoji_u1f419.svg",
+ "saturate": 0.5
+ }
+}
\ No newline at end of file
diff --git a/library/tutorials/Icons_ Symbols_ and Emojis/1.json b/library/tutorials/Icons_ Symbols_ and Emojis/1.json
new file mode 100644
index 0000000000..9a5dc06a0c
--- /dev/null
+++ b/library/tutorials/Icons_ Symbols_ and Emojis/1.json
@@ -0,0 +1,1723 @@
+{
+ "_meta": {
+ "version": 17,
+ "info": {
+ "name": "Icons, Symbols, and Emojis",
+ "image": "/assets/1923406359_3510",
+ "rules": "",
+ "bgg": "",
+ "year": "",
+ "mode": "Tutorial",
+ "time": "0",
+ "attribution": "",
+ "lastUpdate": 1737418482870,
+ "showName": false,
+ "skill": "",
+ "description": "",
+ "similarImage": "",
+ "similarName": "",
+ "similarDesigner": "",
+ "similarAwards": "",
+ "ruleText": "",
+ "helpText": "",
+ "variantImage": "",
+ "variant": "CSS Demo",
+ "language": "en-US",
+ "players": "1"
+ }
+ },
+ "header": {
+ "id": "header",
+ "x": 200,
+ "y": -2,
+ "height": 60,
+ "z": 74,
+ "movable": false,
+ "movableInEdit": false,
+ "css": "font-size: 60px;text-align:center",
+ "text": "Icons, Symbols, and Emojis: CSS Demo",
+ "width": 1200
+ },
+ "mainText": {
+ "id": "mainText",
+ "x": 100,
+ "y": 100,
+ "width": 1405,
+ "height": 150,
+ "layer": -3,
+ "z": 124,
+ "css": "font-size: 25px; ",
+ "movable": false,
+ "html": "In this tutorial, you can see the effects of selected css changes on icons, symbols, and emojis. Choose the css you want to manipulate using the black and white rectangle in the bottom right. Then adjust sliders to see the kinds of effects you can create. When combining different color-changing effects (such as sepia and grayscale) the order in which the css properties are listed influences the appearance; that is not simulated here. To reset a specific value to its default, click on the slider button. To reset all the defaults for that property, click on an icon."
+ },
+ "background": {
+ "id": "background",
+ "width": 1600,
+ "height": 1000,
+ "layer": -4,
+ "z": 94,
+ "movable": false,
+ "movableInEdit": false,
+ "css": {
+ "background-color": "#96a7cf"
+ }
+ },
+ "demo1": {
+ "id": "demo1",
+ "x": 53,
+ "y": 271,
+ "width": 200,
+ "height": 200,
+ "z": 10097,
+ "movable": false,
+ "css": {
+ "font-size": "190px",
+ "display": "flex",
+ "justify-content": "center",
+ "align-items": "center",
+ "box-shadow": "${PROPERTY box-shadowX}px ${PROPERTY box-shadowY}px ${PROPERTY box-shadowBlur}px ${PROPERTY box-shadowSpread}px ${PROPERTY box-shadowColor}",
+ "color": "${PROPERTY color}",
+ "background": "${PROPERTY background}",
+ "filter": "drop-shadow(${PROPERTY filter-drop-shadowX}px ${PROPERTY filter-drop-shadowY}px ${PROPERTY filter-drop-shadowBlur}px ${PROPERTY filter-drop-shadowColor}) brightness(${PROPERTY filter-brightness}) contrast(${PROPERTY filter-contrast}) blur(${PROPERTY filter-blur}px) grayscale(${PROPERTY filter-grayscale}) hue-rotate(${PROPERTY filter-hue-rotate}deg) invert(${PROPERTY filter-invert}) saturate(${PROPERTY filter-saturate}) sepia(${PROPERTY filter-sepia})"
+ },
+ "image": "/i/game-icons.net/delapouite/paint-bucket.svg",
+ "demo": true,
+ "box-shadowColor": "#000000",
+ "clickRoutine": [
+ "var props = ${PROPERTY props OF chooseButton}",
+ "var defaults = ${PROPERTY propsDefault OF chooseButton}",
+ "var single = ${PROPERTY single OF chooseButton}",
+ {
+ "func": "FOREACH",
+ "in": "${props}",
+ "loopRoutine": [
+ {
+ "func": "IF",
+ "condition": "${single}",
+ "thenRoutine": [
+ "var key = ${single}"
+ ]
+ },
+ {
+ "func": "SELECT",
+ "property": "demo",
+ "value": true
+ },
+ {
+ "func": "SET",
+ "property": "${value}",
+ "value": "${defaults.$key}"
+ },
+ "var currentProp = ${defaults.$key}",
+ "var currentPropLC = toLowerCase ${currentProp}",
+ "var colorCheck = ${currentPropLC} includes 'color'",
+ {
+ "func": "IF",
+ "condition": "${colorCheck}",
+ "thenRoutine": [
+ "// Color",
+ {
+ "func": "SET",
+ "collection": [
+ "slideButton0"
+ ],
+ "property": "y",
+ "value": 180
+ },
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "GET",
+ "property": "defaultColor"
+ },
+ {
+ "func": "SET",
+ "property": "${value}",
+ "value": "${defaultColor}"
+ }
+ ]
+ }
+ ],
+ "elseRoutine": [
+ {
+ "func": "IF",
+ "operand1": "${key}",
+ "operand2": 5,
+ "thenRoutine": [
+ "// Percent values",
+ {
+ "func": "IF",
+ "condition": "${PROPERTY equalsOne OF chooseButton}",
+ "thenRoutine": [
+ {
+ "func": "SET",
+ "collection": [
+ "slideButton${key}"
+ ],
+ "property": "x",
+ "value": 150
+ }
+ ],
+ "elseRoutine": [
+ {
+ "func": "SET",
+ "collection": [
+ "slideButton${key}"
+ ],
+ "property": "x",
+ "value": 100
+ }
+ ]
+ },
+ {
+ "func": "CALL",
+ "widget": "slideButton${key}",
+ "routine": "updatePosRoutine",
+ "arguments": {
+ "newValue": "${currentProp}"
+ }
+ }
+ ],
+ "elseRoutine": [
+ "// Degree values",
+ {
+ "func": "IF",
+ "operand1": "${key}",
+ "operand2": 6,
+ "thenRoutine": [
+ {
+ "func": "SET",
+ "collection": [
+ "slideButton${key}"
+ ],
+ "property": "x",
+ "value": 0
+ },
+ {
+ "func": "CALL",
+ "widget": "slideButton${key}",
+ "routine": "updatePosRoutine",
+ "arguments": {
+ "newValue": "${currentProp}"
+ }
+ }
+ ],
+ "elseRoutine": [
+ "// Number values",
+ {
+ "func": "SET",
+ "collection": [
+ "slideButton${key}"
+ ],
+ "property": "x",
+ "value": 100
+ },
+ {
+ "func": "CALL",
+ "widget": "slideButton${key}",
+ "routine": "updatePosRoutine",
+ "arguments": {
+ "newValue": "${currentProp}"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "slideButton0"
+ ],
+ "property": "x",
+ "value": 45
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "slideButton0"
+ ],
+ "property": "text",
+ "value": "hue"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "filter-contrast": 1,
+ "filter-drop-shadowX": 0,
+ "filter-drop-shadowY": 0,
+ "filter-drop-shadowColor": "",
+ "filter-drop-shadowBlur": 0,
+ "filter-brightness": 1,
+ "box-shadowX": 0,
+ "box-shadowY": 0,
+ "box-shadowBlur": 0,
+ "box-shadowSpread": 0,
+ "filter-blur": 0,
+ "defaultColor": "#000000",
+ "color": "#000000",
+ "background": "",
+ "filter-grayscale": 0,
+ "filter-invert": 0,
+ "filter-sepia": 0,
+ "filter-saturate": 1,
+ "filter-hue-rotate": 0
+ },
+ "demo2": {
+ "id": "demo2",
+ "x": 469,
+ "y": 271,
+ "width": 200,
+ "height": 200,
+ "z": 10098,
+ "movable": false,
+ "classes": "material-symbols",
+ "text": "directions_bus",
+ "demo": true,
+ "movableInEdit": true,
+ "inheritFrom": {
+ "demo1": [
+ "css",
+ "clickRoutine"
+ ]
+ },
+ "activeFace": 0,
+ "box-shadowColor": "#000000",
+ "filter-contrast": 1,
+ "filter-drop-shadowX": 0,
+ "filter-drop-shadowY": 0,
+ "filter-drop-shadowBlur": 0,
+ "filter-drop-shadowColor": "",
+ "filter-brightness": 1,
+ "box-shadowX": 0,
+ "box-shadowY": 0,
+ "box-shadowBlur": 0,
+ "box-shadowSpread": 0,
+ "filter-blur": 0,
+ "defaultColor": "#2d5da8",
+ "color": "#2d5da8",
+ "background": "",
+ "filter-grayscale": 0,
+ "filter-invert": 0,
+ "filter-sepia": 0,
+ "filter-saturate": 1,
+ "filter-hue-rotate": 0
+ },
+ "demo3": {
+ "id": "demo3",
+ "x": 885,
+ "y": 271,
+ "width": 200,
+ "height": 200,
+ "z": 10098,
+ "movable": false,
+ "classes": "emoji-monochrome",
+ "text": "π",
+ "demo": true,
+ "box-shadowColor": "#000000",
+ "inheritFrom": {
+ "demo1": [
+ "css",
+ "clickRoutine"
+ ]
+ },
+ "filter-contrast": 1,
+ "filter-drop-shadowX": 0,
+ "filter-drop-shadowY": 0,
+ "filter-drop-shadowBlur": 0,
+ "filter-drop-shadowColor": "",
+ "filter-brightness": 1,
+ "box-shadowX": 0,
+ "box-shadowY": 0,
+ "box-shadowBlur": 0,
+ "box-shadowSpread": 0,
+ "filter-blur": 0,
+ "defaultColor": "#e4651c",
+ "color": "#e4651c",
+ "background": "",
+ "filter-grayscale": 0,
+ "filter-invert": 0,
+ "filter-sepia": 0,
+ "filter-saturate": 1,
+ "filter-hue-rotate": 0
+ },
+ "demo4": {
+ "id": "demo4",
+ "x": 1301,
+ "y": 271,
+ "width": 200,
+ "height": 200,
+ "z": 10097,
+ "movable": false,
+ "image": "/i/noto-emoji/emoji_u1f419.svg",
+ "demo": true,
+ "box-shadowColor": "#000000",
+ "movableInEdit": true,
+ "inheritFrom": {
+ "demo1": [
+ "css",
+ "clickRoutine"
+ ]
+ },
+ "filter-contrast": 1,
+ "filter-drop-shadowX": 0,
+ "filter-drop-shadowY": 0,
+ "filter-drop-shadowBlur": 0,
+ "filter-drop-shadowColor": "",
+ "filter-brightness": 1,
+ "box-shadowX": 0,
+ "box-shadowY": 0,
+ "box-shadowBlur": 0,
+ "box-shadowSpread": 0,
+ "filter-blur": 0,
+ "defaultColor": "#000000",
+ "color": "#000000",
+ "background": "",
+ "filter-grayscale": 0,
+ "filter-invert": 0,
+ "filter-sepia": 0,
+ "filter-saturate": 1,
+ "filter-hue-rotate": 0
+ },
+ "chooseButton": {
+ "type": "button",
+ "id": "chooseButton",
+ "x": 1760,
+ "y": 217,
+ "z": 829,
+ "text": "CSS",
+ "clickRoutine": [
+ {
+ "func": "SELECT",
+ "property": "choose",
+ "value": true,
+ "collection": "allChoose"
+ },
+ {
+ "func": "MOVE",
+ "collection": "allChoose",
+ "to": "chooseHolder"
+ },
+ {
+ "func": "SORT",
+ "collection": "allChoose",
+ "key": "text"
+ },
+ {
+ "func": "INPUT",
+ "fields": [
+ {
+ "type": "title",
+ "text": "Choose CSS Property"
+ },
+ {
+ "type": "subtitle",
+ "text": "You can change elements of one property at a time. Click to choose, then press OK."
+ },
+ {
+ "type": "choose",
+ "source": "allChoose",
+ "max": 1,
+ "variable": "choice",
+ "scale": 1.3
+ }
+ ]
+ },
+ {
+ "func": "SELECT",
+ "property": "slider",
+ "value": true
+ },
+ {
+ "func": "SET",
+ "property": "display",
+ "value": false
+ },
+ {
+ "func": "SELECT",
+ "property": "id",
+ "value": "${choice}"
+ },
+ {
+ "func": "GET",
+ "property": "props"
+ },
+ {
+ "func": "GET",
+ "property": "propsDefault"
+ },
+ {
+ "func": "GET",
+ "property": "single"
+ },
+ {
+ "func": "GET",
+ "property": "propsLabel"
+ },
+ {
+ "func": "GET",
+ "property": "text",
+ "variable": "thisCSS"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "choice",
+ "value": "${thisCSS}"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "propsDefault",
+ "value": "${propsDefault}"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "single",
+ "value": "${single}"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "propsLabel",
+ "value": "${propsLabel}"
+ },
+ "var defaultsArray = []",
+ {
+ "func": "FOREACH",
+ "in": "${props}",
+ "loopRoutine": [
+ {
+ "func": "SELECT",
+ "property": "id",
+ "value": "slideHolder${key}"
+ },
+ {
+ "func": "IF",
+ "operand1": "${value}",
+ "relation": "!=",
+ "operand2": " ",
+ "thenRoutine": [
+ {
+ "func": "SET",
+ "property": "display",
+ "value": true
+ },
+ {
+ "func": "SELECT",
+ "property": "id",
+ "value": "slideButton${key}"
+ },
+ "var currentProp = ${thisCSS} + ${value}",
+ {
+ "func": "SET",
+ "property": "currentProp",
+ "value": "${currentProp}"
+ },
+ "var defaultsArray = push ${currentProp}",
+ "var thisLabel = ${PROPERTY propsLabel}",
+ "var thisLabel = ${thisLabel.$key}",
+ {
+ "func": "SET",
+ "collection": [
+ "slideLabel${key}"
+ ],
+ "property": "text",
+ "value": "${thisLabel}"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "props",
+ "value": "${defaultsArray}"
+ },
+ {
+ "func": "CALL",
+ "routine": "updateSliderRoutine"
+ },
+ {
+ "func": "MOVE",
+ "collection": "allChoose",
+ "to": "offHolder"
+ },
+ {
+ "func": "SELECT",
+ "source": "allChoose",
+ "property": "id",
+ "value": "${choice}"
+ },
+ {
+ "func": "MOVE",
+ "to": "chooseHolder"
+ },
+ "var isBright = ${PROPERTY choice} == 'filter-brightness'",
+ "var isContrast = ${PROPERTY choice} == 'filter-contrast'",
+ "var isSaturate = ${PROPERTY choice} == 'filter-saturate'",
+ "var equalsOne = ${isBright} || ${isContrast} || ${isSaturate}",
+ {
+ "func": "IF",
+ "condition": "${equalsOne}",
+ "thenRoutine": [
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "equalsOne",
+ "value": true
+ }
+ ],
+ "elseRoutine": [
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "equalsOne",
+ "value": false
+ }
+ ]
+ }
+ ],
+ "props": [
+ "box-shadowColor",
+ "box-shadowX",
+ "box-shadowY",
+ "box-shadowBlur",
+ "box-shadowSpread"
+ ],
+ "updateSliderRoutine": [
+ "var props = ${PROPERTY props}",
+ "var single = ${PROPERTY single}",
+ {
+ "func": "FOREACH",
+ "in": "${props}",
+ "loopRoutine": [
+ {
+ "func": "GET",
+ "collection": [
+ "demo1"
+ ],
+ "property": "${value}",
+ "variable": "newValue"
+ },
+ {
+ "func": "IF",
+ "condition": "${single}",
+ "thenRoutine": [
+ "var key = ${single}"
+ ]
+ },
+ "var currentProp = ${value}",
+ "var currentPropLC = toLowerCase ${currentProp}",
+ "var colorCheck = ${currentPropLC} includes 'color'",
+ {
+ "func": "IF",
+ "condition": "${colorCheck}",
+ "thenRoutine": [
+ "// Color",
+ {
+ "func": "FOREACH",
+ "loopRoutine": [
+ {
+ "func": "SET",
+ "collection": [
+ "slideLabel0"
+ ],
+ "property": "text",
+ "value": "${newValue}"
+ }
+ ]
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "slideButton0"
+ ],
+ "property": "y",
+ "value": 180
+ }
+ ],
+ "elseRoutine": [
+ {
+ "func": "IF",
+ "operand1": "${key}",
+ "operand2": 5,
+ "thenRoutine": [
+ "// Percent values",
+ {
+ "func": "SET",
+ "collection": [
+ "slideButton${key}"
+ ],
+ "property": "text",
+ "value": "${newValue}"
+ },
+ "var newX = (${newValue} + 2) / 0.02",
+ {
+ "func": "SET",
+ "collection": [
+ "slideButton${key}"
+ ],
+ "property": "x",
+ "value": "${newX}"
+ }
+ ],
+ "elseRoutine": [
+ "// Degree values",
+ {
+ "func": "IF",
+ "operand1": "${key}",
+ "operand2": 6,
+ "thenRoutine": [
+ {
+ "func": "SET",
+ "collection": [
+ "slideButton${key}"
+ ],
+ "property": "text",
+ "value": "${newValue}"
+ },
+ "var newX = ${newValue} / 1.8",
+ {
+ "func": "SET",
+ "collection": [
+ "slideButton${key}"
+ ],
+ "property": "x",
+ "value": "${newX}"
+ }
+ ],
+ "elseRoutine": [
+ "// Number values",
+ {
+ "func": "SET",
+ "collection": [
+ "slideButton${key}"
+ ],
+ "property": "text",
+ "value": "${newValue}"
+ },
+ "var newX = (${newValue} + 20) / 0.2",
+ {
+ "func": "SET",
+ "collection": [
+ "slideButton${key}"
+ ],
+ "property": "x",
+ "value": "${newX}"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "equalsOne": false,
+ "choice": "box-shadow",
+ "propsDefault": [
+ "",
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "propsLabel": [
+ "",
+ "X Offset (px)",
+ "Y Offset (px)",
+ "Blur (px)",
+ "Spread (px)"
+ ]
+ },
+ "chooseHolder": {
+ "type": "holder",
+ "id": "chooseHolder",
+ "x": 1284,
+ "y": 920,
+ "z": 126,
+ "dropTarget": {},
+ "width": 208,
+ "height": 48,
+ "scale": 2,
+ "classes": "transparent"
+ },
+ "slideHolder0": {
+ "type": "button",
+ "id": "slideHolder0",
+ "x": 328,
+ "y": 539,
+ "height": 360,
+ "layer": -2,
+ "z": 39,
+ "css": "border-radius:4px;background-image: linear-gradient(to bottom, hsl(0, 100%, 50%), hsl(47.5, 100%, 50%), hsl(95, 100%, 50%), hsl(142.5, 100%, 50%), hsl(190, 100%, 50%), hsl(237.5, 100%, 50%), hsl(285, 100%, 50%), hsl(332.5, 100%, 50%), hsl(360, 100%, 50%))",
+ "slider": true,
+ "clickRoutine": []
+ },
+ "slideButton0": {
+ "type": "button",
+ "id": "slideButton0",
+ "parent": "slideHolder0",
+ "fixedParent": true,
+ "z": 1372,
+ "movable": true,
+ "css": "border-color:transparent;background-color:transparent;border-radius:0",
+ "dragLimit": {
+ "minX": 45,
+ "maxX": 45,
+ "maxY": 311,
+ "minY": -41
+ },
+ "image": "/assets/1502865726_277",
+ "currentProp": "box-shadowColor",
+ "updateColorRoutine": [
+ {
+ "func": "SELECT",
+ "property": "demo",
+ "value": true
+ },
+ {
+ "func": "SET",
+ "collection": "DEFAULT",
+ "property": "${PROPERTY currentProp}",
+ "value": "${newValue}"
+ },
+ {
+ "func": "SET",
+ "collection": [
+ "slideLabel0"
+ ],
+ "property": "text",
+ "value": "${newValue}"
+ }
+ ],
+ "yChangeRoutine": [
+ "var newValue = ${PROPERTY y} + 41",
+ "var newValue = ${newValue} * 1.01989",
+ "var newValue = ${newValue} toFixed 0",
+ "var newValue = ${newValue} parseFloat",
+ "var newValue = 'hsla(' + ${newValue}",
+ "var newValue = ${newValue} + ','",
+ "var newValue = ${newValue} + '70'",
+ "var newValue = ${newValue} + '\\u0025,'",
+ "var newValue = ${newValue} + '50'",
+ "var newValue = ${newValue} + '\\u0025,'",
+ "var newValue = ${newValue} + '1'",
+ "var newValue = ${newValue} + ')'",
+ "var newValue = ${newValue} colorToHex",
+ {
+ "func": "CALL",
+ "routine": "updateColorRoutine"
+ }
+ ],
+ "slideLabel0": "#123456",
+ "x": 45,
+ "text": "hue",
+ "y": 180
+ },
+ "slideHolder4": {
+ "type": "holder",
+ "id": "slideHolder4",
+ "x": 618,
+ "y": 779,
+ "display": true,
+ "inheritFrom": {
+ "slideHolder1": "*"
+ }
+ },
+ "slideButton4": {
+ "type": "button",
+ "id": "slideButton4",
+ "parent": "slideHolder4",
+ "y": 0,
+ "z": 1335,
+ "display": true,
+ "inheritFrom": {
+ "slideButton1": "*"
+ },
+ "currentProp": "box-shadowSpread",
+ "x": 100,
+ "text": 0
+ },
+ "slideHolder3": {
+ "type": "holder",
+ "id": "slideHolder3",
+ "x": 618,
+ "y": 689,
+ "display": true,
+ "inheritFrom": {
+ "slideHolder1": "*"
+ }
+ },
+ "slideButton3": {
+ "type": "button",
+ "id": "slideButton3",
+ "parent": "slideHolder3",
+ "y": 0,
+ "z": 1336,
+ "display": true,
+ "inheritFrom": {
+ "slideButton1": "*"
+ },
+ "currentProp": "box-shadowBlur",
+ "x": 100,
+ "text": 0
+ },
+ "slideHolder2": {
+ "type": "holder",
+ "id": "slideHolder2",
+ "x": 618,
+ "y": 599,
+ "display": true,
+ "inheritFrom": {
+ "slideHolder1": "*"
+ }
+ },
+ "slideButton2": {
+ "type": "button",
+ "id": "slideButton2",
+ "parent": "slideHolder2",
+ "y": 0,
+ "z": 1341,
+ "display": true,
+ "inheritFrom": {
+ "slideButton1": "*"
+ },
+ "currentProp": "box-shadowY",
+ "x": 100,
+ "text": 0
+ },
+ "slideHolder1": {
+ "type": "holder",
+ "id": "slideHolder1",
+ "x": 618,
+ "y": 509,
+ "width": 280,
+ "height": 80,
+ "borderRadius": 50,
+ "z": 125,
+ "css": {
+ "background": "#ffffff40"
+ },
+ "slider": true
+ },
+ "slideButton1": {
+ "type": "button",
+ "id": "slideButton1",
+ "parent": "slideHolder1",
+ "fixedParent": true,
+ "z": 1340,
+ "movable": true,
+ "dragLimit": {
+ "minX": 0,
+ "maxX": 200,
+ "maxY": 0,
+ "minY": 0
+ },
+ "currentProp": "box-shadowX",
+ "updatePosRoutine": [
+ {
+ "func": "SELECT",
+ "property": "demo",
+ "value": true
+ },
+ {
+ "func": "SET",
+ "collection": "DEFAULT",
+ "property": "${PROPERTY currentProp}",
+ "value": "${newValue}"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "text",
+ "value": "${newValue}"
+ }
+ ],
+ "xChangeRoutine": [
+ {
+ "func": "IF",
+ "operand1": "${PROPERTY dragging}",
+ "operand2": null,
+ "thenRoutine": [],
+ "elseRoutine": [
+ "var newValue = ${PROPERTY x} * 0.2 - 20",
+ "var newValue = ${newValue} toFixed 0",
+ "var newValue = ${newValue} parseFloat",
+ {
+ "func": "CALL",
+ "routine": "updatePosRoutine"
+ }
+ ]
+ }
+ ],
+ "text": 0,
+ "clickRoutine": [
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "x",
+ "value": 100
+ },
+ {
+ "func": "CALL",
+ "routine": "updatePosRoutine",
+ "arguments": {
+ "newValue": 0
+ }
+ }
+ ],
+ "x": 100
+ },
+ "forceColor1": {
+ "id": "forceColor1",
+ "y": 5,
+ "x": -70,
+ "parent": "slideHolder0",
+ "fixedParent": true,
+ "z": 10107,
+ "width": 40,
+ "height": 40,
+ "css": {
+ "background": "${PROPERTY background}"
+ },
+ "background": "#ffffff",
+ "clickRoutine": [
+ {
+ "func": "CALL",
+ "widget": "slideButton0",
+ "routine": "updateColorRoutine",
+ "arguments": {
+ "newValue": "${PROPERTY background}"
+ }
+ }
+ ],
+ "movable": false
+ },
+ "forceColor2": {
+ "inheritFrom": {
+ "forceColor1": "*"
+ },
+ "id": "forceColor2",
+ "x": -71,
+ "y": 108,
+ "background": "#000000",
+ "z": 10108
+ },
+ "forceColor3": {
+ "inheritFrom": {
+ "forceColor1": "*"
+ },
+ "id": "forceColor3",
+ "x": -70,
+ "y": 210,
+ "background": "#606060"
+ },
+ "forceColor4": {
+ "inheritFrom": {
+ "forceColor1": "*"
+ },
+ "id": "forceColor4",
+ "x": -72,
+ "y": 313,
+ "background": "transparent",
+ "css": {
+ "background": "${PROPERTY background}",
+ "border": "1px solid #000000"
+ }
+ },
+ "choose6": {
+ "id": "choose6",
+ "x": 4,
+ "y": 4,
+ "text": "filter-brightness",
+ "props": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ ""
+ ],
+ "propsDefault": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ 1
+ ],
+ "single": 5,
+ "inheritFrom": {
+ "choose1": "!parent"
+ },
+ "z": 12605,
+ "propsLabel": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "Brightness (%)"
+ ],
+ "parent": "offHolder"
+ },
+ "slideHolder5": {
+ "inheritFrom": {
+ "slideHolder1": "*"
+ },
+ "type": "holder",
+ "id": "slideHolder5",
+ "display": false
+ },
+ "slideButton5": {
+ "inheritFrom": {
+ "slideButton1": "*"
+ },
+ "type": "button",
+ "id": "slideButton5",
+ "parent": "slideHolder5",
+ "z": 1323,
+ "x": 100,
+ "y": 0,
+ "currentProp": "filter-sepia",
+ "xChangeRoutine": [
+ {
+ "func": "IF",
+ "operand1": "${PROPERTY dragging}",
+ "operand2": null,
+ "thenRoutine": [],
+ "elseRoutine": [
+ "var newValue = ${PROPERTY x} * 0.02 - 2",
+ "var newValue = ${newValue} toFixed 1",
+ "var newValue = ${newValue} parseFloat",
+ {
+ "func": "CALL",
+ "routine": "updatePosRoutine"
+ }
+ ]
+ }
+ ],
+ "updatePosRoutine": [
+ {
+ "func": "SELECT",
+ "property": "demo",
+ "value": true
+ },
+ {
+ "func": "SET",
+ "collection": "DEFAULT",
+ "property": "${PROPERTY currentProp}",
+ "value": "${newValue}"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "text",
+ "value": "${newValue}"
+ }
+ ],
+ "clickRoutine": [
+ {
+ "func": "IF",
+ "condition": "${PROPERTY equalsOne OF chooseButton}",
+ "thenRoutine": [
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "x",
+ "value": 150
+ },
+ {
+ "func": "CALL",
+ "routine": "updatePosRoutine",
+ "arguments": {
+ "newValue": 1
+ }
+ }
+ ],
+ "elseRoutine": [
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "x",
+ "value": 100
+ },
+ {
+ "func": "CALL",
+ "routine": "updatePosRoutine",
+ "arguments": {
+ "newValue": 0
+ }
+ }
+ ]
+ }
+ ],
+ "text": 0
+ },
+ "choose7": {
+ "id": "choose7",
+ "x": 4,
+ "y": 4,
+ "text": "filter-contrast",
+ "props": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ ""
+ ],
+ "propsDefault": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ 1
+ ],
+ "single": 5,
+ "inheritFrom": {
+ "choose1": "!parent"
+ },
+ "z": 12606,
+ "propsLabel": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "Contrast (%)"
+ ],
+ "parent": "offHolder"
+ },
+ "slideLabel0": {
+ "type": "label",
+ "id": "slideLabel0",
+ "parent": "slideHolder0",
+ "fixedParent": true,
+ "x": -48,
+ "y": -52,
+ "width": 180,
+ "height": 35,
+ "borderRadius": 4,
+ "css": {
+ "color": "black",
+ "font-size": "30px",
+ "border": "1px solid black"
+ },
+ "editable": true,
+ "textChangeRoutine": [
+ {
+ "func": "CALL",
+ "widget": "slideButton0",
+ "routine": "updateColorRoutine",
+ "arguments": {
+ "newValue": "${PROPERTY text}"
+ }
+ }
+ ],
+ "text": "#000000"
+ },
+ "choose8": {
+ "inheritFrom": {
+ "choose1": "!parent"
+ },
+ "id": "choose8",
+ "x": 4,
+ "y": 4,
+ "text": "filter-grayscale",
+ "props": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ ""
+ ],
+ "propsDefault": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ 0
+ ],
+ "single": 5,
+ "z": 12608,
+ "propsLabel": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "Grayscale (%)"
+ ],
+ "parent": "offHolder"
+ },
+ "slideLabel1": {
+ "id": "slideLabel1",
+ "x": 330,
+ "css": {
+ "color": "black",
+ "font-size": "30px"
+ },
+ "width": 500,
+ "height": 35,
+ "movable": false,
+ "parent": "slideHolder1",
+ "y": 20,
+ "fixedParent": true,
+ "text": "X Offset (px)"
+ },
+ "slideLabel2": {
+ "inheritFrom": {
+ "slideLabel1": "*"
+ },
+ "id": "slideLabel2",
+ "x": 330,
+ "y": 20,
+ "parent": "slideHolder2",
+ "text": "Y Offset (px)"
+ },
+ "slideLabel3": {
+ "inheritFrom": {
+ "slideLabel1": "*"
+ },
+ "id": "slideLabel3",
+ "x": 330,
+ "y": 20,
+ "parent": "slideHolder3",
+ "text": "Blur (px)"
+ },
+ "slideLabel4": {
+ "inheritFrom": {
+ "slideLabel1": "*"
+ },
+ "id": "slideLabel4",
+ "x": 330,
+ "y": 20,
+ "parent": "slideHolder4",
+ "text": "Spread (px)",
+ "activeFace": 0
+ },
+ "slideLabel5": {
+ "inheritFrom": {
+ "slideLabel1": "*"
+ },
+ "id": "slideLabel5",
+ "x": 330,
+ "y": 20,
+ "parent": "slideHolder5",
+ "text": "Sepia (%)"
+ },
+ "choose10": {
+ "inheritFrom": {
+ "choose1": "!parent"
+ },
+ "id": "choose10",
+ "x": 4,
+ "y": 4,
+ "z": 12611,
+ "text": "filter-saturate",
+ "props": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ ""
+ ],
+ "propsDefault": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ 1
+ ],
+ "propsLabel": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "Saturate (%)"
+ ],
+ "single": 5,
+ "parent": "offHolder"
+ },
+ "choose2": {
+ "id": "choose2",
+ "x": 4,
+ "y": 4,
+ "text": "color",
+ "props": [
+ ""
+ ],
+ "propsDefault": [
+ "color"
+ ],
+ "inheritFrom": {
+ "choose1": "!parent"
+ },
+ "z": 12603,
+ "parent": "offHolder"
+ },
+ "choose4": {
+ "id": "choose4",
+ "x": 4,
+ "y": 4,
+ "text": "filter-drop-shadow",
+ "props": [
+ "Color",
+ "X",
+ "Y",
+ "Blur"
+ ],
+ "propsDefault": [
+ "",
+ 0,
+ 0,
+ 0
+ ],
+ "inheritFrom": {
+ "choose1": "!parent"
+ },
+ "z": 12607,
+ "propsLabel": [
+ "",
+ "X Offset (px)",
+ "Y Offset (px)",
+ "Blur (px)"
+ ],
+ "parent": "offHolder"
+ },
+ "choose5": {
+ "id": "choose5",
+ "x": 4,
+ "y": 4,
+ "text": "filter-blur",
+ "props": [
+ " ",
+ ""
+ ],
+ "propsDefault": [
+ "",
+ 0
+ ],
+ "single": 1,
+ "inheritFrom": {
+ "choose1": "!parent"
+ },
+ "z": 12604,
+ "propsLabel": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "Blur (px)"
+ ],
+ "parent": "offHolder"
+ },
+ "choose9": {
+ "inheritFrom": {
+ "choose1": "!parent"
+ },
+ "id": "choose9",
+ "x": 4,
+ "y": 4,
+ "z": 12610,
+ "text": "filter-invert",
+ "props": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ ""
+ ],
+ "propsDefault": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ 0
+ ],
+ "propsLabel": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "Invert (%)"
+ ],
+ "single": 5,
+ "parent": "offHolder"
+ },
+ "offHolder": {
+ "type": "holder",
+ "id": "offHolder",
+ "x": 1738,
+ "y": 354,
+ "z": 135
+ },
+ "choose11": {
+ "inheritFrom": {
+ "choose1": "!parent"
+ },
+ "id": "choose11",
+ "x": 4,
+ "y": 4,
+ "z": 12612,
+ "text": "filter-sepia",
+ "props": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ ""
+ ],
+ "propsDefault": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ 0
+ ],
+ "propsLabel": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "Sepia (%)"
+ ],
+ "single": 5,
+ "parent": "offHolder"
+ },
+ "choose3": {
+ "id": "choose3",
+ "x": 4,
+ "y": 4,
+ "props": [
+ ""
+ ],
+ "text": "background",
+ "propsDefault": [
+ ""
+ ],
+ "inheritFrom": {
+ "choose1": "!parent"
+ },
+ "z": 12601,
+ "parent": "offHolder"
+ },
+ "choose1": {
+ "id": "choose1",
+ "y": 4,
+ "text": "box-shadow",
+ "css": {
+ "display": "flex",
+ "justify-content": "center",
+ "align-items": "center",
+ "background": "black",
+ "color": "white"
+ },
+ "width": 200,
+ "height": 40,
+ "borderRadius": 10,
+ "z": 12613,
+ "props": [
+ "Color",
+ "X",
+ "Y",
+ "Blur",
+ "Spread"
+ ],
+ "propsDefault": [
+ "",
+ 0,
+ 0,
+ 0,
+ 0
+ ],
+ "clickRoutine": [
+ {
+ "func": "CLICK",
+ "collection": [
+ "chooseButton"
+ ]
+ }
+ ],
+ "choose": true,
+ "propsLabel": [
+ "",
+ "X Offset (px)",
+ "Y Offset (px)",
+ "Blur (px)",
+ "Spread (px)"
+ ],
+ "x": 4,
+ "parent": "chooseHolder"
+ },
+ "r865": {
+ "id": "r865",
+ "y": 114,
+ "x": -302,
+ "parent": "slideHolder0",
+ "fixedParent": true,
+ "css": {
+ "color": "black",
+ "text-align": "left"
+ },
+ "width": 200,
+ "text": "Use the hue slider to approximate a color. To use an exact hex color, enter it into the box above the slider. You can also click the squares for white, black, gray, and transparent.",
+ "z": 12038,
+ "movable": false
+ },
+ "changeIconLabel": {
+ "id": "changeIconLabel",
+ "x": 1257,
+ "y": 505,
+ "text": "To change to a different icon, open one in the JSON Editor. Place the cursor either over the text or image property and click the blue and white button that appears in the upper right corner to 'pick an asset'.",
+ "width": 300,
+ "movable": false
+ },
+ "choose12": {
+ "inheritFrom": {
+ "choose1": "!parent"
+ },
+ "id": "choose12",
+ "x": 4,
+ "y": 4,
+ "z": 12609,
+ "text": "filter-hue-rotate",
+ "props": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ ""
+ ],
+ "propsDefault": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ 0
+ ],
+ "propsLabel": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "Hue-Rotate (deg)"
+ ],
+ "single": 6,
+ "parent": "offHolder"
+ },
+ "slideHolder6": {
+ "inheritFrom": {
+ "slideHolder1": "*"
+ },
+ "type": "holder",
+ "id": "slideHolder6",
+ "display": false
+ },
+ "slideButton6": {
+ "inheritFrom": {
+ "slideButton1": "*"
+ },
+ "type": "button",
+ "id": "slideButton6",
+ "parent": "slideHolder6",
+ "z": 1374,
+ "text": 0,
+ "y": 0,
+ "dragLimit": {
+ "minX": 0,
+ "maxX": 200,
+ "maxY": 0,
+ "minY": 0
+ },
+ "currentProp": "filter-hue-rotate",
+ "clickRoutine": [
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "x",
+ "value": 0
+ },
+ {
+ "func": "CALL",
+ "routine": "updatePosRoutine",
+ "arguments": {
+ "newValue": 0
+ }
+ }
+ ],
+ "updatePosRoutine": [
+ {
+ "func": "SELECT",
+ "property": "demo",
+ "value": true
+ },
+ {
+ "func": "SET",
+ "collection": "DEFAULT",
+ "property": "${PROPERTY currentProp}",
+ "value": "${newValue}"
+ },
+ {
+ "func": "SET",
+ "collection": "thisButton",
+ "property": "text",
+ "value": "${newValue}"
+ }
+ ],
+ "xChangeRoutine": [
+ {
+ "func": "IF",
+ "operand1": "${PROPERTY dragging}",
+ "operand2": null,
+ "thenRoutine": [],
+ "elseRoutine": [
+ "var newValue = ${PROPERTY x} * 1.8",
+ "var newValue = ${newValue} toFixed 0",
+ "var newValue = ${newValue} parseFloat",
+ {
+ "func": "CALL",
+ "routine": "updatePosRoutine"
+ }
+ ]
+ }
+ ],
+ "x": 0
+ },
+ "slideLabel6": {
+ "inheritFrom": {
+ "slideLabel5": "*"
+ },
+ "id": "slideLabel6",
+ "parent": "slideHolder6",
+ "text": "Hue-Rotate (deg)"
+ }
+}
\ No newline at end of file
diff --git a/library/tutorials/Icons_ Symbols_ and Emojis/2.json b/library/tutorials/Icons_ Symbols_ and Emojis/2.json
new file mode 100644
index 0000000000..1831b86886
--- /dev/null
+++ b/library/tutorials/Icons_ Symbols_ and Emojis/2.json
@@ -0,0 +1,217 @@
+{
+ "_meta": {
+ "version": 17,
+ "info": {
+ "name": "Icons, Symbols, and Emojis",
+ "image": "/assets/1923406359_3510",
+ "rules": "",
+ "bgg": "",
+ "year": "",
+ "mode": "Tutorial",
+ "time": "0",
+ "attribution": "",
+ "lastUpdate": 1737418482872,
+ "showName": false,
+ "skill": "",
+ "description": "",
+ "similarImage": "",
+ "similarName": "",
+ "similarDesigner": "",
+ "similarAwards": "",
+ "ruleText": "",
+ "helpText": "",
+ "variantImage": "",
+ "variant": "svgReplaces",
+ "language": "en-US",
+ "players": "1"
+ }
+ },
+ "header": {
+ "id": "header",
+ "x": 200,
+ "y": -2,
+ "height": 60,
+ "z": 74,
+ "movable": false,
+ "movableInEdit": false,
+ "css": "font-size: 60px;text-align:center",
+ "text": "Icons, Symbols, and Emojis: svgReplaces",
+ "width": 1200
+ },
+ "mainText": {
+ "id": "mainText",
+ "x": 100,
+ "y": 100,
+ "width": 1405,
+ "height": 150,
+ "layer": -3,
+ "z": 124,
+ "css": "font-size: 25px; ",
+ "movable": false,
+ "html": "The icons in VTT represented through images (not text) are SVG files. SVGs are described with text-like code and can be adjusted dynamically through the VTT `svgReplaces` property. For more background about SVGs see this website . In a typical case, you are simply replacing a color with another color, but the property can be used in more powerful ways. These same techniques work on any SVG images and not just the ones available by default on VTT."
+ },
+ "button1Text": {
+ "id": "button1Text",
+ "x": 60,
+ "y": 587,
+ "width": 300,
+ "z": 185,
+ "movable": false,
+ "text": "The boat on the left is from the game-icons.net collection. They all have the default fill color as #000, so that is what you replace. Look at the boat in the JSON Editor. The `svgReplaces` property is saying take any instances where `#000` appears in the SVG and change it to whatever is set in the property `newColor`. You can name the property whatever you want. Then in that property, identify the color that should replace the black #000. \n\nThe meeple on the right is part of a custom set of VTT icons. They use `currentColor` (which defaults to black) and so that is what needs to be replaced."
+ },
+ "button2Text": {
+ "id": "button2Text",
+ "x": 410,
+ "y": 587,
+ "width": 300,
+ "z": 121,
+ "movable": false,
+ "html": "Many SVGs have more than one color. The emoji above on the left has 4. You can see the colors by opening the svg in a text editor. To do that, first download the svg by going to https://virtualtabletop.io/i/noto-emoji/emoji_u23ef.svg and save the file to your computer. Then open it in a text editor. You will see the available colors are #F77E00, #FF9800, #FFBD52, and #FAFAFA.\n\nThe emoji on the right has `svgReplaces` for the three orangish colors. Note that the replacement is case sensitive, so #f77e00 would not work."
+ },
+ "button3Text": {
+ "id": "button3Text",
+ "x": 760,
+ "y": 587,
+ "width": 300,
+ "z": 9732,
+ "movable": false,
+ "text": "The rainbows above are just another example of color replacement in an emoji with multiple colors.."
+ },
+ "background": {
+ "id": "background",
+ "width": 1600,
+ "height": 1000,
+ "layer": -4,
+ "z": 94,
+ "movable": false,
+ "movableInEdit": false,
+ "css": {
+ "background-color": "#96a7cf"
+ }
+ },
+ "example1": {
+ "id": "example1",
+ "x": 100,
+ "y": 288,
+ "z": 10097,
+ "image": "/i/game-icons.net/delapouite/fishing-boat.svg",
+ "movable": false,
+ "svgReplaces": {
+ "#000": "newColor"
+ },
+ "newColor": "gold"
+ },
+ "button4Text": {
+ "id": "button4Text",
+ "x": 1110,
+ "y": 587,
+ "width": 300,
+ "z": 9732,
+ "movable": false,
+ "text": "These examples take a simple SVG that has a fill but no stroke, and adds the stroke for a different effect. This technique will work on many SVGs. But you really should understand the structure of the SVG you intend to modify before trying something like this.\n\nThe example on the top uses a simple color svgReplaces to modify the color. Then on the bottom images, in the case of the bricks, the stroke (the area around each brick) is set to a thick, dark red stroke that is slightly opaque. The fire is similar with a thick, gold stroke added around the orange fire."
+ },
+ "example2": {
+ "id": "example2",
+ "x": 213,
+ "y": 288,
+ "z": 10097,
+ "image": "i/icons/meeple_3d.svg",
+ "movable": false,
+ "svgReplaces": {
+ "currentColor": "canBeAnything"
+ },
+ "canBeAnything": "red"
+ },
+ "example3": {
+ "id": "example3",
+ "x": 432,
+ "y": 288,
+ "z": 10097,
+ "image": "/i/noto-emoji/emoji_u23ef.svg",
+ "movable": false
+ },
+ "example4": {
+ "id": "example4",
+ "x": 563,
+ "y": 288,
+ "z": 10097,
+ "image": "/i/noto-emoji/emoji_u23ef.svg",
+ "movable": false,
+ "svgReplaces": {
+ "#FF9800": "mainColor",
+ "#FFBD52": "glintColor",
+ "#F77E00": "highlightColor"
+ },
+ "mainColor": "#5624d6",
+ "glintColor": "#b29aee",
+ "highlightColor": "#31147a"
+ },
+ "example6": {
+ "id": "example6",
+ "x": 924,
+ "y": 288,
+ "movable": false,
+ "image": "/i/noto-emoji/emoji_u1f308.svg",
+ "svgReplaces": {
+ "#8177FA": "color1",
+ "#00C0E9": "color2",
+ "#97CC37": "color3",
+ "#F9D81E": "color4",
+ "#FF8E00": "color5",
+ "#FF5117": "color6"
+ },
+ "color1": "indigo",
+ "color2": "blue",
+ "color3": "green",
+ "color4": "yellow",
+ "color5": "orange",
+ "color6": "red"
+ },
+ "example5": {
+ "id": "example5",
+ "x": 788,
+ "y": 288,
+ "movable": false,
+ "image": "/i/noto-emoji/emoji_u1f308.svg"
+ },
+ "example8": {
+ "id": "example8",
+ "x": 1117,
+ "y": 425,
+ "image": "/i/game-icons.net/delapouite/brick-wall.svg",
+ "svgReplaces": {
+ "#000": "customCSS"
+ },
+ "customCSS": "red\" stroke-width=\"15\" stroke-opacity=\"0.8\" stroke=\"darkred"
+ },
+ "example7": {
+ "id": "example7",
+ "x": 1117,
+ "y": 288,
+ "image": "/i/game-icons.net/delapouite/brick-wall.svg",
+ "svgReplaces": {
+ "#000": "brickColor"
+ },
+ "brickColor": "red"
+ },
+ "example9": {
+ "id": "example9",
+ "x": 1299,
+ "y": 425,
+ "image": "/i/game-icons.net/carl-olsen/flame.svg",
+ "svgReplaces": {
+ "#000": "customCSS"
+ },
+ "customCSS": "orange\" stroke-width=\"25\" stroke=\"gold"
+ },
+ "example10": {
+ "id": "example10",
+ "x": 1299,
+ "y": 288,
+ "image": "/i/game-icons.net/carl-olsen/flame.svg",
+ "svgReplaces": {
+ "#000": "newColor"
+ },
+ "newColor": "orange"
+ }
+}
\ No newline at end of file
diff --git a/library/tutorials/Icons_ Symbols_ and Emojis/assets/1502865726_277 b/library/tutorials/Icons_ Symbols_ and Emojis/assets/1502865726_277
new file mode 100644
index 0000000000..5c090514c4
--- /dev/null
+++ b/library/tutorials/Icons_ Symbols_ and Emojis/assets/1502865726_277
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/library/tutorials/Icons_ Symbols_ and Emojis/assets/1923406359_3510 b/library/tutorials/Icons_ Symbols_ and Emojis/assets/1923406359_3510
new file mode 100644
index 0000000000..ce0f6d9df3
--- /dev/null
+++ b/library/tutorials/Icons_ Symbols_ and Emojis/assets/1923406359_3510
@@ -0,0 +1,24 @@
+
+ Misc - Icons
+
+
+
+
+
+
+ I c o n s ,
+
+ S y m b o l s , &
+
+ E m o j i s
+
+
+
+
+
+
\ No newline at end of file
diff --git a/library/tutorials/Math/0.json b/library/tutorials/Math/0.json
index a393e2093c..b23aede09a 100644
--- a/library/tutorials/Math/0.json
+++ b/library/tutorials/Math/0.json
@@ -22,7 +22,7 @@
"time": "",
"attribution": "",
"showName": false,
- "lastUpdate": 1689025315871,
+ "lastUpdate": 1737903192760,
"skill": "",
"description": "",
"similarImage": "",
@@ -30,6 +30,7 @@
"similarAwards": "",
"ruleText": "",
"helpText": "",
+ "similarDesigner": "",
"variantImage": "",
"variant": "Basic",
"language": "en-US",
diff --git a/library/tutorials/Math/1.json b/library/tutorials/Math/1.json
index 3f3b050fce..f31001ef53 100644
--- a/library/tutorials/Math/1.json
+++ b/library/tutorials/Math/1.json
@@ -11,7 +11,7 @@
"y": 1
},
"_meta": {
- "version": 3,
+ "version": 17,
"info": {
"name": "Math",
"image": "/assets/2017839809_4407",
@@ -22,7 +22,7 @@
"time": "",
"attribution": "",
"showName": false,
- "lastUpdate": 1689025315873,
+ "lastUpdate": 1737903192760,
"skill": "",
"description": "",
"similarImage": "",
@@ -30,6 +30,7 @@
"similarAwards": "",
"ruleText": "",
"helpText": "",
+ "similarDesigner": "",
"variantImage": "",
"variant": "Constants",
"language": "en-US",
@@ -43,8 +44,9 @@
"z": 37,
"height": 50,
"css": "font-size: 20px; ",
- "text": "A few important math values are provided as constants in VirtualTabletop. These constants do not take any operands. You use them in a dynamic expression to multiply, divide, etc. by the value. To see an example of how to calculate the circumference of a circle with a radius of r, look at the JSON in the button in the lower left. The button does not do anything; it is just a model.\n\nThe available constants are demonstrated below. Press the button to see the value of the constant.",
- "width": 1000
+ "text": "A few important math values are provided as constants in VirtualTabletop. These constants do not take any operands and cannot work directly with other math functions. You can use them in a dynamic expression to multiply, divide, etc. by the value. However, to do this, you must first create a new variable equal to the constant. To see an example of how to calculate the circumference of a circle with a radius of r (10 in this example), look at the JSON in the button in the lower left.\n\nThe available constants are demonstrated below. Press the button to see the value of the constant.",
+ "width": 1000,
+ "movable": false
},
"lr6y": {
"id": "lr6y",
@@ -205,8 +207,17 @@
{
"Note": "This button does not do anything. It is just an example of how you break would calculate the circumference of a circle with a radius variable 'r'."
},
- "var circum = 2 * PI",
- "var circum = ${circum} * ${r}"
+ "var r = 10",
+ "var p = PI",
+ "var circum = 2 * ${p} * ${r}",
+ {
+ "func": "SET",
+ "collection": [
+ "outputstring"
+ ],
+ "property": "text",
+ "value": "${circum}"
+ }
],
"x": 120,
"y": 787,
@@ -231,7 +242,7 @@
}
],
"x": 872,
- "y": 250,
+ "y": 300,
"z": 288,
"id": "0zgn",
"css": "font-size: 30px; ",
@@ -253,7 +264,7 @@
}
],
"x": 619,
- "y": 250,
+ "y": 300,
"z": 289,
"id": "2rti",
"css": "font-size: 30px; ",
diff --git a/library/tutorials/Math/2.json b/library/tutorials/Math/2.json
index 2b354e1242..2c1143eb68 100644
--- a/library/tutorials/Math/2.json
+++ b/library/tutorials/Math/2.json
@@ -626,7 +626,7 @@
"time": "",
"attribution": "",
"showName": false,
- "lastUpdate": 1689025315873,
+ "lastUpdate": 1737903192761,
"skill": "",
"description": "",
"similarImage": "",
@@ -634,6 +634,7 @@
"similarAwards": "",
"ruleText": "",
"helpText": "",
+ "similarDesigner": "",
"variantImage": "",
"variant": "Advanced",
"language": "en-US",
diff --git a/library/tutorials/Math/3.json b/library/tutorials/Math/3.json
index d59faaf7e8..5fce400b8d 100644
--- a/library/tutorials/Math/3.json
+++ b/library/tutorials/Math/3.json
@@ -22,7 +22,7 @@
"time": "",
"attribution": "",
"showName": false,
- "lastUpdate": 1689025315874,
+ "lastUpdate": 1737903192761,
"skill": "",
"description": "",
"similarImage": "",
@@ -30,6 +30,7 @@
"similarAwards": "",
"ruleText": "",
"helpText": "",
+ "similarDesigner": "",
"variantImage": "",
"variant": "Randomization",
"language": "en-US",
diff --git a/library/tutorials/Math/4.json b/library/tutorials/Math/4.json
index 692b975eb2..d09baf4f46 100644
--- a/library/tutorials/Math/4.json
+++ b/library/tutorials/Math/4.json
@@ -22,7 +22,7 @@
"time": "",
"attribution": "",
"showName": false,
- "lastUpdate": 1689025315874,
+ "lastUpdate": 1737903192762,
"skill": "",
"description": "",
"similarImage": "",
@@ -30,6 +30,7 @@
"similarAwards": "",
"ruleText": "",
"helpText": "",
+ "similarDesigner": "",
"variantImage": "",
"variant": "Format",
"language": "en-US",