@almadar/std 16.108.0 → 16.109.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/behaviors/registry/ui/game/2d/organisms/ui-battle-board.orb +213 -125
  2. package/behaviors/registry/ui/game/2d/organisms/ui-fishing-board.orb +2302 -705
  3. package/behaviors/registry/ui/game/2d/organisms/ui-minigolf-board.orb +7872 -1934
  4. package/behaviors/registry/ui/game/2d/organisms/ui-pinball-board.orb +2739 -3050
  5. package/behaviors/registry/ui/game/2d/organisms/ui-roguelike-board.orb +5204 -2967
  6. package/behaviors/registry/ui/game/2d/organisms/ui-sokoban-board.orb +3330 -1619
  7. package/behaviors/registry/ui/game/2d/organisms/ui-space-shmup-board.orb +4637 -4059
  8. package/behaviors/registry/ui/game/2d/organisms/ui-tanks-board.orb +76 -103
  9. package/behaviors/registry/ui/game/2d/organisms/ui-topdown-dungeon-board.orb +4579 -4356
  10. package/behaviors/registry/ui/game/2d/organisms/ui-uncontrolled-battle-board.orb +1164 -2247
  11. package/behaviors/registry/ui/game/2d/organisms/ui-winter-ski-board.orb +4573 -4553
  12. package/behaviors/registry/ui/game/3d/organisms/ui-arcade-board-3d.orb +379 -2
  13. package/behaviors/registry/ui/game/3d/organisms/ui-brick-sandbox-board-3d.orb +168 -1
  14. package/behaviors/registry/ui/game/3d/organisms/ui-city-board-3d.orb +801 -169
  15. package/behaviors/registry/ui/game/3d/organisms/ui-fantasy-town-board-3d.orb +1666 -702
  16. package/behaviors/registry/ui/game/3d/organisms/ui-game-board-3d.orb +1323 -514
  17. package/behaviors/registry/ui/game/3d/organisms/ui-graveyard-board-3d.orb +1186 -384
  18. package/behaviors/registry/ui/game/3d/organisms/ui-hex-strategy-board-3d.orb +342 -170
  19. package/behaviors/registry/ui/game/3d/organisms/ui-holiday-board-3d.orb +509 -3
  20. package/behaviors/registry/ui/game/3d/organisms/ui-market-board-3d.orb +632 -419
  21. package/behaviors/registry/ui/game/3d/organisms/ui-minigolf-board-3d.orb +503 -145
  22. package/behaviors/registry/ui/game/3d/organisms/ui-nature-survival-board-3d.orb +1157 -134
  23. package/behaviors/registry/ui/game/3d/organisms/ui-pirate-board-3d.orb +1203 -383
  24. package/behaviors/registry/ui/game/3d/organisms/ui-platformer-board-3d.orb +1157 -205
  25. package/behaviors/registry/ui/game/3d/organisms/ui-racing-board-3d.orb +656 -565
  26. package/behaviors/registry/ui/game/3d/organisms/ui-skatepark-board-3d.orb +1205 -137
  27. package/behaviors/registry/ui/game/3d/organisms/ui-space-board-3d.orb +1333 -513
  28. package/behaviors/registry/ui/game/3d/organisms/ui-tower-defense-board-3d.orb +332 -7
  29. package/behaviors/registry/ui/game/3d/organisms/ui-toy-track-board-3d.orb +1202 -287
  30. package/dist/behaviors/behaviors-registry.json +282 -273
  31. package/dist/behaviors/registry/ui/game/2d/organisms/ui-battle-board.orb +213 -125
  32. package/dist/behaviors/registry/ui/game/2d/organisms/ui-fishing-board.orb +2302 -705
  33. package/dist/behaviors/registry/ui/game/2d/organisms/ui-minigolf-board.orb +7872 -1934
  34. package/dist/behaviors/registry/ui/game/2d/organisms/ui-pinball-board.orb +2739 -3050
  35. package/dist/behaviors/registry/ui/game/2d/organisms/ui-roguelike-board.orb +5204 -2967
  36. package/dist/behaviors/registry/ui/game/2d/organisms/ui-sokoban-board.orb +3330 -1619
  37. package/dist/behaviors/registry/ui/game/2d/organisms/ui-space-shmup-board.orb +4637 -4059
  38. package/dist/behaviors/registry/ui/game/2d/organisms/ui-tanks-board.orb +76 -103
  39. package/dist/behaviors/registry/ui/game/2d/organisms/ui-topdown-dungeon-board.orb +4579 -4356
  40. package/dist/behaviors/registry/ui/game/2d/organisms/ui-uncontrolled-battle-board.orb +1164 -2247
  41. package/dist/behaviors/registry/ui/game/2d/organisms/ui-winter-ski-board.orb +4573 -4553
  42. package/dist/behaviors/registry/ui/game/3d/organisms/ui-arcade-board-3d.orb +379 -2
  43. package/dist/behaviors/registry/ui/game/3d/organisms/ui-brick-sandbox-board-3d.orb +168 -1
  44. package/dist/behaviors/registry/ui/game/3d/organisms/ui-city-board-3d.orb +801 -169
  45. package/dist/behaviors/registry/ui/game/3d/organisms/ui-fantasy-town-board-3d.orb +1666 -702
  46. package/dist/behaviors/registry/ui/game/3d/organisms/ui-game-board-3d.orb +1323 -514
  47. package/dist/behaviors/registry/ui/game/3d/organisms/ui-graveyard-board-3d.orb +1186 -384
  48. package/dist/behaviors/registry/ui/game/3d/organisms/ui-hex-strategy-board-3d.orb +342 -170
  49. package/dist/behaviors/registry/ui/game/3d/organisms/ui-holiday-board-3d.orb +509 -3
  50. package/dist/behaviors/registry/ui/game/3d/organisms/ui-market-board-3d.orb +632 -419
  51. package/dist/behaviors/registry/ui/game/3d/organisms/ui-minigolf-board-3d.orb +503 -145
  52. package/dist/behaviors/registry/ui/game/3d/organisms/ui-nature-survival-board-3d.orb +1157 -134
  53. package/dist/behaviors/registry/ui/game/3d/organisms/ui-pirate-board-3d.orb +1203 -383
  54. package/dist/behaviors/registry/ui/game/3d/organisms/ui-platformer-board-3d.orb +1157 -205
  55. package/dist/behaviors/registry/ui/game/3d/organisms/ui-racing-board-3d.orb +656 -565
  56. package/dist/behaviors/registry/ui/game/3d/organisms/ui-skatepark-board-3d.orb +1205 -137
  57. package/dist/behaviors/registry/ui/game/3d/organisms/ui-space-board-3d.orb +1333 -513
  58. package/dist/behaviors/registry/ui/game/3d/organisms/ui-tower-defense-board-3d.orb +332 -7
  59. package/dist/behaviors/registry/ui/game/3d/organisms/ui-toy-track-board-3d.orb +1202 -287
  60. package/dist/behaviors-registry.json +282 -273
  61. package/dist/registry/ui/game/2d/organisms/ui-battle-board.orb +213 -125
  62. package/dist/registry/ui/game/2d/organisms/ui-fishing-board.orb +2302 -705
  63. package/dist/registry/ui/game/2d/organisms/ui-minigolf-board.orb +7872 -1934
  64. package/dist/registry/ui/game/2d/organisms/ui-pinball-board.orb +2739 -3050
  65. package/dist/registry/ui/game/2d/organisms/ui-roguelike-board.orb +5204 -2967
  66. package/dist/registry/ui/game/2d/organisms/ui-sokoban-board.orb +3330 -1619
  67. package/dist/registry/ui/game/2d/organisms/ui-space-shmup-board.orb +4637 -4059
  68. package/dist/registry/ui/game/2d/organisms/ui-tanks-board.orb +76 -103
  69. package/dist/registry/ui/game/2d/organisms/ui-topdown-dungeon-board.orb +4579 -4356
  70. package/dist/registry/ui/game/2d/organisms/ui-uncontrolled-battle-board.orb +1164 -2247
  71. package/dist/registry/ui/game/2d/organisms/ui-winter-ski-board.orb +4573 -4553
  72. package/dist/registry/ui/game/3d/organisms/ui-arcade-board-3d.orb +379 -2
  73. package/dist/registry/ui/game/3d/organisms/ui-brick-sandbox-board-3d.orb +168 -1
  74. package/dist/registry/ui/game/3d/organisms/ui-city-board-3d.orb +801 -169
  75. package/dist/registry/ui/game/3d/organisms/ui-fantasy-town-board-3d.orb +1666 -702
  76. package/dist/registry/ui/game/3d/organisms/ui-game-board-3d.orb +1323 -514
  77. package/dist/registry/ui/game/3d/organisms/ui-graveyard-board-3d.orb +1186 -384
  78. package/dist/registry/ui/game/3d/organisms/ui-hex-strategy-board-3d.orb +342 -170
  79. package/dist/registry/ui/game/3d/organisms/ui-holiday-board-3d.orb +509 -3
  80. package/dist/registry/ui/game/3d/organisms/ui-market-board-3d.orb +632 -419
  81. package/dist/registry/ui/game/3d/organisms/ui-minigolf-board-3d.orb +503 -145
  82. package/dist/registry/ui/game/3d/organisms/ui-nature-survival-board-3d.orb +1157 -134
  83. package/dist/registry/ui/game/3d/organisms/ui-pirate-board-3d.orb +1203 -383
  84. package/dist/registry/ui/game/3d/organisms/ui-platformer-board-3d.orb +1157 -205
  85. package/dist/registry/ui/game/3d/organisms/ui-racing-board-3d.orb +656 -565
  86. package/dist/registry/ui/game/3d/organisms/ui-skatepark-board-3d.orb +1205 -137
  87. package/dist/registry/ui/game/3d/organisms/ui-space-board-3d.orb +1333 -513
  88. package/dist/registry/ui/game/3d/organisms/ui-tower-defense-board-3d.orb +332 -7
  89. package/dist/registry/ui/game/3d/organisms/ui-toy-track-board-3d.orb +1202 -287
  90. package/package.json +1 -1
