@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
@@ -157,13 +157,58 @@
157
157
  "name": "towers",
158
158
  "type": "array"
159
159
  },
160
+ {
161
+ "default": [],
162
+ "items": {
163
+ "properties": {
164
+ "id": {
165
+ "name": "id",
166
+ "required": true,
167
+ "type": "string"
168
+ },
169
+ "message": {
170
+ "name": "message",
171
+ "required": false,
172
+ "type": "string"
173
+ },
174
+ "ttl": {
175
+ "name": "ttl",
176
+ "required": true,
177
+ "type": "number"
178
+ },
179
+ "type": {
180
+ "name": "type",
181
+ "required": true,
182
+ "type": "string"
183
+ },
184
+ "x": {
185
+ "name": "x",
186
+ "required": true,
187
+ "type": "number"
188
+ },
189
+ "y": {
190
+ "name": "y",
191
+ "required": false,
192
+ "type": "number"
193
+ },
194
+ "z": {
195
+ "name": "z",
196
+ "required": false,
197
+ "type": "number"
198
+ }
199
+ },
200
+ "type": "object"
201
+ },
202
+ "name": "fx",
203
+ "type": "array"
204
+ },
160
205
  {
161
206
  "default": 100.0,
162
207
  "name": "gold",
163
208
  "type": "number"
164
209
  },
165
210
  {
166
- "default": 10.0,
211
+ "default": 3.0,
167
212
  "name": "lives",
168
213
  "type": "number"
169
214
  },
@@ -280,7 +325,7 @@
280
325
  },
281
326
  "enemyHealth": {
282
327
  "default": 6.0,
283
- "description": "HP of each spawned enemy",
328
+ "description": "Base HP of each spawned enemy, scaled up per wave",
284
329
  "label": "Enemy Health",
285
330
  "tier": "presentation",
286
331
  "type": "number"
@@ -503,8 +548,15 @@
503
548
  "tier": "presentation",
504
549
  "type": "boolean"
505
550
  },
551
+ "killReward": {
552
+ "default": 15.0,
553
+ "description": "Gold earned per enemy killed by a tower",
554
+ "label": "Kill Reward",
555
+ "tier": "presentation",
556
+ "type": "number"
557
+ },
506
558
  "maxWaves": {
507
- "default": 8.0,
559
+ "default": 12.0,
508
560
  "description": "Total enemies to survive for victory",
509
561
  "label": "Max Waves",
510
562
  "tier": "presentation",
@@ -608,7 +660,7 @@
608
660
  "type": "number"
609
661
  },
610
662
  "startingLives": {
611
- "default": 10.0,
663
+ "default": 3.0,
612
664
  "description": "Lives before defeat",
613
665
  "label": "Starting Lives",
614
666
  "tier": "presentation",
@@ -1498,7 +1550,7 @@
1498
1550
  },
1499
1551
  "towerCost": {
1500
1552
  "default": 40.0,
1501
- "description": "Gold spent per tower build",
1553
+ "description": "Gold spent per tower build; earned back via killReward per enemy killed",
1502
1554
  "label": "Tower Cost",
1503
1555
  "tier": "presentation",
1504
1556
  "type": "number"
@@ -1567,6 +1619,7 @@
1567
1619
  ],
