@almadar/std 16.23.0 → 16.24.1

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.
@@ -27,66 +27,6 @@
27
27
  "category": "interaction",
28
28
  "linkedEntity": "BattleBoardItem",
29
29
  "emits": [
30
- {
31
- "event": "HEADER",
32
- "description": "-- Slots --",
33
- "tier": "essential",
34
- "scope": "external",
35
- "payloadSchema": [
36
- {
37
- "name": "ctx",
38
- "type": "object"
39
- }
40
- ]
41
- },
42
- {
43
- "event": "SIDEBAR",
44
- "description": "Sidebar content (combat log, unit roster, etc.)",
45
- "tier": "essential",
46
- "scope": "external",
47
- "payloadSchema": [
48
- {
49
- "name": "ctx",
50
- "type": "object"
51
- }
52
- ]
53
- },
54
- {
55
- "event": "ACTIONS",
56
- "description": "Floating action buttons",
57
- "tier": "essential",
58
- "scope": "external",
59
- "payloadSchema": [
60
- {
61
- "name": "ctx",
62
- "type": "object"
63
- }
64
- ]
65
- },
66
- {
67
- "event": "OVERLAY",
68
- "description": "Floating overlays above the canvas (damage popups, tooltips)",
69
- "tier": "essential",
70
- "scope": "external",
71
- "payloadSchema": [
72
- {
73
- "name": "ctx",
74
- "type": "object"
75
- }
76
- ]
77
- },
78
- {
79
- "event": "GAME_OVER_OVERLAY",
80
- "description": "Game-over screen overlay",
81
- "tier": "essential",
82
- "scope": "external",
83
- "payloadSchema": [
84
- {
85
- "name": "ctx",
86
- "type": "object"
87
- }
88
- ]
89
- },
90
30
  {
91
31
  "event": "ATTACK",
92
32
  "description": "-- Callbacks --",
@@ -95,11 +35,255 @@
95
35
  "payloadSchema": [
96
36
  {
97
37
  "name": "attacker",
98
- "type": "object"
38
+ "type": "object",
39
+ "properties": [
40
+ {
41
+ "name": "id",
42
+ "type": "string",
43
+ "required": true
44
+ },
45
+ {
46
+ "name": "name",
47
+ "type": "string",
48
+ "required": true
49
+ },
50
+ {
51
+ "name": "unitType",
52
+ "type": "string"
53
+ },
54
+ {
55
+ "name": "heroId",
56
+ "type": "string"
57
+ },
58
+ {
59
+ "name": "sprite",
60
+ "type": "string"
61
+ },
62
+ {
63
+ "name": "spriteSheet",
64
+ "type": "object",
65
+ "properties": [
66
+ {
67
+ "name": "se",
68
+ "type": "string",
69
+ "required": true
70
+ },
71
+ {
72
+ "name": "sw",
73
+ "type": "string",
74
+ "required": true
75
+ },
76
+ {
77
+ "name": "frameWidth",
78
+ "type": "number",
79
+ "required": true
80
+ },
81
+ {
82
+ "name": "frameHeight",
83
+ "type": "number",
84
+ "required": true
85
+ }
86
+ ]
87
+ },
88
+ {
89
+ "name": "team",
90
+ "type": "string",
91
+ "required": true
92
+ },
93
+ {
94
+ "name": "position",
95
+ "type": "object",
96
+ "required": true,
97
+ "properties": [
98
+ {
99
+ "name": "x",
100
+ "type": "number",
101
+ "required": true
102
+ },
103
+ {
104
+ "name": "y",
105
+ "type": "number",
106
+ "required": true
107
+ }
108
+ ]
109
+ },
110
+ {
111
+ "name": "health",
112
+ "type": "number",
113
+ "required": true
114
+ },
115
+ {
116
+ "name": "maxHealth",
117
+ "type": "number",
118
+ "required": true
119
+ },
120
+ {
121
+ "name": "movement",
122
+ "type": "number",
123
+ "required": true
124
+ },
125
+ {
126
+ "name": "attack",
127
+ "type": "number",
128
+ "required": true
129
+ },
130
+ {
131
+ "name": "defense",
132
+ "type": "number",
133
+ "required": true
134
+ },
135
+ {
136
+ "name": "traits",
137
+ "type": "[object]",
138
+ "properties": [
139
+ {
140
+ "name": "name",
141
+ "type": "string",
142
+ "required": true
143
+ },
144
+ {
145
+ "name": "currentState",
146
+ "type": "string",
147
+ "required": true
148
+ },
149
+ {
150
+ "name": "states",
151
+ "type": "[string]",
152
+ "required": true
153
+ },
154
+ {
155
+ "name": "cooldown",
156
+ "type": "number"
157
+ }
158
+ ]
159
+ }
160
+ ]
99
161
  },
100
162
  {
101
163
  "name": "target",
102
- "type": "object"
164
+ "type": "object",
165
+ "properties": [
166
+ {
167
+ "name": "id",
168
+ "type": "string",
169
+ "required": true
170
+ },
171
+ {
172
+ "name": "name",
173
+ "type": "string",
174
+ "required": true
175
+ },
176
+ {
177
+ "name": "unitType",
178
+ "type": "string"
179
+ },
180
+ {
181
+ "name": "heroId",
182
+ "type": "string"
183
+ },
184
+ {
185
+ "name": "sprite",
186
+ "type": "string"
187
+ },
188
+ {
189
+ "name": "spriteSheet",
190
+ "type": "object",
191
+ "properties": [
192
+ {
193
+ "name": "se",
194
+ "type": "string",
195
+ "required": true
196
+ },
197
+ {
198
+ "name": "sw",
199
+ "type": "string",
200
+ "required": true
201
+ },
202
+ {
203
+ "name": "frameWidth",
204
+ "type": "number",
205
+ "required": true
206
+ },
207
+ {
208
+ "name": "frameHeight",
209
+ "type": "number",
210
+ "required": true
211
+ }
212
+ ]
213
+ },
214
+ {
215
+ "name": "team",
216
+ "type": "string",
217
+ "required": true
218
+ },
219
+ {
220
+ "name": "position",
221
+ "type": "object",
222
+ "required": true,
223
+ "properties": [
224
+ {
225
+ "name": "x",
226
+ "type": "number",
227
+ "required": true
228
+ },
229
+ {
230
+ "name": "y",
231
+ "type": "number",
232
+ "required": true
233
+ }
234
+ ]
235
+ },
236
+ {
237
+ "name": "health",
238
+ "type": "number",
239
+ "required": true
240
+ },
241
+ {
242
+ "name": "maxHealth",
243
+ "type": "number",
244
+ "required": true
245
+ },
246
+ {
247
+ "name": "movement",
248
+ "type": "number",
249
+ "required": true
250
+ },
251
+ {
252
+ "name": "attack",
253
+ "type": "number",
254
+ "required": true
255
+ },
256
+ {
257
+ "name": "defense",
258
+ "type": "number",
259
+ "required": true
260
+ },
261
+ {
262
+ "name": "traits",
263
+ "type": "[object]",
264
+ "properties": [
265
+ {
266
+ "name": "name",
267
+ "type": "string",
268
+ "required": true
269
+ },
270
+ {
271
+ "name": "currentState",
272
+ "type": "string",
273
+ "required": true
274
+ },
275
+ {
276
+ "name": "states",
277
+ "type": "[string]",
278
+ "required": true
279
+ },
280
+ {
281
+ "name": "cooldown",
282
+ "type": "number"
283
+ }
284
+ ]
285
+ }
286
+ ]
103
287
  },
104
288
  {
105
289
  "name": "damage",
@@ -137,27 +321,145 @@
137
321
  "payloadSchema": [
138
322
  {
139
323
  "name": "unit",
140
- "type": "object"
324
+ "type": "object",
325
+ "properties": [
326
+ {
327
+ "name": "id",
328
+ "type": "string",
329
+ "required": true
330
+ },
331
+ {
332
+ "name": "name",
333
+ "type": "string",
334
+ "required": true
335
+ },
336
+ {
337
+ "name": "unitType",
338
+ "type": "string"
339
+ },
340
+ {
341
+ "name": "heroId",
342
+ "type": "string"
343
+ },
344
+ {
345
+ "name": "sprite",
346
+ "type": "string"
347
+ },
348
+ {
349
+ "name": "spriteSheet",
350
+ "type": "object",
351
+ "properties": [
352
+ {
353
+ "name": "se",
354
+ "type": "string",
355
+ "required": true
356
+ },
357
+ {
358
+ "name": "sw",
359
+ "type": "string",
360
+ "required": true
361
+ },
362
+ {
363
+ "name": "frameWidth",
364
+ "type": "number",
365
+ "required": true
366
+ },
367
+ {
368
+ "name": "frameHeight",
369
+ "type": "number",
370
+ "required": true
371
+ }
372
+ ]
373
+ },
374
+ {
375
+ "name": "team",
376
+ "type": "string",
377
+ "required": true
378
+ },
379
+ {
380
+ "name": "position",
381
+ "type": "object",
382
+ "required": true,
383
+ "properties": [
384
+ {
385
+ "name": "x",
386
+ "type": "number",
387
+ "required": true
388
+ },
389
+ {
390
+ "name": "y",
391
+ "type": "number",
392
+ "required": true
393
+ }
394
+ ]
395
+ },
396
+ {
397
+ "name": "health",
398
+ "type": "number",
399
+ "required": true
400
+ },
401
+ {
402
+ "name": "maxHealth",
403
+ "type": "number",
404
+ "required": true
405
+ },
406
+ {
407
+ "name": "movement",
408
+ "type": "number",
409
+ "required": true
410
+ },
411
+ {
412
+ "name": "attack",
413
+ "type": "number",
414
+ "required": true
415
+ },
416
+ {
417
+ "name": "defense",
418
+ "type": "number",
419
+ "required": true
420
+ },
421
+ {
422
+ "name": "traits",
423
+ "type": "[object]",
424
+ "properties": [
425
+ {
426
+ "name": "name",
427
+ "type": "string",
428
+ "required": true
429
+ },
430
+ {
431
+ "name": "currentState",
432
+ "type": "string",
433
+ "required": true
434
+ },
435
+ {
436
+ "name": "states",
437
+ "type": "[string]",
438
+ "required": true
439
+ },
440
+ {
441
+ "name": "cooldown",
442
+ "type": "number"
443
+ }
444
+ ]
445
+ }
446
+ ]
141
447
  },
142
448
  {
143
449
  "name": "to",
144
- "type": "object"
145
- }
146
- ]
147
- },
148
- {
149
- "event": "CALCULATE_DAMAGE",
150
- "description": "Custom combat damage calculator",
151
- "tier": "essential",
152
- "scope": "external",
153
- "payloadSchema": [
154
- {
155
- "name": "attacker",
156
- "type": "object"
157
- },
158
- {
159
- "name": "target",
160
- "type": "object"
450
+ "type": "object",
451
+ "properties": [
452
+ {
453
+ "name": "x",
454
+ "type": "number",
455
+ "required": true
456
+ },
457
+ {
458
+ "name": "y",
459
+ "type": "number",
460
+ "required": true
461
+ }
462
+ ]
161
463
  }
162
464
  ]
163
465
  },
@@ -177,18 +479,6 @@
177
479
  }
178
480
  ]
179
481
  },
