@almadar/std 16.153.0 → 16.154.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/behaviors/lolo/ui/game/molecules/std-crew-board-2d.lolo +4 -4
  2. package/behaviors/lolo/ui/game/molecules/std-dungeon-board-2d.lolo +6 -6
  3. package/behaviors/lolo/ui/game/molecules/std-tactics-board-2d.lolo +41 -9
  4. package/behaviors/lolo/ui/game/molecules/std-worldmap-board-2d.lolo +2 -2
  5. package/behaviors/lolo/ui/game/organisms/ui-arena-board.lolo +2 -2
  6. package/behaviors/lolo/ui/game/organisms/ui-battle-board.lolo +110 -7
  7. package/behaviors/lolo/ui/game/organisms/ui-builder-board.lolo +5 -20
  8. package/behaviors/lolo/ui/game/organisms/ui-card-battler-board.lolo +2 -0
  9. package/behaviors/lolo/ui/game/organisms/ui-castle-board.lolo +3 -3
  10. package/behaviors/lolo/ui/game/organisms/ui-city-builder-board.lolo +9 -7
  11. package/behaviors/lolo/ui/game/organisms/ui-grid-tactics-demo-board.lolo +2 -2
  12. package/behaviors/lolo/ui/game/organisms/ui-hex-strategy-board.lolo +5 -1
  13. package/behaviors/lolo/ui/game/organisms/ui-holiday-runner-board.lolo +1 -1
  14. package/behaviors/lolo/ui/game/organisms/ui-minigolf-board.lolo +22 -22
  15. package/behaviors/lolo/ui/game/organisms/ui-pinball-board.lolo +7 -7
  16. package/behaviors/lolo/ui/game/organisms/ui-pirate-board.lolo +14 -14
  17. package/behaviors/lolo/ui/game/organisms/ui-platformer-board.lolo +4 -0
  18. package/behaviors/lolo/ui/game/organisms/ui-sports-board.lolo +10 -7
  19. package/behaviors/lolo/ui/game/organisms/ui-tactics-demo-2d.lolo +7 -3
  20. package/behaviors/lolo/ui/game/organisms/ui-tanks-board.lolo +5 -1
  21. package/behaviors/lolo/ui/game/organisms/ui-topdown-rts-board.lolo +5 -1
  22. package/behaviors/lolo/ui/game/organisms/ui-tower-defense-board.lolo +8 -8
  23. package/behaviors/lolo/ui/game/organisms/ui-uncontrolled-battle-board.lolo +5 -5
  24. package/behaviors/lolo/ui/game/organisms/ui-world-map-board.lolo +3 -3
  25. package/behaviors/registry/ui/game/molecules/std-crew-board-2d.orb +10 -12
  26. package/behaviors/registry/ui/game/molecules/std-dungeon-board-2d.orb +15 -18
  27. package/behaviors/registry/ui/game/molecules/std-tactics-board-2d.orb +860 -138
  28. package/behaviors/registry/ui/game/molecules/std-worldmap-board-2d.orb +7 -60
  29. package/behaviors/registry/ui/game/organisms/ui-arena-board.orb +5 -6
  30. package/behaviors/registry/ui/game/organisms/ui-battle-board.orb +86 -99
  31. package/behaviors/registry/ui/game/organisms/ui-builder-board.orb +21 -226
  32. package/behaviors/registry/ui/game/organisms/ui-card-battler-board.orb +42 -0
  33. package/behaviors/registry/ui/game/organisms/ui-castle-board.orb +30 -9
  34. package/behaviors/registry/ui/game/organisms/ui-city-builder-board.orb +49 -0
  35. package/behaviors/registry/ui/game/organisms/ui-grid-tactics-demo-board.orb +5 -6
  36. package/behaviors/registry/ui/game/organisms/ui-hex-strategy-board.orb +30 -10
  37. package/behaviors/registry/ui/game/organisms/ui-holiday-runner-board.orb +2 -3
  38. package/behaviors/registry/ui/game/organisms/ui-minigolf-board.orb +55 -11
  39. package/behaviors/registry/ui/game/organisms/ui-pinball-board.orb +8 -8
  40. package/behaviors/registry/ui/game/organisms/ui-pirate-board.orb +14 -0
  41. package/behaviors/registry/ui/game/organisms/ui-platformer-board.orb +72 -0
  42. package/behaviors/registry/ui/game/organisms/ui-sports-board.orb +60 -0
  43. package/behaviors/registry/ui/game/organisms/ui-tactics-demo-2d.orb +48 -28
  44. package/behaviors/registry/ui/game/organisms/ui-tanks-board.orb +30 -10
  45. package/behaviors/registry/ui/game/organisms/ui-topdown-rts-board.orb +31 -12
  46. package/behaviors/registry/ui/game/organisms/ui-tower-defense-board.orb +8 -0
  47. package/behaviors/registry/ui/game/organisms/ui-uncontrolled-battle-board.orb +5 -0
  48. package/behaviors/registry/ui/game/organisms/ui-world-map-board.orb +8 -12
  49. package/dist/behaviors/behaviors-registry.json +60 -50
  50. package/dist/behaviors/registry/ui/game/molecules/std-crew-board-2d.orb +10 -12
  51. package/dist/behaviors/registry/ui/game/molecules/std-dungeon-board-2d.orb +15 -18
  52. package/dist/behaviors/registry/ui/game/molecules/std-tactics-board-2d.orb +860 -138
  53. package/dist/behaviors/registry/ui/game/molecules/std-worldmap-board-2d.orb +7 -60
  54. package/dist/behaviors/registry/ui/game/organisms/ui-arena-board.orb +5 -6
  55. package/dist/behaviors/registry/ui/game/organisms/ui-battle-board.orb +86 -99
  56. package/dist/behaviors/registry/ui/game/organisms/ui-builder-board.orb +21 -226
  57. package/dist/behaviors/registry/ui/game/organisms/ui-card-battler-board.orb +42 -0
  58. package/dist/behaviors/registry/ui/game/organisms/ui-castle-board.orb +30 -9
  59. package/dist/behaviors/registry/ui/game/organisms/ui-city-builder-board.orb +49 -0
  60. package/dist/behaviors/registry/ui/game/organisms/ui-grid-tactics-demo-board.orb +5 -6
  61. package/dist/behaviors/registry/ui/game/organisms/ui-hex-strategy-board.orb +30 -10
  62. package/dist/behaviors/registry/ui/game/organisms/ui-holiday-runner-board.orb +2 -3
  63. package/dist/behaviors/registry/ui/game/organisms/ui-minigolf-board.orb +55 -11
  64. package/dist/behaviors/registry/ui/game/organisms/ui-pinball-board.orb +8 -8
  65. package/dist/behaviors/registry/ui/game/organisms/ui-pirate-board.orb +14 -0
  66. package/dist/behaviors/registry/ui/game/organisms/ui-platformer-board.orb +72 -0
  67. package/dist/behaviors/registry/ui/game/organisms/ui-sports-board.orb +60 -0
  68. package/dist/behaviors/registry/ui/game/organisms/ui-tactics-demo-2d.orb +48 -28
  69. package/dist/behaviors/registry/ui/game/organisms/ui-tanks-board.orb +30 -10
  70. package/dist/behaviors/registry/ui/game/organisms/ui-topdown-rts-board.orb +31 -12
  71. package/dist/behaviors/registry/ui/game/organisms/ui-tower-defense-board.orb +8 -0
  72. package/dist/behaviors/registry/ui/game/organisms/ui-uncontrolled-battle-board.orb +5 -0
  73. package/dist/behaviors/registry/ui/game/organisms/ui-world-map-board.orb +8 -12
  74. package/dist/behaviors-registry.json +60 -50
  75. package/package.json +2 -2