@@ -139,6 +139,51 @@
139
139
  "name": "validMoves",
140
140
  "type": "array"
141
141
  },
142
+ {
143
+ "default": [],
144
+ "items": {
145
+ "properties": {
146
+ "id": {
147
+ "name": "id",
148
+ "required": true,
149
+ "type": "string"
150
+ },
151
+ "message": {
152
+ "name": "message",
153
+ "required": false,
154
+ "type": "string"
155
+ },
156
+ "ttl": {
157
+ "name": "ttl",
158
+ "required": true,
159
+ "type": "number"
160
+ },
161
+ "type": {
162
+ "name": "type",
163
+ "required": true,
164
+ "type": "string"
165
+ },
166
+ "x": {
167
+ "name": "x",
168
+ "required": true,
169
+ "type": "number"
170
+ },
171
+ "y": {
172
+ "name": "y",
173
+ "required": false,
174
+ "type": "number"
175
+ },
176
+ "z": {
177
+ "name": "z",
178
+ "required": false,
179
+ "type": "number"
180
+ }
181
+ },
182
+ "type": "object"
183
+ },
184
+ "name": "fx",
185
+ "type": "array"
186
+ },
142
187
  {
143
188
  "default": 0.0,
144
189
  "name": "claimed",
@@ -1424,18 +1469,6 @@
1424
1469
  "scope": "external",
1425
1470
  "tier": "domain"
1426
1471
  },
