@almadar/std 16.152.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.
- package/behaviors/lolo/infra/atoms/std-data-erasure.lolo +5 -1
- package/behaviors/lolo/ui/core/atoms/std-browse.lolo +1 -0
- package/behaviors/lolo/ui/core/molecules/ui-emoji-picker.lolo +56 -0
- package/behaviors/lolo/ui/core/molecules/ui-popover.lolo +39 -0
- package/behaviors/lolo/ui/core/molecules/ui-table-view.lolo +11 -0
- package/behaviors/lolo/ui/game/atoms/ui-draw-sprite.lolo +2 -2
- package/behaviors/lolo/ui/game/molecules/std-crew-board-2d.lolo +4 -4
- package/behaviors/lolo/ui/game/molecules/std-dungeon-board-2d.lolo +6 -6
- package/behaviors/lolo/ui/game/molecules/std-tactics-board-2d.lolo +41 -9
- package/behaviors/lolo/ui/game/molecules/std-worldmap-board-2d.lolo +2 -2
- package/behaviors/lolo/ui/game/molecules/ui-canvas-2d.lolo +11 -1
- package/behaviors/lolo/ui/game/molecules/ui-canvas.lolo +10 -0
- package/behaviors/lolo/ui/game/organisms/ui-arena-board.lolo +2 -2
- package/behaviors/lolo/ui/game/organisms/ui-battle-board.lolo +110 -7
- package/behaviors/lolo/ui/game/organisms/ui-builder-board.lolo +5 -20
- package/behaviors/lolo/ui/game/organisms/ui-card-battler-board.lolo +2 -0
- package/behaviors/lolo/ui/game/organisms/ui-castle-board.lolo +3 -3
- package/behaviors/lolo/ui/game/organisms/ui-city-builder-board.lolo +9 -7
- package/behaviors/lolo/ui/game/organisms/ui-fishing-board.lolo +8 -8
- package/behaviors/lolo/ui/game/organisms/ui-grid-tactics-demo-board.lolo +2 -2
- package/behaviors/lolo/ui/game/organisms/ui-hex-strategy-board.lolo +5 -1
- package/behaviors/lolo/ui/game/organisms/ui-holiday-runner-board.lolo +1 -1
- package/behaviors/lolo/ui/game/organisms/ui-minigolf-board.lolo +22 -22
- package/behaviors/lolo/ui/game/organisms/ui-physics-sandbox-board.lolo +5 -5
- package/behaviors/lolo/ui/game/organisms/ui-pinball-board.lolo +7 -7
- package/behaviors/lolo/ui/game/organisms/ui-pirate-board.lolo +14 -14
- package/behaviors/lolo/ui/game/organisms/ui-platformer-board.lolo +4 -0
- package/behaviors/lolo/ui/game/organisms/ui-roguelike-board.lolo +5 -5
- package/behaviors/lolo/ui/game/organisms/ui-sokoban-board.lolo +5 -5
- package/behaviors/lolo/ui/game/organisms/ui-sports-board.lolo +10 -7
- package/behaviors/lolo/ui/game/organisms/ui-state-architect-board.lolo +4 -4
- package/behaviors/lolo/ui/game/organisms/ui-tactics-demo-2d.lolo +7 -3
- package/behaviors/lolo/ui/game/organisms/ui-tanks-board.lolo +5 -1
- package/behaviors/lolo/ui/game/organisms/ui-topdown-rts-board.lolo +5 -1
- package/behaviors/lolo/ui/game/organisms/ui-tower-defense-board.lolo +8 -8
- package/behaviors/lolo/ui/game/organisms/ui-uncontrolled-battle-board.lolo +5 -5
- package/behaviors/lolo/ui/game/organisms/ui-winter-ski-board.lolo +7 -7
- package/behaviors/lolo/ui/game/organisms/ui-world-map-board.lolo +3 -3
- package/behaviors/registry/factory-signatures.json +6211 -2181
- package/behaviors/registry/infra/atoms/std-approval-gate.orb +16 -8
- package/behaviors/registry/infra/atoms/std-cache-aside.orb +62 -31
- package/behaviors/registry/infra/atoms/std-circuit-breaker.orb +32 -16
- package/behaviors/registry/infra/atoms/std-data-erasure.orb +17 -9
- package/behaviors/registry/infra/atoms/std-mod-queue.orb +16 -8
- package/behaviors/registry/infra/atoms/std-rate-limiter.orb +28 -14
- package/behaviors/registry/ml/molecules/std-escalating-decision.orb +10 -5
- package/behaviors/registry/ml/molecules/std-knowledge-tracing.orb +4 -2
- package/behaviors/registry/ui/core/atoms/std-billable-hour.orb +2 -1
- package/behaviors/registry/ui/core/atoms/std-browse.orb +4 -0
- package/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +2 -1
- package/behaviors/registry/ui/core/atoms/std-esign-flow.orb +4 -2
- package/behaviors/registry/ui/core/atoms/std-esign-request.orb +6 -3
- package/behaviors/registry/ui/core/atoms/std-gallery.orb +18 -9
- package/behaviors/registry/ui/core/atoms/std-import.orb +4 -2
- package/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +214 -0
- package/behaviors/registry/ui/core/molecules/ui-popover.orb +112 -1
- package/behaviors/registry/ui/core/molecules/ui-table-view.orb +44 -0
- package/behaviors/registry/ui/game/atoms/std-arcade-flow.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-arcade-play.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-chase-ai.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-fx-particles.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-gather.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-gold.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-grid-tactics.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-hero-nav.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-market-flow.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-objective-flow.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-objective-reach.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-patience.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-production.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-round-flow.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-score.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-survival-flow.orb +1 -0
- package/behaviors/registry/ui/game/atoms/std-xp.orb +1 -0
- package/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +2 -2
- package/behaviors/registry/ui/game/molecules/std-crew-board-2d.orb +10 -12
- package/behaviors/registry/ui/game/molecules/std-dungeon-board-2d.orb +15 -18
- package/behaviors/registry/ui/game/molecules/std-tactics-board-2d.orb +860 -138
- package/behaviors/registry/ui/game/molecules/std-worldmap-board-2d.orb +4 -54
- package/behaviors/registry/ui/game/molecules/ui-canvas-2d.orb +16 -1
- package/behaviors/registry/ui/game/molecules/ui-canvas.orb +14 -0
- package/behaviors/registry/ui/game/organisms/ui-arena-board.orb +5 -6
- package/behaviors/registry/ui/game/organisms/ui-battle-board.orb +86 -99
- package/behaviors/registry/ui/game/organisms/ui-builder-board.orb +21 -226
- package/behaviors/registry/ui/game/organisms/ui-card-battler-board.orb +42 -0
- package/behaviors/registry/ui/game/organisms/ui-castle-board.orb +30 -9
- package/behaviors/registry/ui/game/organisms/ui-city-builder-board.orb +49 -0
- package/behaviors/registry/ui/game/organisms/ui-fishing-board.orb +16 -16
- package/behaviors/registry/ui/game/organisms/ui-grid-tactics-demo-board.orb +5 -6
- package/behaviors/registry/ui/game/organisms/ui-hex-strategy-board.orb +30 -10
- package/behaviors/registry/ui/game/organisms/ui-holiday-runner-board.orb +2 -3
- package/behaviors/registry/ui/game/organisms/ui-minigolf-board.orb +55 -11
- package/behaviors/registry/ui/game/organisms/ui-physics-sandbox-board.orb +10 -10
- package/behaviors/registry/ui/game/organisms/ui-pinball-board.orb +8 -8
- package/behaviors/registry/ui/game/organisms/ui-pirate-board.orb +14 -0
- package/behaviors/registry/ui/game/organisms/ui-platformer-board.orb +72 -0
- package/behaviors/registry/ui/game/organisms/ui-roguelike-board.orb +10 -10
- package/behaviors/registry/ui/game/organisms/ui-sokoban-board.orb +10 -10
- package/behaviors/registry/ui/game/organisms/ui-sports-board.orb +60 -0
- package/behaviors/registry/ui/game/organisms/ui-state-architect-board.orb +8 -8
- package/behaviors/registry/ui/game/organisms/ui-tactics-demo-2d.orb +48 -28
- package/behaviors/registry/ui/game/organisms/ui-tanks-board.orb +30 -10
- package/behaviors/registry/ui/game/organisms/ui-topdown-rts-board.orb +31 -12
- package/behaviors/registry/ui/game/organisms/ui-tower-defense-board.orb +8 -0
- package/behaviors/registry/ui/game/organisms/ui-uncontrolled-battle-board.orb +5 -0
- package/behaviors/registry/ui/game/organisms/ui-winter-ski-board.orb +14 -14
- package/behaviors/registry/ui/game/organisms/ui-world-map-board.orb +8 -12
- package/dist/behaviors/behaviors-embeddings.json +384 -380
- package/dist/behaviors/behaviors-registry.json +594 -57
- package/dist/behaviors/exports-reader.js +3409 -3101
- package/dist/behaviors/functions/index.d.ts +596 -5
- package/dist/behaviors/functions/index.js +3389 -3102
- package/dist/behaviors/index.d.ts +1 -1
- package/dist/behaviors/index.js +3410 -3102
- package/dist/behaviors/knob-embeddings.json +1 -1
- package/dist/behaviors/query.js +3409 -3101
- package/dist/behaviors/registry/factory-signatures.json +6211 -2181
- package/dist/behaviors/registry/infra/atoms/std-approval-gate.orb +16 -8
- package/dist/behaviors/registry/infra/atoms/std-cache-aside.orb +62 -31
- package/dist/behaviors/registry/infra/atoms/std-circuit-breaker.orb +32 -16
- package/dist/behaviors/registry/infra/atoms/std-data-erasure.orb +17 -9
- package/dist/behaviors/registry/infra/atoms/std-mod-queue.orb +16 -8
- package/dist/behaviors/registry/infra/atoms/std-rate-limiter.orb +28 -14
- package/dist/behaviors/registry/ml/molecules/std-escalating-decision.orb +10 -5
- package/dist/behaviors/registry/ml/molecules/std-knowledge-tracing.orb +4 -2
- package/dist/behaviors/registry/ui/core/atoms/std-billable-hour.orb +2 -1
- package/dist/behaviors/registry/ui/core/atoms/std-browse.orb +4 -0
- package/dist/behaviors/registry/ui/core/atoms/std-dashboard-grid-embedded.orb +2 -1
- package/dist/behaviors/registry/ui/core/atoms/std-esign-flow.orb +4 -2
- package/dist/behaviors/registry/ui/core/atoms/std-esign-request.orb +6 -3
- package/dist/behaviors/registry/ui/core/atoms/std-gallery.orb +18 -9
- package/dist/behaviors/registry/ui/core/atoms/std-import.orb +4 -2
- package/dist/behaviors/registry/ui/core/molecules/ui-emoji-picker.orb +214 -0
- package/dist/behaviors/registry/ui/core/molecules/ui-popover.orb +112 -1
- package/dist/behaviors/registry/ui/core/molecules/ui-table-view.orb +44 -0
- package/dist/behaviors/registry/ui/game/atoms/std-arcade-flow.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-arcade-play.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-chase-ai.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-dungeon-combat.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-fx-particles.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-gather.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-gold.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-grid-tactics.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-hero-nav.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-market-flow.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-objective-flow.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-objective-reach.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-patience.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-production.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-round-flow.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-score.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-survival-flow.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/std-xp.orb +1 -0
- package/dist/behaviors/registry/ui/game/atoms/ui-draw-sprite.orb +2 -2
- package/dist/behaviors/registry/ui/game/molecules/std-crew-board-2d.orb +10 -12
- package/dist/behaviors/registry/ui/game/molecules/std-dungeon-board-2d.orb +15 -18
- package/dist/behaviors/registry/ui/game/molecules/std-tactics-board-2d.orb +860 -138
- package/dist/behaviors/registry/ui/game/molecules/std-worldmap-board-2d.orb +4 -54
- package/dist/behaviors/registry/ui/game/molecules/ui-canvas-2d.orb +16 -1
- package/dist/behaviors/registry/ui/game/molecules/ui-canvas.orb +14 -0
- package/dist/behaviors/registry/ui/game/organisms/ui-arena-board.orb +5 -6
- package/dist/behaviors/registry/ui/game/organisms/ui-battle-board.orb +86 -99
- package/dist/behaviors/registry/ui/game/organisms/ui-builder-board.orb +21 -226
- package/dist/behaviors/registry/ui/game/organisms/ui-card-battler-board.orb +42 -0
- package/dist/behaviors/registry/ui/game/organisms/ui-castle-board.orb +30 -9
- package/dist/behaviors/registry/ui/game/organisms/ui-city-builder-board.orb +49 -0
- package/dist/behaviors/registry/ui/game/organisms/ui-fishing-board.orb +16 -16
- package/dist/behaviors/registry/ui/game/organisms/ui-grid-tactics-demo-board.orb +5 -6
- package/dist/behaviors/registry/ui/game/organisms/ui-hex-strategy-board.orb +30 -10
- package/dist/behaviors/registry/ui/game/organisms/ui-holiday-runner-board.orb +2 -3
- package/dist/behaviors/registry/ui/game/organisms/ui-minigolf-board.orb +55 -11
- package/dist/behaviors/registry/ui/game/organisms/ui-physics-sandbox-board.orb +10 -10
- package/dist/behaviors/registry/ui/game/organisms/ui-pinball-board.orb +8 -8
- package/dist/behaviors/registry/ui/game/organisms/ui-pirate-board.orb +14 -0
- package/dist/behaviors/registry/ui/game/organisms/ui-platformer-board.orb +72 -0
- package/dist/behaviors/registry/ui/game/organisms/ui-roguelike-board.orb +10 -10
- package/dist/behaviors/registry/ui/game/organisms/ui-sokoban-board.orb +10 -10
- package/dist/behaviors/registry/ui/game/organisms/ui-sports-board.orb +60 -0
- package/dist/behaviors/registry/ui/game/organisms/ui-state-architect-board.orb +8 -8
- package/dist/behaviors/registry/ui/game/organisms/ui-tactics-demo-2d.orb +48 -28
- package/dist/behaviors/registry/ui/game/organisms/ui-tanks-board.orb +30 -10
- package/dist/behaviors/registry/ui/game/organisms/ui-topdown-rts-board.orb +31 -12
- package/dist/behaviors/registry/ui/game/organisms/ui-tower-defense-board.orb +8 -0
- package/dist/behaviors/registry/ui/game/organisms/ui-uncontrolled-battle-board.orb +5 -0
- package/dist/behaviors/registry/ui/game/organisms/ui-winter-ski-board.orb +14 -14
- package/dist/behaviors/registry/ui/game/organisms/ui-world-map-board.orb +8 -12
- package/dist/behaviors-embeddings.json +384 -380
- package/dist/behaviors-registry.json +594 -57
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3410 -3102
- package/dist/knob-embeddings.json +1 -1
- package/dist/registry/factory-signatures.json +6211 -2181
- package/package.json +2 -2
|
@@ -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",
|
|
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",
|
|
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",
|
|
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",
|
|
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",
|
|
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",
|
|
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 (
|
|
220
|
+
@description "Right flipper flick (Slash / ArrowRight / Right Flipper button)"
|
|
221
221
|
@tier "domain"
|
|
222
222
|
LAUNCH -> external {
|
|
223
223
|
id : string
|
|
@@ -146,7 +146,7 @@ state playing {
|
|
|
146
146
|
hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.json", sprite: "panel_beige.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
147
147
|
hud: { type: game-hud, stats: [ { label: "Gold", value: @entity.gold, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "6,5", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-gold", thumbnailUrl: "" } }, { label: "Turn", value: @entity.turn, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" } }, { label: "Ships", value: (array/len (array/filter @entity.ships (fn u (and (== @u.team "player") (> @u.health 0))))), iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "0,6", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-ships", thumbnailUrl: "" } } ] }
|
|
148
148
|
addons: { type: stack, direction: horizontal, gap: sm, children: [ { type: button, action: END_TURN, label: "End Turn", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" }, variant: secondary }, { type: button, action: BUY_CANNONS, label: "Buy Cannons", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.json", sprite: "cannon.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-cannon", thumbnailUrl: "" }, variant: primary } ] }
|
|
149
|
-
children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
149
|
+
children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
150
150
|
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
|
|
151
151
|
{ type: draw-sprite-layer, items: (array/filter (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) (fn s (object/get (object/get @s asset) url))) }
|
|
152
152
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
@@ -169,7 +169,7 @@ state playing {
|
|
|
169
169
|
hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.json", sprite: "panel_beige.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
170
170
|
hud: { type: game-hud, stats: [ { label: "Gold", value: @entity.gold, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "6,5", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-gold", thumbnailUrl: "" } }, { label: "Turn", value: @entity.turn, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" } }, { label: "Ships", value: (array/len (array/filter @entity.ships (fn u (and (== @u.team "player") (> @u.health 0))))), iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "0,6", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-ships", thumbnailUrl: "" } } ] }
|
|
171
171
|
addons: { type: stack, direction: horizontal, gap: sm, children: [ { type: button, action: END_TURN, label: "End Turn", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" }, variant: secondary }, { type: button, action: BUY_CANNONS, label: "Buy Cannons", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.json", sprite: "cannon.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-cannon", thumbnailUrl: "" }, variant: primary } ] }
|
|
172
|
-
children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
172
|
+
children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
173
173
|
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
|
|
174
174
|
{ type: draw-sprite-layer, items: (array/filter (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) (fn s (object/get (object/get @s asset) url))) }
|
|
175
175
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
@@ -193,7 +193,7 @@ state playing {
|
|
|
193
193
|
hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.json", sprite: "panel_beige.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
194
194
|
hud: { type: game-hud, stats: [ { label: "Gold", value: @entity.gold, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "6,5", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-gold", thumbnailUrl: "" } }, { label: "Turn", value: @entity.turn, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" } }, { label: "Ships", value: (array/len (array/filter @entity.ships (fn u (and (== @u.team "player") (> @u.health 0))))), iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "0,6", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-ships", thumbnailUrl: "" } } ] }
|
|
195
195
|
addons: { type: stack, direction: horizontal, gap: sm, children: [ { type: button, action: END_TURN, label: "End Turn", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" }, variant: secondary }, { type: button, action: BUY_CANNONS, label: "Buy Cannons", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.json", sprite: "cannon.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-cannon", thumbnailUrl: "" }, variant: primary } ] }
|
|
196
|
-
children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
196
|
+
children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
197
197
|
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
|
|
198
198
|
{ type: draw-sprite-layer, items: (array/filter (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) (fn s (object/get (object/get @s asset) url))) }
|
|
199
199
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
@@ -220,7 +220,7 @@ state playing {
|
|
|
220
220
|
hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.json", sprite: "panel_beige.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
221
221
|
hud: { type: game-hud, stats: [ { label: "Gold", value: @entity.gold, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "6,5", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-gold", thumbnailUrl: "" } }, { label: "Turn", value: @entity.turn, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" } }, { label: "Ships", value: (array/len (array/filter @entity.ships (fn u (and (== @u.team "player") (> @u.health 0))))), iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "0,6", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-ships", thumbnailUrl: "" } } ] }
|
|
222
222
|
addons: { type: stack, direction: horizontal, gap: sm, children: [ { type: button, action: END_TURN, label: "End Turn", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" }, variant: secondary }, { type: button, action: BUY_CANNONS, label: "Buy Cannons", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.json", sprite: "cannon.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-cannon", thumbnailUrl: "" }, variant: primary } ] }
|
|
223
|
-
children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
223
|
+
children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
224
224
|
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
|
|
225
225
|
{ type: draw-sprite-layer, items: (array/filter (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) (fn s (object/get (object/get @s asset) url))) }
|
|
226
226
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
@@ -247,7 +247,7 @@ state playing {
|
|
|
247
247
|
hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.json", sprite: "panel_beige.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
248
248
|
hud: { type: game-hud, stats: [ { label: "Gold", value: @entity.gold, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "6,5", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-gold", thumbnailUrl: "" } }, { label: "Turn", value: @entity.turn, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" } }, { label: "Ships", value: (array/len (array/filter @entity.ships (fn u (and (== @u.team "player") (> @u.health 0))))), iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "0,6", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-ships", thumbnailUrl: "" } } ] }
|
|
249
249
|
addons: { type: stack, direction: horizontal, gap: sm, children: [ { type: button, action: END_TURN, label: "End Turn", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" }, variant: secondary }, { type: button, action: BUY_CANNONS, label: "Buy Cannons", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.json", sprite: "cannon.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-cannon", thumbnailUrl: "" }, variant: primary } ] }
|
|
250
|
-
children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
250
|
+
children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
251
251
|
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
|
|
252
252
|
{ type: draw-sprite-layer, items: (array/filter (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) (fn s (object/get (object/get @s asset) url))) }
|
|
253
253
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
@@ -274,7 +274,7 @@ state playing {
|
|
|
274
274
|
hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.json", sprite: "panel_beige.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
275
275
|
hud: { type: game-hud, stats: [ { label: "Gold", value: @entity.gold, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "6,5", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-gold", thumbnailUrl: "" } }, { label: "Turn", value: @entity.turn, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" } }, { label: "Ships", value: (array/len (array/filter @entity.ships (fn u (and (== @u.team "player") (> @u.health 0))))), iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "0,6", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-ships", thumbnailUrl: "" } } ] }
|
|
276
276
|
addons: { type: stack, direction: horizontal, gap: sm, children: [ { type: button, action: END_TURN, label: "End Turn", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" }, variant: secondary }, { type: button, action: BUY_CANNONS, label: "Buy Cannons", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.json", sprite: "cannon.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-cannon", thumbnailUrl: "" }, variant: primary } ] }
|
|
277
|
-
children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
277
|
+
children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
278
278
|
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
|
|
279
279
|
{ type: draw-sprite-layer, items: (array/filter (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) (fn s (object/get (object/get @s asset) url))) }
|
|
280
280
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
@@ -296,7 +296,7 @@ state playing {
|
|
|
296
296
|
hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.json", sprite: "panel_beige.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
297
297
|
hud: { type: game-hud, stats: [ { label: "Gold", value: @entity.gold, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "6,5", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-gold", thumbnailUrl: "" } }, { label: "Turn", value: @entity.turn, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" } }, { label: "Ships", value: (array/len (array/filter @entity.ships (fn u (and (== @u.team "player") (> @u.health 0))))), iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "0,6", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-ships", thumbnailUrl: "" } } ] }
|
|
298
298
|
addons: { type: stack, direction: horizontal, gap: sm, children: [ { type: button, action: END_TURN, label: "End Turn", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" }, variant: secondary }, { type: button, action: BUY_CANNONS, label: "Buy Cannons", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.json", sprite: "cannon.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-cannon", thumbnailUrl: "" }, variant: primary } ] }
|
|
299
|
-
children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
299
|
+
children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
300
300
|
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
|
|
301
301
|
{ type: draw-sprite-layer, items: (array/filter (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) (fn s (object/get (object/get @s asset) url))) }
|
|
302
302
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
@@ -319,7 +319,7 @@ state playing {
|
|
|
319
319
|
hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.json", sprite: "panel_beige.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
320
320
|
hud: { type: game-hud, stats: [ { label: "Gold", value: @entity.gold, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "6,5", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-gold", thumbnailUrl: "" } }, { label: "Turn", value: @entity.turn, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" } }, { label: "Ships", value: (array/len (array/filter @entity.ships (fn u (and (== @u.team "player") (> @u.health 0))))), iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "0,6", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-ships", thumbnailUrl: "" } } ] }
|
|
321
321
|
addons: { type: stack, direction: horizontal, gap: sm, children: [ { type: button, action: END_TURN, label: "End Turn", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" }, variant: secondary }, { type: button, action: BUY_CANNONS, label: "Buy Cannons", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.json", sprite: "cannon.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-cannon", thumbnailUrl: "" }, variant: primary } ] }
|
|
322
|
-
children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
322
|
+
children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
323
323
|
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
|
|
324
324
|
{ type: draw-sprite-layer, items: (array/filter (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) (fn s (object/get (object/get @s asset) url))) }
|
|
325
325
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
@@ -346,7 +346,7 @@ state playing {
|
|
|
346
346
|
hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.json", sprite: "panel_beige.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
347
347
|
hud: { type: game-hud, stats: [ { label: "Gold", value: @entity.gold, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "6,5", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-gold", thumbnailUrl: "" } }, { label: "Turn", value: @entity.turn, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" } }, { label: "Ships", value: (array/len (array/filter @entity.ships (fn u (and (== @u.team "player") (> @u.health 0))))), iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "0,6", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-ships", thumbnailUrl: "" } } ] }
|
|
348
348
|
addons: { type: stack, direction: horizontal, gap: sm, children: [ { type: button, action: END_TURN, label: "End Turn", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" }, variant: secondary }, { type: button, action: BUY_CANNONS, label: "Buy Cannons", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.json", sprite: "cannon.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-cannon", thumbnailUrl: "" }, variant: primary } ] }
|
|
349
|
-
children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
349
|
+
children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
350
350
|
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
|
|
351
351
|
{ type: draw-sprite-layer, items: (array/filter (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) (fn s (object/get (object/get @s asset) url))) }
|
|
352
352
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
@@ -370,7 +370,7 @@ state playing {
|
|
|
370
370
|
hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.json", sprite: "panel_beige.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
371
371
|
hud: { type: game-hud, stats: [ { label: "Gold", value: @entity.gold, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "6,5", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-gold", thumbnailUrl: "" } }, { label: "Turn", value: @entity.turn, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" } }, { label: "Ships", value: (array/len (array/filter @entity.ships (fn u (and (== @u.team "player") (> @u.health 0))))), iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "0,6", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-ships", thumbnailUrl: "" } } ] }
|
|
372
372
|
addons: { type: stack, direction: horizontal, gap: sm, children: [ { type: button, action: END_TURN, label: "End Turn", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" }, variant: secondary }, { type: button, action: BUY_CANNONS, label: "Buy Cannons", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.json", sprite: "cannon.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-cannon", thumbnailUrl: "" }, variant: primary } ] }
|
|
373
|
-
children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
373
|
+
children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
374
374
|
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
|
|
375
375
|
{ type: draw-sprite-layer, items: (array/filter (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) (fn s (object/get (object/get @s asset) url))) }
|
|
376
376
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
@@ -394,7 +394,7 @@ state playing {
|
|
|
394
394
|
hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.json", sprite: "panel_beige.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
395
395
|
hud: { type: game-hud, stats: [ { label: "Gold", value: @entity.gold, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "6,5", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-gold", thumbnailUrl: "" } }, { label: "Turn", value: @entity.turn, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" } }, { label: "Ships", value: (array/len (array/filter @entity.ships (fn u (and (== @u.team "player") (> @u.health 0))))), iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "0,6", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-ships", thumbnailUrl: "" } } ] }
|
|
396
396
|
addons: { type: stack, direction: horizontal, gap: sm, children: [ { type: button, action: END_TURN, label: "End Turn", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" }, variant: secondary }, { type: button, action: BUY_CANNONS, label: "Buy Cannons", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.json", sprite: "cannon.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-cannon", thumbnailUrl: "" }, variant: primary } ] }
|
|
397
|
-
children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
397
|
+
children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
398
398
|
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
|
|
399
399
|
{ type: draw-sprite-layer, items: (array/filter (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) (fn s (object/get (object/get @s asset) url))) }
|
|
400
400
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
@@ -428,7 +428,7 @@ state playing {
|
|
|
428
428
|
hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.json", sprite: "panel_beige.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
429
429
|
hud: { type: game-hud, stats: [ { label: "Gold", value: @entity.gold, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "6,5", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-gold", thumbnailUrl: "" } }, { label: "Turn", value: @entity.turn, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" } }, { label: "Ships", value: (array/len (array/filter @entity.ships (fn u (and (== @u.team "player") (> @u.health 0))))), iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "0,6", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-ships", thumbnailUrl: "" } } ] }
|
|
430
430
|
addons: { type: stack, direction: horizontal, gap: sm, children: [ { type: button, action: END_TURN, label: "End Turn", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" }, variant: secondary }, { type: button, action: BUY_CANNONS, label: "Buy Cannons", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.json", sprite: "cannon.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-cannon", thumbnailUrl: "" }, variant: primary } ] }
|
|
431
|
-
children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
431
|
+
children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
432
432
|
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
|
|
433
433
|
{ type: draw-sprite-layer, items: (array/filter (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) (fn s (object/get (object/get @s asset) url))) }
|
|
434
434
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
@@ -452,7 +452,7 @@ state playing {
|
|
|
452
452
|
hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.json", sprite: "panel_beige.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
453
453
|
hud: { type: game-hud, stats: [ { label: "Gold", value: @entity.gold, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "6,5", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-gold", thumbnailUrl: "" } }, { label: "Turn", value: @entity.turn, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" } }, { label: "Ships", value: (array/len (array/filter @entity.ships (fn u (and (== @u.team "player") (> @u.health 0))))), iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "0,6", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-ships", thumbnailUrl: "" } } ] }
|
|
454
454
|
addons: { type: stack, direction: horizontal, gap: sm, children: [ { type: button, action: END_TURN, label: "End Turn", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" }, variant: secondary }, { type: button, action: BUY_CANNONS, label: "Buy Cannons", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.json", sprite: "cannon.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-cannon", thumbnailUrl: "" }, variant: primary } ] }
|
|
455
|
-
children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
455
|
+
children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
456
456
|
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
|
|
457
457
|
{ type: draw-sprite-layer, items: (array/filter (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) (fn s (object/get (object/get @s asset) url))) }
|
|
458
458
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
@@ -484,7 +484,7 @@ state playing {
|
|
|
484
484
|
hudBackgroundAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-ui-adventure-pack/ui/uipack_rpg_sheet.json", sprite: "panel_beige.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
485
485
|
hud: { type: game-hud, stats: [ { label: "Gold", value: @entity.gold, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "6,5", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-gold", thumbnailUrl: "" } }, { label: "Turn", value: @entity.turn, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" } }, { label: "Ships", value: (array/len (array/filter @entity.ships (fn u (and (== @u.team "player") (> @u.health 0))))), iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "0,6", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-ships", thumbnailUrl: "" } } ] }
|
|
486
486
|
addons: { type: stack, direction: horizontal, gap: sm, children: [ { type: button, action: END_TURN, label: "End Turn", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-monochrome-pirates/terrain/Default_Tilemap_tilemap_packed.tiles.json", sprite: "1,7", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-turn", thumbnailUrl: "" }, variant: secondary }, { type: button, action: BUY_CANNONS, label: "Buy Cannons", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-pirate-board/kenney-pirate-pack/features/shipsMiscellaneous_sheet.json", sprite: "cannon.png", role: "ui", category: "ui", animations: [], style: "adventure", variant: "", dimension: "2d", aspect: "1:1", name: "icon-cannon", thumbnailUrl: "" }, variant: primary } ] }
|
|
487
|
-
children: [ { type: canvas, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
487
|
+
children: [ { type: canvas, fit: true, camera: { zoom: @config.scale }, projection: "isometric", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, children: [
|
|
488
488
|
{ type: draw-sprite-layer, items: (array/map @config.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (object/get @t terrainSprite) })) }
|
|
489
489
|
{ type: draw-sprite-layer, items: (array/filter (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) (fn s (object/get (object/get @s asset) url))) }
|
|
490
490
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
@@ -115,6 +115,7 @@ orbital PlatformerBoardOrbital {
|
|
|
115
115
|
state won {
|
|
116
116
|
PLAY_AGAIN -> playing
|
|
117
117
|
(set @entity.level (+ @entity.level 1))
|
|
118
|
+
(set @entity.lives 3)
|
|
118
119
|
(set @entity.result "none")
|
|
119
120
|
(set @entity.effects [])
|
|
120
121
|
(set @entity.player { x: 80, y: 320, width: 32, height: 48, vx: 0, vy: 0, grounded: false, facingRight: true, animation: "idle", frame: 0 })
|
|
@@ -149,11 +150,14 @@ orbital PlatformerBoardOrbital {
|
|
|
149
150
|
when (== @entity.result "none")
|
|
150
151
|
(let ((vy1 (math/clamp (+ @entity.player.vy @config.gravity) (- 0 @config.jumpStrength) @config.maxFallSpeed)) (px1 (math/clamp (+ @entity.player.x @entity.player.vx) 0 (- @entity.worldWidth @entity.player.width))) (pw @entity.player.width) (ph @entity.player.height) (livesLeft (- @entity.lives 1))) (let ((py1 (+ @entity.player.y @vy1))) (let ((playerRect { x: @px1, y: @py1, w: @pw, h: @ph })) (let ((hit (array/find @config.platforms (fn p (and (!= (object/get @p type) "goal") (geo/aabb-overlap @playerRect { x: @p.x, y: @p.y, w: @p.width, h: @p.height })))))) (let ((hazardHit (array/find @config.platforms (fn p (and (== (object/get @p type) "hazard") (geo/aabb-overlap @playerRect { x: @p.x, y: @p.y, w: @p.width, h: @p.height })))))) (let ((goalHit (array/find @config.platforms (fn p (and (== (object/get @p type) "goal") (geo/aabb-overlap @playerRect { x: @p.x, y: @p.y, w: @p.width, h: @p.height })))))) (let ((hitY (object/get @hit "y" @entity.worldHeight)) (landed (and (!= @hit null) (> @vy1 0)))) (let ((py2 (if @landed (- @hitY @ph) @py1)) (vy2 (if @landed 0 @vy1))) (let ((atGround (>= (+ @py2 @ph) @entity.worldHeight))) (let ((py3 (if @atGround (- @entity.worldHeight @ph) @py2)) (vy3 (if @atGround 0 @vy2)) (grounded (or @landed @atGround))) (let ((fell (> @py3 @entity.worldHeight))) (let ((damaged (or (!= @hazardHit null) @fell))) (do (set @entity.player (object/merge @entity.player { x: @px1, y: @py3, vy: @vy3, grounded: @grounded })) (set @entity.result (if (!= @goalHit null) "won" (if (and @damaged (<= @livesLeft 0)) "lost" "none"))) (set @entity.score (if (!= @goalHit null) (+ @entity.score 100) @entity.score)) (set @entity.lives (if (and @damaged (> @entity.lives 0) (== @entity.result "none")) @livesLeft @entity.lives)) (set @entity.player (if (and @damaged (== @entity.result "none")) { x: 80, y: 320, width: 32, height: 48, vx: 0, vy: 0, grounded: false, facingRight: true, animation: "idle", frame: 0 } @entity.player)))))))))))))))
|
|
151
152
|
|
|
153
|
+
(if (!= @entity.result "none") (emit GAME_END { result: @entity.result }) null)
|
|
154
|
+
|
|
152
155
|
animTick every 100ms
|
|
153
156
|
(set @entity.player (object/merge @entity.player { frame: (% (+ (object/get @entity.player frame) 1) 8) }))
|
|
154
157
|
(set @entity.effects (array/filter (array/map @entity.effects (fn e (object/merge @e { ttl: (- (object/get @e ttl) 1) }))) (fn e (> (object/get @e ttl) 0))))
|
|
155
158
|
(render-ui main {
|
|
156
159
|
type: game-shell
|
|
160
|
+
overlay: (if (== @entity.result "won") { type: game-menu, title: "YOU WIN!", subtitle: (str/concat "Score: " @entity.score), options: [ { id: "again", label: "Play Again", event: "PLAY_AGAIN", variant: "primary" } ] } (if (== @entity.result "lost") { type: game-menu, title: "GAME OVER", subtitle: (str/concat "Score: " @entity.score), options: [ { id: "again", label: "Play Again", event: "PLAY_AGAIN", variant: "primary" } ] } null))
|
|
157
161
|
backgroundAsset: { 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_panel.png", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
158
162
|
hudBackgroundAsset: { 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_panel.png", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "panel-frame", thumbnailUrl: "" }
|
|
159
163
|
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/_shared/kenney-mobile-controls/ui/icons-default.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-mobile-controls/ui/icons-default.json", sprite: "icon_star", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "star", thumbnailUrl: "" } }, { label: "Lives", value: @entity.lives, iconUrl: { url: "https://almadar-kflow-assets.web.app/shared/ui-platformer-board/kenney-platformer-assets-base/ui/hud_sheet.png", atlas: "https://almadar-kflow-assets.web.app/shared/ui-platformer-board/kenney-platformer-assets-base/ui/hud_sheet.json", sprite: "hud_coins.png", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "coin", thumbnailUrl: "" } } ] }, { type: control-grid, kind: "dpad", directionEvents: { left: "LEFT", right: "RIGHT", up: "JUMP" }, directionReleaseEvents: { left: "STOP", right: "STOP" }, directionAssets: { up: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-mobile-controls/ui/icons-default.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-mobile-controls/ui/icons-default.json", sprite: "icon_arrow", 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-mobile-controls/ui/icons-default.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-mobile-controls/ui/icons-default.json", sprite: "icon_arrow", 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-mobile-controls/ui/icons-default.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-mobile-controls/ui/icons-default.json", sprite: "icon_arrow", 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-mobile-controls/ui/icons-default.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-mobile-controls/ui/icons-default.json", sprite: "icon_arrow", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-right", thumbnailUrl: "" } } }, { type: button, action: PLAY_AGAIN, label: "Restart", iconAsset: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-mobile-controls/ui/icons-default.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-mobile-controls/ui/icons-default.json", sprite: "icon_arrow_rotate", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "icon-restart", thumbnailUrl: "" }, variant: secondary } ] }
|
|
@@ -127,7 +127,7 @@ orbital RoguelikeBoardOrbital {
|
|
|
127
127
|
controls: { type: control-grid, kind: "dpad", directionEvents: { up: "MOVE_UP", down: "MOVE_DOWN", left: "MOVE_LEFT", right: "MOVE_RIGHT" }, directionAssets: { up: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "30,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-up", thumbnailUrl: "" }, down: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "32,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-down", thumbnailUrl: "" }, left: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "33,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-left", thumbnailUrl: "" }, right: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "31,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-right", thumbnailUrl: "" } } }
|
|
128
128
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @entity.tiles "x") (array/max @entity.tiles "y"))))), pos: { x: (/ (+ (array/min @entity.tiles "x") (array/max @entity.tiles "x")) 2), y: (/ (+ (array/min @entity.tiles "y") (array/max @entity.tiles "y")) 2) } }, projection: "flat", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "MOVE_UP", KeyW: "MOVE_UP", ArrowDown: "MOVE_DOWN", KeyS: "MOVE_DOWN", ArrowLeft: "MOVE_LEFT", KeyA: "MOVE_LEFT", ArrowRight: "MOVE_RIGHT", KeyD: "MOVE_RIGHT" }, children: [
|
|
129
129
|
{ type: draw-shape-layer, items: (array/map @entity.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
130
|
-
{ 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), anchor: "center", width:
|
|
130
|
+
{ 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), anchor: "center", width: 1, height: 1 })) }
|
|
131
131
|
{ type: draw-sprite-layer, items: (array/map @entity.items (fn i { type: draw-sprite, position: { x: (object/get @i x), y: (object/get @i y) }, asset: (if (== (object/get @i kind) "health_potion") (object/get (object/get @config.assetManifest features) health_potion) (if (== (object/get @i kind) "sword") (object/get (object/get @config.assetManifest features) sword) (object/get (object/get @config.assetManifest features) shield))), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
132
132
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
133
133
|
{ type: draw-shape-layer, items: (array/map (array/filter (array/append (array/map @entity.enemies (fn e { id: @e.id, x: @e.x, y: @e.y })) { id: "player", x: (object/get @entity.player x), y: (object/get @entity.player y) }) (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: { x: (object/get @u x), y: (object/get @u y) }, radiusX: 0.5, radiusY: 0.2, stroke: "rgba(0,200,255,0.8)", strokeWidth: 3 })) }
|
|
@@ -359,7 +359,7 @@ orbital RoguelikeBoardOrbital {
|
|
|
359
359
|
controls: { type: control-grid, kind: "dpad", directionEvents: { up: "MOVE_UP", down: "MOVE_DOWN", left: "MOVE_LEFT", right: "MOVE_RIGHT" }, directionAssets: { up: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "30,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-up", thumbnailUrl: "" }, down: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "32,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-down", thumbnailUrl: "" }, left: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "33,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-left", thumbnailUrl: "" }, right: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "31,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-right", thumbnailUrl: "" } } }
|
|
360
360
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @entity.tiles "x") (array/max @entity.tiles "y"))))), pos: { x: (/ (+ (array/min @entity.tiles "x") (array/max @entity.tiles "x")) 2), y: (/ (+ (array/min @entity.tiles "y") (array/max @entity.tiles "y")) 2) } }, projection: "flat", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "MOVE_UP", KeyW: "MOVE_UP", ArrowDown: "MOVE_DOWN", KeyS: "MOVE_DOWN", ArrowLeft: "MOVE_LEFT", KeyA: "MOVE_LEFT", ArrowRight: "MOVE_RIGHT", KeyD: "MOVE_RIGHT" }, children: [
|
|
361
361
|
{ type: draw-shape-layer, items: (array/map @entity.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
362
|
-
{ 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), anchor: "center", width:
|
|
362
|
+
{ 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), anchor: "center", width: 1, height: 1 })) }
|
|
363
363
|
{ type: draw-sprite-layer, items: (array/map @entity.items (fn i { type: draw-sprite, position: { x: (object/get @i x), y: (object/get @i y) }, asset: (if (== (object/get @i kind) "health_potion") (object/get (object/get @config.assetManifest features) health_potion) (if (== (object/get @i kind) "sword") (object/get (object/get @config.assetManifest features) sword) (object/get (object/get @config.assetManifest features) shield))), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
364
364
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
365
365
|
{ type: draw-shape-layer, items: (array/map (array/filter (array/append (array/map @entity.enemies (fn e { id: @e.id, x: @e.x, y: @e.y })) { id: "player", x: (object/get @entity.player x), y: (object/get @entity.player y) }) (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: { x: (object/get @u x), y: (object/get @u y) }, radiusX: 0.5, radiusY: 0.2, stroke: "rgba(0,200,255,0.8)", strokeWidth: 3 })) }
|
|
@@ -381,7 +381,7 @@ orbital RoguelikeBoardOrbital {
|
|
|
381
381
|
overlay: { type: game-menu, title: (if (== @entity.result "won") "VICTORY" "DEFEAT"), subtitle: (if (== @entity.result "won") "Depth 5 conquered" "The dungeon claims another hero"), options: [ { id: "again", label: "Play Again", event: "PLAY_AGAIN", variant: "primary" } ] }
|
|
382
382
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @entity.tiles "x") (array/max @entity.tiles "y"))))), pos: { x: (/ (+ (array/min @entity.tiles "x") (array/max @entity.tiles "x")) 2), y: (/ (+ (array/min @entity.tiles "y") (array/max @entity.tiles "y")) 2) } }, projection: "flat", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "MOVE_UP", KeyW: "MOVE_UP", ArrowDown: "MOVE_DOWN", KeyS: "MOVE_DOWN", ArrowLeft: "MOVE_LEFT", KeyA: "MOVE_LEFT", ArrowRight: "MOVE_RIGHT", KeyD: "MOVE_RIGHT" }, children: [
|
|
383
383
|
{ type: draw-shape-layer, items: (array/map @entity.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
384
|
-
{ 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), anchor: "center", width:
|
|
384
|
+
{ 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), anchor: "center", width: 1, height: 1 })) }
|
|
385
385
|
{ type: draw-sprite-layer, items: (array/map @entity.items (fn i { type: draw-sprite, position: { x: (object/get @i x), y: (object/get @i y) }, asset: (if (== (object/get @i kind) "health_potion") (object/get (object/get @config.assetManifest features) health_potion) (if (== (object/get @i kind) "sword") (object/get (object/get @config.assetManifest features) sword) (object/get (object/get @config.assetManifest features) shield))), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
386
386
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
387
387
|
{ type: draw-shape-layer, items: (array/map (array/filter (array/append (array/map @entity.enemies (fn e { id: @e.id, x: @e.x, y: @e.y })) { id: "player", x: (object/get @entity.player x), y: (object/get @entity.player y) }) (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: { x: (object/get @u x), y: (object/get @u y) }, radiusX: 0.5, radiusY: 0.2, stroke: "rgba(0,200,255,0.8)", strokeWidth: 3 })) }
|
|
@@ -427,7 +427,7 @@ orbital RoguelikeBoardOrbital {
|
|
|
427
427
|
controls: { type: control-grid, kind: "dpad", directionEvents: { up: "MOVE_UP", down: "MOVE_DOWN", left: "MOVE_LEFT", right: "MOVE_RIGHT" }, directionAssets: { up: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "30,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-up", thumbnailUrl: "" }, down: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "32,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-down", thumbnailUrl: "" }, left: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "33,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-left", thumbnailUrl: "" }, right: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "31,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-right", thumbnailUrl: "" } } }
|
|
428
428
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @entity.tiles "x") (array/max @entity.tiles "y"))))), pos: { x: (/ (+ (array/min @entity.tiles "x") (array/max @entity.tiles "x")) 2), y: (/ (+ (array/min @entity.tiles "y") (array/max @entity.tiles "y")) 2) } }, projection: "flat", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "MOVE_UP", KeyW: "MOVE_UP", ArrowDown: "MOVE_DOWN", KeyS: "MOVE_DOWN", ArrowLeft: "MOVE_LEFT", KeyA: "MOVE_LEFT", ArrowRight: "MOVE_RIGHT", KeyD: "MOVE_RIGHT" }, children: [
|
|
429
429
|
{ type: draw-shape-layer, items: (array/map @entity.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
430
|
-
{ 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), anchor: "center", width:
|
|
430
|
+
{ 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), anchor: "center", width: 1, height: 1 })) }
|
|
431
431
|
{ type: draw-sprite-layer, items: (array/map @entity.items (fn i { type: draw-sprite, position: { x: (object/get @i x), y: (object/get @i y) }, asset: (if (== (object/get @i kind) "health_potion") (object/get (object/get @config.assetManifest features) health_potion) (if (== (object/get @i kind) "sword") (object/get (object/get @config.assetManifest features) sword) (object/get (object/get @config.assetManifest features) shield))), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
432
432
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
433
433
|
{ type: draw-shape-layer, items: (array/map (array/filter (array/append (array/map @entity.enemies (fn e { id: @e.id, x: @e.x, y: @e.y })) { id: "player", x: (object/get @entity.player x), y: (object/get @entity.player y) }) (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: { x: (object/get @u x), y: (object/get @u y) }, radiusX: 0.5, radiusY: 0.2, stroke: "rgba(0,200,255,0.8)", strokeWidth: 3 })) }
|
|
@@ -452,7 +452,7 @@ orbital RoguelikeBoardOrbital {
|
|
|
452
452
|
controls: { type: control-grid, kind: "dpad", directionEvents: { up: "MOVE_UP", down: "MOVE_DOWN", left: "MOVE_LEFT", right: "MOVE_RIGHT" }, directionAssets: { up: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "30,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-up", thumbnailUrl: "" }, down: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "32,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-down", thumbnailUrl: "" }, left: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "33,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-left", thumbnailUrl: "" }, right: { url: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/tilemap_packed.png", atlas: "https://almadar-kflow-assets.web.app/shared/_shared/kenney-input-prompts-pixel-16/terrain/Tilemap_tilemap_packed.tiles.json", sprite: "31,4", role: "ui", category: "ui", animations: [], style: "pixel", variant: "", dimension: "2d", aspect: "1:1", name: "key-right", thumbnailUrl: "" } } }
|
|
453
453
|
children: [ { type: canvas, camera: { zoom: (math/min 1 (/ 5 (+ 1 (math/max (array/max @entity.tiles "x") (array/max @entity.tiles "y"))))), pos: { x: (/ (+ (array/min @entity.tiles "x") (array/max @entity.tiles "x")) 2), y: (/ (+ (array/min @entity.tiles "y") (array/max @entity.tiles "y")) 2) } }, projection: "flat", showMinimap: true, tileClickEvent: TILE_CLICK, unitClickEvent: UNIT_CLICK, keyMap: { ArrowUp: "MOVE_UP", KeyW: "MOVE_UP", ArrowDown: "MOVE_DOWN", KeyS: "MOVE_DOWN", ArrowLeft: "MOVE_LEFT", KeyA: "MOVE_LEFT", ArrowRight: "MOVE_RIGHT", KeyD: "MOVE_RIGHT" }, children: [
|
|
454
454
|
{ type: draw-shape-layer, items: (array/map @entity.tiles (fn t { type: draw-shape, shape: "cell", position: { x: (object/get @t x), y: (object/get @t y) }, fill: "#5c94fc", stroke: "rgba(255,255,255,0.35)", strokeWidth: 1 })) }
|
|
455
|
-
{ 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), anchor: "center", width:
|
|
455
|
+
{ 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), anchor: "center", width: 1, height: 1 })) }
|
|
456
456
|
{ type: draw-sprite-layer, items: (array/map @entity.items (fn i { type: draw-sprite, position: { x: (object/get @i x), y: (object/get @i y) }, asset: (if (== (object/get @i kind) "health_potion") (object/get (object/get @config.assetManifest features) health_potion) (if (== (object/get @i kind) "sword") (object/get (object/get @config.assetManifest features) sword) (object/get (object/get @config.assetManifest features) shield))), anchor: "center", width: 0.5, height: 0.5 })) }
|
|
457
457
|
{ type: draw-shape-layer, items: (array/map @entity.validMoves (fn m { type: draw-shape, shape: "cell", position: { x: (object/get @m x), y: (object/get @m y) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
458
458
|
{ type: draw-shape-layer, items: (array/map (array/filter (array/append (array/map @entity.enemies (fn e { id: @e.id, x: @e.x, y: @e.y })) { id: "player", x: (object/get @entity.player x), y: (object/get @entity.player y) }) (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: { x: (object/get @u x), y: (object/get @u y) }, radiusX: 0.5, radiusY: 0.2, stroke: "rgba(0,200,255,0.8)", strokeWidth: 3 })) }
|