@@ -105,6 +105,10 @@ orbital HexStrategyBoardOrbital {
105
105
  config { running: true, pointsPerKill: 10, startScore: 0, initialEnemies: 2 }
106
106
  }
107
107
 
108
+ trait AnimClock = Frame.traits.AnimClock -> GameState {
109
+ config { frames: [] }
110
+ }
111
+
108
112
  trait Player = Frame.traits.PlayerIntent -> GameState {
109
113
  config {
110
114
  gridWidth: 6
@@ -120,5 +124,5 @@ orbital HexStrategyBoardOrbital {
120
124
  }
121
125
  }
122
126
 
123
- page "/hex-strategy-board" as HexStrategyBoardPage -> Authority, FxDecay, RoundLogic, ScoreKeeper, Player
127
+ page "/hex-strategy-board" as HexStrategyBoardPage -> Authority, FxDecay, RoundLogic, ScoreKeeper, Player, AnimClock
124
128
  }
@@ -94,7 +94,7 @@ orbital HolidayRunnerBoardOrbital {
94
94
  (set @entity.units @config.units)
95
95
  (set @entity.distance 0)
96
96
  (set @entity.score 0)
97
- (set @entity.result "")
97
+ (set @entity.result "none")
98
98
  (set @entity.effects [])
99
99
  (set @entity.selectedUnitId "")
100
100
  (set @entity.validMoves [])
@@ -125,9 +125,9 @@ orbital MinigolfBoardOrbital {
125
125
  hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.json", sprite: "blue_panel.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
126
126
  hud: { type: game-hud, stats: [ { label: "Hole", value: @entity.hole, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_circle.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-hole", thumbnailUrl: "" } }, { label: "Strokes", value: @entity.strokes, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_stars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-strokes", thumbnailUrl: "" } }, { label: "Par", value: @entity.par, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_idea.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-par", thumbnailUrl: "" } }, { label: "Total", value: @entity.total, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_bars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-total", thumbnailUrl: "" } } ] }
127
127
  controls: { type: control-grid, kind: "dpad", directionEvents: { up: "PUTT_UP", down: "PUTT_DOWN", left: "PUTT_LEFT", right: "PUTT_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: "" } } }
128
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
128
+ children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
129
129
  { type: draw-sprite-layer, items: (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
130
- { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id) })) (fn s (object/get (object/get @s asset) url))) }
130
+ { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id), anchor: "center", width: 0.35, height: 0.35 })) (fn s (object/get (object/get @s asset) url))) }
131
131
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
132
132
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: (* 0.8 (/ (object/get @u health) (object/get @u maxHealth))), height: 0.12, fill: "#22c55e" })) }
133
133
  { type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position), offsetY: -0.85, color: "#ffffff" })) }
@@ -154,9 +154,9 @@ orbital MinigolfBoardOrbital {
154
154
  hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.json", sprite: "blue_panel.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
155
155
  hud: { type: game-hud, stats: [ { label: "Hole", value: @entity.hole, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_circle.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-hole", thumbnailUrl: "" } }, { label: "Strokes", value: @entity.strokes, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_stars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-strokes", thumbnailUrl: "" } }, { label: "Par", value: @entity.par, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_idea.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-par", thumbnailUrl: "" } }, { label: "Total", value: @entity.total, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_bars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-total", thumbnailUrl: "" } } ] }
