@almadar/std 16.153.0 → 16.154.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 (75) hide show
  1. package/behaviors/lolo/ui/game/molecules/std-crew-board-2d.lolo +4 -4
  2. package/behaviors/lolo/ui/game/molecules/std-dungeon-board-2d.lolo +6 -6
  3. package/behaviors/lolo/ui/game/molecules/std-tactics-board-2d.lolo +41 -9
  4. package/behaviors/lolo/ui/game/molecules/std-worldmap-board-2d.lolo +2 -2
  5. package/behaviors/lolo/ui/game/organisms/ui-arena-board.lolo +2 -2
  6. package/behaviors/lolo/ui/game/organisms/ui-battle-board.lolo +110 -7
  7. package/behaviors/lolo/ui/game/organisms/ui-builder-board.lolo +5 -20
  8. package/behaviors/lolo/ui/game/organisms/ui-card-battler-board.lolo +2 -0
  9. package/behaviors/lolo/ui/game/organisms/ui-castle-board.lolo +3 -3
  10. package/behaviors/lolo/ui/game/organisms/ui-city-builder-board.lolo +9 -7
  11. package/behaviors/lolo/ui/game/organisms/ui-grid-tactics-demo-board.lolo +2 -2
  12. package/behaviors/lolo/ui/game/organisms/ui-hex-strategy-board.lolo +5 -1
  13. package/behaviors/lolo/ui/game/organisms/ui-holiday-runner-board.lolo +1 -1
  14. package/behaviors/lolo/ui/game/organisms/ui-minigolf-board.lolo +22 -22
  15. package/behaviors/lolo/ui/game/organisms/ui-pinball-board.lolo +7 -7
  16. package/behaviors/lolo/ui/game/organisms/ui-pirate-board.lolo +14 -14
  17. package/behaviors/lolo/ui/game/organisms/ui-platformer-board.lolo +4 -0
  18. package/behaviors/lolo/ui/game/organisms/ui-sports-board.lolo +10 -7
  19. package/behaviors/lolo/ui/game/organisms/ui-tactics-demo-2d.lolo +7 -3
  20. package/behaviors/lolo/ui/game/organisms/ui-tanks-board.lolo +5 -1
  21. package/behaviors/lolo/ui/game/organisms/ui-topdown-rts-board.lolo +5 -1
  22. package/behaviors/lolo/ui/game/organisms/ui-tower-defense-board.lolo +8 -8
  23. package/behaviors/lolo/ui/game/organisms/ui-uncontrolled-battle-board.lolo +5 -5
  24. package/behaviors/lolo/ui/game/organisms/ui-world-map-board.lolo +3 -3
  25. package/behaviors/registry/ui/game/molecules/std-crew-board-2d.orb +10 -12
  26. package/behaviors/registry/ui/game/molecules/std-dungeon-board-2d.orb +15 -18
  27. package/behaviors/registry/ui/game/molecules/std-tactics-board-2d.orb +860 -138
  28. package/behaviors/registry/ui/game/molecules/std-worldmap-board-2d.orb +7 -60
  29. package/behaviors/registry/ui/game/organisms/ui-arena-board.orb +5 -6
  30. package/behaviors/registry/ui/game/organisms/ui-battle-board.orb +86 -99
  31. package/behaviors/registry/ui/game/organisms/ui-builder-board.orb +21 -226
  32. package/behaviors/registry/ui/game/organisms/ui-card-battler-board.orb +42 -0
  33. package/behaviors/registry/ui/game/organisms/ui-castle-board.orb +30 -9
  34. package/behaviors/registry/ui/game/organisms/ui-city-builder-board.orb +49 -0
  35. package/behaviors/registry/ui/game/organisms/ui-grid-tactics-demo-board.orb +5 -6
  36. package/behaviors/registry/ui/game/organisms/ui-hex-strategy-board.orb +30 -10
  37. package/behaviors/registry/ui/game/organisms/ui-holiday-runner-board.orb +2 -3
  38. package/behaviors/registry/ui/game/organisms/ui-minigolf-board.orb +55 -11
  39. package/behaviors/registry/ui/game/organisms/ui-pinball-board.orb +8 -8
  40. package/behaviors/registry/ui/game/organisms/ui-pirate-board.orb +14 -0
  41. package/behaviors/registry/ui/game/organisms/ui-platformer-board.orb +72 -0
  42. package/behaviors/registry/ui/game/organisms/ui-sports-board.orb +60 -0
  43. package/behaviors/registry/ui/game/organisms/ui-tactics-demo-2d.orb +48 -28
  44. package/behaviors/registry/ui/game/organisms/ui-tanks-board.orb +30 -10
  45. package/behaviors/registry/ui/game/organisms/ui-topdown-rts-board.orb +31 -12
  46. package/behaviors/registry/ui/game/organisms/ui-tower-defense-board.orb +8 -0
  47. package/behaviors/registry/ui/game/organisms/ui-uncontrolled-battle-board.orb +5 -0
  48. package/behaviors/registry/ui/game/organisms/ui-world-map-board.orb +8 -12
  49. package/dist/behaviors/behaviors-registry.json +60 -50
  50. package/dist/behaviors/registry/ui/game/molecules/std-crew-board-2d.orb +10 -12
  51. package/dist/behaviors/registry/ui/game/molecules/std-dungeon-board-2d.orb +15 -18
  52. package/dist/behaviors/registry/ui/game/molecules/std-tactics-board-2d.orb +860 -138
  53. package/dist/behaviors/registry/ui/game/molecules/std-worldmap-board-2d.orb +7 -60
  54. package/dist/behaviors/registry/ui/game/organisms/ui-arena-board.orb +5 -6
  55. package/dist/behaviors/registry/ui/game/organisms/ui-battle-board.orb +86 -99
  56. package/dist/behaviors/registry/ui/game/organisms/ui-builder-board.orb +21 -226
  57. package/dist/behaviors/registry/ui/game/organisms/ui-card-battler-board.orb +42 -0
  58. package/dist/behaviors/registry/ui/game/organisms/ui-castle-board.orb +30 -9
  59. package/dist/behaviors/registry/ui/game/organisms/ui-city-builder-board.orb +49 -0
  60. package/dist/behaviors/registry/ui/game/organisms/ui-grid-tactics-demo-board.orb +5 -6
  61. package/dist/behaviors/registry/ui/game/organisms/ui-hex-strategy-board.orb +30 -10
  62. package/dist/behaviors/registry/ui/game/organisms/ui-holiday-runner-board.orb +2 -3
  63. package/dist/behaviors/registry/ui/game/organisms/ui-minigolf-board.orb +55 -11
  64. package/dist/behaviors/registry/ui/game/organisms/ui-pinball-board.orb +8 -8
  65. package/dist/behaviors/registry/ui/game/organisms/ui-pirate-board.orb +14 -0
  66. package/dist/behaviors/registry/ui/game/organisms/ui-platformer-board.orb +72 -0
  67. package/dist/behaviors/registry/ui/game/organisms/ui-sports-board.orb +60 -0
  68. package/dist/behaviors/registry/ui/game/organisms/ui-tactics-demo-2d.orb +48 -28
  69. package/dist/behaviors/registry/ui/game/organisms/ui-tanks-board.orb +30 -10
  70. package/dist/behaviors/registry/ui/game/organisms/ui-topdown-rts-board.orb +31 -12
  71. package/dist/behaviors/registry/ui/game/organisms/ui-tower-defense-board.orb +8 -0
  72. package/dist/behaviors/registry/ui/game/organisms/ui-uncontrolled-battle-board.orb +5 -0
  73. package/dist/behaviors/registry/ui/game/organisms/ui-world-map-board.orb +8 -12
  74. package/dist/behaviors-registry.json +60 -50
  75. package/package.json +2 -2