180
- {
181
- "event": "RESOLVE_UNIT_FRAME",
182
- "description": "resolveUnitFrame prop",
183
- "tier": "essential",
184
- "scope": "external",
185
- "payloadSchema": [
186
- {
187
- "name": "unitId",
188
- "type": "string"
189
- }
190
- ]
191
- },
192
482
  {
193
483
  "event": "TILE_CLICK",
194
484
  "description": "-- Declarative event props --",
@@ -269,101 +559,524 @@
269
559
  "key": "INIT",
270
560
  "name": "Initialize"
271
561
  },
272
- {
273
- "key": "HEADER",
274
- "name": "Header",
275
- "description": "-- Slots --",
276
- "tier": "essential"
277
- },
278
- {
279
- "key": "SIDEBAR",
280
- "name": "Sidebar",
281
- "description": "Sidebar content (combat log, unit roster, etc.)",
282
- "tier": "essential"
283
- },
284
- {
285
- "key": "ACTIONS",
286
- "name": "Actions",
287
- "description": "Floating action buttons",
288
- "tier": "essential"
289
- },
290
- {
291
- "key": "OVERLAY",
292
- "name": "Overlay",
293
- "description": "Floating overlays above the canvas (damage popups, tooltips)",
294
- "tier": "essential"
295
- },
296
- {
297
- "key": "GAME_OVER_OVERLAY",
298
- "name": "Game Over Overlay",
299
- "description": "Game-over screen overlay",
300
- "tier": "essential"
301
- },
302
562
  {
303
563
  "key": "ATTACK",
304
564
  "name": "Attack",
305
565
  "description": "-- Callbacks --",
306
- "tier": "essential"
566
+ "tier": "essential",
567
+ "payloadSchema": [
568
+ {
569
+ "name": "attacker",
570
+ "type": "object",
571
+ "properties": [
572
+ {
573
+ "name": "id",
574
+ "type": "string",
575
+ "required": true
576
+ },
577
+ {
578
+ "name": "name",
579
+ "type": "string",
580
+ "required": true
581
+ },
582
+ {
583
+ "name": "unitType",
584
+ "type": "string"
585
+ },
586
+ {
587
+ "name": "heroId",
588
+ "type": "string"
589
+ },
590
+ {
591
+ "name": "sprite",
592
+ "type": "string"
593
+ },
594
+ {
595
+ "name": "spriteSheet",
596
+ "type": "object",
597
+ "properties": [
598
+ {
599
+ "name": "se",
600
+ "type": "string",
601
+ "required": true
602
+ },
603
+ {
604
+ "name": "sw",
605
+ "type": "string",
606
+ "required": true
607
+ },
608
+ {
609
+ "name": "frameWidth",
610
+ "type": "number",
611
+ "required": true
612
+ },
613
+ {
614
+ "name": "frameHeight",
615
+ "type": "number",
616
+ "required": true
617
+ }
618
+ ]
619
+ },
620
+ {
621
+ "name": "team",
622
+ "type": "string",
623
+ "required": true
624
+ },
625
+ {
626
+ "name": "position",
627
+ "type": "object",
628
+ "required": true,
629
+ "properties": [
630
+ {
631
+ "name": "x",
632
+ "type": "number",
633
+ "required": true
634
+ },
635
+ {
636
+ "name": "y",
637
+ "type": "number",
638
+ "required": true
639
+ }
640
+ ]
641
+ },
642
+ {
643
+ "name": "health",
644
+ "type": "number",
645
+ "required": true
646
+ },
647
+ {
648
+ "name": "maxHealth",
649
+ "type": "number",
650
+ "required": true
651
+ },
652
+ {
653
+ "name": "movement",
654
+ "type": "number",
655
+ "required": true
656
+ },
657
+ {
658
+ "name": "attack",
659
+ "type": "number",
660
+ "required": true
661
+ },
662
+ {
663
+ "name": "defense",
664
+ "type": "number",
665
+ "required": true
666
+ },
667
+ {
668
+ "name": "traits",
669
+ "type": "[object]",
670
+ "properties": [
671
+ {
672
+ "name": "name",
673
+ "type": "string",
674
+ "required": true
675
+ },
676
+ {
677
+ "name": "currentState",
678
+ "type": "string",
679
+ "required": true
680
+ },
681
+ {
682
+ "name": "states",
683
+ "type": "[string]",
684
+ "required": true
685
+ },
686
+ {
687
+ "name": "cooldown",
688
+ "type": "number"
689
+ }
690
+ ]
691
+ }
692
+ ]
693
+ },
694
+ {
695
+ "name": "target",
696
+ "type": "object",
697
+ "properties": [
698
+ {
699
+ "name": "id",
700
+ "type": "string",
701
+ "required": true
702
+ },
703
+ {
704
+ "name": "name",
705
+ "type": "string",
706
+ "required": true
707
+ },
708
+ {
709
+ "name": "unitType",
710
+ "type": "string"
711
+ },
712
+ {
713
+ "name": "heroId",
714
+ "type": "string"
715
+ },
716
+ {
717
+ "name": "sprite",
718
+ "type": "string"
719
+ },
720
+ {
721
+ "name": "spriteSheet",
722
+ "type": "object",
723
+ "properties": [
724
+ {
725
+ "name": "se",
726
+ "type": "string",
727
+ "required": true
728
+ },
729
+ {
730
+ "name": "sw",
731
+ "type": "string",
732
+ "required": true
733
+ },
734
+ {
735
+ "name": "frameWidth",
736
+ "type": "number",
737
+ "required": true
738
+ },
739
+ {
740
+ "name": "frameHeight",
741
+ "type": "number",
742
+ "required": true
743
+ }
744
+ ]
745
+ },
746
+ {
747
+ "name": "team",
748
+ "type": "string",
749
+ "required": true
750
+ },
751
+ {
752
+ "name": "position",
753
+ "type": "object",
754
+ "required": true,
755
+ "properties": [
756
+ {
757
+ "name": "x",
758
+ "type": "number",
759
+ "required": true
760
+ },
761
+ {
762
+ "name": "y",
763
+ "type": "number",
764
+ "required": true
765
+ }
766
+ ]
767
+ },
768
+ {
769
+ "name": "health",
770
+ "type": "number",
771
+ "required": true
772
+ },
773
+ {
774
+ "name": "maxHealth",
775
+ "type": "number",
776
+ "required": true
777
+ },
778
+ {
779
+ "name": "movement",
780
+ "type": "number",
781
+ "required": true
782
+ },
783
+ {
784
+ "name": "attack",
785
+ "type": "number",
786
+ "required": true
787
+ },
788
+ {
789
+ "name": "defense",
790
+ "type": "number",
791
+ "required": true
792
+ },
793
+ {
794
+ "name": "traits",
795
+ "type": "[object]",
796
+ "properties": [
797
+ {
798
+ "name": "name",
799
+ "type": "string",
800
+ "required": true
801
+ },
802
+ {
803
+ "name": "currentState",
804
+ "type": "string",
805
+ "required": true
806
+ },
807
+ {
808
+ "name": "states",
809
+ "type": "[string]",
810
+ "required": true
811
+ },
812
+ {
813
+ "name": "cooldown",
814
+ "type": "number"
815
+ }
816
+ ]
817
+ }
818
+ ]
819
+ },
820
+ {
821
+ "name": "damage",
822
+ "type": "number"
823
+ },
824
+ {
825
+ "name": "attackerId",
826
+ "type": "string",
827
+ "required": true
828
+ },
829
+ {
830
+ "name": "targetId",
831
+ "type": "string",
832
+ "required": true
833
+ }
834
+ ]
307
835
  },