156
156
  controls: { type: control-grid, kind: "dpad", directionEvents: { up: "PUTT_UP", down: "PUTT_DOWN", left: "PUTT_LEFT", right: "PUTT_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: "" } } }
157
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
157
+ children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
158
158
  { type: draw-sprite-layer, items: (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
159
- { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id) })) (fn s (object/get (object/get @s asset) url))) }
159
+ { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id), anchor: "center", width: 0.35, height: 0.35 })) (fn s (object/get (object/get @s asset) url))) }
160
160
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
161
161
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: (* 0.8 (/ (object/get @u health) (object/get @u maxHealth))), height: 0.12, fill: "#22c55e" })) }
162
162
  { type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position), offsetY: -0.85, color: "#ffffff" })) }
@@ -183,9 +183,9 @@ orbital MinigolfBoardOrbital {
183
183
  hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.json", sprite: "blue_panel.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
184
184
  hud: { type: game-hud, stats: [ { label: "Hole", value: @entity.hole, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_circle.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-hole", thumbnailUrl: "" } }, { label: "Strokes", value: @entity.strokes, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_stars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-strokes", thumbnailUrl: "" } }, { label: "Par", value: @entity.par, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_idea.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-par", thumbnailUrl: "" } }, { label: "Total", value: @entity.total, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_bars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-total", thumbnailUrl: "" } } ] }
185
185
  controls: { type: control-grid, kind: "dpad", directionEvents: { up: "PUTT_UP", down: "PUTT_DOWN", left: "PUTT_LEFT", right: "PUTT_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: "" } } }
186
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
186
+ children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
187
187
  { type: draw-sprite-layer, items: (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
188
- { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id) })) (fn s (object/get (object/get @s asset) url))) }
188
+ { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id), anchor: "center", width: 0.35, height: 0.35 })) (fn s (object/get (object/get @s asset) url))) }
189
189
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
190
190
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: (* 0.8 (/ (object/get @u health) (object/get @u maxHealth))), height: 0.12, fill: "#22c55e" })) }
191
191
  { type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position), offsetY: -0.85, color: "#ffffff" })) }
@@ -212,9 +212,9 @@ orbital MinigolfBoardOrbital {
212
212
  hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.json", sprite: "blue_panel.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
213
213
  hud: { type: game-hud, stats: [ { label: "Hole", value: @entity.hole, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_circle.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-hole", thumbnailUrl: "" } }, { label: "Strokes", value: @entity.strokes, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_stars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-strokes", thumbnailUrl: "" } }, { label: "Par", value: @entity.par, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_idea.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-par", thumbnailUrl: "" } }, { label: "Total", value: @entity.total, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_bars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-total", thumbnailUrl: "" } } ] }
214
214
  controls: { type: control-grid, kind: "dpad", directionEvents: { up: "PUTT_UP", down: "PUTT_DOWN", left: "PUTT_LEFT", right: "PUTT_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: "" } } }
215
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
215
+ children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
216
216
  { type: draw-sprite-layer, items: (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
217
- { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id) })) (fn s (object/get (object/get @s asset) url))) }
217
+ { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id), anchor: "center", width: 0.35, height: 0.35 })) (fn s (object/get (object/get @s asset) url))) }
218
218
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
219
219
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: (* 0.8 (/ (object/get @u health) (object/get @u maxHealth))), height: 0.12, fill: "#22c55e" })) }
220
220
  { type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position), offsetY: -0.85, color: "#ffffff" })) }
@@ -241,9 +241,9 @@ orbital MinigolfBoardOrbital {
241
241
  hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.json", sprite: "blue_panel.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
242
242
  hud: { type: game-hud, stats: [ { label: "Hole", value: @entity.hole, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_circle.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-hole", thumbnailUrl: "" } }, { label: "Strokes", value: @entity.strokes, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_stars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-strokes", thumbnailUrl: "" } }, { label: "Par", value: @entity.par, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_idea.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-par", thumbnailUrl: "" } }, { label: "Total", value: @entity.total, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_bars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-total", thumbnailUrl: "" } } ] }
243
243
  controls: { type: control-grid, kind: "dpad", directionEvents: { up: "PUTT_UP", down: "PUTT_DOWN", left: "PUTT_LEFT", right: "PUTT_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: "" } } }
244
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
244
+ children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
245
245
  { type: draw-sprite-layer, items: (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
246
- { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id) })) (fn s (object/get (object/get @s asset) url))) }
246
+ { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id), anchor: "center", width: 0.35, height: 0.35 })) (fn s (object/get (object/get @s asset) url))) }
247
247
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
248
248
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: (* 0.8 (/ (object/get @u health) (object/get @u maxHealth))), height: 0.12, fill: "#22c55e" })) }
249
249
  { type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position), offsetY: -0.85, color: "#ffffff" })) }
@@ -264,9 +264,9 @@ orbital MinigolfBoardOrbital {
264
264
  hud: { type: game-hud, stats: [ { label: "Hole", value: @entity.hole, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_circle.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-hole", thumbnailUrl: "" } }, { label: "Strokes", value: @entity.strokes, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_stars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-strokes", thumbnailUrl: "" } }, { label: "Par", value: @entity.par, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_idea.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-par", thumbnailUrl: "" } }, { label: "Total", value: @entity.total, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_bars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-total", thumbnailUrl: "" } } ] }
265
265
  addons: { type: stack, direction: vertical, gap: sm, children: [ { type: button, action: NEXT_HOLE, label: "Next Hole", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/greySheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/greySheet.json", sprite: "grey_checkmarkWhite.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-next", thumbnailUrl: "" }, variant: primary }, { type: button, action: PLAY_AGAIN, label: "Reset", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.json", sprite: "zoom_reset.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-reset", thumbnailUrl: "" }, variant: secondary } ] }