@@ -146,6 +146,14 @@
146
146
  "kind": "trait",
147
147
  "owner": "workspace",
148
148
  "renames": []
149
+ },
150
+ "trt_01KYR8XVRJYJJPAW6NZ6NZ7NQ2": {
151
+ "bakedName": "AnimClock",
152
+ "curName": "AnimClock",
153
+ "id": "trt_01KYR8XVRJYJJPAW6NZ6NZ7NQ2",
154
+ "kind": "trait",
155
+ "owner": "workspace",
156
+ "renames": []
149
157
  }
150
158
  },
151
159
  "schemaVersion": 1
@@ -670,6 +678,41 @@
670
678
  "default": 0.0,
671
679
  "name": "scoreBaseline",
672
680
  "type": "number"
681
+ },
682
+ {
683
+ "default": 0.0,
684
+ "name": "animCounter",
685
+ "type": "number"
686
+ },
687
+ {
688
+ "default": "0",
689
+ "name": "frameName",
690
+ "type": "string"
691
+ },
692
+ {
693
+ "default": "",
694
+ "name": "animUnitId",
695
+ "type": "string"
696
+ },
697
+ {
698
+ "default": "idle",
699
+ "name": "animState",
700
+ "type": "string"
701
+ },
702
+ {
703
+ "default": 0.0,
704
+ "name": "animTicksLeft",
705
+ "type": "number"
706
+ },
707
+ {
708
+ "default": "",
709
+ "name": "animAttackerId",
710
+ "type": "string"
711
+ },
712
+ {
713
+ "default": 0.0,
714
+ "name": "animAtkTicksLeft",
715
+ "type": "number"
673
716
  }
674
717
  ],
675
718
  "id": "ent_01KXG04VM7YPKBFY12VFNBQ3RS",
@@ -704,6 +747,10 @@
704
747
  {
705
748
  "ref": "PlayerIntent",
706
749
  "refId": "trt_01KXG04VM7WQJEH8FBPFFPNHJV"
750
+ },
751
+ {
752
+ "ref": "AnimClock",
753
+ "refId": "trt_01KYR8XVRJYJJPAW6NZ6NZ7NQ2"
707
754
  }