308
836
  {
309
837
  "key": "GAME_END",
310
838
  "name": "Game End",
311
839
  "description": "Called when battle ends",
312
- "tier": "essential"
840
+ "tier": "essential",
841
+ "payloadSchema": [
842
+ {
843
+ "name": "result",
844
+ "type": "string"
845
+ }
846
+ ]
313
847
  },
314
848
  {
315
849
  "key": "UNIT_MOVE",
316
850
  "name": "Unit Move",
317
851
  "description": "Called after a unit moves",
318
- "tier": "essential"
319
- },
320
- {
321
- "key": "CALCULATE_DAMAGE",
322
- "name": "Calculate Damage",
323
- "description": "Custom combat damage calculator",
324
- "tier": "essential"
852
+ "tier": "essential",
853
+ "payloadSchema": [
854
+ {
855
+ "name": "unit",
856
+ "type": "object",
857
+ "properties": [
858
+ {
859
+ "name": "id",
860
+ "type": "string",
861
+ "required": true
862
+ },
863
+ {
864
+ "name": "name",
865
+ "type": "string",
866
+ "required": true
867
+ },
868
+ {
869
+ "name": "unitType",
870
+ "type": "string"
871
+ },
872
+ {
873
+ "name": "heroId",
874
+ "type": "string"
875
+ },
876
+ {
877
+ "name": "sprite",
878
+ "type": "string"
879
+ },
880
+ {
881
+ "name": "spriteSheet",
882
+ "type": "object",
883
+ "properties": [
884
+ {
885
+ "name": "se",
886
+ "type": "string",
887
+ "required": true
888
+ },
889
+ {
890
+ "name": "sw",
891
+ "type": "string",
892
+ "required": true
893
+ },
894
+ {
895
+ "name": "frameWidth",
896
+ "type": "number",
897
+ "required": true
898
+ },
899
+ {
900
+ "name": "frameHeight",
901
+ "type": "number",
902
+ "required": true
903
+ }
904
+ ]
905
+ },
906
+ {
907
+ "name": "team",
908
+ "type": "string",
909
+ "required": true
910
+ },
911
+ {
912
+ "name": "position",
913
+ "type": "object",
914
+ "required": true,
915
+ "properties": [
916
+ {
917
+ "name": "x",
918
+ "type": "number",
919
+ "required": true
920
+ },
921
+ {
922
+ "name": "y",
923
+ "type": "number",
924
+ "required": true
925
+ }
926
+ ]
927
+ },
928
+ {
929
+ "name": "health",
930
+ "type": "number",
931
+ "required": true
932
+ },
933
+ {
934
+ "name": "maxHealth",
935
+ "type": "number",
936
+ "required": true
937
+ },
938
+ {
939
+ "name": "movement",
940
+ "type": "number",
941
+ "required": true
942
+ },
943
+ {
944
+ "name": "attack",
945
+ "type": "number",
946
+ "required": true
947
+ },
948
+ {
949
+ "name": "defense",
950
+ "type": "number",
951
+ "required": true
952
+ },
953
+ {
954
+ "name": "traits",
955
+ "type": "[object]",
956
+ "properties": [
957
+ {
958
+ "name": "name",
959
+ "type": "string",
960
+ "required": true
961
+ },
962
+ {
963
+ "name": "currentState",
964
+ "type": "string",
965
+ "required": true
966
+ },
967
+ {
968
+ "name": "states",
969
+ "type": "[string]",
970
+ "required": true
971
+ },
972
+ {
973
+ "name": "cooldown",
974
+ "type": "number"
975
+ }
976
+ ]
977
+ }
978
+ ]
979
+ },
980
+ {
981
+ "name": "to",
982
+ "type": "object",
983
+ "properties": [
984
+ {
985
+ "name": "x",
986
+ "type": "number",
987
+ "required": true
988
+ },
989
+ {
990
+ "name": "y",
991
+ "type": "number",
992
+ "required": true
993
+ }
994
+ ]
995
+ }
996
+ ]
325
997
  },
