@almadar/std 3.1.0 → 3.1.2

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 (256) hide show
  1. package/behaviors/exports/atoms/std-async.orb +2 -1
  2. package/behaviors/exports/atoms/std-browse.orb +2 -1
  3. package/behaviors/exports/atoms/std-cache-aside.orb +2 -1
  4. package/behaviors/exports/atoms/std-circuit-breaker.orb +2 -1
  5. package/behaviors/exports/atoms/std-collision.orb +2 -1
  6. package/behaviors/exports/atoms/std-combat-log.orb +2 -1
  7. package/behaviors/exports/atoms/std-combat.orb +2 -1
  8. package/behaviors/exports/atoms/std-confirmation.orb +2 -1
  9. package/behaviors/exports/atoms/std-dialogue-box.orb +2 -1
  10. package/behaviors/exports/atoms/std-display.orb +2 -1
  11. package/behaviors/exports/atoms/std-drawer.orb +2 -1
  12. package/behaviors/exports/atoms/std-filter.orb +2 -1
  13. package/behaviors/exports/atoms/std-game-audio.orb +2 -1
  14. package/behaviors/exports/atoms/std-game-hud.orb +2 -1
  15. package/behaviors/exports/atoms/std-game-menu.orb +2 -1
  16. package/behaviors/exports/atoms/std-game-over-screen.orb +2 -1
  17. package/behaviors/exports/atoms/std-gameflow.orb +2 -1
  18. package/behaviors/exports/atoms/std-input.orb +2 -1
  19. package/behaviors/exports/atoms/std-inventory-panel.orb +2 -1
  20. package/behaviors/exports/atoms/std-isometric-canvas.orb +2 -1
  21. package/behaviors/exports/atoms/std-loading.orb +2 -1
  22. package/behaviors/exports/atoms/std-modal.orb +2 -1
  23. package/behaviors/exports/atoms/std-movement.orb +2 -1
  24. package/behaviors/exports/atoms/std-notification.orb +2 -1
  25. package/behaviors/exports/atoms/std-overworld.orb +2 -1
  26. package/behaviors/exports/atoms/std-pagination.orb +2 -1
  27. package/behaviors/exports/atoms/std-physics2d.orb +2 -1
  28. package/behaviors/exports/atoms/std-platformer-canvas.orb +2 -1
  29. package/behaviors/exports/atoms/std-quest.orb +2 -1
  30. package/behaviors/exports/atoms/std-rate-limiter.orb +2 -1
  31. package/behaviors/exports/atoms/std-score-board.orb +2 -1
  32. package/behaviors/exports/atoms/std-score.orb +2 -1
  33. package/behaviors/exports/atoms/std-search.orb +2 -1
  34. package/behaviors/exports/atoms/std-selection.orb +2 -1
  35. package/behaviors/exports/atoms/std-simulation-canvas.orb +2 -1
  36. package/behaviors/exports/atoms/std-sort.orb +2 -1
  37. package/behaviors/exports/atoms/std-sprite.orb +2 -1
  38. package/behaviors/exports/atoms/std-tabs.orb +2 -1
  39. package/behaviors/exports/atoms/std-timer.orb +2 -1
  40. package/behaviors/exports/atoms/std-undo.orb +2 -1
  41. package/behaviors/exports/atoms/std-wizard.orb +2 -1
  42. package/behaviors/exports/molecules/std-builder-game.orb +2 -1
  43. package/behaviors/exports/molecules/std-cart.orb +2 -1
  44. package/behaviors/exports/molecules/std-classifier-game.orb +2 -1
  45. package/behaviors/exports/molecules/std-debugger-game.orb +2 -1
  46. package/behaviors/exports/molecules/std-detail.orb +2 -1
  47. package/behaviors/exports/molecules/std-event-handler-game.orb +2 -1
  48. package/behaviors/exports/molecules/std-geospatial.orb +2 -1
  49. package/behaviors/exports/molecules/std-inventory.orb +2 -1
  50. package/behaviors/exports/molecules/std-list.orb +2 -1
  51. package/behaviors/exports/molecules/std-messaging.orb +2 -1
  52. package/behaviors/exports/molecules/std-negotiator-game.orb +2 -1
  53. package/behaviors/exports/molecules/std-platformer-game.orb +2 -1
  54. package/behaviors/exports/molecules/std-puzzle-game.orb +2 -1
  55. package/behaviors/exports/molecules/std-sequencer-game.orb +2 -1
  56. package/behaviors/exports/molecules/std-simulator-game.orb +2 -1
  57. package/behaviors/exports/molecules/std-turn-based-battle.orb +2 -1
  58. package/behaviors/exports/organisms/std-api-gateway.orb +2 -1
  59. package/behaviors/exports/organisms/std-arcade-game.orb +2 -1
  60. package/behaviors/exports/organisms/std-booking-system.orb +2 -1
  61. package/behaviors/exports/organisms/std-cicd-pipeline.orb +2 -1
  62. package/behaviors/exports/organisms/std-cms.orb +2 -1
  63. package/behaviors/exports/organisms/std-coding-academy.orb +2 -1
  64. package/behaviors/exports/organisms/std-crm.orb +2 -1
  65. package/behaviors/exports/organisms/std-devops-dashboard.orb +2 -1
  66. package/behaviors/exports/organisms/std-ecommerce.orb +2 -1
  67. package/behaviors/exports/organisms/std-finance-tracker.orb +2 -1
  68. package/behaviors/exports/organisms/std-healthcare.orb +2 -1
  69. package/behaviors/exports/organisms/std-helpdesk.orb +2 -1
  70. package/behaviors/exports/organisms/std-hr-portal.orb +2 -1
  71. package/behaviors/exports/organisms/std-iot-dashboard.orb +2 -1
  72. package/behaviors/exports/organisms/std-lms.orb +2 -1
  73. package/behaviors/exports/organisms/std-logic-training.orb +2 -1
  74. package/behaviors/exports/organisms/std-platformer-app.orb +2 -1
  75. package/behaviors/exports/organisms/std-project-manager.orb +2 -1
  76. package/behaviors/exports/organisms/std-puzzle-app.orb +2 -1
  77. package/behaviors/exports/organisms/std-realtime-chat.orb +2 -1
  78. package/behaviors/exports/organisms/std-rpg-game.orb +2 -1
  79. package/behaviors/exports/organisms/std-social-feed.orb +2 -1
  80. package/behaviors/exports/organisms/std-stem-lab.orb +2 -1
  81. package/behaviors/exports/organisms/std-strategy-game.orb +2 -1
  82. package/behaviors/exports/organisms/std-trading-dashboard.orb +2 -1
  83. package/dist/behaviors/exports/atoms/std-async.orb +421 -0
  84. package/dist/behaviors/exports/atoms/std-browse.orb +174 -0
  85. package/dist/behaviors/exports/atoms/std-cache-aside.orb +882 -0
  86. package/dist/behaviors/exports/atoms/std-circuit-breaker.orb +502 -0
  87. package/dist/behaviors/exports/atoms/std-collision.orb +617 -0
  88. package/dist/behaviors/exports/atoms/std-combat-log.orb +146 -0
  89. package/dist/behaviors/exports/atoms/std-combat.orb +411 -0
  90. package/dist/behaviors/exports/atoms/std-confirmation.orb +283 -0
  91. package/dist/behaviors/exports/atoms/std-dialogue-box.orb +239 -0
  92. package/dist/behaviors/exports/atoms/std-display.orb +843 -0
  93. package/dist/behaviors/exports/atoms/std-drawer.orb +317 -0
  94. package/dist/behaviors/exports/atoms/std-filter.orb +443 -0
  95. package/dist/behaviors/exports/atoms/std-game-audio.orb +114 -0
  96. package/dist/behaviors/exports/atoms/std-game-hud.orb +152 -0
  97. package/dist/behaviors/exports/atoms/std-game-menu.orb +212 -0
  98. package/dist/behaviors/exports/atoms/std-game-over-screen.orb +196 -0
  99. package/dist/behaviors/exports/atoms/std-gameflow.orb +319 -0
  100. package/dist/behaviors/exports/atoms/std-input.orb +630 -0
  101. package/dist/behaviors/exports/atoms/std-inventory-panel.orb +256 -0
  102. package/dist/behaviors/exports/atoms/std-isometric-canvas.orb +632 -0
  103. package/dist/behaviors/exports/atoms/std-loading.orb +512 -0
  104. package/dist/behaviors/exports/atoms/std-modal.orb +271 -0
  105. package/dist/behaviors/exports/atoms/std-movement.orb +1038 -0
  106. package/dist/behaviors/exports/atoms/std-notification.orb +419 -0
  107. package/dist/behaviors/exports/atoms/std-overworld.orb +484 -0
  108. package/dist/behaviors/exports/atoms/std-pagination.orb +332 -0
  109. package/dist/behaviors/exports/atoms/std-physics2d.orb +420 -0
  110. package/dist/behaviors/exports/atoms/std-platformer-canvas.orb +258 -0
  111. package/dist/behaviors/exports/atoms/std-quest.orb +981 -0
  112. package/dist/behaviors/exports/atoms/std-rate-limiter.orb +639 -0
  113. package/dist/behaviors/exports/atoms/std-score-board.orb +239 -0
  114. package/dist/behaviors/exports/atoms/std-score.orb +467 -0
  115. package/dist/behaviors/exports/atoms/std-search.orb +374 -0
  116. package/dist/behaviors/exports/atoms/std-selection.orb +760 -0
  117. package/dist/behaviors/exports/atoms/std-simulation-canvas.orb +184 -0
  118. package/dist/behaviors/exports/atoms/std-sort.orb +579 -0
  119. package/dist/behaviors/exports/atoms/std-sprite.orb +157 -0
  120. package/dist/behaviors/exports/atoms/std-tabs.orb +275 -0
  121. package/dist/behaviors/exports/atoms/std-timer.orb +1031 -0
  122. package/dist/behaviors/exports/atoms/std-undo.orb +695 -0
  123. package/dist/behaviors/exports/atoms/std-wizard.orb +667 -0
  124. package/dist/behaviors/exports/molecules/std-builder-game.orb +184 -0
  125. package/dist/behaviors/exports/molecules/std-cart.orb +592 -0
  126. package/dist/behaviors/exports/molecules/std-classifier-game.orb +184 -0
  127. package/dist/behaviors/exports/molecules/std-debugger-game.orb +184 -0
  128. package/dist/behaviors/exports/molecules/std-detail.orb +590 -0
  129. package/dist/behaviors/exports/molecules/std-event-handler-game.orb +184 -0
  130. package/dist/behaviors/exports/molecules/std-geospatial.orb +650 -0
  131. package/dist/behaviors/exports/molecules/std-inventory.orb +854 -0
  132. package/dist/behaviors/exports/molecules/std-list.orb +955 -0
  133. package/dist/behaviors/exports/molecules/std-messaging.orb +586 -0
  134. package/dist/behaviors/exports/molecules/std-negotiator-game.orb +184 -0
  135. package/dist/behaviors/exports/molecules/std-platformer-game.orb +497 -0
  136. package/dist/behaviors/exports/molecules/std-puzzle-game.orb +528 -0
  137. package/dist/behaviors/exports/molecules/std-sequencer-game.orb +184 -0
  138. package/dist/behaviors/exports/molecules/std-simulator-game.orb +184 -0
  139. package/dist/behaviors/exports/molecules/std-turn-based-battle.orb +444 -0
  140. package/dist/behaviors/exports/organisms/std-api-gateway.orb +2297 -0
  141. package/dist/behaviors/exports/organisms/std-arcade-game.orb +834 -0
  142. package/dist/behaviors/exports/organisms/std-booking-system.orb +3978 -0
  143. package/dist/behaviors/exports/organisms/std-cicd-pipeline.orb +2215 -0
  144. package/dist/behaviors/exports/organisms/std-cms.orb +2645 -0
  145. package/dist/behaviors/exports/organisms/std-coding-academy.orb +1395 -0
  146. package/dist/behaviors/exports/organisms/std-crm.orb +3542 -0
  147. package/dist/behaviors/exports/organisms/std-devops-dashboard.orb +3135 -0
  148. package/dist/behaviors/exports/organisms/std-ecommerce.orb +3744 -0
  149. package/dist/behaviors/exports/organisms/std-finance-tracker.orb +2386 -0
  150. package/dist/behaviors/exports/organisms/std-healthcare.orb +4680 -0
  151. package/dist/behaviors/exports/organisms/std-helpdesk.orb +2565 -0
  152. package/dist/behaviors/exports/organisms/std-hr-portal.orb +4030 -0
  153. package/dist/behaviors/exports/organisms/std-iot-dashboard.orb +2298 -0
  154. package/dist/behaviors/exports/organisms/std-lms.orb +2855 -0
  155. package/dist/behaviors/exports/organisms/std-logic-training.orb +599 -0
  156. package/dist/behaviors/exports/organisms/std-platformer-app.orb +1570 -0
  157. package/dist/behaviors/exports/organisms/std-project-manager.orb +3022 -0
  158. package/dist/behaviors/exports/organisms/std-puzzle-app.orb +744 -0
  159. package/dist/behaviors/exports/organisms/std-realtime-chat.orb +2381 -0
  160. package/dist/behaviors/exports/organisms/std-rpg-game.orb +2805 -0
  161. package/dist/behaviors/exports/organisms/std-social-feed.orb +1222 -0
  162. package/dist/behaviors/exports/organisms/std-stem-lab.orb +1211 -0
  163. package/dist/behaviors/exports/organisms/std-strategy-game.orb +1762 -0
  164. package/dist/behaviors/exports/organisms/std-trading-dashboard.orb +2218 -0
  165. package/dist/behaviors/exports-reader.d.ts +2 -0
  166. package/dist/behaviors/exports-reader.js +5 -3
  167. package/dist/behaviors/exports-reader.js.map +1 -1
  168. package/dist/behaviors/index.js +5 -3
  169. package/dist/behaviors/index.js.map +1 -1
  170. package/dist/exports/atoms/std-async.orb +421 -0
  171. package/dist/exports/atoms/std-browse.orb +174 -0
  172. package/dist/exports/atoms/std-cache-aside.orb +882 -0
  173. package/dist/exports/atoms/std-circuit-breaker.orb +502 -0
  174. package/dist/exports/atoms/std-collision.orb +617 -0
  175. package/dist/exports/atoms/std-combat-log.orb +146 -0
  176. package/dist/exports/atoms/std-combat.orb +411 -0
  177. package/dist/exports/atoms/std-confirmation.orb +283 -0
  178. package/dist/exports/atoms/std-dialogue-box.orb +239 -0
  179. package/dist/exports/atoms/std-display.orb +843 -0
  180. package/dist/exports/atoms/std-drawer.orb +317 -0
  181. package/dist/exports/atoms/std-filter.orb +443 -0
  182. package/dist/exports/atoms/std-game-audio.orb +114 -0
  183. package/dist/exports/atoms/std-game-hud.orb +152 -0
  184. package/dist/exports/atoms/std-game-menu.orb +212 -0
  185. package/dist/exports/atoms/std-game-over-screen.orb +196 -0
  186. package/dist/exports/atoms/std-gameflow.orb +319 -0
  187. package/dist/exports/atoms/std-input.orb +630 -0
  188. package/dist/exports/atoms/std-inventory-panel.orb +256 -0
  189. package/dist/exports/atoms/std-isometric-canvas.orb +632 -0
  190. package/dist/exports/atoms/std-loading.orb +512 -0
  191. package/dist/exports/atoms/std-modal.orb +271 -0
  192. package/dist/exports/atoms/std-movement.orb +1038 -0
  193. package/dist/exports/atoms/std-notification.orb +419 -0
  194. package/dist/exports/atoms/std-overworld.orb +484 -0
  195. package/dist/exports/atoms/std-pagination.orb +332 -0
  196. package/dist/exports/atoms/std-physics2d.orb +420 -0
  197. package/dist/exports/atoms/std-platformer-canvas.orb +258 -0
  198. package/dist/exports/atoms/std-quest.orb +981 -0
  199. package/dist/exports/atoms/std-rate-limiter.orb +639 -0
  200. package/dist/exports/atoms/std-score-board.orb +239 -0
  201. package/dist/exports/atoms/std-score.orb +467 -0
  202. package/dist/exports/atoms/std-search.orb +374 -0
  203. package/dist/exports/atoms/std-selection.orb +760 -0
  204. package/dist/exports/atoms/std-simulation-canvas.orb +184 -0
  205. package/dist/exports/atoms/std-sort.orb +579 -0
  206. package/dist/exports/atoms/std-sprite.orb +157 -0
  207. package/dist/exports/atoms/std-tabs.orb +275 -0
  208. package/dist/exports/atoms/std-timer.orb +1031 -0
  209. package/dist/exports/atoms/std-undo.orb +695 -0
  210. package/dist/exports/atoms/std-wizard.orb +667 -0
  211. package/dist/exports/molecules/std-builder-game.orb +184 -0
  212. package/dist/exports/molecules/std-cart.orb +592 -0
  213. package/dist/exports/molecules/std-classifier-game.orb +184 -0
  214. package/dist/exports/molecules/std-debugger-game.orb +184 -0
  215. package/dist/exports/molecules/std-detail.orb +590 -0
  216. package/dist/exports/molecules/std-event-handler-game.orb +184 -0
  217. package/dist/exports/molecules/std-geospatial.orb +650 -0
  218. package/dist/exports/molecules/std-inventory.orb +854 -0
  219. package/dist/exports/molecules/std-list.orb +955 -0
  220. package/dist/exports/molecules/std-messaging.orb +586 -0
  221. package/dist/exports/molecules/std-negotiator-game.orb +184 -0
  222. package/dist/exports/molecules/std-platformer-game.orb +497 -0
  223. package/dist/exports/molecules/std-puzzle-game.orb +528 -0
  224. package/dist/exports/molecules/std-sequencer-game.orb +184 -0
  225. package/dist/exports/molecules/std-simulator-game.orb +184 -0
  226. package/dist/exports/molecules/std-turn-based-battle.orb +444 -0
  227. package/dist/exports/organisms/std-api-gateway.orb +2297 -0
  228. package/dist/exports/organisms/std-arcade-game.orb +834 -0
  229. package/dist/exports/organisms/std-booking-system.orb +3978 -0
  230. package/dist/exports/organisms/std-cicd-pipeline.orb +2215 -0
  231. package/dist/exports/organisms/std-cms.orb +2645 -0
  232. package/dist/exports/organisms/std-coding-academy.orb +1395 -0
  233. package/dist/exports/organisms/std-crm.orb +3542 -0
  234. package/dist/exports/organisms/std-devops-dashboard.orb +3135 -0
  235. package/dist/exports/organisms/std-ecommerce.orb +3744 -0
  236. package/dist/exports/organisms/std-finance-tracker.orb +2386 -0
  237. package/dist/exports/organisms/std-healthcare.orb +4680 -0
  238. package/dist/exports/organisms/std-helpdesk.orb +2565 -0
  239. package/dist/exports/organisms/std-hr-portal.orb +4030 -0
  240. package/dist/exports/organisms/std-iot-dashboard.orb +2298 -0
  241. package/dist/exports/organisms/std-lms.orb +2855 -0
  242. package/dist/exports/organisms/std-logic-training.orb +599 -0
  243. package/dist/exports/organisms/std-platformer-app.orb +1570 -0
  244. package/dist/exports/organisms/std-project-manager.orb +3022 -0
  245. package/dist/exports/organisms/std-puzzle-app.orb +744 -0
  246. package/dist/exports/organisms/std-realtime-chat.orb +2381 -0
  247. package/dist/exports/organisms/std-rpg-game.orb +2805 -0
  248. package/dist/exports/organisms/std-social-feed.orb +1222 -0
  249. package/dist/exports/organisms/std-stem-lab.orb +1211 -0
  250. package/dist/exports/organisms/std-strategy-game.orb +1762 -0
  251. package/dist/exports/organisms/std-trading-dashboard.orb +2218 -0
  252. package/dist/index.js +5 -3
  253. package/dist/index.js.map +1 -1
  254. package/package.json +1 -1
  255. package/behaviors/exports/atoms/std-game-canvas-2d.orb +0 -135
  256. package/behaviors/exports/atoms/std-game-canvas-3d.orb +0 -224