708
755
  ]
709
756
  }
@@ -894,8 +941,7 @@
894
941
  "linkedEntity": "GameState",
895
942
  "linkedEntityId": "ent_01KXG04VM7YPKBFY12VFNBQ3RS",
896
943
  "name": "TacticsAuthority",
897
- "ref": "Tactics.traits.GridTactics",
898
- "refId": "trt_01KXG04THREP6VTN7SEQ5QND02"
944
+ "ref": "Tactics.traits.GridTactics"
899
945
  },
900
946
  {
901
947
  "config": {
@@ -908,8 +954,7 @@
908
954
  "linkedEntity": "GameState",
909
955
  "linkedEntityId": "ent_01KXG04VM7YPKBFY12VFNBQ3RS",
910
956
  "name": "FxDecay",
911
- "ref": "Particles.traits.FxParticles",
912
- "refId": "trt_01KXG04TFZQZVT3F7J3DTM2PXF"
957
+ "ref": "Particles.traits.FxParticles"
913
958
  },
914
959
  {
915
960
  "config": {
@@ -922,8 +967,7 @@
922
967
  "linkedEntity": "GameState",
923
968
  "linkedEntityId": "ent_01KXG04VM7YPKBFY12VFNBQ3RS",
924
969
  "name": "RoundLogic",
925
- "ref": "Round.traits.RoundFlow",
926
- "refId": "trt_01KXG04TNCJQBQBHH17BMMRPXT"
970
+ "ref": "Round.traits.RoundFlow"
927
971
  },
928
972
  {
929
973
  "config": {
@@ -948,8 +992,20 @@
948
992
  "linkedEntity": "GameState",
949
993
  "linkedEntityId": "ent_01KXG04VM7YPKBFY12VFNBQ3RS",
950
994
  "name": "ScoreKeeper",
951
- "ref": "Score.traits.ScoreKeeper",
952
- "refId": "trt_01KXG04TNS3RZ75H9PBTJ6F5HQ"
995
+ "ref": "Score.traits.ScoreKeeper"
996
+ },
997
+ {
998
+ "config": {
999
+ "frames": {
1000
+ "default": [],
1001
+ "type": "unknown"
1002
+ }
1003
+ },
1004
+ "id": "trt_01KYR8XVRJYJJPAW6NZ6NZ7NQ2",
1005
+ "linkedEntity": "GameState",
1006
+ "linkedEntityId": "ent_01KXG04VM7YPKBFY12VFNBQ3RS",
1007
+ "name": "AnimClock",
1008
+ "ref": "AnimTick.traits.AnimTick"
953
1009
  },
954
1010
  {
955
1011
  "category": "interaction",
@@ -2000,32 +2056,7 @@
2000
2056
  ],
2001
2057
  2.0
2002
2058
  ]
2003
- },
2004
- "zoom": [
2005
- "math/min",
2006
- 1.0,
2007
- [
2008
- "/",
2009
- 5.0,
2010
- [
2011
- "+",
2012
- 1.0,
2013
- [
2014
- "math/max",
2015
- [
2016
- "array/max",
2017
- "@entity.tiles",
2018
- "x"
2019
- ],
2020
- [
2021
- "array/max",
2022
- "@entity.tiles",
2023
- "y"
2024
- ]
2025
- ]
2026
- ]
2027
- ]
2028
- ]
2059
+ }
2029
2060
  },
2030
2061
  "children": [
2031
2062
  {
@@ -2099,7 +2130,7 @@
2099
2130
  ]
2100
2131
  ]
2101
2132
  ],
2102
- "height": 0.5,
2133
+ "height": 1.0,
2103
2134
  "position": {
2104
2135
  "x": [
2105
2136
  "object/get",
@@ -2113,7 +2144,7 @@
2113
2144
  ]
2114
2145
  },
2115
2146
  "type": "draw-sprite",
2116
- "width": 0.5
2147
+ "width": 1.0
2117
2148
  }
2118
2149
  ]
2119
2150
  ],