326
998
  {
327
999
  "key": "DRAW_EFFECTS",
328
1000
  "name": "Draw Effects",
329
1001
  "description": "-- Canvas pass-through --",
330
- "tier": "essential"
331
- },
332
- {
333
- "key": "RESOLVE_UNIT_FRAME",
334
- "name": "Resolve Unit Frame",
335
- "description": "resolveUnitFrame prop",
336
- "tier": "essential"
1002
+ "tier": "essential",
1003
+ "payloadSchema": [
1004
+ {
1005
+ "name": "ctx",
1006
+ "type": "object"
1007
+ },
1008
+ {
1009
+ "name": "timestamp",
1010
+ "type": "number"
1011
+ }
1012
+ ]
337
1013
  },
338
1014
  {
339
1015
  "key": "TILE_CLICK",
340
1016
  "name": "Tile Click",
341
1017
  "description": "-- Declarative event props --",
342
- "tier": "essential"
1018
+ "tier": "essential",
1019
+ "payloadSchema": [
1020
+ {
1021
+ "name": "x",
1022
+ "type": "number",
1023
+ "required": true
1024
+ },
1025
+ {
1026
+ "name": "y",
1027
+ "type": "number",
1028
+ "required": true
1029
+ }
1030
+ ]
343
1031
  },