266
266
  overlay: { type: game-menu, title: (str/concat (str/concat "HOLE " @entity.hole) " COMPLETE"), subtitle: (if (< @entity.strokes @entity.par) (str/concat (str/concat "" (- @entity.par @entity.strokes)) " under par") (if (> @entity.strokes @entity.par) (str/concat (str/concat "" (- @entity.strokes @entity.par)) " over par") "Even par")), options: [ { id: "next", label: "Next Hole", event: "NEXT_HOLE", variant: "primary" }, { id: "reset", label: "Reset", event: "PLAY_AGAIN", variant: "secondary" } ] }
267
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
267
+ children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
268
268
  { type: draw-sprite-layer, items: (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
269
- { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id) })) (fn s (object/get (object/get @s asset) url))) }
269
+ { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id), anchor: "center", width: 0.35, height: 0.35 })) (fn s (object/get (object/get @s asset) url))) }
270
270
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
271
271
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: (* 0.8 (/ (object/get @u health) (object/get @u maxHealth))), height: 0.12, fill: "#22c55e" })) }
272
272
  { type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position), offsetY: -0.85, color: "#ffffff" })) }
@@ -282,9 +282,9 @@ orbital MinigolfBoardOrbital {
282
282
  hud: { type: game-hud, stats: [ { label: "Hole", value: @entity.hole, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_circle.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-hole", thumbnailUrl: "" } }, { label: "Strokes", value: @entity.strokes, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_stars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-strokes", thumbnailUrl: "" } }, { label: "Par", value: @entity.par, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_idea.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-par", thumbnailUrl: "" } }, { label: "Total", value: @entity.total, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_bars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-total", thumbnailUrl: "" } } ] }
283
283
  addons: { type: button, action: PLAY_AGAIN, label: "Play Again", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.json", sprite: "zoom_reset.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-reset", thumbnailUrl: "" }, variant: primary }
284
284
  overlay: { type: game-menu, title: "COURSE COMPLETE", subtitle: (if (< @entity.total @entity.totalPar) (str/concat (str/concat "" (- @entity.totalPar @entity.total)) " under par") (if (> @entity.total @entity.totalPar) (str/concat (str/concat "" (- @entity.total @entity.totalPar)) " over par") "Even par")), options: [ { id: "again", label: "Play Again", event: "PLAY_AGAIN", variant: "primary" } ] }
285
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
285
+ children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
286
286
  { type: draw-sprite-layer, items: (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
287
- { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id) })) (fn s (object/get (object/get @s asset) url))) }
287
+ { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id), anchor: "center", width: 0.35, height: 0.35 })) (fn s (object/get (object/get @s asset) url))) }
288
288
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
289
289
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: (* 0.8 (/ (object/get @u health) (object/get @u maxHealth))), height: 0.12, fill: "#22c55e" })) }
290
290
  { type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position), offsetY: -0.85, color: "#ffffff" })) }
@@ -313,9 +313,9 @@ orbital MinigolfBoardOrbital {
313
313
  hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.json", sprite: "blue_panel.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
314
314
  hud: { type: game-hud, stats: [ { label: "Hole", value: @entity.hole, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_circle.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-hole", thumbnailUrl: "" } }, { label: "Strokes", value: @entity.strokes, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_stars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-strokes", thumbnailUrl: "" } }, { label: "Par", value: @entity.par, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_idea.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-par", thumbnailUrl: "" } }, { label: "Total", value: @entity.total, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_bars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-total", thumbnailUrl: "" } } ] }
315
315
  controls: { type: control-grid, kind: "dpad", directionEvents: { up: "PUTT_UP", down: "PUTT_DOWN", left: "PUTT_LEFT", right: "PUTT_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: "" } } }
316
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
316
+ children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
317
317
  { type: draw-sprite-layer, items: (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
318
- { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id) })) (fn s (object/get (object/get @s asset) url))) }
318
+ { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id), anchor: "center", width: 0.35, height: 0.35 })) (fn s (object/get (object/get @s asset) url))) }
319
319
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
320
320
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: (* 0.8 (/ (object/get @u health) (object/get @u maxHealth))), height: 0.12, fill: "#22c55e" })) }
321
321
  { type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position), offsetY: -0.85, color: "#ffffff" })) }
@@ -343,9 +343,9 @@ orbital MinigolfBoardOrbital {
343
343
  hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.json", sprite: "blue_panel.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
344
344
  hud: { type: game-hud, stats: [ { label: "Hole", value: @entity.hole, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_circle.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-hole", thumbnailUrl: "" } }, { label: "Strokes", value: @entity.strokes, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_stars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-strokes", thumbnailUrl: "" } }, { label: "Par", value: @entity.par, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_idea.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-par", thumbnailUrl: "" } }, { label: "Total", value: @entity.total, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_bars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-total", thumbnailUrl: "" } } ] }
345
345
  controls: { type: control-grid, kind: "dpad", directionEvents: { up: "PUTT_UP", down: "PUTT_DOWN", left: "PUTT_LEFT", right: "PUTT_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: "" } } }
346
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
346
+ children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
347
347
  { type: draw-sprite-layer, items: (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
348
- { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id) })) (fn s (object/get (object/get @s asset) url))) }
348
+ { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id), anchor: "center", width: 0.35, height: 0.35 })) (fn s (object/get (object/get @s asset) url))) }
349
349
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
350
350
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: (* 0.8 (/ (object/get @u health) (object/get @u maxHealth))), height: 0.12, fill: "#22c55e" })) }
351
351
  { type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position), offsetY: -0.85, color: "#ffffff" })) }