@@ -2285,52 +2316,200 @@
2285
2316
  [
2286
2317
  "fn",
2287
2318
  "u",
2288
- {
2289
- "anchor": "ground",
2290
- "asset": [
2291
- "if",
2319
+ [
2320
+ "let",
2321
+ [
2292
2322
  [
2293
- "object/get",
2323
+ "unitAsset",
2294
2324
  [
2295
- "object/get",
2296
- "@u",
2297
- "modelUrl"
2298
- ],
2299
- "url"
2300
- ],
2301
- [
2302
- "object/get",
2303
- "@u",
2304
- "modelUrl"
2325
+ "if",
2326
+ [
2327
+ "object/get",
2328
+ [
2329
+ "object/get",
2330
+ "@u",
2331
+ "modelUrl"
2332
+ ],
2333
+ "url"
2334
+ ],
2335
+ [
2336
+ "object/get",
2337
+ "@u",
2338
+ "modelUrl"
2339
+ ],
2340
+ [
2341
+ "object/get",
2342
+ [
2343
+ "object/get",
2344
+ "@config.assetManifest",
2345
+ "units"
2346
+ ],
2347
+ [
2348
+ "object/get",
2349
+ "@u",
2350
+ "unitType"
2351
+ ]
2352
+ ]
2353
+ ]
2305
2354
  ],
2306
2355
  [
2307
- "object/get",
2356
+ "unitUrl",
2308
2357
  [
2309
2358
  "object/get",
2310
- "@config.assetManifest",
2311
- "units"
2312
- ],
2359
+ "@unitAsset",
2360
+ "url"
2361
+ ]
2362
+ ],
2363
+ [
2364
+ "unitAnim",
2313
2365
  [
2314
- "object/get",
2315
- "@u",
2316
- "unitType"
2366
+ "if",
2367
+ [
2368
+ "<=",
2369
+ [
2370
+ "object/get",
2371
+ "@u",
2372
+ "health"
2373
+ ],
2374
+ 0.0
2375
+ ],
2376
+ "death",
2377
+ [
2378
+ "if",
2379
+ [
2380
+ "and",
2381
+ [
2382
+ "==",
2383
+ [
2384
+ "object/get",
2385
+ "@u",
2386
+ "id"
2387
+ ],
2388
+ "@entity.animAttackerId"
2389
+ ],
2390
+ [
2391
+ ">",
2392
+ "@entity.animAtkTicksLeft",
2393
+ 0.0
2394
+ ]
2395
+ ],
2396
+ "attack",
2397
+ [
2398
+ "if",
2399
+ [
2400
+ "==",
2401
+ [
2402
+ "object/get",
2403
+ "@u",
2404
+ "id"
2405
+ ],
2406
+ "@entity.animUnitId"
2407
+ ],
2408
+ "@entity.animState",
2409
+ "idle"
2410
+ ]
2411
+ ]
2317
2412
  ]
2318
2413
  ]
2319
2414
  ],
2320
- "height": 0.5,
2321
- "id": [
2322
- "object/get",
2323
- "@u",
2324
- "id"
2325
- ],
2326
- "position": [
2327
- "object/get",
2328
- "@u",
2329
- "position"
2330
- ],
2331
- "type": "draw-sprite",
2332
- "width": 0.5
2333
- }
2415
+ {
2416
+ "anchor": "ground",
2417
+ "asset": [
2418
+ "if",
2419
+ [
2420
+ "and",
2421
+ "@unitUrl",
2422
+ [
2423
+ "str/includes",
2424
+ "@unitUrl",
2425
+ ".svg"
2426
+ ]
2427
+ ],
2428
+ [
2429
+ "object/merge",
2430
+ "@unitAsset",
2431
+ {
2432
+ "url": [
2433
+ "str/concat",
2434
+ [
2435
+ "array/nth",
2436
+ [
2437
+ "str/split",
2438
+ "@unitUrl",
2439
+ ".svg"
2440
+ ],
2441
+ 0.0
2442
+ ],
2443
+ [
2444
+ "str/concat",
2445
+ ".",
2446
+ [
2447
+ "str/concat",
2448
+ "@unitAnim",
2449
+ [
2450
+ "str/concat",
2451
+ "-",
2452
+ [
2453
+ "str/concat",
2454
+ [
2455
+ "if",
2456
+ [
2457
+ "==",
2458
+ "@unitAnim",
2459
+ "walk"
2460
+ ],
2461
+ [
2462
+ "%",
2463
+ "@entity.animCounter",
2464
+ 2.0
2465
+ ],
2466
+ [
2467
+ "if",
2468
+ [
2469
+ "==",
2470
+ "@unitAnim",
2471
+ "idle"
2472
+ ],
2473
+ [
2474
+ "%",
2475
+ [
2476
+ "math/floor",
2477
+ [
2478
+ "/",
2479
+ "@entity.animCounter",
2480
+ 3.0
2481
+ ]
2482
+ ],
2483
+ 4.0
2484
+ ],
2485
+ 0.0
2486
+ ]
2487
+ ]
2488
+ ],
2489
+ ".svg"
2490
+ ]
2491
+ ]
2492
+ ]
2493
+ ]
2494
+ }
2495
+ ],
2496
+ "@unitAsset"
2497
+ ],
2498
+ "height": 0.5,
2499
+ "id": [
2500
+ "object/get",
2501
+ "@u",
2502
+ "id"
2503
+ ],
2504
+ "position": [
2505
+ "object/get",
2506
+ "@u",
2507
+ "position"
2508
+ ],
2509
+ "type": "draw-sprite",
2510
+ "width": 0.5
2511
+ }
2512
+ ]
2334
2513
  ]
2335
2514
  ],
