@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.
- package/behaviors/lolo/infra/atoms/std-approval-gate.lolo +2 -2
- package/behaviors/lolo/infra/atoms/std-calendar-sync.lolo +5 -5
- package/behaviors/lolo/infra/atoms/std-cascade-on-delete.lolo +7 -1
- package/behaviors/lolo/infra/atoms/std-circuit-breaker.lolo +3 -3
- package/behaviors/lolo/ui/core/atoms/std-app-layout.lolo +1 -0
- package/behaviors/lolo/ui/core/atoms/std-browse.lolo +4 -0
- package/behaviors/lolo/ui/core/atoms/std-confirmation.lolo +2 -0
- package/behaviors/lolo/ui/core/atoms/std-esign-request.lolo +2 -2
- package/behaviors/lolo/ui/core/atoms/std-graphs.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/std-modal.lolo +3 -1
- package/behaviors/lolo/ui/core/atoms/std-stats.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/std-step-flow.lolo +4 -3
- package/behaviors/lolo/ui/core/atoms/std-tag-taxonomy.lolo +1 -4
- package/behaviors/lolo/ui/core/atoms/std-thread.lolo +33 -30
- package/behaviors/lolo/ui/core/atoms/std-version-history.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-radio.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-range-slider.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-switch.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-text-highlight.lolo +1 -1
- package/behaviors/lolo/ui/core/atoms/ui-time-slot-cell.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-code-block.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-command-palette.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-date-range-picker.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-document-panel.lolo +2 -2
- package/behaviors/lolo/ui/core/molecules/ui-filter-group.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-number-stepper.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-pagination.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-popover.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-relation-select.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-rich-text-editor.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-search-input.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-sidebar.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-star-rating.lolo +1 -1
- package/behaviors/lolo/ui/core/molecules/ui-wizard-navigation.lolo +2 -2
- package/behaviors/lolo/ui/core/organisms/ui-split-pane.lolo +1 -1
- package/behaviors/lolo/ui/game/atoms/ui-draw-skinned-mesh.lolo +126 -0
- package/behaviors/lolo/ui/game/atoms/ui-trait-slot.lolo +1 -1
- package/behaviors/lolo/ui/game/organisms/std-arcade-board-3d.lolo +10 -10
- package/behaviors/lolo/ui/game/organisms/std-crew-board-2d.lolo +10 -10
- package/behaviors/lolo/ui/game/organisms/std-dungeon-board-2d.lolo +36 -36
- package/behaviors/lolo/ui/game/organisms/std-market-board-3d.lolo +36 -36
- package/behaviors/lolo/ui/game/organisms/std-objective-board-3d.lolo +34 -34
- package/behaviors/lolo/ui/game/organisms/std-survival-board-3d.lolo +10 -10
- package/behaviors/lolo/ui/game/organisms/std-tactics-board-2d.lolo +12 -12
- package/behaviors/lolo/ui/game/organisms/std-tactics-board-3d.lolo +12 -12
- package/behaviors/lolo/ui/game/organisms/std-worldmap-board-2d.lolo +20 -20
- package/behaviors/registry/infra/atoms/std-approval-gate.orb +20 -9
- package/behaviors/registry/infra/atoms/std-calendar-sync.orb +5 -0
- package/behaviors/registry/infra/atoms/std-cascade-on-delete.orb +28 -0
- package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +3 -0
- package/behaviors/registry/infra/atoms/std-notification-center.orb +56 -24
- package/behaviors/registry/infra/atoms/std-notify-on-event.orb +12 -6
- package/behaviors/registry/ui/core/atoms/std-app-layout.orb +20 -0
- package/behaviors/registry/ui/core/atoms/std-browse.orb +26 -0
- package/behaviors/registry/ui/core/atoms/std-confirmation.orb +44 -18
- package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +44 -18
- package/behaviors/registry/ui/core/atoms/std-esign-request.orb +19 -8
- package/behaviors/registry/ui/core/atoms/std-form-advanced.orb +20 -9
- package/behaviors/registry/ui/core/atoms/std-graphs.orb +1 -0
- package/behaviors/registry/ui/core/atoms/std-modal.orb +52 -24
- package/behaviors/registry/ui/core/atoms/std-stats.orb +1 -0
- package/behaviors/registry/ui/core/atoms/std-step-flow.orb +0 -3
- package/behaviors/registry/ui/core/atoms/std-tag-taxonomy.orb +2 -9
- package/behaviors/registry/ui/core/atoms/std-thread.orb +134 -40
- package/behaviors/registry/ui/core/atoms/std-version-history.orb +1 -0
- package/behaviors/registry/ui/core/atoms/ui-radio.orb +1 -0
- package/behaviors/registry/ui/core/atoms/ui-range-slider.orb +1 -0
- package/behaviors/registry/ui/core/atoms/ui-switch.orb +1 -0
- package/behaviors/registry/ui/core/atoms/ui-text-highlight.orb +1 -0
- package/behaviors/registry/ui/core/atoms/ui-time-slot-cell.orb +1 -0
- package/behaviors/registry/ui/core/molecules/ui-code-block.orb +2 -0
- package/behaviors/registry/ui/core/molecules/ui-command-palette.orb +1 -0
- package/behaviors/registry/ui/core/molecules/ui-date-range-picker.orb +2 -0
- package/behaviors/registry/ui/core/molecules/ui-document-panel.orb +2 -0
- package/behaviors/registry/ui/core/molecules/ui-filter-group.orb +1 -0
- package/behaviors/registry/ui/core/molecules/ui-number-stepper.orb +1 -0
- package/behaviors/registry/ui/core/molecules/ui-pagination.orb +1 -0
- package/behaviors/registry/ui/core/molecules/ui-popover.orb +1 -0
- package/behaviors/registry/ui/core/molecules/ui-relation-select.orb +1 -0
- package/behaviors/registry/ui/core/molecules/ui-rich-text-editor.orb +1 -0
- package/behaviors/registry/ui/core/molecules/ui-search-input.orb +1 -0
- package/behaviors/registry/ui/core/molecules/ui-sidebar.orb +1 -0
- package/behaviors/registry/ui/core/molecules/ui-star-rating.orb +1 -0
- package/behaviors/registry/ui/core/molecules/ui-wizard-navigation.orb +2 -0
- package/behaviors/registry/ui/core/organisms/ui-split-pane.orb +1 -0
- package/behaviors/registry/ui/game/atoms/ui-draw-skinned-mesh.orb +687 -0
- package/behaviors/registry/ui/game/atoms/ui-trait-slot.orb +1 -0
- package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +10 -30
- package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +10 -30
- package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +36 -108
- package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +36 -108
- package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +34 -102
- package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +10 -30
- package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +12 -36
- package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +12 -36
- package/behaviors/registry/ui/game/organisms/std-worldmap-board-2d.orb +20 -60
- package/dist/behaviors/exports-reader.js +2147 -2212
- package/dist/behaviors/functions/index.d.ts +111 -34
- package/dist/behaviors/functions/index.js +2145 -2211
- package/dist/behaviors/index.d.ts +1 -1
- package/dist/behaviors/index.js +2148 -2213
- package/dist/behaviors/query.js +2147 -2212
- package/dist/behaviors-embeddings.hash.json +3 -3
- package/dist/behaviors-embeddings.json +11 -7
- package/dist/behaviors-registry.json +1765 -1031
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2148 -2213
- package/dist/knob-embeddings.hash.json +3 -3
- package/dist/knob-embeddings.json +1 -1
- package/dist/registry/factory-signatures.json +1 -1
- 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
|
+
}
|
|
@@ -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/
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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/
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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/
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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/
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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/
|
|
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/
|
|
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-
|
|
120
|
-
{ id: "t-0-1", x: 0, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
121
|
-
{ id: "t-0-2", x: 0, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
122
|
-
{ id: "t-0-3", x: 0, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
123
|
-
{ id: "t-1-0", x: 1, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
124
|
-
{ id: "t-1-1", x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
125
|
-
{ id: "t-1-2", x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
126
|
-
{ id: "t-1-3", x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
127
|
-
{ id: "t-2-0", x: 2, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
128
|
-
{ id: "t-2-1", x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
129
|
-
{ id: "t-2-2", x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
130
|
-
{ id: "t-2-3", x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
131
|
-
{ id: "t-3-0", x: 3, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
132
|
-
{ id: "t-3-1", x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
133
|
-
{ id: "t-3-2", x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
134
|
-
{ id: "t-3-3", x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
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/
|
|
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-
|
|
159
|
-
{ id: "t-0-1", x: 0, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
160
|
-
{ id: "t-0-2", x: 0, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
161
|
-
{ id: "t-0-3", x: 0, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
162
|
-
{ id: "t-1-0", x: 1, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
163
|
-
{ id: "t-1-1", x: 1, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
164
|
-
{ id: "t-1-2", x: 1, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
165
|
-
{ id: "t-1-3", x: 1, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
166
|
-
{ id: "t-2-0", x: 2, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
167
|
-
{ id: "t-2-1", x: 2, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
168
|
-
{ id: "t-2-2", x: 2, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
169
|
-
{ id: "t-2-3", x: 2, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
170
|
-
{ id: "t-3-0", x: 3, y: 0, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
171
|
-
{ id: "t-3-1", x: 3, y: 1, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
172
|
-
{ id: "t-3-2", x: 3, y: 2, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
173
|
-
{ id: "t-3-3", x: 3, y: 3, terrain: "grass", passable: true, terrainSprite: { url: "https://almadar-kflow-assets.web.app/shared/ui-
|
|
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/
|
|
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
|
}
|