@almadar/std 16.152.0 → 16.153.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-data-erasure.lolo +5 -1
- package/behaviors/lolo/ui/core/atoms/std-browse.lolo +1 -0
- package/behaviors/lolo/ui/core/molecules/ui-emoji-picker.lolo +56 -0
- package/behaviors/lolo/ui/core/molecules/ui-popover.lolo +39 -0
- package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +11 -0
- package/behaviors/lolo/ui/game/atoms/ui-draw-sprite.lolo +2 -2
- package/behaviors/lolo/ui/game/molecules/ui-canvas-2d.lolo +11 -1
- package/behaviors/lolo/ui/game/molecules/ui-canvas.lolo +10 -0
- package/behaviors/lolo/ui/game/organisms/ui-fishing-board.lolo +8 -8
- package/behaviors/lolo/ui/game/organisms/ui-physics-sandbox-board.lolo +5 -5
- package/behaviors/lolo/ui/game/organisms/ui-roguelike-board.lolo +5 -5
- package/behaviors/lolo/ui/game/organisms/ui-sokoban-board.lolo +5 -5
- package/behaviors/lolo/ui/game/organisms/ui-state-architect-board.lolo +4 -4
- package/behaviors/lolo/ui/game/organisms/ui-winter-ski-board.lolo +7 -7
- package/behaviors/registry/factory-signatures.json +6211 -2181
- package/behaviors/registry/infra/atoms/std-approval-gate.orb +16 -8
- package/behaviors/registry/infra/atoms/std-cache-aside.orb +62 -31
- package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +32 -16
- package/behaviors/registry/infra/atoms/std-data-erasure.orb +17 -9
- package/behaviors/registry/infra/atoms/std-mod-queue.orb +16 -8
- package/behaviors/registry/infra/atoms/std-rate-limiter.orb +28 -14
- package/behaviors/registry/ml/molecules/std-escalating-decision.orb +10 -5
- package/behaviors/registry/ml/molecules/std-knowledge-tracing.orb +4 -2
- package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +2 -1
- package/behaviors/registry/ui/core/atoms/std-browse.orb +4 -0
- package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +2 -1
- package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +4 -2
- package/behaviors/registry/ui/core/atoms/std-esign-request.orb +6 -3
- package/behaviors/registry/ui/core/atoms/std-gallery.orb +18 -9
- package/behaviors/registry/ui/core/atoms/std-import.orb +4 -2
- package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +214 -0
- package/behaviors/registry/ui/core/molecules/ui-popover.orb +112 -1
- package/behaviors/registry/ui/core/molecules/ui-table-view.orb +44 -0
- package/behaviors/registry/ui/game/atoms/std-arcade-flow.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-arcade-play.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-chase-ai.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-fx-particles.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-gather.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-gold.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-grid-tactics.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-hero-nav.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-market-flow.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-objective-flow.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-objective-reach.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-patience.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-production.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-round-flow.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-score.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-survival-flow.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-xp.orb +1 -0
- package/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +2 -2
- package/behaviors/registry/ui/game/molecules/std-worldmap-board-2d.orb +6 -3
- package/behaviors/registry/ui/game/molecules/ui-canvas-2d.orb +16 -1
- package/behaviors/registry/ui/game/molecules/ui-canvas.orb +14 -0
- package/behaviors/registry/ui/game/organisms/ui-fishing-board.orb +16 -16
- package/behaviors/registry/ui/game/organisms/ui-physics-sandbox-board.orb +10 -10
- package/behaviors/registry/ui/game/organisms/ui-roguelike-board.orb +10 -10
- package/behaviors/registry/ui/game/organisms/ui-sokoban-board.orb +10 -10
- package/behaviors/registry/ui/game/organisms/ui-state-architect-board.orb +8 -8
- package/behaviors/registry/ui/game/organisms/ui-winter-ski-board.orb +14 -14
- package/dist/behaviors/behaviors-embeddings.json +384 -380
- package/dist/behaviors/behaviors-registry.json +535 -8
- package/dist/behaviors/exports-reader.js +3409 -3101
- package/dist/behaviors/functions/index.d.ts +596 -5
- package/dist/behaviors/functions/index.js +3389 -3102
- package/dist/behaviors/index.d.ts +1 -1
- package/dist/behaviors/index.js +3410 -3102
- package/dist/behaviors/knob-embeddings.json +1 -1
- package/dist/behaviors/query.js +3409 -3101
- package/dist/behaviors/registry/factory-signatures.json +6211 -2181
- package/dist/behaviors/registry/infra/atoms/std-approval-gate.orb +16 -8
- package/dist/behaviors/registry/infra/atoms/std-cache-aside.orb +62 -31
- package/dist/behaviors/registry/infra/atoms/std-circuit-breaker.orb +32 -16
- package/dist/behaviors/registry/infra/atoms/std-data-erasure.orb +17 -9
- package/dist/behaviors/registry/infra/atoms/std-mod-queue.orb +16 -8
- package/dist/behaviors/registry/infra/atoms/std-rate-limiter.orb +28 -14
- package/dist/behaviors/registry/ml/molecules/std-escalating-decision.orb +10 -5
- package/dist/behaviors/registry/ml/molecules/std-knowledge-tracing.orb +4 -2
- package/dist/behaviors/registry/ui/core/atoms/std-billable-hour.orb +2 -1
- package/dist/behaviors/registry/ui/core/atoms/std-browse.orb +4 -0
- package/dist/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +2 -1
- package/dist/behaviors/registry/ui/core/atoms/std-esign-flow.orb +4 -2
- package/dist/behaviors/registry/ui/core/atoms/std-esign-request.orb +6 -3
- package/dist/behaviors/registry/ui/core/atoms/std-gallery.orb +18 -9
- package/dist/behaviors/registry/ui/core/atoms/std-import.orb +4 -2
- package/dist/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +214 -0
- package/dist/behaviors/registry/ui/core/molecules/ui-popover.orb +112 -1
- package/dist/behaviors/registry/ui/core/molecules/ui-table-view.orb +44 -0
- package/dist/behaviors/registry/ui/game/atoms/std-arcade-flow.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-arcade-play.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-chase-ai.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-fx-particles.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-gather.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-gold.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-grid-tactics.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-hero-nav.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-market-flow.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-objective-flow.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-objective-reach.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-patience.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-production.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-round-flow.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-score.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-survival-flow.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-xp.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +2 -2
- package/dist/behaviors/registry/ui/game/molecules/std-worldmap-board-2d.orb +6 -3
- package/dist/behaviors/registry/ui/game/molecules/ui-canvas-2d.orb +16 -1
- package/dist/behaviors/registry/ui/game/molecules/ui-canvas.orb +14 -0
- package/dist/behaviors/registry/ui/game/organisms/ui-fishing-board.orb +16 -16
- package/dist/behaviors/registry/ui/game/organisms/ui-physics-sandbox-board.orb +10 -10
- package/dist/behaviors/registry/ui/game/organisms/ui-roguelike-board.orb +10 -10
- package/dist/behaviors/registry/ui/game/organisms/ui-sokoban-board.orb +10 -10
- package/dist/behaviors/registry/ui/game/organisms/ui-state-architect-board.orb +8 -8
- package/dist/behaviors/registry/ui/game/organisms/ui-winter-ski-board.orb +14 -14
- package/dist/behaviors-embeddings.json +384 -380
- package/dist/behaviors-registry.json +535 -8
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3410 -3102
- package/dist/knob-embeddings.json +1 -1
- package/dist/registry/factory-signatures.json +6211 -2181
- package/package.json +2 -2
|
@@ -83,7 +83,7 @@ orbital SokobanBoardOrbital {
|
|
|
83
83
|
controls: { type: control-grid, kind: "dpad", directionEvents: { up: "MOVE_UP", down: "MOVE_DOWN", left: "MOVE_LEFT", right: "MOVE_RIGHT" }, directionAssets: { up: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "30,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-up", thumbnailUrl: "" }, down: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "32,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-down", thumbnailUrl: "" }, left: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "33,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-left", thumbnailUrl: "" }, right: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "31,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-right", thumbnailUrl: "" } } }
|
|
84
84
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @config.tiles "x") (array/max @config.tiles "y"))))), pos: { x: (/ (+ (array/min @config.tiles "x") (array/max @config.tiles "x")) 2), y: (/ (+ (array/min @config.tiles "y") (array/max @config.tiles "y")) 2) } }, projection: "flat", showMinimap: false, keyMap: { ArrowUp: "MOVE_UP", KeyW: "MOVE_UP", ArrowDown: "MOVE_DOWN", KeyS: "MOVE_DOWN", ArrowLeft: "MOVE_LEFT", KeyA: "MOVE_LEFT", ArrowRight: "MOVE_RIGHT", KeyD: "MOVE_RIGHT" }, children: [
|
|
85
85
|
{ type: draw-shape-layer, items: (array/map @config.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
86
|
-
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width:
|
|
86
|
+
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width: 1, height: 1 })) }
|
|
87
87
|
{ type: draw-sprite-layer, items: (array/map @entity.crates (fn c { type: draw-sprite, position: { x: (object/get @c x), y: (object/get @c y) }, asset: (if (!= (array/find @config.targets (fn t (and (== (object/get @t x) (object/get @c x)) (== (object/get @t y) (object/get @c y))))) null) (object/get (object/get @config.assetManifest features) crate_done) (object/get (object/get @config.assetManifest features) crate)), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
88
88
|
{ type: draw-sprite-layer, items: [ { type: draw-sprite, position: { x: (object/get @entity.player x), y: (object/get @entity.player y) }, asset: (object/get (object/get @config.assetManifest units) pusher), anchor: "ground", width: 0.5, height: 0.5 } ] }
|
|
89
89
|
{ type: draw-sprite-layer, items: (array/map @entity.effects (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get (object/get @config.assetManifest effects) (object/get @f key)) })) }
|
|
@@ -190,7 +190,7 @@ orbital SokobanBoardOrbital {
|
|
|
190
190
|
controls: { type: control-grid, kind: "dpad", directionEvents: { up: "MOVE_UP", down: "MOVE_DOWN", left: "MOVE_LEFT", right: "MOVE_RIGHT" }, directionAssets: { up: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "30,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-up", thumbnailUrl: "" }, down: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "32,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-down", thumbnailUrl: "" }, left: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "33,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-left", thumbnailUrl: "" }, right: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "31,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-right", thumbnailUrl: "" } } }
|
|
191
191
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @config.tiles "x") (array/max @config.tiles "y"))))), pos: { x: (/ (+ (array/min @config.tiles "x") (array/max @config.tiles "x")) 2), y: (/ (+ (array/min @config.tiles "y") (array/max @config.tiles "y")) 2) } }, projection: "flat", showMinimap: false, keyMap: { ArrowUp: "MOVE_UP", KeyW: "MOVE_UP", ArrowDown: "MOVE_DOWN", KeyS: "MOVE_DOWN", ArrowLeft: "MOVE_LEFT", KeyA: "MOVE_LEFT", ArrowRight: "MOVE_RIGHT", KeyD: "MOVE_RIGHT" }, children: [
|
|
192
192
|
{ type: draw-shape-layer, items: (array/map @config.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
193
|
-
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width:
|
|
193
|
+
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width: 1, height: 1 })) }
|
|
194
194
|
{ type: draw-sprite-layer, items: (array/map @entity.crates (fn c { type: draw-sprite, position: { x: (object/get @c x), y: (object/get @c y) }, asset: (if (!= (array/find @config.targets (fn t (and (== (object/get @t x) (object/get @c x)) (== (object/get @t y) (object/get @c y))))) null) (object/get (object/get @config.assetManifest features) crate_done) (object/get (object/get @config.assetManifest features) crate)), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
195
195
|
{ type: draw-sprite-layer, items: [ { type: draw-sprite, position: { x: (object/get @entity.player x), y: (object/get @entity.player y) }, asset: (object/get (object/get @config.assetManifest units) pusher), anchor: "ground", width: 0.5, height: 0.5 } ] }
|
|
196
196
|
{ type: draw-sprite-layer, items: (array/map @entity.effects (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get (object/get @config.assetManifest effects) (object/get @f key)) })) }
|
|
@@ -208,7 +208,7 @@ orbital SokobanBoardOrbital {
|
|
|
208
208
|
overlay: { type: game-menu, title: "SOLVED!", subtitle: (str/concat "All crates home in " (str/concat @entity.moves " moves")), options: [ { id: "again", label: "Play Again", event: "PLAY_AGAIN", variant: "primary" } ] }
|
|
209
209
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @config.tiles "x") (array/max @config.tiles "y"))))), pos: { x: (/ (+ (array/min @config.tiles "x") (array/max @config.tiles "x")) 2), y: (/ (+ (array/min @config.tiles "y") (array/max @config.tiles "y")) 2) } }, projection: "flat", showMinimap: false, keyMap: { ArrowUp: "MOVE_UP", KeyW: "MOVE_UP", ArrowDown: "MOVE_DOWN", KeyS: "MOVE_DOWN", ArrowLeft: "MOVE_LEFT", KeyA: "MOVE_LEFT", ArrowRight: "MOVE_RIGHT", KeyD: "MOVE_RIGHT" }, children: [
|
|
210
210
|
{ type: draw-shape-layer, items: (array/map @config.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
211
|
-
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width:
|
|
211
|
+
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width: 1, height: 1 })) }
|
|
212
212
|
{ type: draw-sprite-layer, items: (array/map @entity.crates (fn c { type: draw-sprite, position: { x: (object/get @c x), y: (object/get @c y) }, asset: (if (!= (array/find @config.targets (fn t (and (== (object/get @t x) (object/get @c x)) (== (object/get @t y) (object/get @c y))))) null) (object/get (object/get @config.assetManifest features) crate_done) (object/get (object/get @config.assetManifest features) crate)), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
213
213
|
{ type: draw-sprite-layer, items: [ { type: draw-sprite, position: { x: (object/get @entity.player x), y: (object/get @entity.player y) }, asset: (object/get (object/get @config.assetManifest units) pusher), anchor: "ground", width: 0.5, height: 0.5 } ] }
|
|
214
214
|
{ type: draw-sprite-layer, items: (array/map @entity.effects (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get (object/get @config.assetManifest effects) (object/get @f key)) })) }
|
|
@@ -233,7 +233,7 @@ orbital SokobanBoardOrbital {
|
|
|
233
233
|
controls: { type: control-grid, kind: "dpad", directionEvents: { up: "MOVE_UP", down: "MOVE_DOWN", left: "MOVE_LEFT", right: "MOVE_RIGHT" }, directionAssets: { up: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "30,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-up", thumbnailUrl: "" }, down: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "32,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-down", thumbnailUrl: "" }, left: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "33,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-left", thumbnailUrl: "" }, right: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "31,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-right", thumbnailUrl: "" } } }
|
|
234
234
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @config.tiles "x") (array/max @config.tiles "y"))))), pos: { x: (/ (+ (array/min @config.tiles "x") (array/max @config.tiles "x")) 2), y: (/ (+ (array/min @config.tiles "y") (array/max @config.tiles "y")) 2) } }, projection: "flat", showMinimap: false, keyMap: { ArrowUp: "MOVE_UP", KeyW: "MOVE_UP", ArrowDown: "MOVE_DOWN", KeyS: "MOVE_DOWN", ArrowLeft: "MOVE_LEFT", KeyA: "MOVE_LEFT", ArrowRight: "MOVE_RIGHT", KeyD: "MOVE_RIGHT" }, children: [
|
|
235
235
|
{ type: draw-shape-layer, items: (array/map @config.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
236
|
-
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width:
|
|
236
|
+
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width: 1, height: 1 })) }
|
|
237
237
|
{ type: draw-sprite-layer, items: (array/map @entity.crates (fn c { type: draw-sprite, position: { x: (object/get @c x), y: (object/get @c y) }, asset: (if (!= (array/find @config.targets (fn t (and (== (object/get @t x) (object/get @c x)) (== (object/get @t y) (object/get @c y))))) null) (object/get (object/get @config.assetManifest features) crate_done) (object/get (object/get @config.assetManifest features) crate)), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
238
238
|
{ type: draw-sprite-layer, items: [ { type: draw-sprite, position: { x: (object/get @entity.player x), y: (object/get @entity.player y) }, asset: (object/get (object/get @config.assetManifest units) pusher), anchor: "ground", width: 0.5, height: 0.5 } ] }
|
|
239
239
|
{ type: draw-sprite-layer, items: (array/map @entity.effects (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get (object/get @config.assetManifest effects) (object/get @f key)) })) }
|
|
@@ -253,7 +253,7 @@ orbital SokobanBoardOrbital {
|
|
|
253
253
|
controls: { type: control-grid, kind: "dpad", directionEvents: { up: "MOVE_UP", down: "MOVE_DOWN", left: "MOVE_LEFT", right: "MOVE_RIGHT" }, directionAssets: { up: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "30,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-up", thumbnailUrl: "" }, down: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "32,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-down", thumbnailUrl: "" }, left: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "33,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-left", thumbnailUrl: "" }, right: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "31,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-right", thumbnailUrl: "" } } }
|
|
254
254
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @config.tiles "x") (array/max @config.tiles "y"))))), pos: { x: (/ (+ (array/min @config.tiles "x") (array/max @config.tiles "x")) 2), y: (/ (+ (array/min @config.tiles "y") (array/max @config.tiles "y")) 2) } }, projection: "flat", showMinimap: false, keyMap: { ArrowUp: "MOVE_UP", KeyW: "MOVE_UP", ArrowDown: "MOVE_DOWN", KeyS: "MOVE_DOWN", ArrowLeft: "MOVE_LEFT", KeyA: "MOVE_LEFT", ArrowRight: "MOVE_RIGHT", KeyD: "MOVE_RIGHT" }, children: [
|
|
255
255
|
{ type: draw-shape-layer, items: (array/map @config.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
256
|
-
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width:
|
|
256
|
+
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width: 1, height: 1 })) }
|
|
257
257
|
{ type: draw-sprite-layer, items: (array/map @entity.crates (fn c { type: draw-sprite, position: { x: (object/get @c x), y: (object/get @c y) }, asset: (if (!= (array/find @config.targets (fn t (and (== (object/get @t x) (object/get @c x)) (== (object/get @t y) (object/get @c y))))) null) (object/get (object/get @config.assetManifest features) crate_done) (object/get (object/get @config.assetManifest features) crate)), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
258
258
|
{ type: draw-sprite-layer, items: [ { type: draw-sprite, position: { x: (object/get @entity.player x), y: (object/get @entity.player y) }, asset: (object/get (object/get @config.assetManifest units) pusher), anchor: "ground", width: 0.5, height: 0.5 } ] }
|
|
259
259
|
{ type: draw-sprite-layer, items: (array/map @entity.effects (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get (object/get @config.assetManifest effects) (object/get @f key)) })) }
|
|
@@ -195,9 +195,9 @@ orbital StateArchitectBoardOrbital {
|
|
|
195
195
|
]
|
|
196
196
|
})
|
|
197
197
|
|
|
198
|
-
RUN_TESTS -> complete when (and (> (array/len @entity.transitions) 0) (== @entity.totalTests (array/len (array/filter @entity.testCases (fn tc (== (array/reduce @tc.events (fn st e (object/get (array/find @entity.transitions (fn t (and (== @t.from @st) (== @t.event @e)))) "to" @st))
|
|
198
|
+
RUN_TESTS -> complete when (and (> (array/len @entity.transitions) 0) (== @entity.totalTests (array/len (array/filter @entity.testCases (fn tc (== (array/reduce @tc.events @entity.initialState (fn st e (object/get (array/find @entity.transitions (fn t (and (== @t.from @st) (== @t.event @e)))) "to" @st))) @tc.expectedState))))))
|
|
199
199
|
(set @entity.attempts (+ @entity.attempts 1))
|
|
200
|
-
(set @entity.passedTests (array/len (array/filter @entity.testCases (fn tc (== (array/reduce @tc.events (fn st e (object/get (array/find @entity.transitions (fn t (and (== @t.from @st) (== @t.event @e)))) "to" @st))
|
|
200
|
+
(set @entity.passedTests (array/len (array/filter @entity.testCases (fn tc (== (array/reduce @tc.events @entity.initialState (fn st e (object/get (array/find @entity.transitions (fn t (and (== @t.from @st) (== @t.event @e)))) "to" @st))) @tc.expectedState)))))
|
|
201
201
|
(set @entity.result "win")
|
|
202
202
|
(render-ui main {
|
|
203
203
|
type: game-shell
|
|
@@ -211,9 +211,9 @@ orbital StateArchitectBoardOrbital {
|
|
|
211
211
|
]
|
|
212
212
|
})
|
|
213
213
|
|
|
214
|
-
RUN_TESTS -> playing when (or (== (array/len @entity.transitions) 0) (!= @entity.totalTests (array/len (array/filter @entity.testCases (fn tc (== (array/reduce @tc.events (fn st e (object/get (array/find @entity.transitions (fn t (and (== @t.from @st) (== @t.event @e)))) "to" @st))
|
|
214
|
+
RUN_TESTS -> playing when (or (== (array/len @entity.transitions) 0) (!= @entity.totalTests (array/len (array/filter @entity.testCases (fn tc (== (array/reduce @tc.events @entity.initialState (fn st e (object/get (array/find @entity.transitions (fn t (and (== @t.from @st) (== @t.event @e)))) "to" @st))) @tc.expectedState))))))
|
|
215
215
|
(set @entity.attempts (+ @entity.attempts 1))
|
|
216
|
-
(set @entity.passedTests (array/len (array/filter @entity.testCases (fn tc (== (array/reduce @tc.events (fn st e (object/get (array/find @entity.transitions (fn t (and (== @t.from @st) (== @t.event @e)))) "to" @st))
|
|
216
|
+
(set @entity.passedTests (array/len (array/filter @entity.testCases (fn tc (== (array/reduce @tc.events @entity.initialState (fn st e (object/get (array/find @entity.transitions (fn t (and (== @t.from @st) (== @t.event @e)))) "to" @st))) @tc.expectedState)))))
|
|
217
217
|
(render-ui main {
|
|
218
218
|
type: game-shell
|
|
219
219
|
hud: { type: stack, direction: horizontal, gap: md, justify: between, children: [ { type: game-hud, stats: [ { label: "Passed", value: @entity.passedTests }, { label: "Total", value: @entity.totalTests }, { label: "Attempts", value: @entity.attempts }, { label: "Result", value: @entity.result } ] }, { type: stack, direction: horizontal, gap: sm, children: [ { type: button, action: START_CONNECT, label: "Add Transition", variant: ghost }, { type: button, action: RUN_TESTS, label: "Run Tests", variant: primary }, { type: button, action: PLAY_AGAIN, label: "Reset", variant: secondary } ] } ] }
|
|
@@ -92,7 +92,7 @@ orbital WinterSkiBoardOrbital {
|
|
|
92
92
|
controls: { type: control-grid, kind: "dpad", directionEvents: { left: "STEER_LEFT", right: "STEER_RIGHT" }, directionAssets: { left: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "33,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-left", thumbnailUrl: "" }, right: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "31,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-right", thumbnailUrl: "" } } }
|
|
93
93
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @config.tiles "x") (array/max @config.tiles "y"))))), pos: { x: (/ (+ (array/min @config.tiles "x") (array/max @config.tiles "x")) 2), y: (/ (+ (array/min @config.tiles "y") (array/max @config.tiles "y")) 2) } }, projection: "flat", showMinimap: false, keyMap: { ArrowLeft: "STEER_LEFT", KeyA: "STEER_LEFT", ArrowRight: "STEER_RIGHT", KeyD: "STEER_RIGHT" }, children: [
|
|
94
94
|
{ type: draw-shape-layer, items: (array/map @config.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
95
|
-
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width:
|
|
95
|
+
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width: 1, height: 1 })) }
|
|
96
96
|
{ type: draw-sprite-layer, items: (array/map @entity.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (if (== (object/get @f type) "gate_red") (object/merge (object/get @f sprite) { sprite: (if (== (% @entity.frame 2) 0) "8,0" "8,1") }) (if (== (object/get @f type) "gate_blue") (object/merge (object/get @f sprite) { sprite: (if (== (% @entity.frame 2) 0) "9,0" "9,1") }) (object/get @f sprite))), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
97
97
|
{ type: draw-sprite-layer, items: [ { type: draw-sprite, position: { x: @entity.hero.x, y: @entity.hero.y }, asset: (object/get (object/get @config.assetManifest units) hero), anchor: "ground", width: 0.5, height: 0.5 } ] }
|
|
98
98
|
{ type: draw-sprite-layer, items: (array/map @entity.effects (fn e { type: draw-sprite, position: { x: (object/get @e x), y: (object/get @e y) }, asset: (object/get (object/get @config.assetManifest effects) (object/get @e key)) })) }
|
|
@@ -118,7 +118,7 @@ orbital WinterSkiBoardOrbital {
|
|
|
118
118
|
controls: { type: control-grid, kind: "dpad", directionEvents: { left: "STEER_LEFT", right: "STEER_RIGHT" }, directionAssets: { left: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "33,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-left", thumbnailUrl: "" }, right: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "31,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-right", thumbnailUrl: "" } } }
|
|
119
119
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @config.tiles "x") (array/max @config.tiles "y"))))), pos: { x: (/ (+ (array/min @config.tiles "x") (array/max @config.tiles "x")) 2), y: (/ (+ (array/min @config.tiles "y") (array/max @config.tiles "y")) 2) } }, projection: "flat", showMinimap: false, keyMap: { ArrowLeft: "STEER_LEFT", KeyA: "STEER_LEFT", ArrowRight: "STEER_RIGHT", KeyD: "STEER_RIGHT" }, children: [
|
|
120
120
|
{ type: draw-shape-layer, items: (array/map @config.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
121
|
-
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width:
|
|
121
|
+
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width: 1, height: 1 })) }
|
|
122
122
|
{ type: draw-sprite-layer, items: (array/map @entity.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (if (== (object/get @f type) "gate_red") (object/merge (object/get @f sprite) { sprite: (if (== (% @entity.frame 2) 0) "8,0" "8,1") }) (if (== (object/get @f type) "gate_blue") (object/merge (object/get @f sprite) { sprite: (if (== (% @entity.frame 2) 0) "9,0" "9,1") }) (object/get @f sprite))), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
123
123
|
{ type: draw-sprite-layer, items: [ { type: draw-sprite, position: { x: @entity.hero.x, y: @entity.hero.y }, asset: (object/get (object/get @config.assetManifest units) hero), anchor: "ground", width: 0.5, height: 0.5 } ] }
|
|
124
124
|
{ type: draw-sprite-layer, items: (array/map @entity.effects (fn e { type: draw-sprite, position: { x: (object/get @e x), y: (object/get @e y) }, asset: (object/get (object/get @config.assetManifest effects) (object/get @e key)) })) }
|
|
@@ -145,7 +145,7 @@ orbital WinterSkiBoardOrbital {
|
|
|
145
145
|
controls: { type: control-grid, kind: "dpad", directionEvents: { left: "STEER_LEFT", right: "STEER_RIGHT" }, directionAssets: { left: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "33,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-left", thumbnailUrl: "" }, right: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "31,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-right", thumbnailUrl: "" } } }
|
|
146
146
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @config.tiles "x") (array/max @config.tiles "y"))))), pos: { x: (/ (+ (array/min @config.tiles "x") (array/max @config.tiles "x")) 2), y: (/ (+ (array/min @config.tiles "y") (array/max @config.tiles "y")) 2) } }, projection: "flat", showMinimap: false, keyMap: { ArrowLeft: "STEER_LEFT", KeyA: "STEER_LEFT", ArrowRight: "STEER_RIGHT", KeyD: "STEER_RIGHT" }, children: [
|
|
147
147
|
{ type: draw-shape-layer, items: (array/map @config.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
148
|
-
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width:
|
|
148
|
+
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width: 1, height: 1 })) }
|
|
149
149
|
{ type: draw-sprite-layer, items: (array/map @entity.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (if (== (object/get @f type) "gate_red") (object/merge (object/get @f sprite) { sprite: (if (== (% @entity.frame 2) 0) "8,0" "8,1") }) (if (== (object/get @f type) "gate_blue") (object/merge (object/get @f sprite) { sprite: (if (== (% @entity.frame 2) 0) "9,0" "9,1") }) (object/get @f sprite))), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
150
150
|
{ type: draw-sprite-layer, items: [ { type: draw-sprite, position: { x: @entity.hero.x, y: @entity.hero.y }, asset: (object/get (object/get @config.assetManifest units) hero), anchor: "ground", width: 0.5, height: 0.5 } ] }
|
|
151
151
|
{ type: draw-sprite-layer, items: (array/map @entity.effects (fn e { type: draw-sprite, position: { x: (object/get @e x), y: (object/get @e y) }, asset: (object/get (object/get @config.assetManifest effects) (object/get @e key)) })) }
|
|
@@ -165,7 +165,7 @@ orbital WinterSkiBoardOrbital {
|
|
|
165
165
|
overlay: { type: game-menu, title: (if (== @entity.result "victory") "VICTORY" "DEFEAT"), subtitle: (if (== @entity.result "victory") "Three runs conquered" "Wiped out on the slope"), options: [ { id: "again", label: "Play Again", event: "PLAY_AGAIN", variant: "primary" } ] }
|
|
166
166
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @config.tiles "x") (array/max @config.tiles "y"))))), pos: { x: (/ (+ (array/min @config.tiles "x") (array/max @config.tiles "x")) 2), y: (/ (+ (array/min @config.tiles "y") (array/max @config.tiles "y")) 2) } }, projection: "flat", showMinimap: false, keyMap: { ArrowLeft: "STEER_LEFT", KeyA: "STEER_LEFT", ArrowRight: "STEER_RIGHT", KeyD: "STEER_RIGHT" }, children: [
|
|
167
167
|
{ type: draw-shape-layer, items: (array/map @config.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
168
|
-
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width:
|
|
168
|
+
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width: 1, height: 1 })) }
|
|
169
169
|
{ type: draw-sprite-layer, items: (array/map @entity.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (if (== (object/get @f type) "gate_red") (object/merge (object/get @f sprite) { sprite: (if (== (% @entity.frame 2) 0) "8,0" "8,1") }) (if (== (object/get @f type) "gate_blue") (object/merge (object/get @f sprite) { sprite: (if (== (% @entity.frame 2) 0) "9,0" "9,1") }) (object/get @f sprite))), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
170
170
|
{ type: draw-sprite-layer, items: [ { type: draw-sprite, position: { x: @entity.hero.x, y: @entity.hero.y }, asset: (object/get (object/get @config.assetManifest units) hero), anchor: "ground", width: 0.5, height: 0.5 } ] }
|
|
171
171
|
{ type: draw-sprite-layer, items: (array/map @entity.effects (fn e { type: draw-sprite, position: { x: (object/get @e x), y: (object/get @e y) }, asset: (object/get (object/get @config.assetManifest effects) (object/get @e key)) })) }
|
|
@@ -194,7 +194,7 @@ orbital WinterSkiBoardOrbital {
|
|
|
194
194
|
controls: { type: control-grid, kind: "dpad", directionEvents: { left: "STEER_LEFT", right: "STEER_RIGHT" }, directionAssets: { left: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "33,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-left", thumbnailUrl: "" }, right: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "31,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-right", thumbnailUrl: "" } } }
|
|
195
195
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @config.tiles "x") (array/max @config.tiles "y"))))), pos: { x: (/ (+ (array/min @config.tiles "x") (array/max @config.tiles "x")) 2), y: (/ (+ (array/min @config.tiles "y") (array/max @config.tiles "y")) 2) } }, projection: "flat", showMinimap: false, keyMap: { ArrowLeft: "STEER_LEFT", KeyA: "STEER_LEFT", ArrowRight: "STEER_RIGHT", KeyD: "STEER_RIGHT" }, children: [
|
|
196
196
|
{ type: draw-shape-layer, items: (array/map @config.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
197
|
-
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width:
|
|
197
|
+
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width: 1, height: 1 })) }
|
|
198
198
|
{ type: draw-sprite-layer, items: (array/map @entity.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (if (== (object/get @f type) "gate_red") (object/merge (object/get @f sprite) { sprite: (if (== (% @entity.frame 2) 0) "8,0" "8,1") }) (if (== (object/get @f type) "gate_blue") (object/merge (object/get @f sprite) { sprite: (if (== (% @entity.frame 2) 0) "9,0" "9,1") }) (object/get @f sprite))), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
199
199
|
{ type: draw-sprite-layer, items: [ { type: draw-sprite, position: { x: @entity.hero.x, y: @entity.hero.y }, asset: (object/get (object/get @config.assetManifest units) hero), anchor: "ground", width: 0.5, height: 0.5 } ] }
|
|
200
200
|
{ type: draw-sprite-layer, items: (array/map @entity.effects (fn e { type: draw-sprite, position: { x: (object/get @e x), y: (object/get @e y) }, asset: (object/get (object/get @config.assetManifest effects) (object/get @e key)) })) }
|
|
@@ -233,7 +233,7 @@ orbital WinterSkiBoardOrbital {
|
|
|
233
233
|
controls: { type: control-grid, kind: "dpad", directionEvents: { left: "STEER_LEFT", right: "STEER_RIGHT" }, directionAssets: { left: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "33,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-left", thumbnailUrl: "" }, right: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "31,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-right", thumbnailUrl: "" } } }
|
|
234
234
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @config.tiles "x") (array/max @config.tiles "y"))))), pos: { x: (/ (+ (array/min @config.tiles "x") (array/max @config.tiles "x")) 2), y: (/ (+ (array/min @config.tiles "y") (array/max @config.tiles "y")) 2) } }, projection: "flat", showMinimap: false, keyMap: { ArrowLeft: "STEER_LEFT", KeyA: "STEER_LEFT", ArrowRight: "STEER_RIGHT", KeyD: "STEER_RIGHT" }, children: [
|
|
235
235
|
{ type: draw-shape-layer, items: (array/map @config.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
236
|
-
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width:
|
|
236
|
+
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width: 1, height: 1 })) }
|
|
237
237
|
{ type: draw-sprite-layer, items: (array/map @entity.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (if (== (object/get @f type) "gate_red") (object/merge (object/get @f sprite) { sprite: (if (== (% @entity.frame 2) 0) "8,0" "8,1") }) (if (== (object/get @f type) "gate_blue") (object/merge (object/get @f sprite) { sprite: (if (== (% @entity.frame 2) 0) "9,0" "9,1") }) (object/get @f sprite))), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
238
238
|
{ type: draw-sprite-layer, items: [ { type: draw-sprite, position: { x: @entity.hero.x, y: @entity.hero.y }, asset: (object/get (object/get @config.assetManifest units) hero), anchor: "ground", width: 0.5, height: 0.5 } ] }
|
|
239
239
|
{ type: draw-sprite-layer, items: (array/map @entity.effects (fn e { type: draw-sprite, position: { x: (object/get @e x), y: (object/get @e y) }, asset: (object/get (object/get @config.assetManifest effects) (object/get @e key)) })) }
|
|
@@ -253,7 +253,7 @@ orbital WinterSkiBoardOrbital {
|
|
|
253
253
|
controls: { type: control-grid, kind: "dpad", directionEvents: { left: "STEER_LEFT", right: "STEER_RIGHT" }, directionAssets: { left: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "33,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-left", thumbnailUrl: "" }, right: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "31,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-right", thumbnailUrl: "" } } }
|
|
254
254
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @config.tiles "x") (array/max @config.tiles "y"))))), pos: { x: (/ (+ (array/min @config.tiles "x") (array/max @config.tiles "x")) 2), y: (/ (+ (array/min @config.tiles "y") (array/max @config.tiles "y")) 2) } }, projection: "flat", showMinimap: false, keyMap: { ArrowLeft: "STEER_LEFT", KeyA: "STEER_LEFT", ArrowRight: "STEER_RIGHT", KeyD: "STEER_RIGHT" }, children: [
|
|
255
255
|
{ type: draw-shape-layer, items: (array/map @config.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
256
|
-
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width:
|
|
256
|
+
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite), anchor: "center", width: 1, height: 1 })) }
|
|
257
257
|
{ type: draw-sprite-layer, items: (array/map @entity.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (if (== (object/get @f type) "gate_red") (object/merge (object/get @f sprite) { sprite: (if (== (% @entity.frame 2) 0) "8,0" "8,1") }) (if (== (object/get @f type) "gate_blue") (object/merge (object/get @f sprite) { sprite: (if (== (% @entity.frame 2) 0) "9,0" "9,1") }) (object/get @f sprite))), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
258
258
|
{ type: draw-sprite-layer, items: [ { type: draw-sprite, position: { x: @entity.hero.x, y: @entity.hero.y }, asset: (object/get (object/get @config.assetManifest units) hero), anchor: "ground", width: 0.5, height: 0.5 } ] }
|
|
259
259
|
{ type: draw-sprite-layer, items: (array/map @entity.effects (fn e { type: draw-sprite, position: { x: (object/get @e x), y: (object/get @e y) }, asset: (object/get (object/get @config.assetManifest effects) (object/get @e key)) })) }
|