@@ -375,9 +375,9 @@ orbital MinigolfBoardOrbital {
375
375
  hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.json", sprite: "blue_panel.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
376
376
  hud: { type: game-hud, stats: [ { label: "Hole", value: @entity.hole, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_circle.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-hole", thumbnailUrl: "" } }, { label: "Strokes", value: @entity.strokes, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_stars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-strokes", thumbnailUrl: "" } }, { label: "Par", value: @entity.par, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_idea.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-par", thumbnailUrl: "" } }, { label: "Total", value: @entity.total, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_bars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-total", thumbnailUrl: "" } } ] }
377
377
  controls: { type: control-grid, kind: "dpad", directionEvents: { up: "PUTT_UP", down: "PUTT_DOWN", left: "PUTT_LEFT", right: "PUTT_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: "" } } }
378
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
378
+ children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
379
379
  { type: draw-sprite-layer, items: (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
380
- { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id) })) (fn s (object/get (object/get @s asset) url))) }
380
+ { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id), anchor: "center", width: 0.35, height: 0.35 })) (fn s (object/get (object/get @s asset) url))) }
381
381
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
382
382
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: (* 0.8 (/ (object/get @u health) (object/get @u maxHealth))), height: 0.12, fill: "#22c55e" })) }
383
383
  { type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position), offsetY: -0.85, color: "#ffffff" })) }
@@ -395,9 +395,9 @@ orbital MinigolfBoardOrbital {
395
395
  hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/blueSheet.json", sprite: "blue_panel.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
396
396
  hud: { type: game-hud, stats: [ { label: "Hole", value: @entity.hole, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_circle.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-hole", thumbnailUrl: "" } }, { label: "Strokes", value: @entity.strokes, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_stars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-strokes", thumbnailUrl: "" } }, { label: "Par", value: @entity.par, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_idea.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-par", thumbnailUrl: "" } }, { label: "Total", value: @entity.total, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-emote-pack/ui/vector_style1.json", sprite: "emote_bars.png", role: "ui", category: "ui", animations: [], style: "", variant: "", dimension: "2d", aspect: "1:1", name: "icon-total", thumbnailUrl: "" } } ] }
397
397
  controls: { type: control-grid, kind: "dpad", directionEvents: { up: "PUTT_UP", down: "PUTT_DOWN", left: "PUTT_LEFT", right: "PUTT_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: "" } } }
398
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
398
+ children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: false, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "PUTT_UP", KeyW: "PUTT_UP", ArrowDown: "PUTT_DOWN", KeyS: "PUTT_DOWN", ArrowLeft: "PUTT_LEFT", KeyA: "PUTT_LEFT", ArrowRight: "PUTT_RIGHT", KeyD: "PUTT_RIGHT" }, children: [
399
399
  { type: draw-sprite-layer, items: (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
400
- { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id) })) (fn s (object/get (object/get @s asset) url))) }
400
+ { type: draw-sprite-layer, items: (array/filter (array/map @entity.units (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (object/get (object/get @u modelUrl) url) (object/get @u modelUrl) (object/get (object/get @config.assetManifest units) (object/get @u unitType))), id: (object/get @u id), anchor: "center", width: 0.35, height: 0.35 })) (fn s (object/get (object/get @s asset) url))) }
401
401
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
402
402
  { type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: (* 0.8 (/ (object/get @u health) (object/get @u maxHealth))), height: 0.12, fill: "#22c55e" })) }
403
403
  { type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position), offsetY: -0.85, color: "#ffffff" })) }
@@ -80,7 +80,7 @@ orbital PinballBoardOrbital {
80
80
  hud: { type: stack, direction: horizontal, gap: md, justify: between, children: [ { type: game-hud, stats: [ { label: "Score", value: @entity.score, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-rolling-ball-assets/features/rollingBall_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-rolling-ball-assets/features/rollingBall_sheet.json", sprite: "star.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-score", thumbnailUrl: "" } }, { label: "Balls", value: @entity.balls, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-puzzle-assets-2/features/spritesheet_balls.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-puzzle-assets-2/features/spritesheet_balls.json", sprite: "ballGrey_01.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-balls", thumbnailUrl: "" } } ] }, { type: game-audio-toggle } ] }
81
81
  controls: { type: button, action: LEFT_FLIPPER, label: "Left Flipper", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.json", sprite: "arrow_w.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-left-flipper", thumbnailUrl: "" }, variant: primary }
82
82
  addons: { type: stack, direction: vertical, gap: sm, children: [ { type: button, action: LAUNCH, label: "Launch", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/greySheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/greySheet.json", sprite: "grey_arrowUpWhite.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-launch", thumbnailUrl: "" }, variant: primary }, { type: button, action: RIGHT_FLIPPER, label: "Right Flipper", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.json", sprite: "arrow_e.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-right-flipper", thumbnailUrl: "" }, variant: primary } ] }
83
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "free", showMinimap: false, keyMap: { KeyZ: "LEFT_FLIPPER", ArrowLeft: "LEFT_FLIPPER", KeySlash: "RIGHT_FLIPPER", ArrowRight: "RIGHT_FLIPPER", Space: "LAUNCH" }, children: [
83
+ children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "free", showMinimap: false, keyMap: { KeyZ: "LEFT_FLIPPER", ArrowLeft: "LEFT_FLIPPER", Slash: "RIGHT_FLIPPER", ArrowRight: "RIGHT_FLIPPER", Space: "LAUNCH" }, children: [
84
84
  { type: draw-sprite-layer, items: (array/map (array/concat (array/map @config.bumpers (fn b { id: @b.id, x: @b.x, y: @b.y, type: "bumper", sprite: (object/get (object/get @config.assetManifest features) bumper) })) [ { id: "flipperL", x: @config.leftFlipperX, y: @config.flipperY, type: "paddle", sprite: (if @entity.leftFlipperActive (object/get (object/get @config.assetManifest features) paddleActive) (object/get (object/get @config.assetManifest features) paddle)) }, { id: "flipperR", x: @config.rightFlipperX, y: @config.flipperY, type: "paddle", sprite: (if @entity.rightFlipperActive (object/get (object/get @config.assetManifest features) paddleActive) (object/get (object/get @config.assetManifest features) paddle)) } ]) (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f sprite) })) }