2336
2515
  [
@@ -2461,7 +2640,7 @@
2461
2640
  "y": [
2462
2641
  "object/get",
2463
2642
  "@f",
2464
- "y"
2643
+ "z"
2465
2644
  ]
2466
2645
  },
2467
2646
  "text": [
@@ -2474,8 +2653,231 @@
2474
2653
  ]
2475
2654
  ],
2476
2655
  "type": "draw-text-layer"
2656
+ },
2657
+ {
2658
+ "items": [
2659
+ "array/filter",
2660
+ [
2661
+ "array/map",
2662
+ "@entity.fx",
2663
+ [
2664
+ "fn",
2665
+ "f",
2666
+ {
2667
+ "anchor": "center",
2668
+ "asset": [
2669
+ "object/get",
2670
+ [
2671
+ "object/get",
2672
+ "@config.assetManifest",
2673
+ "effects"
2674
+ ],
2675
+ [
2676
+ "object/get",
2677
+ "@f",
2678
+ "type"
2679
+ ]
2680
+ ],
2681
+ "height": 0.6,
2682
+ "position": {
2683
+ "x": [
2684
+ "object/get",
2685
+ "@f",
2686
+ "x"
2687
+ ],
2688
+ "y": [
2689
+ "object/get",
2690
+ "@f",
2691
+ "z"
2692
+ ]
2693
+ },
2694
+ "type": "draw-sprite",
2695
+ "width": 0.6
2696
+ }
2697
+ ]
2698
+ ],
2699
+ [
2700
+ "fn",
2701
+ "s",
2702
+ [
2703
+ "object/get",
2704
+ [
2705
+ "object/get",
2706
+ "@s",
2707
+ "asset"
2708
+ ],
2709
+ "url"
2710
+ ]
2711
+ ]
2712
+ ],
2713
+ "type": "draw-sprite-layer"
2714
+ },
2715
+ {
2716
+ "items": [
2717
+ "array/map",
2718
+ [
2719
+ "array/filter",
2720
+ [
2721
+ "array/flatten",
2722
+ [
2723
+ "array/map",
2724
+ "@entity.units",
2725
+ [
2726
+ "fn",
2727
+ "u",
2728
+ [
2729
+ "array/flatten",
2730
+ [
2731
+ "array/map",
2732
+ [
2733
+ [
2734
+ "idle",
2735
+ 4.0
2736
+ ],
2737
+ [
2738
+ "walk",
2739
+ 2.0
2740
+ ],
2741
+ [
2742
+ "attack",
2743
+ 1.0
2744
+ ],
2745
+ [
2746
+ "hit",
2747
+ 1.0
2748
+ ],
2749
+ [
2750
+ "death",
2751
+ 1.0
2752
+ ]
2753
+ ],
2754
+ [
2755
+ "fn",
2756
+ "st",
2757
+ [
2758
+ "array/map",
2759
+ [
2760
+ "array/range",
2761
+ 0.0,
2762
+ [
2763
+ "array/nth",
2764
+ "@st",
2765
+ 1.0
2766
+ ]
2767
+ ],
2768
+ [
2769
+ "fn",
2770
+ "i",
2771
+ [
2772
+ "if",
2773
+ [
2774
+ "and",
2775
+ [
2776
+ "object/get",
2777
+ [
2778
+ "object/get",
2779
+ "@u",
2780
+ "modelUrl"
2781
+ ],
2782
+ "url"
2783
+ ],
2784
+ [
2785
+ "str/includes",
2786
+ [
2787
+ "object/get",
2788
+ [
2789
+ "object/get",
2790
+ "@u",
2791
+ "modelUrl"
2792
+ ],
2793
+ "url"
2794
+ ],
2795
+ ".svg"
2796
+ ]
2797
+ ],
2798
+ [
2799
+ "str/concat",
2800
+ [
2801
+ "array/nth",
2802
+ [
2803
+ "str/split",
2804
+ [
2805
+ "object/get",
2806
+ [
2807
+ "object/get",
2808
+ "@u",
2809
+ "modelUrl"
2810
+ ],
2811
+ "url"
2812
+ ],
2813
+ ".svg"
2814
+ ],
2815
+ 0.0
2816
+ ],
2817
+ [
2818
+ "str/concat",
2819
+ ".",
2820
+ [
2821
+ "str/concat",
2822
+ [
2823
+ "array/nth",
2824
+ "@st",
2825
+ 0.0
2826
+ ],
2827
+ [
2828
+ "str/concat",
2829
+ "-",
2830
+ [
2831
+ "str/concat",
2832
+ "@i",
2833
+ ".svg"
2834
+ ]
2835
+ ]
2836
+ ]
2837
+ ]
2838
+ ],
2839
+ ""
2840
+ ]
2841
+ ]
2842
+ ]
2843
+ ]
2844
+ ]
2845
+ ]
2846
+ ]
2847
+ ]
2848
+ ],
2849
+ [
2850
+ "fn",
2851
+ "w",
2852
+ [
2853
+ "!=",
2854
+ "@w",
2855
+ ""
2856
+ ]
2857
+ ]
2858
+ ],
2859
+ [
2860
+ "fn",
2861
+ "warmUrl",
2862
+ {
2863
+ "asset": {
2864
+ "url": "@warmUrl"
2865
+ },
2866
+ "height": 0.5,
2867
+ "opacity": 0.0,
2868
+ "position": {
2869
+ "x": 0.0,
2870
+ "y": 0.0
2871
+ },
2872
+ "type": "draw-sprite",
2873
+ "width": 0.5
2874
+ }
2875
+ ]
2876
+ ],
2877
+ "type": "draw-sprite-layer"
2477
2878
  }