@@ -0,0 +1,834 @@
1
+ {
2
+ "name": "Arcade Game",
3
+ "version": "1.0.0",
4
+ "orbitals": [
5
+ {
6
+ "name": "ArcadeStateOrbital",
7
+ "entity": {
8
+ "name": "ArcadeState",
9
+ "persistence": "runtime",
10
+ "fields": [
11
+ {
12
+ "name": "id",
13
+ "type": "string",
14
+ "required": true
15
+ },
16
+ {
17
+ "name": "level",
18
+ "type": "number",
19
+ "default": 1
20
+ },
21
+ {
22
+ "name": "score",
23
+ "type": "number",
24
+ "default": 0
25
+ },
26
+ {
27
+ "name": "lives",
28
+ "type": "number",
29
+ "default": 3
30
+ },
31
+ {
32
+ "name": "highScore",
33
+ "type": "number",
34
+ "default": 0
35
+ }
36
+ ]
37
+ },
38
+ "traits": [
39
+ {
40
+ "name": "ArcadeStateGameflow",
41
+ "linkedEntity": "ArcadeState",
42
+ "category": "interaction",
43
+ "stateMachine": {
44
+ "states": [
45
+ {
46
+ "name": "menu",
47
+ "isInitial": true
48
+ },
49
+ {
50
+ "name": "playing"
51
+ },
52
+ {
53
+ "name": "paused"
54
+ },
55
+ {
56
+ "name": "gameover"
57
+ }
58
+ ],
59
+ "events": [
60
+ {
61
+ "key": "INIT",
62
+ "name": "Initialize"
63
+ },
64
+ {
65
+ "key": "START",
66
+ "name": "Start"
67
+ },
68
+ {
69
+ "key": "PAUSE",
70
+ "name": "Pause"
71
+ },
72
+ {
73
+ "key": "RESUME",
74
+ "name": "Resume"
75
+ },
76
+ {
77
+ "key": "GAME_OVER",
78
+ "name": "Game Over"
79
+ },
80
+ {
81
+ "key": "RESTART",
82
+ "name": "Restart"
83
+ },
84
+ {
85
+ "key": "CLOSE",
86
+ "name": "Close"
87
+ },
88
+ {
89
+ "key": "NAVIGATE",
90
+ "name": "Navigate"
91
+ }
92
+ ],
93
+ "transitions": [
94
+ {
95
+ "from": "menu",
96
+ "to": "menu",
97
+ "event": "INIT",
98
+ "effects": [
99
+ [
100
+ "fetch",
101
+ "ArcadeState"
102
+ ],
103
+ [
104
+ "render-ui",
105
+ "main",
106
+ {
107
+ "type": "game-menu",
108
+ "title": "Arcade",
109
+ "subtitle": "Main Menu",
110
+ "menuItems": [
111
+ {
112
+ "label": "Start Game",
113
+ "event": "START",
114
+ "variant": "primary"
115
+ }
116
+ ]
117
+ }
118
+ ]
119
+ ]
120
+ },
121
+ {
122
+ "from": "menu",
123
+ "to": "playing",
124
+ "event": "START",
125
+ "effects": [
126
+ [
127
+ "render-ui",
128
+ "main",
129
+ {
130
+ "type": "game-hud",
131
+ "stats": [
132
+ {
133
+ "label": "Score",
134
+ "value": "@entity.score"
135
+ },
136
+ {
137
+ "label": "Level",
138
+ "value": "@entity.level"
139
+ }
140
+ ]
141
+ }
142
+ ]
143
+ ]
144
+ },
145
+ {
146
+ "from": "menu",
147
+ "to": "menu",
148
+ "event": "NAVIGATE",
149
+ "effects": []
150
+ },
151
+ {
152
+ "from": "paused",
153
+ "to": "paused",
154
+ "event": "NAVIGATE",
155
+ "effects": []
156
+ },
157
+ {
158
+ "from": "playing",
159
+ "to": "paused",
160
+ "event": "PAUSE",
161
+ "effects": [
162
+ [
163
+ "render-ui",
164
+ "modal",
165
+ {
166
+ "type": "game-menu",
167
+ "title": "Paused",
168
+ "menuItems": [
169
+ {
170
+ "label": "Resume",
171
+ "event": "RESUME",
172
+ "variant": "primary"
173
+ },
174
+ {
175
+ "label": "Quit",
176
+ "event": "RESTART",
177
+ "variant": "ghost"
178
+ }
179
+ ]
180
+ }
181
+ ]
182
+ ]
183
+ },
184
+ {
185
+ "from": "paused",
186
+ "to": "playing",
187
+ "event": "RESUME",
188
+ "effects": [
189
+ [
190
+ "render-ui",
191
+ "modal",
192
+ null
193
+ ]
194
+ ]
195
+ },
196
+ {
197
+ "from": "paused",
198
+ "to": "playing",
199
+ "event": "CLOSE",
200
+ "effects": [
201
+ [
202
+ "render-ui",
203
+ "modal",
204
+ null
205
+ ]
206
+ ]
207
+ },
208
+ {
209
+ "from": "playing",
210
+ "to": "gameover",
211
+ "event": "GAME_OVER",
212
+ "effects": [
213
+ [
214
+ "render-ui",
215
+ "main",
216
+ {
217
+ "type": "game-over-screen",
218
+ "title": "Game Over",
219
+ "stats": [
220
+ {
221
+ "label": "Score",
222
+ "value": "@entity.score"
223
+ },
224
+ {
225
+ "label": "Level",
226
+ "value": "@entity.level"
227
+ }
228
+ ],
229
+ "menuItems": [
230
+ {
231
+ "label": "Play Again",
232
+ "event": "RESTART",
233
+ "variant": "primary"
234
+ },
235
+ {
236
+ "label": "Main Menu",
237
+ "event": "RESTART",
238
+ "variant": "secondary"
239
+ }
240
+ ]
241
+ }
242
+ ]
243
+ ]
244
+ },
245
+ {
246
+ "from": "gameover",
247
+ "to": "menu",
248
+ "event": "RESTART",
249
+ "effects": [
250
+ [
251
+ "render-ui",
252
+ "main",
253
+ {
254
+ "type": "game-menu",
255
+ "title": "Arcade",
256
+ "subtitle": "Main Menu",
257
+ "menuItems": [
258
+ {
259
+ "label": "Start Game",
260
+ "event": "START",
261
+ "variant": "primary"
262
+ }
263
+ ]
264
+ }
265
+ ]
266
+ ]
267
+ },
268
+ {
269
+ "from": "paused",
270
+ "to": "menu",
271
+ "event": "RESTART",
272
+ "effects": [
273
+ [
274
+ "render-ui",
275
+ "modal",
276
+ null
277
+ ],
278
+ [
279
+ "render-ui",
280
+ "main",
281
+ {
282
+ "type": "game-menu",
283
+ "title": "Arcade",
284
+ "subtitle": "Main Menu",
285
+ "menuItems": [
286
+ {
287
+ "label": "Start Game",
288
+ "event": "START",
289
+ "variant": "primary"
290
+ }
291
+ ]
292
+ }
293
+ ]
294
+ ]
295
+ }
296
+ ]
297
+ }
298
+ }
299
+ ],
300
+ "pages": [
301
+ {
302
+ "name": "GamePage",
303
+ "path": "/game",
304
+ "isInitial": true,
305
+ "traits": [
306
+ {
307
+ "ref": "ArcadeStateGameflow"
308
+ }
309
+ ]
310
+ }
311
+ ]
312
+ },
313
+ {
314
+ "name": "ArcadeCanvasOrbital",
315
+ "entity": {
316
+ "name": "ArcadeCanvas",
317
+ "persistence": "runtime",
318
+ "fields": [
319
+ {
320
+ "name": "id",
321
+ "type": "string",
322
+ "required": true
323
+ },
324
+ {
325
+ "name": "width",
326
+ "type": "number",
327
+ "default": 800
328
+ },
329
+ {
330
+ "name": "height",
331
+ "type": "number",
332
+ "default": 600
333
+ },
334
+ {
335
+ "name": "fps",
336
+ "type": "number",
337
+ "default": 60
338
+ },
339
+ {
340
+ "name": "running",
341
+ "type": "boolean",
342
+ "default": false
343
+ }
344
+ ]
345
+ },
346
+ "traits": [
347
+ {
348
+ "name": "ArcadeCanvasGameCanvas2d",
349
+ "linkedEntity": "ArcadeCanvas",
350
+ "category": "interaction",
351
+ "stateMachine": {
352
+ "states": [
353
+ {
354
+ "name": "idle",
355
+ "isInitial": true
356
+ },
357
+ {
358
+ "name": "rendering"
359
+ }
360
+ ],
361
+ "events": [
362
+ {
363
+ "key": "INIT",
364
+ "name": "Initialize"
365
+ },
366
+ {
367
+ "key": "START",
368
+ "name": "Start"
369
+ },
370
+ {
371
+ "key": "STOP",
372
+ "name": "Stop"
373
+ },
374
+ {
375
+ "key": "TICK",
376
+ "name": "Tick"
377
+ }
378
+ ],
379
+ "transitions": [
380
+ {
381
+ "from": "idle",
382
+ "to": "idle",
383
+ "event": "INIT",
384
+ "effects": [
385
+ [
386
+ "fetch",
387
+ "ArcadeCanvas"
388
+ ],
389
+ [
390
+ "render-ui",
391
+ "main",
392
+ {
393
+ "type": "game-canvas2-d",
394
+ "width": 800,
395
+ "height": 600,
396
+ "fps": 60
397
+ }
398
+ ]
399
+ ]
400
+ },
401
+ {
402
+ "from": "idle",
403
+ "to": "rendering",
404
+ "event": "START",
405
+ "effects": [
406
+ [
407
+ "render-ui",
408
+ "main",
409
+ {
410
+ "type": "game-canvas2-d",
411
+ "width": 800,
412
+ "height": 600,
413
+ "fps": 60
414
+ }
415
+ ]
416
+ ]
417
+ },
418
+ {
419
+ "from": "rendering",
420
+ "to": "rendering",
421
+ "event": "TICK",
422
+ "effects": []
423
+ },
424
+ {
425
+ "from": "rendering",
426
+ "to": "idle",
427
+ "event": "STOP",
428
+ "effects": [
429
+ [
430
+ "render-ui",
431
+ "main",
432
+ {
433
+ "type": "game-canvas2-d",
434
+ "width": 800,
435
+ "height": 600,
436
+ "fps": 60
437
+ }
438
+ ]
439
+ ]
440
+ }
441
+ ]
442
+ }
443
+ }
444
+ ],
445
+ "pages": [
446
+ {
447
+ "name": "CanvasPage",
448
+ "path": "/canvas",
449
+ "traits": [
450
+ {
451
+ "ref": "ArcadeCanvasGameCanvas2d"
452
+ }
453
+ ]
454
+ }
455
+ ]
456
+ },
457
+ {
458
+ "name": "ArcadeScoreOrbital",
459
+ "entity": {
460
+ "name": "ArcadeScore",
461
+ "persistence": "runtime",
462
+ "fields": [
463
+ {
464
+ "name": "id",
465
+ "type": "string",
466
+ "required": true
467
+ },
468
+ {
469
+ "name": "playerName",
470
+ "type": "string",
471
+ "required": true
472
+ },
473
+ {
474
+ "name": "score",
475
+ "type": "number",
476
+ "required": true
477
+ },
478
+ {
479
+ "name": "level",
480
+ "type": "number"
481
+ },
482
+ {
483
+ "name": "completedAt",
484
+ "type": "string"
485
+ },
486
+ {
487
+ "name": "highScore",
488
+ "type": "number",
489
+ "default": 0
490
+ },
491
+ {
492
+ "name": "combo",
493
+ "type": "number",
494
+ "default": 0
495
+ },
496
+ {
497
+ "name": "multiplier",
498
+ "type": "number",
499
+ "default": 1
500
+ }
501
+ ]
502
+ },
503
+ "traits": [
504
+ {
505
+ "name": "ArcadeScoreScoreBoard",
506
+ "linkedEntity": "ArcadeScore",
507
+ "category": "interaction",
508
+ "stateMachine": {
509
+ "states": [
510
+ {
511
+ "name": "idle",
512
+ "isInitial": true
513
+ }
514
+ ],
515
+ "events": [
516
+ {
517
+ "key": "INIT",
518
+ "name": "Initialize"
519
+ },
520
+ {
521
+ "key": "ADD_SCORE",
522
+ "name": "Add Score",
523
+ "payload": [
524
+ {
525
+ "name": "points",
526
+ "type": "number",
527
+ "required": true
528
+ }
529
+ ]
530
+ },
531
+ {
532
+ "key": "COMBO",
533
+ "name": "Combo",
534
+ "payload": [
535
+ {
536
+ "name": "multiplier",
537
+ "type": "number",
538
+ "required": true
539
+ }
540
+ ]
541
+ },
542
+ {
543
+ "key": "RESET",
544
+ "name": "Reset"
545
+ }
546
+ ],
547
+ "transitions": [
548
+ {
549
+ "from": "idle",
550
+ "to": "idle",
551
+ "event": "INIT",
552
+ "effects": [
553
+ [
554
+ "fetch",
555
+ "ArcadeScore"
556
+ ],
557
+ [
558
+ "render-ui",
559
+ "main",
560
+ {
561
+ "type": "score-board",
562
+ "score": "@entity.score",
563
+ "highScore": "@entity.highScore",
564
+ "combo": "@entity.combo",
565
+ "multiplier": "@entity.multiplier",
566
+ "level": "@entity.level"
567
+ }
568
+ ]
569
+ ]
570
+ },
571
+ {
572
+ "from": "idle",
573
+ "to": "idle",
574
+ "event": "ADD_SCORE",
575
+ "effects": [
576
+ [
577
+ "set",
578
+ "@entity.score",
579
+ [
580
+ "+",
581
+ "@entity.score",
582
+ "@payload.points"
583
+ ]
584
+ ],
585
+ [
586
+ "set",
587
+ "@entity.combo",
588
+ [
589
+ "+",
590
+ "@entity.combo",
591
+ 1
592
+ ]
593
+ ],
594
+ [
595
+ "render-ui",
596
+ "main",
597
+ {
598
+ "type": "score-board",
599
+ "score": "@entity.score",
600
+ "highScore": "@entity.highScore",
601
+ "combo": "@entity.combo",
602
+ "multiplier": "@entity.multiplier",
603
+ "level": "@entity.level"
604
+ }
605
+ ]
606
+ ]
607
+ },
608
+ {
609
+ "from": "idle",
610
+ "to": "idle",
611
+ "event": "COMBO",
612
+ "effects": [
613
+ [
614
+ "set",
615
+ "@entity.multiplier",
616
+ "@payload.multiplier"
617
+ ],
618
+ [
619
+ "render-ui",
620
+ "main",
621
+ {
622
+ "type": "score-board",
623
+ "score": "@entity.score",
624
+ "highScore": "@entity.highScore",
625
+ "combo": "@entity.combo",
626
+ "multiplier": "@entity.multiplier",
627
+ "level": "@entity.level"
628
+ }
629
+ ]
630
+ ]
631
+ },
632
+ {
633
+ "from": "idle",
634
+ "to": "idle",
635
+ "event": "RESET",
636
+ "effects": [
637
+ [
638
+ "set",
639
+ "@entity.score",
640
+ 0
641
+ ],
642
+ [
643
+ "set",
644
+ "@entity.combo",
645
+ 0
646
+ ],
647
+ [
648
+ "set",
649
+ "@entity.multiplier",
650
+ 1
651
+ ],
652
+ [
653
+ "render-ui",
654
+ "main",
655
+ {
656
+ "type": "score-board",
657
+ "score": "@entity.score",
658
+ "highScore": "@entity.highScore",
659
+ "combo": "@entity.combo",
660
+ "multiplier": "@entity.multiplier",
661
+ "level": "@entity.level"
662
+ }
663
+ ]
664
+ ]
665
+ }
666
+ ]
667
+ }
668
+ }
669
+ ],
670
+ "pages": [
671
+ {
672
+ "name": "ScoresPage",
673
+ "path": "/scores",
674
+ "traits": [
675
+ {
676
+ "ref": "ArcadeScoreScoreBoard"
677
+ }
678
+ ]
679
+ }
680
+ ]
681
+ },
682
+ {
683
+ "name": "ArcadeHudOrbital",
684
+ "entity": {
685
+ "name": "ArcadeHud",
686
+ "persistence": "runtime",
687
+ "fields": [
688
+ {
689
+ "name": "id",
690
+ "type": "string",
691
+ "required": true
692
+ },
693
+ {
694
+ "name": "score",
695
+ "type": "number",
696
+ "default": 0
697
+ },
698
+ {
699
+ "name": "lives",
700
+ "type": "number",
701
+ "default": 3
702
+ },
703
+ {
704
+ "name": "level",
705
+ "type": "number",
706
+ "default": 1
707
+ },
708
+ {
709
+ "name": "timer",
710
+ "type": "number",
711
+ "default": 0
712
+ }
713
+ ]
714
+ },
715
+ "traits": [
716
+ {
717
+ "name": "ArcadeHudHud",
718
+ "linkedEntity": "ArcadeHud",
719
+ "category": "interaction",
720
+ "stateMachine": {
721
+ "states": [
722
+ {
723
+ "name": "idle",
724
+ "isInitial": true
725
+ }
726
+ ],
727
+ "events": [
728
+ {
729
+ "key": "INIT",
730
+ "name": "Initialize"
731
+ },
732
+ {
733
+ "key": "REFRESH",
734
+ "name": "Refresh"
735
+ }
736
+ ],
737
+ "transitions": [
738
+ {
739
+ "from": "idle",
740
+ "to": "idle",
741
+ "event": "INIT",
742
+ "effects": [
743
+ [
744
+ "fetch",
745
+ "ArcadeHud"
746
+ ],
747
+ [
748
+ "render-ui",
749
+ "main",
750
+ {
751
+ "type": "game-hud",
752
+ "position": "top-left",
753
+ "size": "md",
754
+ "transparent": false,
755
+ "stats": [
756
+ {
757
+ "label": "Score",
758
+ "value": "@entity.score"
759
+ },
760
+ {
761
+ "label": "Lives",
762
+ "value": "@entity.lives"
763
+ },
764
+ {
765
+ "label": "Level",
766
+ "value": "@entity.level"
767
+ },
768
+ {
769
+ "label": "Timer",
770
+ "value": "@entity.timer"
771
+ }
772
+ ]
773
+ }
774
+ ]
775
+ ]
776
+ },
777
+ {
778
+ "from": "idle",
779
+ "to": "idle",
780
+ "event": "REFRESH",
781
+ "effects": [
782
+ [
783
+ "fetch",
784
+ "ArcadeHud"
785
+ ],
786
+ [
787
+ "render-ui",
788
+ "main",
789
+ {
790
+ "type": "game-hud",
791
+ "position": "top-left",
792
+ "size": "md",
793
+ "transparent": false,
794
+ "stats": [
795
+ {
796
+ "label": "Score",
797
+ "value": "@entity.score"
798
+ },
799
+ {
800
+ "label": "Lives",
801
+ "value": "@entity.lives"
802
+ },
803
+ {
804
+ "label": "Level",
805
+ "value": "@entity.level"
806
+ },
807
+ {
808
+ "label": "Timer",
809
+ "value": "@entity.timer"
810
+ }
811
+ ]
812
+ }
813
+ ]
814
+ ]
815
+ }
816
+ ]
817
+ }
818
+ }
819
+ ],
820
+ "pages": [
821
+ {
822
+ "name": "HudPage",
823
+ "path": "/hud",
824
+ "traits": [
825
+ {
826
+ "ref": "ArcadeHudHud"
827
+ }
828
+ ]
829
+ }
830
+ ]
831
+ }
832
+ ],
833
+ "description": "Arcade game organism. Composes: stdGameflow(ArcadeState) + stdGameCanvas2d(ArcadeCanvas) + stdScoreBoard(ArcadeScore) + stdGameHud(ArcadeHud) Pages: /game (initial), /scores"
834
+ }