1427
- {
1428
- "description": "Starts the match from the menu state",
1429
- "event": "START",
1430
- "payloadSchema": [
1431
- {
1432
- "name": "id",
1433
- "type": "string"
1434
- }
1435
- ],
1436
- "scope": "external",
1437
- "tier": "domain"
1438
- },
1439
1472
  {
1440
1473
  "description": "Initializes the board on first mount",
1441
1474
  "event": "INIT",
@@ -1453,6 +1486,7 @@
1453
1486
  "provides": [
1454
1487
  "claimed",
1455
1488
  "claimedIds",
1489
+ "fx",
1456
1490
  "gridHeight",
1457
1491
  "gridWidth",
1458
1492
  "movementRange",
@@ -1471,18 +1505,6 @@
1471
1505
  "scope": "instance",
1472
1506
  "stateMachine": {
1473
1507
  "events": [
1474
- {
1475
- "description": "Starts the match from the menu state",
1476
- "key": "START",
1477
- "name": "Start",
1478
- "payloadSchema": [
1479
- {
1480
- "name": "id",
1481
- "type": "string"
1482
- }
1483
- ],
1484
- "tier": "domain"
1485
- },
1486
1508
  {
1487
1509
  "description": "Initializes the board on first mount",
1488
1510
  "key": "INIT",
@@ -1579,9 +1601,6 @@
1579
1601
  "isInitial": true,
1580
1602
  "name": "playing"
1581
1603
  },
1582
- {
1583
- "name": "menu"
1584
- },
1585
1604
  {
1586
1605
  "name": "gameover"
1587
1606
  }
@@ -1606,103 +1625,7 @@
1606
1625
  ],
1607
1626
  [
1608
1627
  "set",
1609
- "@entity.claimed",
1610
- 0.0
1611
- ],
1612
- [
1613
- "set",
1614
- "@entity.claimedIds",
1615
- []
1616
- ],
1617
- [
1618
- "set",
1619
- "@entity.totalBuildings",
1620
- 3.0
1621
- ],
1622
- [
1623
- "set",
1624
- "@entity.turnsLeft",
1625
- "@config.startingTurns"
1626
- ],
1627
- [
1628
- "set",
1629
- "@entity.result",
1630
- "none"
1631
- ],
1632
- [
1633
- "if",
1634
- [
1635
- "!=",
1636
- "@entity.result",
1637
- "none"
1638
- ],
1639
- [
1640
- "emit",
1641
- "GAME_END",
1642
- {
1643
- "result": "@entity.result"
1644
- }
1645
- ],
1646
- null
1647
- ],
1648
- [
1649
- "render-ui",
1650
- "main",
1651
- {
1652
- "children": [
1653
- {
1654
- "features": "@config.features",
1655
- "scale": "@config.scale",
1656
- "selectedUnitId": "@entity.selectedUnitId",
1657
- "tileClickEvent": "TILE_CLICK",
1658
- "tiles": "@config.tiles",
1659
- "type": "game-canvas-3d",
1660
- "unitClickEvent": "UNIT_CLICK",
1661
- "unitScale": "@config.unitScale",
1662
- "units": "@entity.units",
1663
- "validMoves": "@entity.validMoves"
1664
- }
1665
- ],
1666
- "hud": {
1667
- "stats": [
1668
- {
1669
- "label": "Claimed",
1670
- "value": "@entity.claimed"
1671
- },
1672
- {
1673
- "label": "Turns Left",
1674
- "value": "@entity.turnsLeft"
1675
- },
1676
- {
1677
- "label": "Result",
1678
- "value": "@entity.result"
1679
- }
1680
- ],
1681
- "type": "game-hud"
1682
- },
1683
- "type": "game-shell"
1684
- }
1685
- ]
1686
- ],
1687
- "event": "START",
1688
- "from": "menu",
1689
- "to": "playing"
1690
- },
1691
- {
1692
- "effects": [
1693
- [
1694
- "set",
1695
- "@entity.units",
1696
- "@config.units"
1697
- ],
1698
- [
1699
- "set",
1700
- "@entity.selectedUnitId",
1701
- ""
1702
- ],
1703
- [
1704
- "set",
1705
- "@entity.validMoves",
1628
+ "@entity.fx",
1706
1629
  []
1707
1630
  ],
1708
1631
  [
@@ -1765,8 +1688,28 @@
1765
1688
  "render-ui",
1766
1689
  "main",
1767
1690
  {
1691
+ "addons": {
1692
+ "children": [
1693
+ {
1694
+ "action": "CANCEL",
1695
+ "label": "Cancel",
1696
+ "type": "button",
1697
+ "variant": "secondary"
1698
+ },
1699
+ {
1700
+ "action": "PLAY_AGAIN",
1701
+ "label": "Restart",
1702
+ "type": "button",
1703
+ "variant": "secondary"
1704
+ }
1705
+ ],
1706
+ "direction": "vertical",
1707
+ "gap": "sm",
1708
+ "type": "stack"
1709
+ },
1768
1710
  "children": [
1769
1711
  {
1712
+ "events": "@entity.fx",
1770
1713
  "features": "@config.features",
1771
1714
  "scale": "@config.scale",
1772
1715
  "selectedUnitId": "@entity.selectedUnitId",
@@ -1949,8 +1892,28 @@
1949
1892
  "render-ui",
1950
1893
  "main",
1951
1894
  {
1895
+ "addons": {
1896
+ "children": [
1897
+ {
1898
+ "action": "CANCEL",
1899
+ "label": "Cancel",
1900
+ "type": "button",
1901
+ "variant": "secondary"
1902
+ },
1903
+ {
1904
+ "action": "PLAY_AGAIN",
1905
+ "label": "Restart",
1906
+ "type": "button",
1907
+ "variant": "secondary"
1908
+ }
1909
+ ],
1910
+ "direction": "vertical",
1911
+ "gap": "sm",
1912
+ "type": "stack"
1913
+ },
1952
1914
  "children": [
1953
1915
  {
1916
+ "events": "@entity.fx",
1954
1917
  "features": "@config.features",
1955
1918
  "scale": "@config.scale",
1956
1919
  "selectedUnitId": "@entity.selectedUnitId",
@@ -2097,12 +2060,10 @@
2097
2060
  ]
2098
2061
  ],
2099
2062
  [
2100
- "do",
2063
+ "let",
2101
2064
  [
2102
- "set",
2103
- "@entity.claimedIds",
2104
2065
  [
2105
- "if",
2066
+ "isNewClaim",
2106
2067
  [
2107
2068
  "and",
2108
2069
  [
@@ -2126,39 +2087,95 @@
2126
2087
  ]
2127
2088
  ]
2128
2089
  ]
2129
- ],
2130
- [
2131
- "array/append",
2132
- "@entity.claimedIds",
2133
- [
2134
- "object/get",
2135
- "@tile",
2136
- "id"
2137
- ]
2138
- ],
2139
- "@entity.claimedIds"
2090
+ ]
2140
2091
  ]
2141
2092
  ],
2142
2093
  [
2143
- "set",
2144
- "@entity.claimed",
2094
+ "do",
2145
2095
  [
2146
- "array/len",
2147
- "@entity.claimedIds"
2148
- ]
2149
- ],
2150
- [
2151
- "set",
2152
- "@entity.result",
2096
+ "set",
2097
+ "@entity.claimedIds",
2098
+ [
2099
+ "if",
2100
+ "@isNewClaim",
2101
+ [
2102
+ "array/append",
2103
+ "@entity.claimedIds",
2104
+ [
2105
+ "object/get",
2106
+ "@tile",
2107
+ "id"
2108
+ ]
2109
+ ],
2110
+ "@entity.claimedIds"
2111
+ ]
2112
+ ],
2113
+ [
2114
+ "set",
2115
+ "@entity.claimed",
2116
+ [
2117
+ "array/len",
2118
+ "@entity.claimedIds"
2119
+ ]
2120
+ ],
2121
+ [
2122
+ "set",
2123
+ "@entity.fx",
2124
+ [
2125
+ "if",
2126
+ "@isNewClaim",
2127
+ [
2128
+ "array/append",
2129
+ "@entity.fx",
2130
+ {
2131
+ "id": [
2132
+ "str/concat",
2133
+ "fx-claim-",
2134
+ [
2135
+ "object/get",
2136
+ "@tile",
2137
+ "id"
2138
+ ]
2139
+ ],
2140
+ "message": "+1",
2141
+ "ttl": 3.0,
2142
+ "type": "score",
2143
+ "x": "@payload.x",
2144
+ "z": "@payload.z"
2145
+ }
2146
+ ],
2147
+ "@entity.fx"
2148
+ ]
2149
+ ],
2150
+ [
2151
+ "set",
2152
+ "@entity.result",
2153
+ [
2154
+ "if",
2155
+ [
2156
+ "==",
2157
+ "@entity.claimed",
2158
+ "@entity.totalBuildings"
2159
+ ],
2160
+ "won",
2161
+ "@entity.result"
2162
+ ]
2163
+ ],
2153
2164
  [
2154
2165
  "if",
2155
2166
  [
2156
- "==",
2157
- "@entity.claimed",
2158
- "@entity.totalBuildings"
2167
+ "!=",
2168
+ "@entity.result",
2169
+ "none"
2159
2170
  ],
2160
- "won",
2161
- "@entity.result"
2171
+ [
2172
+ "emit",
2173
+ "GAME_END",
2174
+ {
2175
+ "result": "@entity.result"
2176
+ }
2177
+ ],
2178
+ null
2162
2179
  ]
2163
2180
  ]
2164
2181
  ]
@@ -2167,8 +2184,28 @@
2167
2184
  "render-ui",
2168
2185
  "main",
2169
2186
  {
2187
+ "addons": {
2188
+ "children": [
2189
+ {
2190
+ "action": "CANCEL",
2191
+ "label": "Cancel",
2192
+ "type": "button",
2193
+ "variant": "secondary"
2194
+ },
2195
+ {
2196
+ "action": "PLAY_AGAIN",
2197
+ "label": "Restart",
2198
+ "type": "button",
2199
+ "variant": "secondary"
2200
+ }
2201
+ ],
2202
+ "direction": "vertical",
2203
+ "gap": "sm",
2204
+ "type": "stack"
2205
+ },
2170
2206
  "children": [
2171
2207
  {
2208
+ "events": "@entity.fx",
2172
2209
  "features": "@config.features",
2173
2210
  "scale": "@config.scale",
2174
2211
  "selectedUnitId": "@entity.selectedUnitId",
@@ -2365,8 +2402,28 @@
2365
2402
  "render-ui",
2366
2403
  "main",
2367
2404
  {
2405
+ "addons": {
2406
+ "children": [
2407
+ {
2408
+ "action": "CANCEL",
2409
+ "label": "Cancel",
2410
+ "type": "button",
2411
+ "variant": "secondary"
2412
+ },
2413
+ {
2414
+ "action": "PLAY_AGAIN",
2415
+ "label": "Restart",
2416
+ "type": "button",
2417
+ "variant": "secondary"
2418
+ }
2419
+ ],
2420
+ "direction": "vertical",
2421
+ "gap": "sm",
2422
+ "type": "stack"
2423
+ },
2368
2424
  "children": [
2369
2425
  {
2426
+ "events": "@entity.fx",
2370
2427
  "features": "@config.features",
2371
2428
  "scale": "@config.scale",
2372
2429
  "selectedUnitId": "@entity.selectedUnitId",
@@ -2425,8 +2482,28 @@
2425
2482
  "render-ui",
2426
2483
  "main",
2427
2484
  {
2485
+ "addons": {
2486
+ "children": [
2487
+ {
2488
+ "action": "CANCEL",
2489
+ "label": "Cancel",
2490
+ "type": "button",
2491
+ "variant": "secondary"
2492
+ },
2493
+ {
2494
+ "action": "PLAY_AGAIN",
2495
+ "label": "Restart",
2496
+ "type": "button",
2497
+ "variant": "secondary"
2498
+ }
2499
+ ],
2500
+ "direction": "vertical",
2501
+ "gap": "sm",
2502
+ "type": "stack"
2503
+ },
2428
2504
  "children": [
2429
2505
  {
2506
+ "events": "@entity.fx",
2430
2507
  "features": "@config.features",
2431
2508
  "scale": "@config.scale",
2432
2509
  "selectedUnitId": "@entity.selectedUnitId",
@@ -2456,6 +2533,29 @@
2456
2533
  ],
2457
2534
  "type": "game-hud"
2458
2535
  },
2536
+ "overlay": {
2537
+ "align": "center",
2538
+ "children": [
2539
+ {
2540
+ "stats": [
2541
+ {
2542
+ "label": "Result",
2543
+ "value": "@entity.result"
2544
+ }
2545
+ ],
2546
+ "type": "game-hud"
2547
+ },
2548
+ {
2549
+ "action": "PLAY_AGAIN",
2550
+ "label": "Play Again",
2551
+ "type": "button",
2552
+ "variant": "primary"
2553
+ }
2554
+ ],
2555
+ "direction": "vertical",
2556
+ "gap": "md",
2557
+ "type": "stack"
2558
+ },
2459
2559
  "type": "game-shell"
2460
2560
  }
2461
2561
  ]
@@ -2486,6 +2586,11 @@
2486
2586
  "@entity.validMoves",
2487
2587
  []
2488
2588
  ],
2589
+ [
2590
+ "set",
2591
+ "@entity.fx",
2592
+ []
2593
+ ],
2489
2594
  [
2490
2595
  "set",
2491
2596
  "@entity.claimed",
@@ -2511,28 +2616,32 @@
2511
2616
  "@entity.result",
2512
2617
  "none"
2513
2618
  ],
2514
- [
2515
- "if",
2516
- [
2517
- "!=",
2518
- "@entity.result",
2519
- "none"
2520
- ],
2521
- [
2522
- "emit",
2523
- "GAME_END",
2524
- {
2525
- "result": "@entity.result"
2526
- }
2527
- ],
2528
- null
2529
- ],
2530
2619
  [
2531
2620
  "render-ui",
2532
2621
  "main",
2533
2622
  {
2623
+ "addons": {
2624
+ "children": [
2625
+ {
2626
+ "action": "CANCEL",
2627
+ "label": "Cancel",
2628
+ "type": "button",
2629
+ "variant": "secondary"
2630
+ },
2631
+ {
2632
+ "action": "PLAY_AGAIN",
2633
+ "label": "Restart",
2634
+ "type": "button",
2635
+ "variant": "secondary"
2636
+ }
2637
+ ],
2638
+ "direction": "vertical",
2639
+ "gap": "sm",
2640
+ "type": "stack"
2641
+ },
2534
2642
  "children": [
2535
2643
  {
2644
+ "events": "@entity.fx",
2536
2645
  "features": "@config.features",
2537
2646
  "scale": "@config.scale",
2538
2647
  "selectedUnitId": "@entity.selectedUnitId",
@@ -2568,13 +2677,56 @@
2568
2677
  ],
2569
2678
  "event": "PLAY_AGAIN",
2570
2679
  "from": "gameover",
2571
- "to": "menu"
2680
+ "to": "playing"
2572
2681
  }
2573
2682
  ]
2574
2683
  },
2575
2684
  "ticks": [
2576
2685
  {
2577
2686
  "effects": [
2687
+ [
2688
+ "set",
2689
+ "@entity.fx",
2690
+ [
2691
+ "array/filter",
2692
+ [
2693
+ "array/map",
2694
+ "@entity.fx",
2695
+ [
2696
+ "fn",
2697
+ "e",
2698
+ [
2699
+ "object/merge",
2700
+ "@e",
2701
+ {
2702
+ "ttl": [
2703
+ "-",
2704
+ [
2705
+ "object/get",
2706
+ "@e",
2707
+ "ttl"
2708
+ ],
2709
+ 1.0
2710
+ ]
2711
+ }
2712
+ ]
2713
+ ]
2714
+ ],
2715
+ [
2716
+ "fn",
2717
+ "e",
2718
+ [
2719
+ ">",
2720
+ [
2721
+ "object/get",
2722
+ "@e",
2723
+ "ttl"
2724
+ ],
2725
+ 0.0
2726
+ ]
2727
+ ]
2728
+ ]
2729
+ ],
2578
2730
  [
2579
2731
  "set",
2580
2732
  "@entity.turnsLeft",
@@ -2622,8 +2774,28 @@
2622
2774
  "render-ui",
2623
2775
  "main",
2624
2776
  {
2777
+ "addons": {
2778
+ "children": [
2779
+ {
2780
+ "action": "CANCEL",
2781
+ "label": "Cancel",
2782
+ "type": "button",
2783
+ "variant": "secondary"
2784
+ },
2785
+ {
2786
+ "action": "PLAY_AGAIN",
2787
+ "label": "Restart",
2788
+ "type": "button",
2789
+ "variant": "secondary"
2790
+ }
2791
+ ],
2792
+ "direction": "vertical",
2793
+ "gap": "sm",
2794
+ "type": "stack"
2795
+ },
2625
2796
  "children": [
2626
2797
  {
2798
+ "events": "@entity.fx",
2627
2799
  "features": "@config.features",
2628
2800
  "scale": "@config.scale",
2629
2801
  "selectedUnitId": "@entity.selectedUnitId",