344
1032
  {
345
1033
  "key": "UNIT_CLICK",
346
1034
  "name": "Unit Click",
347
1035
  "description": "Emits UI:{unitClickEvent} with { unitId } on unit click",
348
- "tier": "essential"
1036
+ "tier": "essential",
1037
+ "payloadSchema": [
1038
+ {
1039
+ "name": "unitId",
1040
+ "type": "string",
1041
+ "required": true
1042
+ }
1043
+ ]
349
1044
  },
350
1045
  {
351
1046
  "key": "END_TURN",
352
1047
  "name": "End Turn",
353
1048
  "description": "Emits UI:{endTurnEvent} with {} on end turn",
354
- "tier": "essential"
1049
+ "tier": "essential",
1050
+ "payloadSchema": [
1051
+ {
1052
+ "name": "id",
1053
+ "type": "string"
1054
+ }
1055
+ ]
355
1056
  },
356
1057
  {
357
1058
  "key": "CANCEL",
358
1059
  "name": "Cancel",
359
1060
  "description": "Emits UI:{cancelEvent} with {} on cancel",
360
- "tier": "essential"
1061
+ "tier": "essential",
1062
+ "payloadSchema": [
1063
+ {
1064
+ "name": "id",
1065
+ "type": "string"
1066
+ }
1067
+ ]
361
1068
  },
