@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,146 @@
1
+ {
2
+ "name": "ItemOrbital",
3
+ "orbitals": [
4
+ {
5
+ "name": "ItemOrbital",
6
+ "entity": {
7
+ "name": "Item",
8
+ "persistence": "runtime",
9
+ "fields": [
10
+ {
11
+ "name": "id",
12
+ "type": "string"
13
+ },
14
+ {
15
+ "name": "name",
16
+ "type": "string"
17
+ },
18
+ {
19
+ "name": "description",
20
+ "type": "string"
21
+ },
22
+ {
23
+ "name": "status",
24
+ "type": "string",
25
+ "default": "active"
26
+ },
27
+ {
28
+ "name": "createdAt",
29
+ "type": "string"
30
+ }
31
+ ]
32
+ },
33
+ "traits": [
34
+ {
35
+ "name": "ItemCombatLog",
36
+ "linkedEntity": "Item",
37
+ "category": "interaction",
38
+ "stateMachine": {
39
+ "states": [
40
+ {
41
+ "name": "idle",
42
+ "isInitial": true
43
+ }
44
+ ],
45
+ "events": [
46
+ {
47
+ "key": "INIT",
48
+ "name": "Initialize"
49
+ },
50
+ {
51
+ "key": "LOG_EVENT",
52
+ "name": "Log Event",
53
+ "payload": [
54
+ {
55
+ "name": "data",
56
+ "type": "object",
57
+ "required": true
58
+ }
59
+ ]
60
+ },
61
+ {
62
+ "key": "CLEAR",
63
+ "name": "Clear"
64
+ }
65
+ ],
66
+ "transitions": [
67
+ {
68
+ "from": "idle",
69
+ "to": "idle",
70
+ "event": "INIT",
71
+ "effects": [
72
+ [
73
+ "fetch",
74
+ "Item"
75
+ ],
76
+ [
77
+ "render-ui",
78
+ "main",
79
+ {
80
+ "type": "combat-log",
81
+ "events": "@Item",
82
+ "maxVisible": 10,
83
+ "autoScroll": true,
84
+ "showTimestamps": true,
85
+ "title": "Combat Log"
86
+ }
87
+ ]
88
+ ]
89
+ },
90
+ {
91
+ "from": "idle",
92
+ "to": "idle",
93
+ "event": "LOG_EVENT",
94
+ "effects": [
95
+ [
96
+ "render-ui",
97
+ "main",
98
+ {
99
+ "type": "combat-log",
100
+ "events": "@Item",
101
+ "maxVisible": 10,
102
+ "autoScroll": true,
103
+ "showTimestamps": true,
104
+ "title": "Combat Log"
105
+ }
106
+ ]
107
+ ]
108
+ },
109
+ {
110
+ "from": "idle",
111
+ "to": "idle",
112
+ "event": "CLEAR",
113
+ "effects": [
114
+ [
115
+ "render-ui",
116
+ "main",
117
+ {
118
+ "type": "combat-log",
119
+ "events": "@Item",
120
+ "maxVisible": 10,
121
+ "autoScroll": true,
122
+ "showTimestamps": true,
123
+ "title": "Combat Log"
124
+ }
125
+ ]
126
+ ]
127
+ }
128
+ ]
129
+ }
130
+ }
131
+ ],
132
+ "pages": [
133
+ {
134
+ "name": "ItemLogPage",
135
+ "path": "/items",
136
+ "traits": [
137
+ {
138
+ "ref": "ItemCombatLog"
139
+ }
140
+ ]
141
+ }
142
+ ]
143
+ }
144
+ ],
145
+ "description": "Scrollable combat event log atom using the `combat-log` pattern. Displays timestamped combat events with icons and colors. Supports appending new events and clearing the log."
146
+ }
@@ -0,0 +1,411 @@
1
+ {
2
+ "name": "ItemOrbital",
3
+ "orbitals": [
4
+ {
5
+ "name": "ItemOrbital",
6
+ "entity": {
7
+ "name": "Item",
8
+ "persistence": "runtime",
9
+ "fields": [
10
+ {
11
+ "name": "id",
12
+ "type": "string"
13
+ },
14
+ {
15
+ "name": "name",
16
+ "type": "string"
17
+ },
18
+ {
19
+ "name": "description",
20
+ "type": "string"
21
+ },
22
+ {
23
+ "name": "status",
24
+ "type": "string",
25
+ "default": "active"
26
+ },
27
+ {
28
+ "name": "createdAt",
29
+ "type": "string"
30
+ },
31
+ {
32
+ "name": "hp",
33
+ "type": "number",
34
+ "default": 100
35
+ },
36
+ {
37
+ "name": "attack",
38
+ "type": "number",
39
+ "default": 10
40
+ },
41
+ {
42
+ "name": "defense",
43
+ "type": "number",
44
+ "default": 5
45
+ }
46
+ ]
47
+ },
48
+ "traits": [
49
+ {
50
+ "name": "ItemCombat",
51
+ "linkedEntity": "Item",
52
+ "category": "interaction",
53
+ "stateMachine": {
54
+ "states": [
55
+ {
56
+ "name": "ready",
57
+ "isInitial": true
58
+ },
59
+ {
60
+ "name": "attacking"
61
+ },
62
+ {
63
+ "name": "cooldown"
64
+ },
65
+ {
66
+ "name": "defeated"
67
+ }
68
+ ],
69
+ "events": [
70
+ {
71
+ "key": "INIT",
72
+ "name": "Initialize"
73
+ },
74
+ {
75
+ "key": "ATTACK",
76
+ "name": "Attack",
77
+ "payload": [
78
+ {
79
+ "name": "targetId",
80
+ "type": "string",
81
+ "required": true
82
+ }
83
+ ]
84
+ },
85
+ {
86
+ "key": "HIT",
87
+ "name": "Hit",
88
+ "payload": [
89
+ {
90
+ "name": "damage",
91
+ "type": "number",
92
+ "required": true
93
+ }
94
+ ]
95
+ },
96
+ {
97
+ "key": "COOLDOWN_END",
98
+ "name": "Cooldown End"
99
+ },
100
+ {
101
+ "key": "DEFEAT",
102
+ "name": "Defeat"
103
+ },
104
+ {
105
+ "key": "RESET",
106
+ "name": "Reset"
107
+ }
108
+ ],
109
+ "transitions": [
110
+ {
111
+ "from": "ready",
112
+ "to": "ready",
113
+ "event": "INIT",
114
+ "effects": [
115
+ [
116
+ "fetch",
117
+ "Item"
118
+ ],
119
+ [
120
+ "render-ui",
121
+ "main",
122
+ {
123
+ "type": "stack",
124
+ "direction": "vertical",
125
+ "gap": "lg",
126
+ "align": "center",
127
+ "children": [
128
+ {
129
+ "type": "game-hud",
130
+ "position": "top",
131
+ "stats": [
132
+ {
133
+ "label": "HP",
134
+ "value": "@entity.hp"
135
+ },
136
+ {
137
+ "label": "Attack",
138
+ "value": "@entity.attack"
139
+ },
140
+ {
141
+ "label": "Defense",
142
+ "value": "@entity.defense"
143
+ }
144
+ ]
145
+ },
146
+ {
147
+ "type": "button",
148
+ "label": "Attack",
149
+ "event": "ATTACK",
150
+ "variant": "primary",
151
+ "icon": "swords"
152
+ }
153
+ ]
154
+ }
155
+ ]
156
+ ]
157
+ },
158
+ {
159
+ "from": "ready",
160
+ "to": "attacking",
161
+ "event": "ATTACK",
162
+ "effects": [
163
+ [
164
+ "render-ui",
165
+ "main",
166
+ {
167
+ "type": "stack",
168
+ "direction": "vertical",
169
+ "gap": "lg",
170
+ "align": "center",
171
+ "children": [
172
+ {
173
+ "type": "game-hud",
174
+ "position": "top",
175
+ "stats": [
176
+ {
177
+ "label": "HP",
178
+ "value": "@entity.hp"
179
+ },
180
+ {
181
+ "label": "Attack",
182
+ "value": "@entity.attack"
183
+ },
184
+ {
185
+ "label": "Defense",
186
+ "value": "@entity.defense"
187
+ }
188
+ ]
189
+ },
190
+ {
191
+ "type": "button",
192
+ "label": "Cooldown End",
193
+ "event": "HIT",
194
+ "variant": "secondary",
195
+ "icon": "clock"
196
+ }
197
+ ]
198
+ }
199
+ ]
200
+ ]
201
+ },
202
+ {
203
+ "from": "attacking",
204
+ "to": "cooldown",
205
+ "event": "HIT",
206
+ "effects": [
207
+ [
208
+ "render-ui",
209
+ "main",
210
+ {
211
+ "type": "stack",
212
+ "direction": "vertical",
213
+ "gap": "lg",
214
+ "align": "center",
215
+ "children": [
216
+ {
217
+ "type": "game-hud",
218
+ "position": "top",
219
+ "stats": [
220
+ {
221
+ "label": "HP",
222
+ "value": "@entity.hp"
223
+ },
224
+ {
225
+ "label": "Attack",
226
+ "value": "@entity.attack"
227
+ },
228
+ {
229
+ "label": "Defense",
230
+ "value": "@entity.defense"
231
+ }
232
+ ]
233
+ },
234
+ {
235
+ "type": "badge",
236
+ "label": "Cooling down..."
237
+ }
238
+ ]
239
+ }
240
+ ]
241
+ ]
242
+ },
243
+ {
244
+ "from": "cooldown",
245
+ "to": "ready",
246
+ "event": "COOLDOWN_END",
247
+ "effects": [
248
+ [
249
+ "render-ui",
250
+ "main",
251
+ {
252
+ "type": "stack",
253
+ "direction": "vertical",
254
+ "gap": "lg",
255
+ "align": "center",
256
+ "children": [
257
+ {
258
+ "type": "game-hud",
259
+ "position": "top",
260
+ "stats": [
261
+ {
262
+ "label": "HP",
263
+ "value": "@entity.hp"
264
+ },
265
+ {
266
+ "label": "Attack",
267
+ "value": "@entity.attack"
268
+ },
269
+ {
270
+ "label": "Defense",
271
+ "value": "@entity.defense"
272
+ }
273
+ ]
274
+ },
275
+ {
276
+ "type": "button",
277
+ "label": "Attack",
278
+ "event": "ATTACK",
279
+ "variant": "primary",
280
+ "icon": "swords"
281
+ }
282
+ ]
283
+ }
284
+ ]
285
+ ]
286
+ },
287
+ {
288
+ "from": "attacking",
289
+ "to": "defeated",
290
+ "event": "DEFEAT",
291
+ "effects": [
292
+ [
293
+ "render-ui",
294
+ "main",
295
+ {
296
+ "type": "stack",
297
+ "direction": "vertical",
298
+ "gap": "lg",
299
+ "align": "center",
300
+ "children": [
301
+ {
302
+ "type": "game-over-screen",
303
+ "title": "Defeated",
304
+ "variant": "defeat"
305
+ },
306
+ {
307
+ "type": "button",
308
+ "label": "Reset",
309
+ "event": "RESET",
310
+ "variant": "ghost",
311
+ "icon": "rotate-ccw"
312
+ }
313
+ ]
314
+ }
315
+ ]
316
+ ]
317
+ },
318
+ {
319
+ "from": "cooldown",
320
+ "to": "defeated",
321
+ "event": "DEFEAT",
322
+ "effects": [
323
+ [
324
+ "render-ui",
325
+ "main",
326
+ {
327
+ "type": "stack",
328
+ "direction": "vertical",
329
+ "gap": "lg",
330
+ "align": "center",
331
+ "children": [
332
+ {
333
+ "type": "game-over-screen",
334
+ "title": "Defeated",
335
+ "variant": "defeat"
336
+ },
337
+ {
338
+ "type": "button",
339
+ "label": "Reset",
340
+ "event": "RESET",
341
+ "variant": "ghost",
342
+ "icon": "rotate-ccw"
343
+ }
344
+ ]
345
+ }
346
+ ]
347
+ ]
348
+ },
349
+ {
350
+ "from": "defeated",
351
+ "to": "ready",
352
+ "event": "RESET",
353
+ "effects": [
354
+ [
355
+ "render-ui",
356
+ "main",
357
+ {
358
+ "type": "stack",
359
+ "direction": "vertical",
360
+ "gap": "lg",
361
+ "align": "center",
362
+ "children": [
363
+ {
364
+ "type": "game-hud",
365
+ "position": "top",
366
+ "stats": [
367
+ {
368
+ "label": "HP",
369
+ "value": "@entity.hp"
370
+ },
371
+ {
372
+ "label": "Attack",
373
+ "value": "@entity.attack"
374
+ },
375
+ {
376
+ "label": "Defense",
377
+ "value": "@entity.defense"
378
+ }
379
+ ]
380
+ },
381
+ {
382
+ "type": "button",
383
+ "label": "Attack",
384
+ "event": "ATTACK",
385
+ "variant": "primary",
386
+ "icon": "swords"
387
+ }
388
+ ]
389
+ }
390
+ ]
391
+ ]
392
+ }
393
+ ]
394
+ }
395
+ }
396
+ ],
397
+ "pages": [
398
+ {
399
+ "name": "ItemPage",
400
+ "path": "/items",
401
+ "traits": [
402
+ {
403
+ "ref": "ItemCombat"
404
+ }
405
+ ]
406
+ }
407
+ ]
408
+ }
409
+ ],
410
+ "description": "Attack cycle behavior: ready, attacking, cooldown, defeated. Pure function: params in, OrbitalDefinition out."
411
+ }