@almadar/std 16.210.0 → 16.211.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 (111) hide show
  1. package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +2 -2
  2. package/behaviors/lolo/infra/atoms/std-calendar-sync.lolo +5 -5
  3. package/behaviors/lolo/infra/atoms/std-cascade-on-delete.lolo +7 -1
  4. package/behaviors/lolo/infra/atoms/std-circuit-breaker.lolo +3 -3
  5. package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +1 -0
  6. package/behaviors/lolo/ui/core/atoms/std-browse.lolo +4 -0
  7. package/behaviors/lolo/ui/core/atoms/std-confirmation.lolo +2 -0
  8. package/behaviors/lolo/ui/core/atoms/std-esign-request.lolo +2 -2
  9. package/behaviors/lolo/ui/core/atoms/std-graphs.lolo +1 -1
  10. package/behaviors/lolo/ui/core/atoms/std-modal.lolo +3 -1
  11. package/behaviors/lolo/ui/core/atoms/std-stats.lolo +1 -1
  12. package/behaviors/lolo/ui/core/atoms/std-step-flow.lolo +4 -3
  13. package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +1 -4
  14. package/behaviors/lolo/ui/core/atoms/std-thread.lolo +33 -30
  15. package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +1 -1
  16. package/behaviors/lolo/ui/core/atoms/ui-radio.lolo +1 -1
  17. package/behaviors/lolo/ui/core/atoms/ui-range-slider.lolo +1 -1
  18. package/behaviors/lolo/ui/core/atoms/ui-switch.lolo +1 -1
  19. package/behaviors/lolo/ui/core/atoms/ui-text-highlight.lolo +1 -1
  20. package/behaviors/lolo/ui/core/atoms/ui-time-slot-cell.lolo +1 -1
  21. package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +2 -2
  22. package/behaviors/lolo/ui/core/molecules/ui-command-palette.lolo +1 -1
  23. package/behaviors/lolo/ui/core/molecules/ui-date-range-picker.lolo +2 -2
  24. package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +2 -2
  25. package/behaviors/lolo/ui/core/molecules/ui-filter-group.lolo +1 -1
  26. package/behaviors/lolo/ui/core/molecules/ui-number-stepper.lolo +1 -1
  27. package/behaviors/lolo/ui/core/molecules/ui-pagination.lolo +1 -1
  28. package/behaviors/lolo/ui/core/molecules/ui-popover.lolo +1 -1
  29. package/behaviors/lolo/ui/core/molecules/ui-relation-select.lolo +1 -1
  30. package/behaviors/lolo/ui/core/molecules/ui-rich-text-editor.lolo +1 -1
  31. package/behaviors/lolo/ui/core/molecules/ui-search-input.lolo +1 -1
  32. package/behaviors/lolo/ui/core/molecules/ui-sidebar.lolo +1 -1
  33. package/behaviors/lolo/ui/core/molecules/ui-star-rating.lolo +1 -1
  34. package/behaviors/lolo/ui/core/molecules/ui-wizard-navigation.lolo +2 -2
  35. package/behaviors/lolo/ui/core/organisms/ui-split-pane.lolo +1 -1
  36. package/behaviors/lolo/ui/game/atoms/ui-draw-skinned-mesh.lolo +126 -0
  37. package/behaviors/lolo/ui/game/atoms/ui-trait-slot.lolo +1 -1
  38. package/behaviors/lolo/ui/game/organisms/std-arcade-board-3d.lolo +10 -10
  39. package/behaviors/lolo/ui/game/organisms/std-crew-board-2d.lolo +10 -10
  40. package/behaviors/lolo/ui/game/organisms/std-dungeon-board-2d.lolo +36 -36
  41. package/behaviors/lolo/ui/game/organisms/std-market-board-3d.lolo +36 -36
  42. package/behaviors/lolo/ui/game/organisms/std-objective-board-3d.lolo +34 -34
  43. package/behaviors/lolo/ui/game/organisms/std-survival-board-3d.lolo +10 -10
  44. package/behaviors/lolo/ui/game/organisms/std-tactics-board-2d.lolo +12 -12
  45. package/behaviors/lolo/ui/game/organisms/std-tactics-board-3d.lolo +12 -12
  46. package/behaviors/lolo/ui/game/organisms/std-worldmap-board-2d.lolo +20 -20
  47. package/behaviors/registry/infra/atoms/std-approval-gate.orb +20 -9
  48. package/behaviors/registry/infra/atoms/std-calendar-sync.orb +5 -0
  49. package/behaviors/registry/infra/atoms/std-cascade-on-delete.orb +28 -0
  50. package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +3 -0
  51. package/behaviors/registry/infra/atoms/std-notification-center.orb +56 -24
  52. package/behaviors/registry/infra/atoms/std-notify-on-event.orb +12 -6
  53. package/behaviors/registry/ui/core/atoms/std-app-layout.orb +20 -0
  54. package/behaviors/registry/ui/core/atoms/std-browse.orb +26 -0
  55. package/behaviors/registry/ui/core/atoms/std-confirmation.orb +44 -18
  56. package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +44 -18
  57. package/behaviors/registry/ui/core/atoms/std-esign-request.orb +19 -8
  58. package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +20 -9
  59. package/behaviors/registry/ui/core/atoms/std-graphs.orb +1 -0
  60. package/behaviors/registry/ui/core/atoms/std-modal.orb +52 -24
  61. package/behaviors/registry/ui/core/atoms/std-stats.orb +1 -0
  62. package/behaviors/registry/ui/core/atoms/std-step-flow.orb +0 -3
  63. package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +2 -9
  64. package/behaviors/registry/ui/core/atoms/std-thread.orb +134 -40
  65. package/behaviors/registry/ui/core/atoms/std-version-history.orb +1 -0
  66. package/behaviors/registry/ui/core/atoms/ui-radio.orb +1 -0
  67. package/behaviors/registry/ui/core/atoms/ui-range-slider.orb +1 -0
  68. package/behaviors/registry/ui/core/atoms/ui-switch.orb +1 -0
  69. package/behaviors/registry/ui/core/atoms/ui-text-highlight.orb +1 -0
  70. package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +1 -0
  71. package/behaviors/registry/ui/core/molecules/ui-code-block.orb +2 -0
  72. package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +1 -0
  73. package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +2 -0
  74. package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +2 -0
  75. package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +1 -0
  76. package/behaviors/registry/ui/core/molecules/ui-number-stepper.orb +1 -0
  77. package/behaviors/registry/ui/core/molecules/ui-pagination.orb +1 -0
  78. package/behaviors/registry/ui/core/molecules/ui-popover.orb +1 -0
  79. package/behaviors/registry/ui/core/molecules/ui-relation-select.orb +1 -0
  80. package/behaviors/registry/ui/core/molecules/ui-rich-text-editor.orb +1 -0
  81. package/behaviors/registry/ui/core/molecules/ui-search-input.orb +1 -0
  82. package/behaviors/registry/ui/core/molecules/ui-sidebar.orb +1 -0
  83. package/behaviors/registry/ui/core/molecules/ui-star-rating.orb +1 -0
  84. package/behaviors/registry/ui/core/molecules/ui-wizard-navigation.orb +2 -0
  85. package/behaviors/registry/ui/core/organisms/ui-split-pane.orb +1 -0
  86. package/behaviors/registry/ui/game/atoms/ui-draw-skinned-mesh.orb +687 -0
  87. package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +1 -0
  88. package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +10 -30
  89. package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +10 -30
  90. package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +36 -108
  91. package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +36 -108
  92. package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +34 -102
  93. package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +10 -30
  94. package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +12 -36
  95. package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +12 -36
  96. package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +20 -60
  97. package/dist/behaviors/exports-reader.js +2147 -2212
  98. package/dist/behaviors/functions/index.d.ts +111 -34
  99. package/dist/behaviors/functions/index.js +2145 -2211
  100. package/dist/behaviors/index.d.ts +1 -1
  101. package/dist/behaviors/index.js +2148 -2213
  102. package/dist/behaviors/query.js +2147 -2212
  103. package/dist/behaviors-embeddings.hash.json +3 -3
  104. package/dist/behaviors-embeddings.json +11 -7
  105. package/dist/behaviors-registry.json +1765 -1031
  106. package/dist/index.d.ts +1 -1
  107. package/dist/index.js +2148 -2213
  108. package/dist/knob-embeddings.hash.json +3 -3
  109. package/dist/knob-embeddings.json +1 -1
  110. package/dist/registry/factory-signatures.json +1 -1
  111. package/package.json +2 -2