2478
2879
  ],
2880
+ "fit": true,
2479
2881
  "projection": "@config.projection",
2480
2882
  "showMinimap": "@config.showMinimap",
2481
2883
  "tileClickEvent": "TILE_CLICK",
@@ -2527,6 +2929,16 @@
2527
2929
  "targetId": "@payload.unitId"
2528
2930
  }
2529
2931
  ],
2932
+ [
2933
+ "set",
2934
+ "@entity.animAttackerId",
2935
+ "@entity.selectedUnitId"
2936
+ ],
2937
+ [
2938
+ "set",
2939
+ "@entity.animAtkTicksLeft",
2940
+ 4.0
2941
+ ],
2530
2942
  [
2531
2943
  "set",
2532
2944
  "@entity.selectedUnitId",
@@ -3057,12 +3469,136 @@
3057
3469
  "none"
3058
3470
  ],
3059
3471
  "to": "playing"
3472
+ },
3473
+ {
3474
+ "effects": [
3475
+ [
3476
+ "set",
3477
+ "@entity.animUnitId",
3478
+ "@payload.unitId"
3479
+ ],
3480
+ [
3481
+ "set",
3482
+ "@entity.animState",
3483
+ "walk"
3484
+ ],
3485
+ [
3486
+ "set",
3487
+ "@entity.animTicksLeft",
3488
+ 6.0
3489
+ ]
3490
+ ],
3491
+ "event": "MOVE",
3492
+ "eventId": "evt_01KXG04VM7QR10W55SPK4ZM75N",
3493
+ "from": "playing",
3494
+ "to": "playing"
3495
+ },
3496
+ {
3497
+ "effects": [
3498
+ [
3499
+ "set",
3500
+ "@entity.animUnitId",
3501
+ "@payload.targetId"
3502
+ ],
3503
+ [
3504
+ "set",
3505
+ "@entity.animState",
3506
+ "hit"
3507
+ ],
3508
+ [
3509
+ "set",
3510
+ "@entity.animTicksLeft",
3511
+ 4.0
3512
+ ]
3513
+ ],
3514
+ "event": "ATTACK",
3515
+ "eventId": "evt_01KXG04VM7FZRR6X4JFY78K7PC",
3516
+ "from": "playing",
3517
+ "to": "playing"
3060
3518
  }
3061
3519
  ]
3062
3520
  },
3063
3521
  "ticks": [
3064
3522
  {
3065
3523
  "effects": [
3524
+ [
3525
+ "set",
3526
+ "@entity.animTicksLeft",
3527
+ [
3528
+ "if",
3529
+ [
3530
+ ">",
3531
+ "@entity.animTicksLeft",
3532
+ 0.0
3533
+ ],
3534
+ [
3535
+ "-",
3536
+ "@entity.animTicksLeft",
3537
+ 1.0
3538
+ ],
3539
+ 0.0
3540
+ ]
3541
+ ],
3542
+ [
3543
+ "set",
3544
+ "@entity.animAtkTicksLeft",
3545
+ [
3546
+ "if",
3547
+ [
3548
+ ">",
3549
+ "@entity.animAtkTicksLeft",
3550
+ 0.0
3551
+ ],
3552
+ [
3553
+ "-",
3554
+ "@entity.animAtkTicksLeft",
3555
+ 1.0
3556
+ ],
3557
+ 0.0
3558
+ ]
3559
+ ],
3560
+ [
3561
+ "set",
3562
+ "@entity.animState",
3563
+ [
3564
+ "if",
3565
+ [
3566
+ "==",
3567
+ "@entity.animTicksLeft",
3568
+ 0.0
3569
+ ],
3570
+ "idle",
3571
+ "@entity.animState"
3572
+ ]
3573
+ ],
3574
+ [
3575
+ "set",
3576
+ "@entity.animUnitId",
3577
+ [
3578
+ "if",
3579
+ [
3580
+ "==",
3581
+ "@entity.animTicksLeft",
3582
+ 0.0
3583
+ ],
3584
+ "",
3585
+ "@entity.animUnitId"
3586
+ ]
3587
+ ],
3588
+ [
3589
+ "set",
3590
+ "@entity.animAttackerId",
3591
+ [
3592
+ "if",
3593
+ [
3594
+ "==",
3595
+ "@entity.animAtkTicksLeft",
3596
+ 0.0
3597
+ ],
3598
+ "",
3599
+ "@entity.animAttackerId"
3600
+ ]
3601
+ ],
3066
3602
  [
3067
3603
  "render-ui",
3068
3604
  "main",
@@ -3129,32 +3665,7 @@
3129
3665
  ],
3130
3666
  2.0
3131
3667
  ]
3132
- },
3133
- "zoom": [
3134
- "math/min",
3135
- 1.0,
3136
- [
3137
- "/",
3138
- 5.0,
3139
- [
3140
- "+",
3141
- 1.0,
3142
- [
3143
- "math/max",
3144
- [
3145
- "array/max",
3146
- "@entity.tiles",
3147
- "x"
3148
- ],
3149
- [
3150
- "array/max",
3151
- "@entity.tiles",
3152
- "y"
3153
- ]
3154
- ]
3155
- ]
3156
- ]
3157
- ]
3668
+ }
3158
3669
  },