1568
1620
  "entityContract": {
1569
1621
  "provides": [
1622
+ "fx",
1570
1623
  "gold",
1571
1624
  "lives",
1572
1625
  "result",
@@ -1654,6 +1707,11 @@
1654
1707
  "@entity.towers",
1655
1708
  []
1656
1709
  ],
1710
+ [
1711
+ "set",
1712
+ "@entity.fx",
1713
+ []
1714
+ ],
1657
1715
  [
1658
1716
  "set",
1659
1717
  "@entity.gold",
@@ -1680,6 +1738,7 @@
1680
1738
  {
1681
1739
  "children": [
1682
1740
  {
1741
+ "events": "@entity.fx",
1683
1742
  "features": [
1684
1743
  "array/concat",
1685
1744
  "@config.features",
@@ -1782,12 +1841,36 @@
1782
1841
  }
1783
1842
  ]
1784
1843
  ],
1844
+ [
1845
+ "set",
1846
+ "@entity.fx",
1847
+ [
1848
+ "array/append",
1849
+ "@entity.fx",
1850
+ {
1851
+ "id": [
1852
+ "str/concat",
1853
+ "fx-build-",
1854
+ [
1855
+ "array/len",
1856
+ "@entity.towers"
1857
+ ]
1858
+ ],
1859
+ "message": "-40",
1860
+ "ttl": 3.0,
1861
+ "type": "pickup",
1862
+ "x": "@payload.x",
1863
+ "z": "@payload.z"
1864
+ }
1865
+ ]
1866
+ ],
1785
1867
  [
1786
1868
  "render-ui",
1787
1869
  "main",
1788
1870
  {
1789
1871
  "children": [
1790
1872
  {
1873
+ "events": "@entity.fx",
1791
1874
  "features": [
1792
1875
  "array/concat",
1793
1876
  "@config.features",
@@ -1954,6 +2037,7 @@
1954
2037
  {
1955
2038
  "children": [
1956
2039
  {
2040
+ "events": "@entity.fx",
1957
2041
  "features": [
1958
2042
  "array/concat",
1959
2043
  "@config.features",
@@ -2017,6 +2101,40 @@
2017
2101
  "justify": "between",
2018
2102
  "type": "stack"
2019
2103
  },
2104
+ "overlay": {
2105
+ "options": [
2106
+ {
2107
+ "event": "PLAY_AGAIN",
2108
+ "id": "again",
2109
+ "label": "Play Again",
2110
+ "variant": "primary"
2111
+ }
2112
+ ],
2113
+ "subtitle": [
2114
+ "str/concat",
2115
+ "Reached wave ",
2116
+ [
2117
+ "str/concat",
2118
+ "@entity.wave",
2119
+ [
2120
+ "str/concat",
2121
+ " of ",
2122
+ "@config.maxWaves"
2123
+ ]
2124
+ ]
2125
+ ],
2126
+ "title": [
2127
+ "if",
2128
+ [
2129
+ "==",
2130
+ "@entity.result",
2131
+ "victory"
2132
+ ],
2133
+ "VICTORY",
2134
+ "DEFEAT"
2135
+ ],
2136
+ "type": "game-menu"
2137
+ },
2020
2138
  "type": "game-shell"
2021
2139
  }
2022
2140
  ]
@@ -2050,6 +2168,11 @@
2050
2168
  "@entity.towers",
2051
2169
  []
2052
2170
  ],
2171
+ [
2172
+ "set",
2173
+ "@entity.fx",
2174
+ []
2175
+ ],
2053
2176
  [
2054
2177
  "set",
2055
2178
  "@entity.gold",
@@ -2076,6 +2199,7 @@
2076
2199
  {
2077
2200
  "children": [
2078
2201
  {
2202
+ "events": "@entity.fx",
2079
2203
  "features": [
2080
2204
  "array/concat",
2081
2205
  "@config.features",
@@ -2159,13 +2283,29 @@
2159
2283
  "array/append",
2160
2284
  "@entity.units",
2161
2285
  {
2162
- "health": "@config.enemyHealth",
2286
+ "health": [
2287
+ "+",
2288
+ "@config.enemyHealth",
2289
+ [
2290
+ "*",
2291
+ "@entity.wave",
2292
+ 2.0
2293
+ ]
2294
+ ],
2163
2295
  "id": [
2164
2296
  "str/concat",
2165
2297
  "enemy-",
2166
2298
  "@entity.wave"
2167
2299
  ],
2168
- "maxHealth": "@config.enemyHealth",
2300
+ "maxHealth": [
2301
+ "+",
2302
+ "@config.enemyHealth",
2303
+ [
2304
+ "*",
2305
+ "@entity.wave",
2306
+ 2.0
2307
+ ]
2308
+ ],
2169
2309
  "modelUrl": "@config.enemyAsset",
2170
2310
  "name": "Invader",
2171
2311
  "pathIndex": 0.0,
@@ -2207,6 +2347,7 @@
2207
2347
  {
2208
2348
  "children": [
2209
2349
  {
2350
+ "events": "@entity.fx",
2210
2351
  "features": [
2211
2352
  "array/concat",
2212
2353
  "@config.features",
@@ -2370,6 +2511,69 @@
2370
2511
  ]
2371
2512
  ]
2372
2513
  ],
2514
+ [
2515
+ "set",
2516
+ "@entity.fx",
2517
+ [
2518
+ "array/concat",
2519
+ "@entity.fx",
2520
+ [
2521
+ "array/map",
2522
+ [
2523
+ "array/filter",
2524
+ "@entity.units",
2525
+ [
2526
+ "fn",
2527
+ "u",
2528
+ [
2529
+ "==",
2530
+ "@u.pathIndex",
2531
+ [
2532
+ "-",
2533
+ [
2534
+ "array/len",
2535
+ "@config.path"
2536
+ ],
2537
+ 1.0
2538
+ ]
2539
+ ]
2540
+ ]
2541
+ ],
2542
+ [
2543
+ "fn",
2544
+ "u",
2545
+ {
2546
+ "id": [
2547
+ "str/concat",
2548
+ "fx-leak-",
2549
+ "@u.id"
2550
+ ],
2551
+ "message": "-1 life",
2552
+ "ttl": 3.0,
2553
+ "type": "damage",
2554
+ "x": [
2555
+ "object/get",
2556
+ [
2557
+ "object/get",
2558
+ "@u",
2559
+ "position"
2560
+ ],
2561
+ "x"
2562
+ ],
2563
+ "z": [
2564
+ "object/get",
2565
+ [
2566
+ "object/get",
2567
+ "@u",
2568
+ "position"
2569
+ ],
2570
+ "y"
2571
+ ]
2572
+ }
2573
+ ]
2574
+ ]
2575
+ ]
2576
+ ],
2373
2577
  [
2374
2578
  "set",
2375
2579
  "@entity.lives",
@@ -2514,6 +2718,7 @@
2514
2718
  {
2515
2719
  "children": [
2516
2720
  {
2721
+ "events": "@entity.fx",
2517
2722
  "features": [
2518
2723
  "array/concat",
2519
2724
  "@config.features",
@@ -2665,6 +2870,90 @@
2665
2870
  ]
2666
2871
  ]
2667
2872
  ],
2873
+ [
2874
+ "set",
2875
+ "@entity.gold",
2876
+ [
2877
+ "+",
2878
+ "@entity.gold",
2879
+ [
2880
+ "*",
2881
+ [
2882
+ "array/len",
2883
+ [
2884
+ "array/filter",
2885
+ "@entity.units",
2886
+ [
2887
+ "fn",
2888
+ "u",
2889
+ [
2890
+ "<=",
2891
+ "@u.health",
2892
+ 0.0
2893
+ ]
2894
+ ]
2895
+ ]
2896
+ ],
2897
+ "@config.killReward"
2898
+ ]
2899
+ ]
2900
+ ],
2901
+ [
2902
+ "set",
2903
+ "@entity.fx",
2904
+ [
2905
+ "array/concat",
2906
+ "@entity.fx",
2907
+ [
2908
+ "array/map",
2909
+ [
2910
+ "array/filter",
2911
+ "@entity.units",
2912
+ [
2913
+ "fn",
2914
+ "u",
2915
+ [
2916
+ "<=",
2917
+ "@u.health",
2918
+ 0.0
2919
+ ]
2920
+ ]
2921
+ ],
2922
+ [
2923
+ "fn",
2924
+ "u",
2925
+ {
2926
+ "id": [
2927
+ "str/concat",
2928
+ "fx-kill-",
2929
+ "@u.id"
2930
+ ],
2931
+ "message": "+15",
2932
+ "ttl": 3.0,
2933
+ "type": "score",
2934
+ "x": [
2935
+ "object/get",
2936
+ [
2937
+ "object/get",
2938
+ "@u",
2939
+ "position"
2940
+ ],
2941
+ "x"
2942
+ ],
2943
+ "z": [
2944
+ "object/get",
2945
+ [
2946
+ "object/get",
2947
+ "@u",
2948
+ "position"
2949
+ ],
2950
+ "y"
2951
+ ]
2952
+ }
2953
+ ]
2954
+ ]
2955
+ ]
2956
+ ],
2668
2957
  [
2669
2958
  "set",
2670
2959
  "@entity.units",
@@ -2682,6 +2971,41 @@
2682
2971
  ]
2683
2972
  ]
2684
2973
  ],
2974
+ [
2975
+ "set",
2976
+ "@entity.fx",
2977
+ [
2978
+ "array/filter",
2979
+ [
2980
+ "array/map",
2981
+ "@entity.fx",
2982
+ [
2983
+ "fn",
2984
+ "e",
2985
+ [
2986
+ "object/merge",
2987
+ "@e",
2988
+ {
2989
+ "ttl": [
2990
+ "-",
2991
+ "@e.ttl",
2992
+ 1.0
2993
+ ]
2994
+ }
2995
+ ]
2996
+ ]
2997
+ ],
2998
+ [
2999
+ "fn",
3000
+ "e",
3001
+ [
3002
+ ">",
3003
+ "@e.ttl",
3004
+ 0.0
3005
+ ]
3006
+ ]
3007
+ ]
3008
+ ],
2685
3009
  [
2686
3010
  "set",
2687
3011
  "@entity.result",
@@ -2737,6 +3061,7 @@
2737
3061
  {
2738
3062
  "children": [
2739
3063
  {
3064
+ "events": "@entity.fx",
2740
3065
  "features": [
2741
3066
  "array/concat",
2742
3067
  "@config.features",