85
85
  { type: draw-sprite-layer, items: (array/map [ { id: "ball", position: { x: (object/get @entity.ball x), y: (object/get @entity.ball y) }, sprite: (object/get (object/get @config.assetManifest units) ball), team: "player" } ] (fn u { type: draw-sprite, position: (object/get @u position), asset: (object/get @u sprite) })) }
86
86
  { 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)) })) }
@@ -106,7 +106,7 @@ orbital PinballBoardOrbital {
106
106
  hud: { type: stack, direction: horizontal, gap: md, justify: between, children: [ { type: game-hud, stats: [ { label: "Score", value: @entity.score, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-rolling-ball-assets/features/rollingBall_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-rolling-ball-assets/features/rollingBall_sheet.json", sprite: "star.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-score", thumbnailUrl: "" } }, { label: "Balls", value: @entity.balls, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-puzzle-assets-2/features/spritesheet_balls.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-puzzle-assets-2/features/spritesheet_balls.json", sprite: "ballGrey_01.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-balls", thumbnailUrl: "" } } ] }, { type: game-audio-toggle } ] }
107
107
  controls: { type: button, action: LEFT_FLIPPER, label: "Left Flipper", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.json", sprite: "arrow_w.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-left-flipper", thumbnailUrl: "" }, variant: primary }
108
108
  addons: { type: stack, direction: vertical, gap: sm, children: [ { type: button, action: LAUNCH, label: "Launch", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/greySheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/greySheet.json", sprite: "grey_arrowUpWhite.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-launch", thumbnailUrl: "" }, variant: primary }, { type: button, action: RIGHT_FLIPPER, label: "Right Flipper", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.json", sprite: "arrow_e.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-right-flipper", thumbnailUrl: "" }, variant: primary } ] }
109
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "free", showMinimap: false, keyMap: { KeyZ: "LEFT_FLIPPER", ArrowLeft: "LEFT_FLIPPER", KeySlash: "RIGHT_FLIPPER", ArrowRight: "RIGHT_FLIPPER", Space: "LAUNCH" }, children: [
109
+ children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "free", showMinimap: false, keyMap: { KeyZ: "LEFT_FLIPPER", ArrowLeft: "LEFT_FLIPPER", Slash: "RIGHT_FLIPPER", ArrowRight: "RIGHT_FLIPPER", Space: "LAUNCH" }, children: [
110
110
  { type: draw-sprite-layer, items: (array/map (array/concat (array/map @config.bumpers (fn b { id: @b.id, x: @b.x, y: @b.y, type: "bumper", sprite: (object/get (object/get @config.assetManifest features) bumper) })) [ { id: "flipperL", x: @config.leftFlipperX, y: @config.flipperY, type: "paddle", sprite: (if @entity.leftFlipperActive (object/get (object/get @config.assetManifest features) paddleActive) (object/get (object/get @config.assetManifest features) paddle)) }, { id: "flipperR", x: @config.rightFlipperX, y: @config.flipperY, type: "paddle", sprite: (if @entity.rightFlipperActive (object/get (object/get @config.assetManifest features) paddleActive) (object/get (object/get @config.assetManifest features) paddle)) } ]) (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f sprite) })) }
111
111
  { type: draw-sprite-layer, items: (array/map [ { id: "ball", position: { x: (object/get @entity.ball x), y: (object/get @entity.ball y) }, sprite: (object/get (object/get @config.assetManifest units) ball), team: "player" } ] (fn u { type: draw-sprite, position: (object/get @u position), asset: (object/get @u sprite) })) }
112
112
  { 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)) })) }
@@ -122,7 +122,7 @@ orbital PinballBoardOrbital {
122
122
  controls: { type: button, action: LEFT_FLIPPER, label: "Left Flipper", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.json", sprite: "arrow_w.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-left-flipper", thumbnailUrl: "" }, variant: primary }
123
123
  addons: { type: stack, direction: vertical, gap: sm, children: [ { type: button, action: LAUNCH, label: "Launch", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/greySheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/greySheet.json", sprite: "grey_arrowUpWhite.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-launch", thumbnailUrl: "" }, variant: primary }, { type: button, action: RIGHT_FLIPPER, label: "Right Flipper", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.json", sprite: "arrow_e.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-right-flipper", thumbnailUrl: "" }, variant: primary } ] }
124
124
  overlay: { type: game-menu, title: "GAME OVER", subtitle: (str/concat "Final Score: " @entity.score), options: [ { id: "again", label: "Play Again", event: "PLAY_AGAIN", variant: "primary" } ] }
125
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "free", showMinimap: false, keyMap: { KeyZ: "LEFT_FLIPPER", ArrowLeft: "LEFT_FLIPPER", KeySlash: "RIGHT_FLIPPER", ArrowRight: "RIGHT_FLIPPER", Space: "LAUNCH" }, children: [
125
+ children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "free", showMinimap: false, keyMap: { KeyZ: "LEFT_FLIPPER", ArrowLeft: "LEFT_FLIPPER", Slash: "RIGHT_FLIPPER", ArrowRight: "RIGHT_FLIPPER", Space: "LAUNCH" }, children: [
126
126
  { type: draw-sprite-layer, items: (array/map (array/concat (array/map @config.bumpers (fn b { id: @b.id, x: @b.x, y: @b.y, type: "bumper", sprite: (object/get (object/get @config.assetManifest features) bumper) })) [ { id: "flipperL", x: @config.leftFlipperX, y: @config.flipperY, type: "paddle", sprite: (if @entity.leftFlipperActive (object/get (object/get @config.assetManifest features) paddleActive) (object/get (object/get @config.assetManifest features) paddle)) }, { id: "flipperR", x: @config.rightFlipperX, y: @config.flipperY, type: "paddle", sprite: (if @entity.rightFlipperActive (object/get (object/get @config.assetManifest features) paddleActive) (object/get (object/get @config.assetManifest features) paddle)) } ]) (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f sprite) })) }
127
127
  { type: draw-sprite-layer, items: (array/map [ { id: "ball", position: { x: (object/get @entity.ball x), y: (object/get @entity.ball y) }, sprite: (object/get (object/get @config.assetManifest units) ball), team: "player" } ] (fn u { type: draw-sprite, position: (object/get @u position), asset: (object/get @u sprite) })) }
128
128
  { 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)) })) }