362
1069
  {
363
1070
  "key": "PLAY_AGAIN",
364
1071
  "name": "Play Again",
365
1072
  "description": "Emits UI:{playAgainEvent} with {} on play again / reset",
366
- "tier": "essential"
1073
+ "tier": "essential",
1074
+ "payloadSchema": [
1075
+ {
1076
+ "name": "id",
1077
+ "type": "string"
1078
+ }
1079
+ ]
367
1080
  }
368
1081
  ],
369
1082
  "transitions": [
@@ -372,40 +1085,28 @@
372
1085
  "to": "idle",
373
1086
  "event": "INIT",
374
1087
  "effects": [
375
- [
376
- "fetch",
377
- "BattleBoardItem",
378
- {}
379
- ],
380
1088
  [
381
1089
  "render-ui",
382
1090
  "main",
383
1091
  {
384
- "cancelEvent": "CANCEL",
385
- "unitScale": "@config.unitScale",
386
- "overlay": "OVERLAY",
1092
+ "hasActiveEffects": "@config.hasActiveEffects",
387
1093
  "unitClickEvent": "UNIT_CLICK",
388
- "header": "HEADER",
389
- "calculateDamage": "CALCULATE_DAMAGE",
390
- "onAttack": "ATTACK",
391
- "effectSpriteUrls": "@config.effectSpriteUrls",
392
- "endTurnEvent": "END_TURN",
393
- "entity": "@entity",
394
- "gameEndEvent": "GAME_END",
395
1094
  "scale": "@config.scale",
396
- "actions": "ACTIONS",
397
- "attackEvent": "ATTACK",
398
- "playAgainEvent": "PLAY_AGAIN",
399
- "gameOverOverlay": "GAME_OVER_OVERLAY",
400
1095
  "onDrawEffects": "DRAW_EFFECTS",
401
- "resolveUnitFrame": "RESOLVE_UNIT_FRAME",
402
- "tileClickEvent": "TILE_CLICK",
1096
+ "effectSpriteUrls": "@config.effectSpriteUrls",
1097
+ "attackEvent": "ATTACK",
403
1098
  "type": "battle-board",
1099
+ "gameEndEvent": "GAME_END",
1100
+ "endTurnEvent": "END_TURN",
1101
+ "cancelEvent": "CANCEL",
1102
+ "onAttack": "ATTACK",
1103
+ "className": "@config.className",
1104
+ "entity": "@config.entityProp",
404
1105
  "onGameEnd": "GAME_END",
405
- "sidebar": "SIDEBAR",
1106
+ "unitScale": "@config.unitScale",
406
1107
  "onUnitMove": "UNIT_MOVE",
407
- "hasActiveEffects": "@config.hasActiveEffects",
408
- "className": "@config.className"
1108
+ "tileClickEvent": "TILE_CLICK",
1109
+ "playAgainEvent": "PLAY_AGAIN"
409
1110
  }
410
1111
  ]
411
1112
  ]
@@ -420,13 +1121,372 @@
420
1121
  "description": "Unit draw-size multiplier",
421
1122
  "tier": "presentation"
422
1123
  },