3159
3670
  "children": [
3160
3671
  {
@@ -3228,7 +3739,7 @@
3228
3739
  ]
3229
3740
  ]
3230
3741
  ],
3231
- "height": 0.5,
3742
+ "height": 1.0,
3232
3743
  "position": {
3233
3744
  "x": [
3234
3745
  "object/get",
@@ -3242,7 +3753,7 @@
3242
3753
  ]
3243
3754
  },
3244
3755
  "type": "draw-sprite",
3245
- "width": 0.5
3756
+ "width": 1.0
3246
3757
  }
3247
3758
  ]
3248
3759
  ],
@@ -3414,52 +3925,200 @@
3414
3925
  [
3415
3926
  "fn",
3416
3927
  "u",
3417
- {
3418
- "anchor": "ground",
3419
- "asset": [
3420
- "if",
3928
+ [
3929
+ "let",
3930
+ [
3421
3931
  [
3422
- "object/get",
3932
+ "unitAsset",
3423
3933
  [
3424
- "object/get",
3425
- "@u",
3426
- "modelUrl"
3427
- ],
3428
- "url"
3429
- ],
3430
- [
3431
- "object/get",
3432
- "@u",
3433
- "modelUrl"
3934
+ "if",
3935
+ [
3936
+ "object/get",
3937
+ [
3938
+ "object/get",
3939
+ "@u",
3940
+ "modelUrl"
3941
+ ],
3942
+ "url"
3943
+ ],
3944
+ [
3945
+ "object/get",
3946
+ "@u",
3947
+ "modelUrl"
3948
+ ],
3949
+ [
3950
+ "object/get",
3951
+ [
3952
+ "object/get",
3953
+ "@config.assetManifest",
3954
+ "units"
3955
+ ],
3956
+ [
3957
+ "object/get",
3958
+ "@u",
3959
+ "unitType"
3960
+ ]
3961
+ ]
3962
+ ]
3434
3963
  ],
3435
3964
  [
3436
- "object/get",
3965
+ "unitUrl",
3437
3966
  [
3438
3967
  "object/get",
3439
- "@config.assetManifest",
3440
- "units"
3441
- ],
3968
+ "@unitAsset",
3969
+ "url"
3970
+ ]
3971
+ ],
3972
+ [
3973
+ "unitAnim",
3442
3974
  [
3443
- "object/get",
3444
- "@u",
3445
- "unitType"
3975
+ "if",
3976
+ [
3977
+ "<=",
3978
+ [
3979
+ "object/get",
3980
+ "@u",
3981
+ "health"
3982
+ ],
3983
+ 0.0
3984
+ ],
3985
+ "death",
3986
+ [
3987
+ "if",
3988
+ [
3989
+ "and",
3990
+ [
3991
+ "==",
3992
+ [
3993
+ "object/get",
3994
+ "@u",
3995
+ "id"
3996
+ ],
3997
+ "@entity.animAttackerId"
3998
+ ],
3999
+ [
4000
+ ">",
4001
+ "@entity.animAtkTicksLeft",
4002
+ 0.0
4003
+ ]
4004
+ ],
4005
+ "attack",
4006
+ [
4007
+ "if",
4008
+ [
4009
+ "==",
4010
+ [
4011
+ "object/get",
4012
+ "@u",
4013
+ "id"
4014
+ ],
4015
+ "@entity.animUnitId"
4016
+ ],
4017
+ "@entity.animState",
4018
+ "idle"
4019
+ ]
4020
+ ]
3446
4021
  ]
3447
4022
  ]
3448
4023
  ],
3449
- "height": 0.5,
3450
- "id": [
3451
- "object/get",
3452
- "@u",
3453
- "id"
3454
- ],
3455
- "position": [
3456
- "object/get",
3457
- "@u",
3458
- "position"
3459
- ],
3460
- "type": "draw-sprite",
3461
- "width": 0.5
3462
- }
4024
+ {
4025
+ "anchor": "ground",
4026
+ "asset": [
4027
+ "if",
4028
+ [
4029
+ "and",
4030
+ "@unitUrl",
4031
+ [
4032
+ "str/includes",
4033
+ "@unitUrl",
4034
+ ".svg"
4035
+ ]
4036
+ ],
4037
+ [
4038
+ "object/merge",
4039
+ "@unitAsset",
4040
+ {
4041
+ "url": [
4042
+ "str/concat",
4043
+ [
4044
+ "array/nth",
4045
+ [
4046
+ "str/split",
4047
+ "@unitUrl",
4048
+ ".svg"
4049
+ ],
4050
+ 0.0
4051
+ ],
4052
+ [
4053
+ "str/concat",
4054
+ ".",
4055
+ [
4056
+ "str/concat",
4057
+ "@unitAnim",
4058
+ [
4059
+ "str/concat",
4060
+ "-",
4061
+ [
4062
+ "str/concat",
4063
+ [
4064
+ "if",
4065
+ [
4066
+ "==",
4067
+ "@unitAnim",
4068
+ "walk"
4069
+ ],
4070
+ [
4071
+ "%",
4072
+ "@entity.animCounter",
4073
+ 2.0
4074
+ ],
4075
+ [
4076
+ "if",
4077
+ [
4078
+ "==",
4079
+ "@unitAnim",
4080
+ "idle"
4081
+ ],
4082
+ [
4083
+ "%",
4084
+ [
4085
+ "math/floor",
4086
+ [
4087
+ "/",
4088
+ "@entity.animCounter",
4089
+ 3.0
4090
+ ]
4091
+ ],
4092
+ 4.0
4093
+ ],
4094
+ 0.0
4095
+ ]
4096
+ ]
4097
+ ],
4098
+ ".svg"
4099
+ ]
4100
+ ]
4101
+ ]
4102
+ ]
4103
+ }
4104
+ ],
4105
+ "@unitAsset"
4106
+ ],
4107
+ "height": 0.5,
4108
+ "id": [
4109
+ "object/get",
4110
+ "@u",
4111
+ "id"
4112
+ ],
4113
+ "position": [
4114
+ "object/get",
4115
+ "@u",
4116
+ "position"
4117
+ ],
4118
+ "type": "draw-sprite",
4119
+ "width": 0.5
4120
+ }
4121
+ ]
3463
4122
  ]