@@ -147,7 +147,7 @@ orbital PinballBoardOrbital {
147
147
  hud: { type: stack, direction: horizontal, gap: md, justify: between, children: [ { type: game-hud, stats: [ { label: "Score", value: @entity.score, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-rolling-ball-assets/features/rollingBall_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-rolling-ball-assets/features/rollingBall_sheet.json", sprite: "star.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-score", thumbnailUrl: "" } }, { label: "Balls", value: @entity.balls, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-puzzle-assets-2/features/spritesheet_balls.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-puzzle-assets-2/features/spritesheet_balls.json", sprite: "ballGrey_01.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-balls", thumbnailUrl: "" } } ] }, { type: game-audio-toggle } ] }
148
148
  controls: { type: button, action: LEFT_FLIPPER, label: "Left Flipper", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.json", sprite: "arrow_w.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-left-flipper", thumbnailUrl: "" }, variant: primary }
149
149
  addons: { type: stack, direction: vertical, gap: sm, children: [ { type: button, action: LAUNCH, label: "Launch", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/greySheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/greySheet.json", sprite: "grey_arrowUpWhite.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-launch", thumbnailUrl: "" }, variant: primary }, { type: button, action: RIGHT_FLIPPER, label: "Right Flipper", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.json", sprite: "arrow_e.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-right-flipper", thumbnailUrl: "" }, variant: primary } ] }
150
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "free", showMinimap: false, keyMap: { KeyZ: "LEFT_FLIPPER", ArrowLeft: "LEFT_FLIPPER", KeySlash: "RIGHT_FLIPPER", ArrowRight: "RIGHT_FLIPPER", Space: "LAUNCH" }, children: [
150
+ children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "free", showMinimap: false, keyMap: { KeyZ: "LEFT_FLIPPER", ArrowLeft: "LEFT_FLIPPER", Slash: "RIGHT_FLIPPER", ArrowRight: "RIGHT_FLIPPER", Space: "LAUNCH" }, children: [
151
151
  { type: draw-sprite-layer, items: (array/map (array/concat (array/map @config.bumpers (fn b { id: @b.id, x: @b.x, y: @b.y, type: "bumper", sprite: (object/get (object/get @config.assetManifest features) bumper) })) [ { id: "flipperL", x: @config.leftFlipperX, y: @config.flipperY, type: "paddle", sprite: (if @entity.leftFlipperActive (object/get (object/get @config.assetManifest features) paddleActive) (object/get (object/get @config.assetManifest features) paddle)) }, { id: "flipperR", x: @config.rightFlipperX, y: @config.flipperY, type: "paddle", sprite: (if @entity.rightFlipperActive (object/get (object/get @config.assetManifest features) paddleActive) (object/get (object/get @config.assetManifest features) paddle)) } ]) (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f sprite) })) }
152
152
  { type: draw-sprite-layer, items: (array/map [ { id: "ball", position: { x: (object/get @entity.ball x), y: (object/get @entity.ball y) }, sprite: (object/get (object/get @config.assetManifest units) ball), team: "player" } ] (fn u { type: draw-sprite, position: (object/get @u position), asset: (object/get @u sprite) })) }
153
153
  { 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)) })) }
@@ -183,7 +183,7 @@ orbital PinballBoardOrbital {
183
183
  hud: { type: stack, direction: horizontal, gap: md, justify: between, children: [ { type: game-hud, stats: [ { label: "Score", value: @entity.score, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-rolling-ball-assets/features/rollingBall_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-rolling-ball-assets/features/rollingBall_sheet.json", sprite: "star.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-score", thumbnailUrl: "" } }, { label: "Balls", value: @entity.balls, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-puzzle-assets-2/features/spritesheet_balls.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-puzzle-assets-2/features/spritesheet_balls.json", sprite: "ballGrey_01.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-balls", thumbnailUrl: "" } } ] }, { type: game-audio-toggle } ] }
184
184
  controls: { type: button, action: LEFT_FLIPPER, label: "Left Flipper", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.json", sprite: "arrow_w.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-left-flipper", thumbnailUrl: "" }, variant: primary }
185
185
  addons: { type: stack, direction: vertical, gap: sm, children: [ { type: button, action: LAUNCH, label: "Launch", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/greySheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/greySheet.json", sprite: "grey_arrowUpWhite.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-launch", thumbnailUrl: "" }, variant: primary }, { type: button, action: RIGHT_FLIPPER, label: "Right Flipper", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.json", sprite: "arrow_e.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-right-flipper", thumbnailUrl: "" }, variant: primary } ] }