423
- "className": {
424
- "type": "string",
425
- "default": "",
426
- "label": "Class Name",
427
- "description": "className prop",
1124
+ "hasActiveEffects": {
1125
+ "type": "boolean",
1126
+ "default": false,
1127
+ "label": "Has Active Effects",
1128
+ "description": "hasActiveEffects prop",
428
1129
  "tier": "presentation"
429
1130
  },
1131
+ "entityProp": {
1132
+ "type": "BattleBoardEntity",
1133
+ "label": "Entity",
1134
+ "description": "Entity containing all board data",
1135
+ "synonyms": "entity",
1136
+ "tier": "presentation",
1137
+ "properties": {
1138
+ "features": {
1139
+ "name": "features",
1140
+ "type": "array",
1141
+ "required": false,
1142
+ "items": {
1143
+ "type": "object",
1144
+ "properties": {
1145
+ "sprite": {
1146
+ "name": "sprite",
1147
+ "type": "string",
1148
+ "required": false
1149
+ },
1150
+ "id": {
1151
+ "name": "id",
1152
+ "type": "string",
1153
+ "required": false
1154
+ },
1155
+ "type": {
1156
+ "name": "type",
1157
+ "type": "string",
1158
+ "required": true
1159
+ },
1160
+ "elevation": {
1161
+ "name": "elevation",
1162
+ "type": "number",
1163
+ "required": false
1164
+ },
1165
+ "color": {
1166
+ "name": "color",
1167
+ "type": "string",
1168
+ "required": false
1169
+ },
1170
+ "z": {
1171
+ "name": "z",
1172
+ "type": "number",
1173
+ "required": false
1174
+ },
1175
+ "assetUrl": {
1176
+ "name": "assetUrl",
1177
+ "type": "string",
1178
+ "required": false
1179
+ },
1180
+ "x": {
1181
+ "name": "x",
1182
+ "type": "number",
1183
+ "required": true
1184
+ },
1185
+ "y": {
1186
+ "name": "y",
1187
+ "type": "number",
1188
+ "required": true
1189
+ }
1190
+ }
1191
+ }
1192
+ },
1193
+ "assetManifest": {
1194
+ "name": "assetManifest",
1195
+ "type": "object",
1196
+ "required": false,
1197
+ "properties": {
1198
+ "effects": {
1199
+ "name": "effects",
1200
+ "type": "string",
1201
+ "required": false
1202
+ },
1203
+ "baseUrl": {
1204
+ "name": "baseUrl",
1205
+ "type": "string",
1206
+ "required": true
1207
+ },
1208
+ "units": {
1209
+ "name": "units",
1210
+ "type": "string",
1211
+ "required": false
1212
+ },
1213
+ "terrains": {
1214
+ "name": "terrains",
1215
+ "type": "string",
1216
+ "required": false
1217
+ },
1218
+ "features": {
1219
+ "name": "features",
1220
+ "type": "string",
1221
+ "required": false
1222
+ }
1223
+ }
1224
+ },
1225
+ "units": {
1226
+ "name": "units",
1227
+ "type": "array",
1228
+ "required": true,
1229
+ "items": {
1230
+ "type": "object",
1231
+ "properties": {
1232
+ "position": {
1233
+ "name": "position",
1234
+ "type": "object",
1235
+ "required": true,
1236
+ "properties": {
1237
+ "x": {
1238
+ "name": "x",
1239
+ "type": "number",
1240
+ "required": true
1241
+ },
1242
+ "y": {
1243
+ "name": "y",
1244
+ "type": "number",
1245
+ "required": true
1246
+ }
1247
+ }
1248
+ },
1249
+ "defense": {
1250
+ "name": "defense",
1251
+ "type": "number",
1252
+ "required": true
1253
+ },
1254
+ "id": {
1255
+ "name": "id",
1256
+ "type": "string",
1257
+ "required": true
1258
+ },
1259
+ "health": {
1260
+ "name": "health",
1261
+ "type": "number",
1262
+ "required": true
1263
+ },
1264
+ "spriteSheet": {
1265
+ "name": "spriteSheet",
1266
+ "type": "object",
1267
+ "required": false,
1268
+ "properties": {
1269
+ "sw": {
1270
+ "name": "sw",
1271
+ "type": "string",
1272
+ "required": true
1273
+ },
1274
+ "se": {
1275
+ "name": "se",
1276
+ "type": "string",
1277
+ "required": true
1278
+ },
1279
+ "frameWidth": {
1280
+ "name": "frameWidth",
1281
+ "type": "number",
1282
+ "required": true
1283
+ },
1284
+ "frameHeight": {
1285
+ "name": "frameHeight",
1286
+ "type": "number",
1287
+ "required": true
1288
+ }
1289
+ }
1290
+ },
1291
+ "maxHealth": {
1292
+ "name": "maxHealth",
1293
+ "type": "number",
1294
+ "required": true
1295
+ },
1296
+ "attack": {
1297
+ "name": "attack",
1298
+ "type": "number",
1299
+ "required": true
1300
+ },
1301
+ "heroId": {
1302
+ "name": "heroId",
1303
+ "type": "string",
1304
+ "required": false
1305
+ },
1306
+ "name": {
1307
+ "name": "name",
1308
+ "type": "string",
1309
+ "required": true
1310
+ },
1311
+ "traits": {
1312
+ "name": "traits",
1313
+ "type": "array",
1314
+ "required": false,
1315
+ "items": {
1316
+ "type": "object",
1317
+ "properties": {
1318
+ "states": {
1319
+ "name": "states",
1320
+ "type": "array",
1321
+ "required": true,
1322
+ "items": {
1323
+ "type": "string"
1324
+ }
1325
+ },
1326
+ "name": {
1327
+ "name": "name",
1328
+ "type": "string",
1329
+ "required": true
1330
+ },
1331
+ "cooldown": {
1332
+ "name": "cooldown",
1333
+ "type": "number",
1334
+ "required": false
1335
+ },
1336
+ "currentState": {
1337
+ "name": "currentState",
1338
+ "type": "string",
1339
+ "required": true
1340
+ }
1341
+ }
1342
+ }
1343
+ },
1344
+ "unitType": {
1345
+ "name": "unitType",
1346
+ "type": "string",
1347
+ "required": false
1348
+ },
1349
+ "movement": {
1350
+ "name": "movement",
1351
+ "type": "number",
1352
+ "required": true
1353
+ },
1354
+ "sprite": {
1355
+ "name": "sprite",
1356
+ "type": "string",
1357
+ "required": false
1358
+ },
1359
+ "team": {
1360
+ "name": "team",
1361
+ "type": "string",
1362
+ "required": true,
1363
+ "values": [
1364
+ "player",
1365
+ "enemy"
1366
+ ]
1367
+ }
1368
+ }
1369
+ }
1370
+ },
1371
+ "backgroundImage": {
1372
+ "name": "backgroundImage",
1373
+ "type": "string",
1374
+ "required": false
1375
+ },
1376
+ "id": {
1377
+ "name": "id",
1378
+ "type": "string",
1379
+ "required": true
1380
+ },
1381
+ "turn": {
1382
+ "name": "turn",
1383
+ "type": "number",
1384
+ "required": true
1385
+ },
1386
+ "boardWidth": {
1387
+ "name": "boardWidth",
1388
+ "type": "number",
1389
+ "required": false
1390
+ },
1391
+ "boardHeight": {
1392
+ "name": "boardHeight",
1393
+ "type": "number",
1394
+ "required": false
1395
+ },
1396
+ "tiles": {
1397
+ "name": "tiles",
1398
+ "type": "array",
1399
+ "required": true,
1400
+ "items": {
1401
+ "type": "object",
1402
+ "properties": {
1403
+ "tileType": {
1404
+ "name": "tileType",
1405
+ "type": "string",
1406
+ "required": false
1407
+ },
1408
+ "x": {
1409
+ "name": "x",
1410
+ "type": "number",
1411
+ "required": true
1412
+ },
1413
+ "terrainSprite": {
1414
+ "name": "terrainSprite",
1415
+ "type": "string",
1416
+ "required": false
1417
+ },
1418
+ "movementCost": {
1419
+ "name": "movementCost",
1420
+ "type": "number",
1421
+ "required": false
1422
+ },
1423
+ "z": {
1424
+ "name": "z",
1425
+ "type": "number",
1426
+ "required": false
1427
+ },
1428
+ "id": {
1429
+ "name": "id",
1430
+ "type": "string",
1431
+ "required": false
1432
+ },
1433
+ "elevation": {
1434
+ "name": "elevation",
1435
+ "type": "number",
1436
+ "required": false
1437
+ },
1438
+ "y": {
1439
+ "name": "y",
1440
+ "type": "number",
1441
+ "required": true
1442
+ },
1443
+ "passable": {
1444
+ "name": "passable",
1445
+ "type": "boolean",
1446
+ "required": false
1447
+ },
1448
+ "terrain": {
1449
+ "name": "terrain",
1450
+ "type": "string",
1451
+ "required": false
1452
+ },
1453
+ "type": {
1454
+ "name": "type",
1455
+ "type": "string",
1456
+ "required": false
1457
+ }
1458
+ }
1459
+ }
1460
+ },
1461
+ "gameResult": {
1462
+ "name": "gameResult",
1463
+ "type": "string",
1464
+ "required": true,
1465
+ "values": [
1466
+ "victory",
1467
+ "defeat"
1468
+ ]
1469
+ },
1470
+ "selectedUnitId": {
1471
+ "name": "selectedUnitId",
1472
+ "type": "string",
1473
+ "required": true
1474
+ },
1475
+ "phase": {
1476
+ "name": "phase",
1477
+ "type": "string",
1478
+ "required": true,
1479
+ "values": [
1480
+ "observation",
1481
+ "selection",
1482
+ "movement",
1483
+ "action",
1484
+ "enemy_turn",
1485
+ "game_over"
1486
+ ]
1487
+ }
1488
+ }
1489
+ },
430
1490
  "scale": {
431
1491
  "type": "number",
432
1492
  "default": 0.45,
@@ -434,13 +1494,6 @@
434
1494
  "description": "Canvas render scale",
435
1495
  "tier": "presentation"
436
1496
  },
437
- "hasActiveEffects": {
438
- "type": "boolean",
439
- "default": false,
440
- "label": "Has Active Effects",
441
- "description": "hasActiveEffects prop",
442
- "tier": "presentation"
443
- },
444
1497
  "effectSpriteUrls": {
445
1498
  "type": "[string]",
446
1499
  "default": [],
@@ -450,6 +1503,13 @@
450
1503
  "items": {
451
1504
  "type": "string"
452
1505
  }
1506
+ },
1507
+ "className": {
1508
+ "type": "string",
1509
+ "default": "",
1510
+ "label": "Class Name",
1511
+ "description": "className prop",
1512
+ "tier": "presentation"
453
1513
  }
454
1514
  },
455
1515
  "scope": "instance"