3464
4123
  ],
3465
4124
  [
@@ -3590,7 +4249,7 @@
3590
4249
  "y": [
3591
4250
  "object/get",
3592
4251
  "@f",
3593
- "y"
4252
+ "z"
3594
4253
  ]
3595
4254
  },
3596
4255
  "text": [
@@ -3603,8 +4262,67 @@
3603
4262
  ]
3604
4263
  ],
3605
4264
  "type": "draw-text-layer"
4265
+ },
4266
+ {
4267
+ "items": [
4268
+ "array/filter",
4269
+ [
4270
+ "array/map",
4271
+ "@entity.fx",
4272
+ [
4273
+ "fn",
4274
+ "f",
4275
+ {
4276
+ "anchor": "center",
4277
+ "asset": [
4278
+ "object/get",
4279
+ [
4280
+ "object/get",
4281
+ "@config.assetManifest",
4282
+ "effects"
4283
+ ],
4284
+ [
4285
+ "object/get",
4286
+ "@f",
4287
+ "type"
4288
+ ]
4289
+ ],
4290
+ "height": 0.6,
4291
+ "position": {
4292
+ "x": [
4293
+ "object/get",
4294
+ "@f",
4295
+ "x"
4296
+ ],
4297
+ "y": [
4298
+ "object/get",
4299
+ "@f",
4300
+ "z"
4301
+ ]
4302
+ },
4303
+ "type": "draw-sprite",
4304
+ "width": 0.6
4305
+ }
4306
+ ]
4307
+ ],
4308
+ [
4309
+ "fn",
4310
+ "s",
4311
+ [
4312
+ "object/get",
4313
+ [
4314
+ "object/get",
4315
+ "@s",
4316
+ "asset"
4317
+ ],
4318
+ "url"
4319
+ ]
4320
+ ]
4321
+ ],
4322
+ "type": "draw-sprite-layer"
3606
4323
  }
3607
4324
  ],
4325
+ "fit": true,
3608
4326
  "projection": "@config.projection",
3609
4327
  "showMinimap": "@config.showMinimap",
3610
4328
  "tileClickEvent": "TILE_CLICK",
@@ -3664,6 +4382,10 @@
3664
4382
  {
3665
4383
  "as": "Score",
3666
4384
  "from": "std/behaviors/std-score"
4385
+ },
4386
+ {
4387
+ "as": "AnimTick",
4388
+ "from": "std/behaviors/std-anim-tick"
3667
4389
  }
3668
4390
  ]
3669
4391
  }