186
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "free", showMinimap: false, keyMap: { KeyZ: "LEFT_FLIPPER", ArrowLeft: "LEFT_FLIPPER", KeySlash: "RIGHT_FLIPPER", ArrowRight: "RIGHT_FLIPPER", Space: "LAUNCH" }, children: [
186
+ children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "free", showMinimap: false, keyMap: { KeyZ: "LEFT_FLIPPER", ArrowLeft: "LEFT_FLIPPER", Slash: "RIGHT_FLIPPER", ArrowRight: "RIGHT_FLIPPER", Space: "LAUNCH" }, children: [
187
187
  { type: draw-sprite-layer, items: (array/map (array/concat (array/map @config.bumpers (fn b { id: @b.id, x: @b.x, y: @b.y, type: "bumper", sprite: (object/get (object/get @config.assetManifest features) bumper) })) [ { id: "flipperL", x: @config.leftFlipperX, y: @config.flipperY, type: "paddle", sprite: (if @entity.leftFlipperActive (object/get (object/get @config.assetManifest features) paddleActive) (object/get (object/get @config.assetManifest features) paddle)) }, { id: "flipperR", x: @config.rightFlipperX, y: @config.flipperY, type: "paddle", sprite: (if @entity.rightFlipperActive (object/get (object/get @config.assetManifest features) paddleActive) (object/get (object/get @config.assetManifest features) paddle)) } ]) (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f sprite) })) }
188
188
  { type: draw-sprite-layer, items: (array/map [ { id: "ball", position: { x: (object/get @entity.ball x), y: (object/get @entity.ball y) }, sprite: (object/get (object/get @config.assetManifest units) ball), team: "player" } ] (fn u { type: draw-sprite, position: (object/get @u position), asset: (object/get @u sprite) })) }
189
189
  { 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)) })) }
@@ -200,7 +200,7 @@ orbital PinballBoardOrbital {
200
200
  hud: { type: stack, direction: horizontal, gap: md, justify: between, children: [ { type: game-hud, stats: [ { label: "Score", value: @entity.score, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-rolling-ball-assets/features/rollingBall_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-rolling-ball-assets/features/rollingBall_sheet.json", sprite: "star.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-score", thumbnailUrl: "" } }, { label: "Balls", value: @entity.balls, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-puzzle-assets-2/features/spritesheet_balls.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pinball-board/kenney-puzzle-assets-2/features/spritesheet_balls.json", sprite: "ballGrey_01.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-balls", thumbnailUrl: "" } } ] }, { type: game-audio-toggle } ] }
201
201
  controls: { type: button, action: LEFT_FLIPPER, label: "Left Flipper", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.json", sprite: "arrow_w.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-left-flipper", thumbnailUrl: "" }, variant: primary }
202
202
  addons: { type: stack, direction: vertical, gap: sm, children: [ { type: button, action: LAUNCH, label: "Launch", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/greySheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-pack/ui/greySheet.json", sprite: "grey_arrowUpWhite.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-launch", thumbnailUrl: "" }, variant: primary }, { type: button, action: RIGHT_FLIPPER, label: "Right Flipper", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-cursor-pack/ui/kenney-cursor-pack.generated.json", sprite: "arrow_e.png", role: "ui", category: "ui", animations: [], style: "vector", variant: "", dimension: "2d", aspect: "1:1", name: "icon-right-flipper", thumbnailUrl: "" }, variant: primary } ] }
203
- children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "free", showMinimap: false, keyMap: { KeyZ: "LEFT_FLIPPER", ArrowLeft: "LEFT_FLIPPER", KeySlash: "RIGHT_FLIPPER", ArrowRight: "RIGHT_FLIPPER", Space: "LAUNCH" }, children: [
203
+ children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "free", showMinimap: false, keyMap: { KeyZ: "LEFT_FLIPPER", ArrowLeft: "LEFT_FLIPPER", Slash: "RIGHT_FLIPPER", ArrowRight: "RIGHT_FLIPPER", Space: "LAUNCH" }, children: [
204
204
  { type: draw-sprite-layer, items: (array/map (array/concat (array/map @config.bumpers (fn b { id: @b.id, x: @b.x, y: @b.y, type: "bumper", sprite: (object/get (object/get @config.assetManifest features) bumper) })) [ { id: "flipperL", x: @config.leftFlipperX, y: @config.flipperY, type: "paddle", sprite: (if @entity.leftFlipperActive (object/get (object/get @config.assetManifest features) paddleActive) (object/get (object/get @config.assetManifest features) paddle)) }, { id: "flipperR", x: @config.rightFlipperX, y: @config.flipperY, type: "paddle", sprite: (if @entity.rightFlipperActive (object/get (object/get @config.assetManifest features) paddleActive) (object/get (object/get @config.assetManifest features) paddle)) } ]) (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f sprite) })) }
205
205
  { type: draw-sprite-layer, items: (array/map [ { id: "ball", position: { x: (object/get @entity.ball x), y: (object/get @entity.ball y) }, sprite: (object/get (object/get @config.assetManifest units) ball), team: "player" } ] (fn u { type: draw-sprite, position: (object/get @u position), asset: (object/get @u sprite) })) }
206
206
  { 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)) })) }
@@ -217,7 +217,7 @@ orbital PinballBoardOrbital {
217
217
  RIGHT_FLIPPER -> external {
218
218
  id : string
219
219
  }
220
- @description "Right flipper flick (KeySlash / ArrowRight / Right Flipper button)"
220
+ @description "Right flipper flick (Slash / ArrowRight / Right Flipper button)"
221
221
  @tier "domain"
222
222
  LAUNCH -> external {
223
223
  id : string