@@ -0,0 +1,126 @@
1
+ app ui-draw-skinned-mesh "1.0.0"
2
+ "DrawSkinnedMesh — UI factory (1:1 with the @almadar/ui draw-skinned-mesh pattern)."
3
+ orbital DrawSkinnedMeshOrbital {
4
+ type DrawSkinnedMeshPosition = {
5
+ x : number!
6
+ y : number!
7
+ z : number
8
+ }
9
+ type DrawSkinnedMeshAsset = {
10
+ url : asset!
11
+ role : string!
12
+ category : string!
13
+ animations : [string]
14
+ style : "pixel" | "vector" | "hd" | "1-bit" | "isometric"
15
+ variant : string
16
+ dimension : "2d" | "3d"
17
+ aspect : "1:1" | "16:9" | "5:7" | "8:1"
18
+ atlas : asset
19
+ sprite : string
20
+ name : string
21
+ thumbnailUrl : string
22
+ }
23
+ type DrawSkinnedMeshMesh = {
24
+ vertices : [DrawSkinnedMeshMeshVerticesItem]!
25
+ triangles : [[number]]!
26
+ }
27
+ type DrawSkinnedMeshMeshVerticesItem = {
28
+ x : number!
29
+ y : number!
30
+ u : number!
31
+ v : number!
32
+ weights : [DrawSkinnedMeshMeshVerticesItemWeightsItem]!
33
+ }
34
+ type DrawSkinnedMeshMeshVerticesItemWeightsItem = {
35
+ bone : number!
36
+ w : number!
37
+ }
38
+ type DrawSkinnedMeshBonesItem = {
39
+ name : string!
40
+ parent : string!
41
+ pivot : [number]!
42
+ tip : [number]!
43
+ }
44
+ type DrawSkinnedMeshClip = {
45
+ frames : [Map string number]!
46
+ }
47
+ type DrawSkinnedMeshGhost = {
48
+ frame : number!
49
+ opacity : number!
50
+ }
51
+
52
+ entity DrawSkinnedMeshItem [runtime] {
53
+ id : string!
54
+ }
55
+
56
+ trait DrawSkinnedMeshRender -> @rebindable DrawSkinnedMeshItem [interaction, instance] {
57
+ initial: idle
58
+
59
+ state idle {
60
+ INIT -> idle
61
+ (render-ui main {
62
+ position: @config.position
63
+ asset: @config.asset
64
+ mesh: @config.mesh
65
+ meshUrl: @config.meshUrl
66
+ bones: @config.bones
67
+ pose: @config.pose
68
+ clip: @config.clip
69
+ frame: @config.frame
70
+ opacity: @config.opacity
71
+ weightsOverlay: @config.weightsOverlay
72
+ ghost: @config.ghost
73
+ type: draw-skinned-mesh
74
+ })
75
+ }
76
+
77
+ config {
78
+ position : DrawSkinnedMeshPosition = { x: 1, y: 1, z: 1 }
79
+ @label "Position"
80
+ @description "Logical scene position; mesh local coords are world units relative to its projected top-left."
81
+ @tier "presentation"
82
+ asset : DrawSkinnedMeshAsset
83
+ @label "Asset"
84
+ @description "The texture the mesh UVs cut into."
85
+ @tier "presentation"
86
+ mesh : DrawSkinnedMeshMesh
87
+ @label "Mesh"
88
+ @description "Inline bind mesh; wins over `meshUrl`."
89
+ @tier "presentation"
90
+ meshUrl : string
91
+ @label "Mesh Url"
92
+ @description "URL of a JSON `SkinMesh` (fetched + cached); used when `mesh` is absent."
93
+ @tier "presentation"
94
+ bones : [DrawSkinnedMeshBonesItem] = [{ name: "Name", parent: "Parent", pivot: [1, 2], tip: [1, 2] }, { name: "Name 2", parent: "Parent 2", pivot: [1, 2], tip: [1, 2] }]
95
+ @label "Bones"
96
+ @description "The skeleton (bind pose; FK chain via `parent` names)."
97
+ @tier "presentation"
98
+ pose : Map string number = { item: 1 }
99
+ @label "Pose"
100
+ @description "Static pose (bone name → degrees relative to bind). Overridden by `clip` + `frame`."
101
+ @tier "presentation"
102
+ clip : DrawSkinnedMeshClip
103
+ @label "Clip"
104
+ @description "Pose animation clip; with `frame`, pose = `frames[frame % frames.length]`."
105
+ @tier "presentation"
106
+ frame : number
107
+ @label "Frame"
108
+ @description "Clip frame counter (host-driven paint clock frame)."
109
+ @tier "presentation"
110
+ opacity : number
111
+ @label "Opacity"
112
+ @description "0..1 opacity."
113
+ @tier "presentation"
114
+ weightsOverlay : boolean
115
+ @label "Weights Overlay"
116
+ @description "Paint per-triangle dominant-bone colors instead of the texture (rig inspection)."
117
+ @tier "presentation"
118
+ ghost : DrawSkinnedMeshGhost
119
+ @label "Ghost"
120
+ @description "Onion skin: render the mesh at this clip frame underneath, at this opacity."
121
+ @tier "presentation"
122
+ }
123
+ }
124
+
125
+ page "/draw-skinned-mesh" as DrawSkinnedMeshPage -> DrawSkinnedMeshRender
126
+ }
@@ -136,7 +136,7 @@ orbital TraitSlotOrbital {
136
136
 
137
137
  entity TraitSlotItem [runtime] {
138
138
  id : string!
139
- slotNumber : number = 1
139
+ slotNumber : number @intrinsic = 1
140
140
  }
141
141
 
142
142
  trait TraitSlotRender -> @rebindable TraitSlotItem [interaction, instance] {
@@ -104,13 +104,13 @@ orbital ArcadeBoard3DFrameOrbital {
104
104
  entity GameState [runtime, shared] {
105
105
  id : string!
106
106
  units : [Unit] = [
107
- { id: "hero", position: { x: 1, y: 1 }, x: 1, y: 1, z: 0, team: "player", health: 1, maxHealth: 1, unitType: "hero", name: "Hero", modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.json", sprite: "blue_body_square.png", role: "player", category: "unit", animations: ["idle"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "player-unit", thumbnailUrl: "" } }
107
+ { id: "hero", position: { x: 1, y: 1 }, x: 1, y: 1, z: 0, team: "player", health: 1, maxHealth: 1, unitType: "hero", name: "Hero", modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png", role: "player", category: "unit", animations: ["idle"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "player-unit", thumbnailUrl: "" } }
108
108
  ]
109
109
  tiles : [Tile] = [
110
- { id: "t-0-0", x: 0, y: 0, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
111
- { id: "t-0-1", x: 0, y: 1, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
112
- { id: "t-1-0", x: 1, y: 0, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
113
- { id: "t-1-1", x: 1, y: 1, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } }
110
+ { id: "t-0-0", x: 0, y: 0, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
111
+ { id: "t-0-1", x: 0, y: 1, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
112
+ { id: "t-1-0", x: 1, y: 0, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
113
+ { id: "t-1-1", x: 1, y: 1, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } }
114
114
  ]
115
115
  movesLeft : number = 0
116
116
  features : [Feature] = []
@@ -133,13 +133,13 @@ orbital ArcadeBoard3DFrameOrbital {
133
133
  gridHeight: 2
134
134
  moveBudget: 9999
135
135
  units: [
136
- { id: "hero", position: { x: 1, y: 1 }, x: 1, y: 1, z: 0, team: "player", health: 1, maxHealth: 1, unitType: "hero", name: "Hero", modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.json", sprite: "blue_body_square.png", role: "player", category: "unit", animations: ["idle"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "player-unit", thumbnailUrl: "" } }
136
+ { id: "hero", position: { x: 1, y: 1 }, x: 1, y: 1, z: 0, team: "player", health: 1, maxHealth: 1, unitType: "hero", name: "Hero", modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png", role: "player", category: "unit", animations: ["idle"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "player-unit", thumbnailUrl: "" } }
137
137
  ]
138
138
  tiles: [
139
- { id: "t-0-0", x: 0, y: 0, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
140
- { id: "t-0-1", x: 0, y: 1, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
141
- { id: "t-1-0", x: 1, y: 0, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
142
- { id: "t-1-1", x: 1, y: 1, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } }
139
+ { id: "t-0-0", x: 0, y: 0, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
140
+ { id: "t-0-1", x: 0, y: 1, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
141
+ { id: "t-1-0", x: 1, y: 0, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
142
+ { id: "t-1-1", x: 1, y: 1, z: 0, terrain: "grass", passable: true, modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } }
143
143
  ]
144
144
  }
145
145
  }
@@ -96,13 +96,13 @@ orbital CrewBoard2DOrbital {
96
96
  entity GameState [runtime, shared] {
97
97
  id : string!
98
98
  units : [Unit] = [
99
- { id: "c1", position: { x: 1, y: 1 }, x: 1, y: 1, z: 0, team: "player", health: 10, maxHealth: 10, unitType: "crew", name: "Crew", modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.json", sprite: "blue_body_square.png", role: "player", category: "unit", animations: ["idle"], style: "vector", dimension: "2d", aspect: "1:1", name: "crew-unit", thumbnailUrl: "" } }
99
+ { id: "c1", position: { x: 1, y: 1 }, x: 1, y: 1, z: 0, team: "player", health: 10, maxHealth: 10, unitType: "crew", name: "Crew", modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png", role: "player", category: "unit", animations: ["idle"], style: "vector", dimension: "2d", aspect: "1:1", name: "crew-unit", thumbnailUrl: "" } }
100
100
  ]
101
101
  tiles : [Tile] = [
102
- { id: "t-0-0", x: 0, y: 0, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
103
- { id: "t-0-1", x: 0, y: 1, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
104
- { id: "t-1-0", x: 1, y: 0, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
105
- { id: "t-1-1", x: 1, y: 1, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } }
102
+ { id: "t-0-0", x: 0, y: 0, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
103
+ { id: "t-0-1", x: 0, y: 1, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
104
+ { id: "t-1-0", x: 1, y: 0, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
105
+ { id: "t-1-1", x: 1, y: 1, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } }
106
106
  ]
107
107
  movesLeft : number = 0
108
108
  fx : [Fx] = []
@@ -124,12 +124,12 @@ orbital CrewBoard2DOrbital {
124
124
  gridWidth: 7
125
125
  gridHeight: 7
126
126
  moveBudget: 999999
127
- units: [ { id: "c1", position: { x: 1, y: 1 }, x: 1, y: 1, z: 0, team: "player", health: 10, maxHealth: 10, unitType: "crew", name: "Crew", modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.json", sprite: "blue_body_square.png", role: "player", category: "unit", animations: ["idle"], style: "vector", dimension: "2d", aspect: "1:1", name: "crew-unit", thumbnailUrl: "" } } ]
127
+ units: [ { id: "c1", position: { x: 1, y: 1 }, x: 1, y: 1, z: 0, team: "player", health: 10, maxHealth: 10, unitType: "crew", name: "Crew", modelUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png", role: "player", category: "unit", animations: ["idle"], style: "vector", dimension: "2d", aspect: "1:1", name: "crew-unit", thumbnailUrl: "" } } ]
128
128
  tiles: [
129
- { id: "t-0-0", x: 0, y: 0, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
130
- { id: "t-0-1", x: 0, y: 1, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
131
- { id: "t-1-0", x: 1, y: 0, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
132
- { id: "t-1-1", x: 1, y: 1, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } }
129
+ { id: "t-0-0", x: 0, y: 0, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
130
+ { id: "t-0-1", x: 0, y: 1, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
131
+ { id: "t-1-0", x: 1, y: 0, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
132
+ { id: "t-1-1", x: 1, y: 1, z: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } }
133
133
  ]
134
134
  }
135
135
  }
@@ -110,28 +110,28 @@ orbital DungeonBoard2DOrbital {
110
110
  entity GameState [runtime, shared] {
111
111
  id : string!
112
112
  units : [Unit] = [
113
- { id: "hero", position: { x: 1, y: 1 }, x: 1, y: 1, z: 0, team: "player", health: 5, maxHealth: 5, unitType: "hero", name: "Hero", sprite: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.json", sprite: "blue_body_square.png", role: "player", category: "unit", animations: ["idle"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "player-unit", thumbnailUrl: "" } }
113
+ { id: "hero", position: { x: 1, y: 1 }, x: 1, y: 1, z: 0, team: "player", health: 5, maxHealth: 5, unitType: "hero", name: "Hero", sprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png", role: "player", category: "unit", animations: ["idle"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "player-unit", thumbnailUrl: "" } }
114
114
  ]
115
115
  enemies : [Unit] = [
116
- { id: "goblin", position: { x: 2, y: 2 }, x: 2, y: 2, z: 0, team: "enemy", health: 2, maxHealth: 2, unitType: "goblin", name: "Goblin", sprite: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.json", sprite: "red_body_square.png", role: "enemy", category: "unit", animations: ["idle"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "enemy-unit", thumbnailUrl: "" } }
116
+ { id: "goblin", position: { x: 2, y: 2 }, x: 2, y: 2, z: 0, team: "enemy", health: 2, maxHealth: 2, unitType: "goblin", name: "Goblin", sprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png", role: "enemy", category: "unit", animations: ["idle"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "enemy-unit", thumbnailUrl: "" } }
117
117
  ]
118
118
  tiles : [Tile] = [
119
- { id: "t-0-0", x: 0, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
120
- { id: "t-0-1", x: 0, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
121
- { id: "t-0-2", x: 0, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
122
- { id: "t-0-3", x: 0, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
123
- { id: "t-1-0", x: 1, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
124
- { id: "t-1-1", x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
125
- { id: "t-1-2", x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
126
- { id: "t-1-3", x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
127
- { id: "t-2-0", x: 2, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
128
- { id: "t-2-1", x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
129
- { id: "t-2-2", x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
130
- { id: "t-2-3", x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
131
- { id: "t-3-0", x: 3, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
132
- { id: "t-3-1", x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
133
- { id: "t-3-2", x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
134
- { id: "t-3-3", x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } }
119
+ { id: "t-0-0", x: 0, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
120
+ { id: "t-0-1", x: 0, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
121
+ { id: "t-0-2", x: 0, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
122
+ { id: "t-0-3", x: 0, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
123
+ { id: "t-1-0", x: 1, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
124
+ { id: "t-1-1", x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
125
+ { id: "t-1-2", x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
126
+ { id: "t-1-3", x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
127
+ { id: "t-2-0", x: 2, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
128
+ { id: "t-2-1", x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
129
+ { id: "t-2-2", x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
130
+ { id: "t-2-3", x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
131
+ { id: "t-3-0", x: 3, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
132
+ { id: "t-3-1", x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
133
+ { id: "t-3-2", x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
134
+ { id: "t-3-3", x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } }
135
135
  ]
136
136
  features : [Feature] = []
137
137
  fx : [Fx] = []
@@ -152,25 +152,25 @@ orbital DungeonBoard2DOrbital {
152
152
  gridHeight: 4
153
153
  moveBudget: 999999
154
154
  units: [
155
- { id: "hero", position: { x: 1, y: 1 }, x: 1, y: 1, z: 0, team: "player", health: 5, maxHealth: 5, unitType: "hero", name: "Hero", sprite: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.json", sprite: "blue_body_square.png", role: "player", category: "unit", animations: ["idle"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "player-unit", thumbnailUrl: "" } }
155
+ { id: "hero", position: { x: 1, y: 1 }, x: 1, y: 1, z: 0, team: "player", health: 5, maxHealth: 5, unitType: "hero", name: "Hero", sprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png", role: "player", category: "unit", animations: ["idle"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "player-unit", thumbnailUrl: "" } }
156
156
  ]
157
157
  tiles: [
158
- { id: "t-0-0", x: 0, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
159
- { id: "t-0-1", x: 0, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
160
- { id: "t-0-2", x: 0, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
161
- { id: "t-0-3", x: 0, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
162
- { id: "t-1-0", x: 1, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
163
- { id: "t-1-1", x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
164
- { id: "t-1-2", x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
165
- { id: "t-1-3", x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
166
- { id: "t-2-0", x: 2, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
167
- { id: "t-2-1", x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
168
- { id: "t-2-2", x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
169
- { id: "t-2-3", x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
170
- { id: "t-3-0", x: 3, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
171
- { id: "t-3-1", x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
172
- { id: "t-3-2", x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
173
- { id: "t-3-3", x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-boardgame-board/kenney-puzzle-assets-2/terrain/spritesheet_tilesBlue.json", sprite: "tileBlue_01.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } }
158
+ { id: "t-0-0", x: 0, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
159
+ { id: "t-0-1", x: 0, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
160
+ { id: "t-0-2", x: 0, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
161
+ { id: "t-0-3", x: 0, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
162
+ { id: "t-1-0", x: 1, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
163
+ { id: "t-1-1", x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
164
+ { id: "t-1-2", x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
165
+ { id: "t-1-3", x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
166
+ { id: "t-2-0", x: 2, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
167
+ { id: "t-2-1", x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
168
+ { id: "t-2-2", x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
169
+ { id: "t-2-3", x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
170
+ { id: "t-3-0", x: 3, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
171
+ { id: "t-3-1", x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
172
+ { id: "t-3-2", x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } },
173
+ { id: "t-3-3", x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/terrain/grass/grass.png", role: "tile", category: "terrain", animations: ["static"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "grass", thumbnailUrl: "" } }
174
174
  ]
175
175
  }
176
176
  }
@@ -184,7 +184,7 @@ orbital DungeonBoard2DOrbital {
184
184
  attackDamage: 1
185
185
  pointsPerKill: 50
186
186
  enemies: [
187
- { id: "goblin", position: { x: 2, y: 2 }, x: 2, y: 2, z: 0, team: "enemy", health: 2, maxHealth: 2, unitType: "goblin", name: "Goblin", sprite: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-shape-characters/units/spritesheet_default.json", sprite: "red_body_square.png", role: "enemy", category: "unit", animations: ["idle"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "enemy-unit", thumbnailUrl: "" } }
187
+ { id: "goblin", position: { x: 2, y: 2 }, x: 2, y: 2, z: 0, team: "enemy", health: 2, maxHealth: 2, unitType: "goblin", name: "Goblin", sprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-tactics-demo-2d/default/units/soldier/soldier.png", role: "enemy", category: "unit", animations: ["idle"], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "enemy-unit", thumbnailUrl: "" } }
188
188
  ]
189
189
  }
190
190
  }