@almadar/std 17.0.3 → 17.1.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/auth/atoms/std-dev-personas.lolo +27 -2
- package/behaviors/lolo/cli/atoms/std-orb-goldens.lolo +6 -3
- package/behaviors/lolo/cli/atoms/std-orb-lint-mem-handles.lolo +54 -34
- package/behaviors/lolo/cli/atoms/std-orb-lint-os-grants.lolo +4 -4
- package/behaviors/lolo/cli/atoms/std-orb-mcp.lolo +16 -21
- package/behaviors/lolo/cli/atoms/std-orb-serve.lolo +24 -4
- package/behaviors/lolo/codec/atoms/std-lolo-kotlin.lolo +26 -3
- package/behaviors/lolo/codec/atoms/std-lolo-python.lolo +15 -2
- package/behaviors/lolo/codec/atoms/std-lolo-rust.lolo +27 -2
- package/behaviors/lolo/codec/atoms/std-lolo-source.lolo +251 -60
- package/behaviors/lolo/codec/atoms/std-lolo-swift.lolo +24 -1
- package/behaviors/lolo/codec/atoms/std-lolo-typescript.lolo +24 -3
- package/behaviors/lolo/connect/atoms/std-meta-ads.lolo +4 -4
- package/behaviors/lolo/connect/atoms/std-stdio-lines.lolo +7 -4
- package/behaviors/lolo/connect/atoms/std-youtube.lolo +9 -9
- package/behaviors/lolo/dev/atoms/std-guest-session.lolo +122 -10
- package/behaviors/lolo/dev/atoms/std-mock-seed-marks.lolo +66 -0
- package/behaviors/lolo/dev/organisms/std-behavior-playground.lolo +5 -2
- package/behaviors/lolo/dev/organisms/std-launchpad.lolo +4 -3
- package/behaviors/lolo/gpu/atoms/std-gpu-compute.lolo +329 -0
- package/behaviors/lolo/net/atoms/std-http-client.lolo +4 -4
- package/behaviors/lolo/net/atoms/std-http-fetch.lolo +6 -6
- package/behaviors/lolo/net/atoms/std-npm-lookup.lolo +1 -1
- package/behaviors/lolo/net/atoms/std-npm-registry.lolo +2 -2
- package/behaviors/lolo/spec/auth/dev-personas.replay.goldens.json +263 -2
- package/behaviors/lolo/spec/cli/lint-all.lolo +1 -0
- package/behaviors/lolo/spec/cli/lint-item-action-event.replay.goldens.json +9 -9
- package/behaviors/lolo/spec/cli/lint-mem-handles.replay.goldens.json +3021 -1
- package/behaviors/lolo/spec/cli/lint-os-grants.replay.goldens.json +284 -12
- package/behaviors/lolo/spec/cli/mcp-server.replay.goldens.json +51 -55
- package/behaviors/lolo/spec/cli/orb-compile.replay.goldens.json +10 -4
- package/behaviors/lolo/spec/codec/lolo-kotlin.replay.goldens.json +7496 -7497
- package/behaviors/lolo/spec/codec/lolo-python.replay.goldens.json +341 -3
- package/behaviors/lolo/spec/codec/lolo-rust.replay.goldens.json +18931 -6142
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/compose-pair.lolo +44 -0
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/config-read.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/divide-default.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/divide-plain.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/get-past-end.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/list-call.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/list-plain.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/minus-binary.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/minus-unary.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/nested-let.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/no-machine.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/no-template.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/nth-past-end.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/nth-raw.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/ports-call.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/range-one.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/range-two.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/router-trio.lolo +88 -0
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/store-pair.lolo +62 -0
- package/behaviors/lolo/spec/codec/lolo-source.fixtures/string-literal.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.gen/knobs.py +27 -1
- package/behaviors/lolo/spec/codec/lolo-source.gen/src_assemble.in +54 -2
- package/behaviors/lolo/spec/codec/lolo-source.gen/src_finish.in +1 -1
- package/behaviors/lolo/spec/codec/lolo-source.gen/src_fold.in +24 -4
- package/behaviors/lolo/spec/codec/lolo-source.gen/src_head.in +8 -3
- package/behaviors/lolo/spec/codec/lolo-source.gen/src_prepare.in +6 -2
- package/behaviors/lolo/spec/codec/lolo-source.gen/src_trait.in +12 -2
- package/behaviors/lolo/spec/codec/lolo-source.parity/agent-step.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.parity/agent-step.server.lolo +1 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/chunk.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.parity/chunk.server.lolo +1 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/compose-pair.events.json +36 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/compose-pair.replay.goldens.json +91 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/cosine.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.parity/cosine.server.lolo +1 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/kotlin/compose-pair.kt +31 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/kotlin/router-trio.kt +31 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/kotlin/store-pair.kt +31 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/python/compose-pair.py +18 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/python/router-trio.py +18 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/python/store-pair.py +17 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/rust/compose-pair.rs +37 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/rust/router-trio.rs +37 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/rust/store-pair.rs +36 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/swift/compose-pair.swift +24 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/swift/router-trio.swift +24 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/swift/store-pair.swift +23 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/typescript/compose-pair.mts +24 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/typescript/router-trio.mts +24 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/drivers/typescript/store-pair.mts +22 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/recall-at-k.lolo +2 -1
- package/behaviors/lolo/spec/codec/lolo-source.parity/recall-at-k.server.lolo +1 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/router-trio.events.json +18 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/router-trio.replay.goldens.json +87 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/store-pair.events.json +58 -0
- package/behaviors/lolo/spec/codec/lolo-source.parity/store-pair.replay.goldens.json +238 -0
- package/behaviors/lolo/spec/codec/lolo-swift.replay.goldens.json +15599 -2204
- package/behaviors/lolo/spec/codec/lolo-typescript.replay.goldens.json +28930 -28929
- package/behaviors/lolo/spec/connect/bearer-api.replay.goldens.json +1 -1
- package/behaviors/lolo/spec/connect/esign.replay.goldens.json +3 -3
- package/behaviors/lolo/spec/connect/github.replay.goldens.json +13 -13
- package/behaviors/lolo/spec/connect/google-calendar.replay.goldens.json +2 -2
- package/behaviors/lolo/spec/connect/image.replay.goldens.json +1 -1
- package/behaviors/lolo/spec/connect/meta-ads.replay.goldens.json +2 -2
- package/behaviors/lolo/spec/connect/stdio-lines.replay.goldens.json +90 -0
- package/behaviors/lolo/spec/connect/twilio.replay.goldens.json +2 -2
- package/behaviors/lolo/spec/connect/youtube.replay.goldens.json +1 -1
- package/behaviors/lolo/spec/dev/guest-session.replay.goldens.json +824 -0
- package/behaviors/lolo/spec/dev/mock-seed-marks.replay.goldens.json +365 -0
- package/behaviors/lolo/spec/dev/verify-walk.replay.goldens.json +2 -1
- package/behaviors/lolo/spec/gpu/gpu-compute.replay.goldens.json +784 -0
- package/behaviors/lolo/spec/mem/mem-buffer.replay.goldens.json +97 -1
- package/behaviors/lolo/spec/ml/vector-write.goldens.json +1 -1
- package/behaviors/lolo/spec/ml/vector-write.replay.goldens.json +2 -2
- package/behaviors/lolo/spec/net/http-client-call-host.replay.goldens.json +3 -3
- package/behaviors/lolo/spec/net/http-client-env-host.replay.goldens.json +3 -3
- package/behaviors/lolo/spec/net/http-client.replay.goldens.json +56 -56
- package/behaviors/lolo/spec/net/http-fetch.replay.goldens.json +2 -2
- package/behaviors/lolo/spec/net/npm-lookup.replay.goldens.json +1 -1
- package/behaviors/lolo/spec/net/npm-registry.replay.goldens.json +2 -2
- package/behaviors/lolo/spec/net/server-declared-traits.replay.goldens.json +6 -3
- package/behaviors/lolo/spec/net/server-external-inputs.replay.goldens.json +16 -8
- package/behaviors/lolo/spec/net/server-retargeted-leg.replay.goldens.json +4 -2
- package/behaviors/lolo/spec/net/server-untargeted-discovery.replay.goldens.json +50 -45
- package/behaviors/lolo/spec/ops/llm-spend-board.replay.goldens.json +112 -16
- package/behaviors/lolo/spec/store/firestore-twin.replay.goldens.json +1 -1
- package/behaviors/lolo/spec/store/row-store-postgres.gen/record_real_sql.py +1 -1
- package/behaviors/lolo/spec/ui/game/fx-particles.replay.goldens.json +37 -0
- package/behaviors/lolo/ui/avl/atoms/std-avl-cosmic-zoom.lolo +2 -2
- package/behaviors/lolo/ui/game/atoms/std-fx-particles.lolo +10 -1
- package/behaviors/lolo/ui/game/atoms/ui-draw-fx-layer.lolo +4 -4
- package/behaviors/lolo/ui/game/organisms/std-arcade-board-3d.lolo +9 -9
- package/behaviors/lolo/ui/game/organisms/std-crew-board-2d.lolo +4 -4
- package/behaviors/lolo/ui/game/organisms/std-dungeon-board-2d.lolo +5 -5
- package/behaviors/lolo/ui/game/organisms/std-market-board-3d.lolo +9 -9
- package/behaviors/lolo/ui/game/organisms/std-objective-board-3d.lolo +9 -9
- package/behaviors/lolo/ui/game/organisms/std-platformer-board-2d.lolo +5 -5
- package/behaviors/lolo/ui/game/organisms/std-platformer-puzzle.lolo +4 -4
- package/behaviors/lolo/ui/game/organisms/std-survival-board-3d.lolo +9 -9
- package/behaviors/lolo/ui/game/organisms/std-tactics-board-2d.lolo +5 -5
- package/behaviors/lolo/ui/game/organisms/std-tactics-board-3d.lolo +9 -9
- package/behaviors/registry/auth/atoms/std-dev-personas.orb +1 -1
- package/behaviors/registry/cli/atoms/std-orb-goldens.orb +1 -1
- package/behaviors/registry/cli/atoms/std-orb-lint-mem-handles.orb +1 -1
- package/behaviors/registry/cli/atoms/std-orb-lint-os-grants.orb +1 -1
- package/behaviors/registry/cli/atoms/std-orb-mcp.orb +1 -1
- package/behaviors/registry/cli/atoms/std-orb-serve.orb +1 -1
- package/behaviors/registry/codec/atoms/std-lolo-kotlin.orb +1 -1
- package/behaviors/registry/codec/atoms/std-lolo-python.orb +1 -1
- package/behaviors/registry/codec/atoms/std-lolo-rust.orb +1 -1
- package/behaviors/registry/codec/atoms/std-lolo-source.orb +1 -1
- package/behaviors/registry/codec/atoms/std-lolo-swift.orb +1 -1
- package/behaviors/registry/codec/atoms/std-lolo-typescript.orb +1 -1
- package/behaviors/registry/connect/atoms/std-meta-ads.orb +1 -1
- package/behaviors/registry/connect/atoms/std-stdio-lines.orb +1 -1
- package/behaviors/registry/connect/atoms/std-youtube.orb +1 -1
- package/behaviors/registry/dev/atoms/std-guest-session.orb +1 -1
- package/behaviors/registry/dev/atoms/std-mock-seed-marks.orb +1 -0
- package/behaviors/registry/dev/organisms/std-behavior-playground.orb +37 -0
- package/behaviors/registry/dev/organisms/std-launchpad.orb +25 -0
- package/behaviors/registry/gpu/atoms/std-gpu-compute.orb +1 -0
- package/behaviors/registry/net/atoms/std-http-client.orb +1 -1
- package/behaviors/registry/net/atoms/std-http-fetch.orb +1 -1
- package/behaviors/registry/net/atoms/std-npm-lookup.orb +1 -1
- package/behaviors/registry/net/atoms/std-npm-registry.orb +1 -1
- package/behaviors/registry/spec/cli/lint-all.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/compose-pair.orb +1 -0
- package/behaviors/registry/spec/codec/lolo-source.fixtures/config-read.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/divide-default.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/divide-plain.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/get-past-end.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/list-call.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/list-plain.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/minus-binary.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/minus-unary.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/nested-let.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/no-machine.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/no-template.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/nth-past-end.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/nth-raw.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/ports-call.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/range-one.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/range-two.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.fixtures/router-trio.orb +1 -0
- package/behaviors/registry/spec/codec/lolo-source.fixtures/store-pair.orb +1 -0
- package/behaviors/registry/spec/codec/lolo-source.fixtures/string-literal.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/agent-step.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/agent-step.server.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/chunk.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/chunk.server.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/cosine.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/cosine.server.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/recall-at-k.orb +1 -1
- package/behaviors/registry/spec/codec/lolo-source.parity/recall-at-k.server.orb +1 -1
- package/behaviors/registry/ui/avl/atoms/std-avl-cosmic-zoom.orb +1 -1
- package/behaviors/registry/ui/game/atoms/std-fx-particles.orb +1 -1
- package/behaviors/registry/ui/game/atoms/ui-draw-fx-layer.orb +1 -1
- package/behaviors/registry/ui/game/organisms/std-arcade-board-3d.orb +20 -13
- package/behaviors/registry/ui/game/organisms/std-crew-board-2d.orb +9 -5
- package/behaviors/registry/ui/game/organisms/std-dungeon-board-2d.orb +17 -7
- package/behaviors/registry/ui/game/organisms/std-market-board-3d.orb +19 -15
- package/behaviors/registry/ui/game/organisms/std-objective-board-3d.orb +15 -12
- package/behaviors/registry/ui/game/organisms/std-platformer-board-2d.orb +17 -7
- package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +4 -0
- package/behaviors/registry/ui/game/organisms/std-survival-board-3d.orb +15 -12
- package/behaviors/registry/ui/game/organisms/std-tactics-board-2d.orb +13 -6
- package/behaviors/registry/ui/game/organisms/std-tactics-board-3d.orb +14 -12
- package/canonical-operators.json +1426 -103
- package/dist/{chunk-EK22WRB6.js → chunk-2UGHBVU2.js} +2 -2
- package/dist/{chunk-GDMH5T4J.js → chunk-3DK7GI2C.js} +2 -2
- package/dist/chunk-3MDASC5C.js +26 -0
- package/dist/{chunk-K5ZI27PB.js → chunk-3PHO4RRF.js} +1 -1
- package/dist/{chunk-7IEMMYM6.js → chunk-4MJCLAZW.js} +1 -1
- package/dist/{chunk-W4IEV4BY.js → chunk-55JPIL7A.js} +2 -2
- package/dist/{chunk-RUGBZTV3.js → chunk-66BLZLFI.js} +1 -1
- package/dist/{chunk-YWFISV7L.js → chunk-66RAJFOD.js} +1 -1
- package/dist/{chunk-JWOWWGNZ.js → chunk-6ED4SUC6.js} +1 -1
- package/dist/{chunk-LL7P6EII.js → chunk-6KFCHNE2.js} +2 -2
- package/dist/{chunk-GFBL2TW6.js → chunk-A4QB3Y6L.js} +1 -1
- package/dist/chunk-BVWMLS32.js +123 -0
- package/dist/{chunk-5KQCGSNC.js → chunk-CRKVDCY7.js} +1 -1
- package/dist/{chunk-WHQDLLC3.js → chunk-EKWEY4OJ.js} +1 -1
- package/dist/{chunk-Y3BRVNYK.js → chunk-EU22GCGV.js} +2 -2
- package/dist/{chunk-XQPYTDZ4.js → chunk-FB6PKNRS.js} +1 -1
- package/dist/{chunk-UX3MDFX6.js → chunk-FSVOJQLP.js} +1 -1
- package/dist/{chunk-LDBD2FBQ.js → chunk-GAKLBWBR.js} +1 -1
- package/dist/{chunk-C3IEMPRZ.js → chunk-GO3FKBV2.js} +2 -2
- package/dist/{chunk-LZSPEHSM.js → chunk-GPDTJHYY.js} +1 -1
- package/dist/{chunk-W5ABMOXU.js → chunk-JQBWLH5V.js} +1 -1
- package/dist/{chunk-63X6RNY6.js → chunk-KKW3JHTC.js} +1 -1
- package/dist/{chunk-5PLJE42Q.js → chunk-LF2EZVAM.js} +1 -1
- package/dist/{chunk-RXWBYWQB.js → chunk-LGCKOZP3.js} +2 -2
- package/dist/{chunk-JJEADYP7.js → chunk-LMZ6XJFB.js} +2 -2
- package/dist/{chunk-CWYSQZJU.js → chunk-M2YQNSAZ.js} +2 -2
- package/dist/{chunk-GNCKJV3P.js → chunk-MKWHYBIS.js} +1 -1
- package/dist/{chunk-ZB2CLGEG.js → chunk-MXBGYTYF.js} +1 -1
- package/dist/{chunk-UN76TRSK.js → chunk-NH6MXHZR.js} +41 -41
- package/dist/{chunk-II2VW7T6.js → chunk-ODBIX4DB.js} +1 -1
- package/dist/{chunk-3F3CNWOG.js → chunk-OYDQR6DT.js} +2 -2
- package/dist/{chunk-FVL6BT6L.js → chunk-PD6POR44.js} +1 -1
- package/dist/{chunk-U6USXZ5M.js → chunk-PHFT3QNS.js} +2 -2
- package/dist/{chunk-RJYKIZMS.js → chunk-PQZ6PVKG.js} +2 -2
- package/dist/{chunk-TQPQXCSZ.js → chunk-Q6NHXIOZ.js} +2 -2
- package/dist/{chunk-KYGWVCTM.js → chunk-QMDVYTB7.js} +1 -1
- package/dist/{chunk-XKTATY45.js → chunk-RW2KMSG5.js} +4 -4
- package/dist/{chunk-UHNSPTFT.js → chunk-SA2ZS24W.js} +1 -1
- package/dist/{chunk-6YPUQK36.js → chunk-SFWP4UMK.js} +2 -2
- package/dist/{chunk-ZZYLFHBU.js → chunk-TLNEQA4D.js} +1 -1
- package/dist/{chunk-RGTBRWWA.js → chunk-TOODE5AD.js} +2 -2
- package/dist/{chunk-QGWAHOFR.js → chunk-U57GY7SM.js} +2 -2
- package/dist/{chunk-FDJZKB7J.js → chunk-UIDQQJSX.js} +1 -1
- package/dist/{chunk-LLH3WXM3.js → chunk-UVFP2B7I.js} +1 -1
- package/dist/{chunk-4OF7727E.js → chunk-VEGZPCTZ.js} +2 -2
- package/dist/{chunk-73YUPNIT.js → chunk-VXN4V7LC.js} +1 -1
- package/dist/{chunk-4D3W6AAE.js → chunk-YHQVZWPG.js} +1 -1
- package/dist/{chunk-XXYBHYLM.js → chunk-YQO3TO66.js} +2 -2
- package/dist/{chunk-YZAYFR5A.js → chunk-ZSJ3GEOJ.js} +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +50 -50
- package/dist/modules/anim.js +2 -2
- package/dist/modules/array.js +2 -2
- package/dist/modules/auth.js +3 -3
- package/dist/modules/behavior.js +2 -2
- package/dist/modules/bit.js +2 -2
- package/dist/modules/browser.js +2 -2
- package/dist/modules/bytes.js +2 -2
- package/dist/modules/codec.js +3 -3
- package/dist/modules/composition.js +2 -2
- package/dist/modules/core.js +2 -2
- package/dist/modules/csv.js +2 -2
- package/dist/modules/ffi.js +3 -3
- package/dist/modules/format.js +2 -2
- package/dist/modules/geo.js +2 -2
- package/dist/modules/gpu.d.ts +12 -0
- package/dist/modules/gpu.js +3 -0
- package/dist/modules/grid.js +2 -2
- package/dist/modules/i18n.js +2 -2
- package/dist/modules/index.d.ts +1 -2
- package/dist/modules/index.js +45 -46
- package/dist/modules/json.js +2 -2
- package/dist/modules/kernel.js +3 -3
- package/dist/modules/kv.js +3 -3
- package/dist/modules/llm.js +2 -2
- package/dist/modules/math.js +2 -2
- package/dist/modules/mem.js +3 -3
- package/dist/modules/object.js +2 -2
- package/dist/modules/os-common.d.ts +1 -1
- package/dist/modules/os-common.js +2 -2
- package/dist/modules/os-desktop.js +3 -3
- package/dist/modules/os-dev.js +3 -3
- package/dist/modules/os-dir.js +3 -3
- package/dist/modules/os-env-stdio.js +3 -3
- package/dist/modules/os-fs.js +3 -3
- package/dist/modules/os-net.js +3 -3
- package/dist/modules/os-path.js +3 -3
- package/dist/modules/os-process.js +3 -3
- package/dist/modules/os-sys.js +3 -3
- package/dist/modules/os-time-users.js +3 -3
- package/dist/modules/os.js +13 -13
- package/dist/modules/path.js +2 -2
- package/dist/modules/prob.js +2 -2
- package/dist/modules/program.js +2 -2
- package/dist/modules/session.js +2 -2
- package/dist/modules/str.js +2 -2
- package/dist/modules/time.js +2 -2
- package/dist/modules/validate.js +2 -2
- package/dist/modules/vector.js +2 -2
- package/dist/modules/workspace.js +2 -2
- package/dist/modules/xml.js +2 -2
- package/dist/modules/yaml.js +2 -2
- package/dist/registry.d.ts +2 -2
- package/dist/registry.js +49 -49
- package/dist/{types-BA4LkhNJ.d.ts → types-CgiGhK6t.d.ts} +17 -3
- package/package.json +5 -5
- package/dist/chunk-F5TP25JA.js +0 -26
- package/dist/chunk-NE4WSTN7.js +0 -26
- package/dist/modules/trace.d.ts +0 -15
- package/dist/modules/trace.js +0 -2
- /package/dist/{chunk-SHSBTDDX.js → chunk-QUQ33UXH.js} +0 -0
|
@@ -74,8 +74,8 @@ orbital CosmicZoomOrbital {
|
|
|
74
74
|
|
|
75
75
|
entity CosmicZoomView [runtime] {
|
|
76
76
|
id : string!
|
|
77
|
-
program : CosmicProgram? =
|
|
78
|
-
source : CosmicProgram? =
|
|
77
|
+
program : CosmicProgram? = null
|
|
78
|
+
source : CosmicProgram? = null
|
|
79
79
|
highlighted : string = ""
|
|
80
80
|
orbital : string = ""
|
|
81
81
|
trait : string = ""
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
app std-fx-particles [
|
|
2
2
|
version: "1.1.0",
|
|
3
|
-
description: "Headless transient-fx mechanic serving BOTH game boards and learning shells: appends spawned particles on BURST — stamping maxTtl (fade envelope)
|
|
3
|
+
description: "Headless transient-fx mechanic serving BOTH game boards and learning shells: appends spawned particles on BURST — stamping maxTtl (fade envelope), bornAt (epoch ms, smooth render interpolation) and position (scene {x, y: ground row z, z: height y}) when absent — decays each entry's ttl every tick, drops the dead ones, and clears on RESTART. Name-blind mechanism: the effect-kind vocabulary is consumer-declared (FxPreset tables at the render call sites). Composed onto a [runtime, shared] entity; renders nothing — the board/shell owns the single render authority (draw-fx-layer for space \"world\", fx-overlay for space \"screen\"). Corresponds to the design-sheet field(s): feedback, rewards."
|
|
4
4
|
]
|
|
5
5
|
orbital FxParticlesOrbital {
|
|
6
|
+
type FxPos = {
|
|
7
|
+
x : number!
|
|
8
|
+
y : number!
|
|
9
|
+
z : number
|
|
10
|
+
}
|
|
11
|
+
|
|
6
12
|
type Fx = {
|
|
7
13
|
id : string!
|
|
8
14
|
type : string!
|
|
15
|
+
position : FxPos
|
|
9
16
|
x : number!
|
|
10
17
|
z : number
|
|
11
18
|
y : number
|
|
@@ -37,11 +44,13 @@ orbital FxParticlesOrbital {
|
|
|
37
44
|
(set @entity.fx (array/map @config.fx (fn p (object/merge @p {
|
|
38
45
|
maxTtl: (object/get @p maxTtl (object/get @p ttl))
|
|
39
46
|
bornAt: (object/get @p bornAt (time/now))
|
|
47
|
+
position: (object/get @p position { x: @p.x, y: @p.z, z: @p.y })
|
|
40
48
|
}))))
|
|
41
49
|
BURST -> active
|
|
42
50
|
(set @entity.fx (array/concat @entity.fx (array/map @payload.particles (fn p (object/merge @p {
|
|
43
51
|
maxTtl: (object/get @p maxTtl (object/get @p ttl))
|
|
44
52
|
bornAt: (object/get @p bornAt (time/now))
|
|
53
|
+
position: (object/get @p position { x: @p.x, y: @p.z, z: @p.y })
|
|
45
54
|
})))))
|
|
46
55
|
RESTART -> active
|
|
47
56
|
(set @entity.fx [])
|
|
@@ -38,10 +38,10 @@ orbital DrawFxLayerOrbital {
|
|
|
38
38
|
shape : "spark" | "ring" | "puff" | "streak"
|
|
39
39
|
count : number
|
|
40
40
|
glow : number
|
|
41
|
-
gravity : number
|
|
42
|
-
vx : number
|
|
43
|
-
vy : number
|
|
44
|
-
vz : number
|
|
41
|
+
gravity : number!
|
|
42
|
+
vx : number!
|
|
43
|
+
vy : number!
|
|
44
|
+
vz : number!
|
|
45
45
|
space : "world" | "screen"
|
|
46
46
|
effect : "confetti" | "flash" | "shake" | "sparkle" | "float-text" | "streak-glow"
|
|
47
47
|
particleCount : number
|
|
@@ -77,10 +77,10 @@ orbital ArcadeBoard3DFrameOrbital {
|
|
|
77
77
|
shape : string
|
|
78
78
|
count : number
|
|
79
79
|
glow : number
|
|
80
|
-
gravity : number
|
|
81
|
-
vx : number
|
|
82
|
-
vy : number
|
|
83
|
-
vz : number
|
|
80
|
+
gravity : number!
|
|
81
|
+
vx : number!
|
|
82
|
+
vy : number!
|
|
83
|
+
vz : number!
|
|
84
84
|
space : string
|
|
85
85
|
effect : string
|
|
86
86
|
particleCount : number
|
|
@@ -238,12 +238,12 @@ orbital ArcadeBoard3DFrameOrbital {
|
|
|
238
238
|
{ 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), z: (object/get @t z) }, asset: (if (and (validate/required (object/get @t modelUrl)) (validate/required (object/get (object/get @t modelUrl) url))) (object/get @t modelUrl) (if (validate/required (object/get @t assetKey)) (object/get @entity.assetByKey (object/get @t assetKey)) null)) })) }
|
|
239
239
|
{ type: draw-sprite-layer, items: (array/map @entity.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y), z: (object/get @f z) }, asset: (object/get @f assetUrl) })) }
|
|
240
240
|
{ 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 z), z: 0 }, fill: "rgba(74,222,128,0.4)" })) }
|
|
241
|
-
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, radiusX: 0.5, radiusY: 0.
|
|
241
|
+
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, radiusX: 0.5, radiusY: 0.5, stroke: "rgba(0,200,255,0.8)" })) }
|
|
242
242
|
{ type: draw-sprite-layer, items: (array/map (array/filter @entity.units (fn u (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))))) (fn u { type: draw-sprite, position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, asset: (if (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (object/get @u modelUrl) (if (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey))) (object/get @entity.assetByKey (object/get @u assetKey)) null)), id: (object/get @u id), width: 0.8, height: 0.8, anchor: "ground" })) }
|
|
243
243
|
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))) false))) (fn u { type: draw-shape, shape: @config.unitPlaceholderShape, position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, id: (object/get @u id), radiusX: 0.3, radiusY: 0.3, width: 0.6, height: 0.6, fill: @config.unitPlaceholderFill, anchor: "ground" })) }
|
|
244
244
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
|
|
245
245
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, offsetY: -0.6, width: (* 0.8 (default (/ (object/get @u health) (object/get @u maxHealth)) 0)), height: 0.12, fill: "#22c55e" })) }
|
|
246
|
-
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) },
|
|
246
|
+
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, color: "#ffffff" })) }
|
|
247
247
|
{ type: draw-fx-layer, items: @entity.fx, tickMs: 500, presets: @config.fxPresets, sprites: (object/get @config.assetManifest effects {}) }
|
|
248
248
|
] } ]
|
|
249
249
|
})
|
|
@@ -285,12 +285,12 @@ orbital ArcadeBoard3DFrameOrbital {
|
|
|
285
285
|
{ 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), z: (object/get @t z) }, asset: (if (and (validate/required (object/get @t modelUrl)) (validate/required (object/get (object/get @t modelUrl) url))) (object/get @t modelUrl) (if (validate/required (object/get @t assetKey)) (object/get @entity.assetByKey (object/get @t assetKey)) null)) })) }
|
|
286
286
|
{ type: draw-sprite-layer, items: (array/map @entity.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y), z: (object/get @f z) }, asset: (object/get @f assetUrl) })) }
|
|
287
287
|
{ 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 z), z: 0 }, fill: "rgba(74,222,128,0.4)" })) }
|
|
288
|
-
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, radiusX: 0.5, radiusY: 0.
|
|
288
|
+
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, radiusX: 0.5, radiusY: 0.5, stroke: "rgba(0,200,255,0.8)" })) }
|
|
289
289
|
{ type: draw-sprite-layer, items: (array/map (array/filter @entity.units (fn u (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))))) (fn u { type: draw-sprite, position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, asset: (if (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (object/get @u modelUrl) (if (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey))) (object/get @entity.assetByKey (object/get @u assetKey)) null)), id: (object/get @u id), width: 0.8, height: 0.8, anchor: "ground" })) }
|
|
290
290
|
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))) false))) (fn u { type: draw-shape, shape: @config.unitPlaceholderShape, position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, id: (object/get @u id), radiusX: 0.3, radiusY: 0.3, width: 0.6, height: 0.6, fill: @config.unitPlaceholderFill, anchor: "ground" })) }
|
|
291
291
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
|
|
292
292
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, offsetY: -0.6, width: (* 0.8 (default (/ (object/get @u health) (object/get @u maxHealth)) 0)), height: 0.12, fill: "#22c55e" })) }
|
|
293
|
-
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) },
|
|
293
|
+
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, color: "#ffffff" })) }
|
|
294
294
|
{ type: draw-fx-layer, items: @entity.fx, tickMs: 500, presets: @config.fxPresets, sprites: (object/get @config.assetManifest effects {}) }
|
|
295
295
|
] } ]
|
|
296
296
|
})
|
|
@@ -409,7 +409,7 @@ orbital ArcadeBoard3DFrameOrbital {
|
|
|
409
409
|
@label "Features"
|
|
410
410
|
@description "Arcade machines + decorations rendered on the board (static; matched against machines for playability)."
|
|
411
411
|
@tier "presentation"
|
|
412
|
-
fxPresets : [FxPreset] = [ { type: "score", color: "#ffd23f", color2: "#ff6b35", size: 0.55, shape: "spark", count: 7, glow: 0.16, vy: -0.3 }, { type: "info", color: "#38bdf8", color2: "#0c4a6e", size: 0.4, shape: "puff", count: 4 } ]
|
|
412
|
+
fxPresets : [FxPreset] = [ { type: "score", color: "#ffd23f", color2: "#ff6b35", size: 0.55, shape: "spark", count: 7, glow: 0.16, vy: -0.3, gravity: 0, vx: 0, vz: 0 }, { type: "info", color: "#38bdf8", color2: "#0c4a6e", size: 0.4, shape: "puff", count: 4, gravity: 0, vx: 0, vy: 0, vz: 0 } ]
|
|
413
413
|
@label "Fx Presets"
|
|
414
414
|
@description "This board's effect vocabulary — one look/recipe row per fx type its mechanics emit; unknown types fall back to a neutral spark."
|
|
415
415
|
@tier "presentation"
|
|
@@ -75,10 +75,10 @@ orbital CrewBoard2DOrbital {
|
|
|
75
75
|
shape : string
|
|
76
76
|
count : number
|
|
77
77
|
glow : number
|
|
78
|
-
gravity : number
|
|
79
|
-
vx : number
|
|
80
|
-
vy : number
|
|
81
|
-
vz : number
|
|
78
|
+
gravity : number!
|
|
79
|
+
vx : number!
|
|
80
|
+
vy : number!
|
|
81
|
+
vz : number!
|
|
82
82
|
space : string
|
|
83
83
|
effect : string
|
|
84
84
|
particleCount : number
|
|
@@ -88,10 +88,10 @@ orbital DungeonBoard2DOrbital {
|
|
|
88
88
|
shape : string
|
|
89
89
|
count : number
|
|
90
90
|
glow : number
|
|
91
|
-
gravity : number
|
|
92
|
-
vx : number
|
|
93
|
-
vy : number
|
|
94
|
-
vz : number
|
|
91
|
+
gravity : number!
|
|
92
|
+
vx : number!
|
|
93
|
+
vy : number!
|
|
94
|
+
vz : number!
|
|
95
95
|
space : string
|
|
96
96
|
effect : string
|
|
97
97
|
particleCount : number
|
|
@@ -442,7 +442,7 @@ orbital DungeonBoard2DOrbital {
|
|
|
442
442
|
@label "Font Family"
|
|
443
443
|
@description "game-shell font family (e.g. pixel)."
|
|
444
444
|
@tier "presentation"
|
|
445
|
-
fxPresets : [FxPreset] = [ { type: "explosion", color: "#fb923c", color2: "#7c2d12", shape: "ring", size: 0.85, count: 8, glow: 0.2, gravity: 0.4 }, { type: "pickup", color: "#ffe066", color2: "#fff4cc", shape: "spark", size: 0.4, count: 5, glow: 0.1, vy: -0.5 } ]
|
|
445
|
+
fxPresets : [FxPreset] = [ { type: "explosion", color: "#fb923c", color2: "#7c2d12", shape: "ring", size: 0.85, count: 8, glow: 0.2, gravity: 0.4, vx: 0, vy: 0, vz: 0 }, { type: "pickup", color: "#ffe066", color2: "#fff4cc", shape: "spark", size: 0.4, count: 5, glow: 0.1, vy: -0.5, gravity: 0, vx: 0, vz: 0 } ]
|
|
446
446
|
@label "Fx Presets"
|
|
447
447
|
@description "This board's effect vocabulary — one look/recipe row per fx type its mechanics emit; unknown types fall back to a neutral spark."
|
|
448
448
|
@tier "presentation"
|
|
@@ -87,10 +87,10 @@ orbital MarketBoard3DOrbital {
|
|
|
87
87
|
shape : string
|
|
88
88
|
count : number
|
|
89
89
|
glow : number
|
|
90
|
-
gravity : number
|
|
91
|
-
vx : number
|
|
92
|
-
vy : number
|
|
93
|
-
vz : number
|
|
90
|
+
gravity : number!
|
|
91
|
+
vx : number!
|
|
92
|
+
vy : number!
|
|
93
|
+
vz : number!
|
|
94
94
|
space : string
|
|
95
95
|
effect : string
|
|
96
96
|
particleCount : number
|
|
@@ -262,12 +262,12 @@ orbital MarketBoard3DOrbital {
|
|
|
262
262
|
{ type: draw-sprite-layer, items: (array/filter (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y), z: (object/get @t z) }, asset: (if (and (validate/required (object/get @t modelUrl)) (validate/required (object/get (object/get @t modelUrl) url))) (object/get @t modelUrl) (if (and (validate/required (object/get @t assetKey)) (object/has @entity.assetByKey (object/get @t assetKey))) (object/get @entity.assetByKey (object/get @t assetKey)) (if (validate/required (object/get @t terrain)) (object/get (object/merge (object/get @config.assetManifest terrains {}) (object/get @entity.assetManifest terrains {})) (object/get @t terrain)) null))) })) (fn s (and (validate/required (object/get @s asset)) (validate/required (object/get (object/get @s asset) url))))) }
|
|
263
263
|
{ type: draw-sprite-layer, items: (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (if (and (validate/required (object/get @f assetUrl)) (validate/required (object/get (object/get @f assetUrl) url))) (object/get @f assetUrl) (if (validate/required (object/get @f assetKey)) (object/get (object/merge (object/get @config.assetManifest features {}) (object/get @entity.assetManifest features {})) (object/get @f assetKey)) null)) })) }
|
|
264
264
|
{ 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 z) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
265
|
-
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, radiusX: 0.5, radiusY: 0.
|
|
265
|
+
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, radiusX: 0.5, radiusY: 0.5, stroke: "rgba(0,200,255,0.8)" })) }
|
|
266
266
|
{ type: draw-sprite-layer, items: (array/concat (array/map (array/filter @entity.units (fn u (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))))) (fn u { type: draw-sprite, position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, asset: (if (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (object/get @u modelUrl) (if (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey))) (object/get @entity.assetByKey (object/get @u assetKey)) null)), id: (object/get @u id), width: 0.8, height: 0.8, anchor: "ground" })) (array/map (array/filter @entity.customers (fn c (or (and (validate/required (object/get @c modelUrl)) (validate/required (object/get (object/get @c modelUrl) url))) (and (validate/required (object/get @c assetKey)) (object/has @entity.assetByKey (object/get @c assetKey)))))) (fn c { type: draw-sprite, position: (object/get @c position), asset: (if (and (validate/required (object/get @c modelUrl)) (validate/required (object/get (object/get @c modelUrl) url))) (object/get @c modelUrl) (if (and (validate/required (object/get @c assetKey)) (object/has @entity.assetByKey (object/get @c assetKey))) (object/get @entity.assetByKey (object/get @c assetKey)) null)), width: 0.8, height: 0.8 }))) }
|
|
267
267
|
{ type: draw-shape-layer, items: (array/concat (array/map (array/filter @entity.units (fn u (== (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))) false))) (fn u { type: draw-shape, shape: @config.unitPlaceholderShape, position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, id: (object/get @u id), radiusX: 0.3, radiusY: 0.3, width: 0.6, height: 0.6, fill: @config.unitPlaceholderFill, anchor: "ground" })) (array/map (array/filter @entity.customers (fn c (== (or (and (validate/required (object/get @c modelUrl)) (validate/required (object/get (object/get @c modelUrl) url))) (and (validate/required (object/get @c assetKey)) (object/has @entity.assetByKey (object/get @c assetKey)))) false))) (fn c { type: draw-shape, shape: @config.unitPlaceholderShape, position: (object/get @c position), id: (object/get @c id), radiusX: 0.3, radiusY: 0.3, width: 0.6, height: 0.6, fill: @config.unitPlaceholderFill, anchor: "ground" }))) }
|
|
268
268
|
{ type: draw-shape-layer, items: (array/concat (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) (array/map @entity.customers (fn c { type: draw-shape, shape: "rect", position: (object/get @c position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" }))) }
|
|
269
269
|
{ type: draw-shape-layer, items: (array/concat (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, offsetY: -0.6, width: (* 0.8 (default (/ (object/get @u health) (object/get @u maxHealth)) 0)), height: 0.12, fill: "#22c55e" })) (array/map @entity.customers (fn c { type: draw-shape, shape: "rect", position: (object/get @c position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "#22c55e" }))) }
|
|
270
|
-
{ type: draw-text-layer, items: (array/concat (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) },
|
|
270
|
+
{ type: draw-text-layer, items: (array/concat (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, color: "#ffffff" })) (array/map @entity.customers (fn c { type: draw-text, text: (object/get @c name), position: (object/get @c position), color: "#ffffff" }))) }
|
|
271
271
|
{ type: draw-fx-layer, items: @entity.fx, tickMs: 500, presets: @config.fxPresets }
|
|
272
272
|
] } ]
|
|
273
273
|
})
|
|
@@ -306,12 +306,12 @@ orbital MarketBoard3DOrbital {
|
|
|
306
306
|
{ type: draw-sprite-layer, items: (array/filter (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y), z: (object/get @t z) }, asset: (if (and (validate/required (object/get @t modelUrl)) (validate/required (object/get (object/get @t modelUrl) url))) (object/get @t modelUrl) (if (and (validate/required (object/get @t assetKey)) (object/has @entity.assetByKey (object/get @t assetKey))) (object/get @entity.assetByKey (object/get @t assetKey)) (if (validate/required (object/get @t terrain)) (object/get (object/merge (object/get @config.assetManifest terrains {}) (object/get @entity.assetManifest terrains {})) (object/get @t terrain)) null))) })) (fn s (and (validate/required (object/get @s asset)) (validate/required (object/get (object/get @s asset) url))))) }
|
|
307
307
|
{ type: draw-sprite-layer, items: (array/map @config.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (if (and (validate/required (object/get @f assetUrl)) (validate/required (object/get (object/get @f assetUrl) url))) (object/get @f assetUrl) (if (validate/required (object/get @f assetKey)) (object/get (object/merge (object/get @config.assetManifest features {}) (object/get @entity.assetManifest features {})) (object/get @f assetKey)) null)) })) }
|
|
308
308
|
{ 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 z) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
309
|
-
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, radiusX: 0.5, radiusY: 0.
|
|
309
|
+
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, radiusX: 0.5, radiusY: 0.5, stroke: "rgba(0,200,255,0.8)" })) }
|
|
310
310
|
{ type: draw-sprite-layer, items: (array/concat (array/map (array/filter @entity.units (fn u (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))))) (fn u { type: draw-sprite, position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, asset: (if (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (object/get @u modelUrl) (if (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey))) (object/get @entity.assetByKey (object/get @u assetKey)) null)), id: (object/get @u id), width: 0.8, height: 0.8, anchor: "ground" })) (array/map (array/filter @entity.customers (fn c (or (and (validate/required (object/get @c modelUrl)) (validate/required (object/get (object/get @c modelUrl) url))) (and (validate/required (object/get @c assetKey)) (object/has @entity.assetByKey (object/get @c assetKey)))))) (fn c { type: draw-sprite, position: (object/get @c position), asset: (if (and (validate/required (object/get @c modelUrl)) (validate/required (object/get (object/get @c modelUrl) url))) (object/get @c modelUrl) (if (and (validate/required (object/get @c assetKey)) (object/has @entity.assetByKey (object/get @c assetKey))) (object/get @entity.assetByKey (object/get @c assetKey)) null)), width: 0.8, height: 0.8 }))) }
|
|
311
311
|
{ type: draw-shape-layer, items: (array/concat (array/map (array/filter @entity.units (fn u (== (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))) false))) (fn u { type: draw-shape, shape: @config.unitPlaceholderShape, position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, id: (object/get @u id), radiusX: 0.3, radiusY: 0.3, width: 0.6, height: 0.6, fill: @config.unitPlaceholderFill, anchor: "ground" })) (array/map (array/filter @entity.customers (fn c (== (or (and (validate/required (object/get @c modelUrl)) (validate/required (object/get (object/get @c modelUrl) url))) (and (validate/required (object/get @c assetKey)) (object/has @entity.assetByKey (object/get @c assetKey)))) false))) (fn c { type: draw-shape, shape: @config.unitPlaceholderShape, position: (object/get @c position), id: (object/get @c id), radiusX: 0.3, radiusY: 0.3, width: 0.6, height: 0.6, fill: @config.unitPlaceholderFill, anchor: "ground" }))) }
|
|
312
312
|
{ type: draw-shape-layer, items: (array/concat (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) (array/map @entity.customers (fn c { type: draw-shape, shape: "rect", position: (object/get @c position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" }))) }
|
|
313
313
|
{ type: draw-shape-layer, items: (array/concat (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, offsetY: -0.6, width: (* 0.8 (default (/ (object/get @u health) (object/get @u maxHealth)) 0)), height: 0.12, fill: "#22c55e" })) (array/map @entity.customers (fn c { type: draw-shape, shape: "rect", position: (object/get @c position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "#22c55e" }))) }
|
|
314
|
-
{ type: draw-text-layer, items: (array/concat (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) },
|
|
314
|
+
{ type: draw-text-layer, items: (array/concat (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: { x: (object/get (object/get @u position) x), y: (object/get (object/get @u position) y), z: (object/get @u z) }, color: "#ffffff" })) (array/map @entity.customers (fn c { type: draw-text, text: (object/get @c name), position: (object/get @c position), color: "#ffffff" }))) }
|
|
315
315
|
{ type: draw-fx-layer, items: @entity.fx, tickMs: 500, presets: @config.fxPresets }
|
|
316
316
|
] } ]
|
|
317
317
|
})
|
|
@@ -412,7 +412,7 @@ orbital MarketBoard3DOrbital {
|
|
|
412
412
|
@label "Features"
|
|
413
413
|
@description "Static decorative props (shelves/freezers/checkout/etc); never mutated by any mechanic."
|
|
414
414
|
@tier "presentation"
|
|
415
|
-
fxPresets : [FxPreset] = [ { type: "score", color: "#fbbf24", color2: "#fde68a", size: 0.45, shape: "spark", count: 6, glow: 0.1, vy: -0.3 }, { type: "damage", color: "#ef4444", color2: "#450a0a", size: 0.5, shape: "puff", count: 4, gravity: 0.3 } ]
|
|
415
|
+
fxPresets : [FxPreset] = [ { type: "score", color: "#fbbf24", color2: "#fde68a", size: 0.45, shape: "spark", count: 6, glow: 0.1, vy: -0.3, gravity: 0, vx: 0, vz: 0 }, { type: "damage", color: "#ef4444", color2: "#450a0a", size: 0.5, shape: "puff", count: 4, gravity: 0.3, vx: 0, vy: 0, vz: 0 } ]
|
|
416
416
|
@label "Fx Presets"
|
|
417
417
|
@description "This board's effect vocabulary — one look/recipe row per fx type its mechanics emit; unknown types fall back to a neutral spark."
|
|
418
418
|
@tier "presentation"
|
|
@@ -77,10 +77,10 @@ orbital ObjectiveBoard3DOrbital {
|
|
|
77
77
|
shape : string
|
|
78
78
|
count : number
|
|
79
79
|
glow : number
|
|
80
|
-
gravity : number
|
|
81
|
-
vx : number
|
|
82
|
-
vy : number
|
|
83
|
-
vz : number
|
|
80
|
+
gravity : number!
|
|
81
|
+
vx : number!
|
|
82
|
+
vy : number!
|
|
83
|
+
vz : number!
|
|
84
84
|
space : string
|
|
85
85
|
effect : string
|
|
86
86
|
particleCount : number
|
|
@@ -255,12 +255,12 @@ orbital ObjectiveBoard3DOrbital {
|
|
|
255
255
|
{ type: draw-sprite-layer, items: (array/filter (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (if (and (validate/required (object/get @t modelUrl)) (validate/required (object/get (object/get @t modelUrl) url))) (object/get @t modelUrl) (if (and (validate/required (object/get @t assetKey)) (object/has @entity.assetByKey (object/get @t assetKey))) (object/get @entity.assetByKey (object/get @t assetKey)) (if (validate/required (object/get @t terrain)) (object/get (object/merge (object/get @config.assetManifest terrains {}) (default (object/get @entity.assetManifest terrains {}) {})) (object/get @t terrain)) null))) })) (fn s (and (validate/required (object/get @s asset)) (validate/required (object/get (object/get @s asset) url))))) }
|
|
256
256
|
{ type: draw-sprite-layer, items: (array/map @entity.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) }
|
|
257
257
|
{ 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 z) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
258
|
-
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: (object/get @u position), radiusX: 0.5, radiusY: 0.
|
|
258
|
+
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: (object/get @u position), radiusX: 0.5, radiusY: 0.5, stroke: "rgba(0,200,255,0.8)" })) }
|
|
259
259
|
{ type: draw-sprite-layer, items: (array/map (array/filter @entity.units (fn u (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))))) (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (object/get @u modelUrl) (if (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey))) (object/get @entity.assetByKey (object/get @u assetKey)) null)), id: (object/get @u id), width: 0.8, height: 0.8, anchor: "ground" })) }
|
|
260
260
|
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))) false))) (fn u { type: draw-shape, shape: @config.unitPlaceholderShape, position: (object/get @u position), id: (object/get @u id), radiusX: 0.3, radiusY: 0.3, width: 0.6, height: 0.6, fill: @config.unitPlaceholderFill, anchor: "ground" })) }
|
|
261
261
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
|
|
262
262
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: (* 0.8 (default (/ (object/get @u health) (object/get @u maxHealth)) 0)), height: 0.12, fill: "#22c55e" })) }
|
|
263
|
-
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position),
|
|
263
|
+
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position), color: "#ffffff" })) }
|
|
264
264
|
{ type: draw-fx-layer, items: @entity.fx, tickMs: 500, presets: @config.fxPresets }
|
|
265
265
|
] } ]
|
|
266
266
|
})
|
|
@@ -299,12 +299,12 @@ orbital ObjectiveBoard3DOrbital {
|
|
|
299
299
|
{ type: draw-sprite-layer, items: (array/filter (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (if (and (validate/required (object/get @t modelUrl)) (validate/required (object/get (object/get @t modelUrl) url))) (object/get @t modelUrl) (if (and (validate/required (object/get @t assetKey)) (object/has @entity.assetByKey (object/get @t assetKey))) (object/get @entity.assetByKey (object/get @t assetKey)) (if (validate/required (object/get @t terrain)) (object/get (object/merge (object/get @config.assetManifest terrains {}) (default (object/get @entity.assetManifest terrains {}) {})) (object/get @t terrain)) null))) })) (fn s (and (validate/required (object/get @s asset)) (validate/required (object/get (object/get @s asset) url))))) }
|
|
300
300
|
{ type: draw-sprite-layer, items: (array/map @entity.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) }
|
|
301
301
|
{ 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 z) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
302
|
-
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: (object/get @u position), radiusX: 0.5, radiusY: 0.
|
|
302
|
+
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: (object/get @u position), radiusX: 0.5, radiusY: 0.5, stroke: "rgba(0,200,255,0.8)" })) }
|
|
303
303
|
{ type: draw-sprite-layer, items: (array/map (array/filter @entity.units (fn u (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))))) (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (object/get @u modelUrl) (if (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey))) (object/get @entity.assetByKey (object/get @u assetKey)) null)), id: (object/get @u id), width: 0.8, height: 0.8, anchor: "ground" })) }
|
|
304
304
|
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))) false))) (fn u { type: draw-shape, shape: @config.unitPlaceholderShape, position: (object/get @u position), id: (object/get @u id), radiusX: 0.3, radiusY: 0.3, width: 0.6, height: 0.6, fill: @config.unitPlaceholderFill, anchor: "ground" })) }
|
|
305
305
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
|
|
306
306
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: (* 0.8 (default (/ (object/get @u health) (object/get @u maxHealth)) 0)), height: 0.12, fill: "#22c55e" })) }
|
|
307
|
-
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position),
|
|
307
|
+
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position), color: "#ffffff" })) }
|
|
308
308
|
{ type: draw-fx-layer, items: @entity.fx, tickMs: 500, presets: @config.fxPresets }
|
|
309
309
|
] } ]
|
|
310
310
|
})
|
|
@@ -401,7 +401,7 @@ orbital ObjectiveBoard3DOrbital {
|
|
|
401
401
|
@label "Bg Color"
|
|
402
402
|
@description "Canvas background color."
|
|
403
403
|
@tier "presentation"
|
|
404
|
-
fxPresets : [FxPreset] = [ { type: "pickup", color: "#ffe066", color2: "#ffffff", size: 0.5, shape: "spark", count: 6, glow: 0.14, vy: -0.3 } ]
|
|
404
|
+
fxPresets : [FxPreset] = [ { type: "pickup", color: "#ffe066", color2: "#ffffff", size: 0.5, shape: "spark", count: 6, glow: 0.14, vy: -0.3, gravity: 0, vx: 0, vz: 0 } ]
|
|
405
405
|
@label "Fx Presets"
|
|
406
406
|
@description "This board's effect vocabulary — one look/recipe row per fx type its mechanics emit; unknown types fall back to a neutral spark."
|
|
407
407
|
@tier "presentation"
|
|
@@ -81,10 +81,10 @@ orbital PlatformerBoard2DOrbital {
|
|
|
81
81
|
shape : string
|
|
82
82
|
count : number
|
|
83
83
|
glow : number
|
|
84
|
-
gravity : number
|
|
85
|
-
vx : number
|
|
86
|
-
vy : number
|
|
87
|
-
vz : number
|
|
84
|
+
gravity : number!
|
|
85
|
+
vx : number!
|
|
86
|
+
vy : number!
|
|
87
|
+
vz : number!
|
|
88
88
|
space : string
|
|
89
89
|
effect : string
|
|
90
90
|
particleCount : number
|
|
@@ -399,7 +399,7 @@ orbital PlatformerBoard2DOrbital {
|
|
|
399
399
|
@label "World Width"
|
|
400
400
|
@description "World pixel width (camera + canvas bounds)"
|
|
401
401
|
@tier "presentation"
|
|
402
|
-
fxPresets : [FxPreset] = [ { type: "score", color: "#ffe066", color2: "#fff4cc", shape: "spark", size: 22, count: 6, glow: 0.15, vy: -35 }, { type: "damage", color: "#ef4444", color2: "#7f1d1d", shape: "spark", size: 20, count: 5, glow: 0.12, gravity: 40 } ]
|
|
402
|
+
fxPresets : [FxPreset] = [ { type: "score", color: "#ffe066", color2: "#fff4cc", shape: "spark", size: 22, count: 6, glow: 0.15, vy: -35, gravity: 0, vx: 0, vz: 0 }, { type: "damage", color: "#ef4444", color2: "#7f1d1d", shape: "spark", size: 20, count: 5, glow: 0.12, gravity: 40, vx: 0, vy: 0, vz: 0 } ]
|
|
403
403
|
@label "Fx Presets"
|
|
404
404
|
@description "This board's effect vocabulary — one look/recipe row per fx type its intent trait emits (goal score, hazard/fell damage)."
|
|
405
405
|
@tier "presentation"
|
|
@@ -115,10 +115,10 @@ orbital PlatformerPuzzleOrbital {
|
|
|
115
115
|
shape : string
|
|
116
116
|
count : number
|
|
117
117
|
glow : number
|
|
118
|
-
gravity : number
|
|
119
|
-
vx : number
|
|
120
|
-
vy : number
|
|
121
|
-
vz : number
|
|
118
|
+
gravity : number!
|
|
119
|
+
vx : number!
|
|
120
|
+
vy : number!
|
|
121
|
+
vz : number!
|
|
122
122
|
space : string
|
|
123
123
|
effect : string
|
|
124
124
|
particleCount : number
|
|
@@ -77,10 +77,10 @@ orbital SurvivalBoard3DOrbital {
|
|
|
77
77
|
shape : string
|
|
78
78
|
count : number
|
|
79
79
|
glow : number
|
|
80
|
-
gravity : number
|
|
81
|
-
vx : number
|
|
82
|
-
vy : number
|
|
83
|
-
vz : number
|
|
80
|
+
gravity : number!
|
|
81
|
+
vx : number!
|
|
82
|
+
vy : number!
|
|
83
|
+
vz : number!
|
|
84
84
|
space : string
|
|
85
85
|
effect : string
|
|
86
86
|
particleCount : number
|
|
@@ -231,12 +231,12 @@ orbital SurvivalBoard3DOrbital {
|
|
|
231
231
|
{ type: draw-sprite-layer, items: (array/filter (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (if (and (validate/required (object/get @t modelUrl)) (validate/required (object/get (object/get @t modelUrl) url))) (object/get @t modelUrl) (if (and (validate/required (object/get @t assetKey)) (object/has @entity.assetByKey (object/get @t assetKey))) (object/get @entity.assetByKey (object/get @t assetKey)) (if (validate/required (object/get @t terrain)) (object/get (object/get @config.assetManifest terrains {}) (object/get @t terrain)) null))) })) (fn s (and (validate/required (object/get @s asset)) (validate/required (object/get (object/get @s asset) url))))) }
|
|
232
232
|
{ type: draw-sprite-layer, items: (array/map @entity.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) }
|
|
233
233
|
{ 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 z) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
234
|
-
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: (object/get @u position), radiusX: 0.5, radiusY: 0.
|
|
234
|
+
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: (object/get @u position), radiusX: 0.5, radiusY: 0.5, stroke: "rgba(0,200,255,0.8)" })) }
|
|
235
235
|
{ type: draw-sprite-layer, items: (array/map (array/filter @entity.units (fn u (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))))) (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (object/get @u modelUrl) (if (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey))) (object/get @entity.assetByKey (object/get @u assetKey)) null)), id: (object/get @u id), width: 0.8, height: 0.8, anchor: "ground" })) }
|
|
236
236
|
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))) false))) (fn u { type: draw-shape, shape: @config.unitPlaceholderShape, position: (object/get @u position), id: (object/get @u id), radiusX: 0.3, radiusY: 0.3, width: 0.6, height: 0.6, fill: @config.unitPlaceholderFill, anchor: "ground" })) }
|
|
237
237
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
|
|
238
238
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: (* 0.8 (default (/ (object/get @u health) (object/get @u maxHealth)) 0)), height: 0.12, fill: "#22c55e" })) }
|
|
239
|
-
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position),
|
|
239
|
+
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position), color: "#ffffff" })) }
|
|
240
240
|
{ type: draw-fx-layer, items: @entity.fx, tickMs: 500, presets: @config.fxPresets }
|
|
241
241
|
] } ]
|
|
242
242
|
})
|
|
@@ -278,12 +278,12 @@ orbital SurvivalBoard3DOrbital {
|
|
|
278
278
|
{ type: draw-sprite-layer, items: (array/filter (array/map @entity.tiles (fn t { type: draw-sprite, position: { x: (object/get @t x), y: (object/get @t y) }, asset: (if (and (validate/required (object/get @t modelUrl)) (validate/required (object/get (object/get @t modelUrl) url))) (object/get @t modelUrl) (if (and (validate/required (object/get @t assetKey)) (object/has @entity.assetByKey (object/get @t assetKey))) (object/get @entity.assetByKey (object/get @t assetKey)) (if (validate/required (object/get @t terrain)) (object/get (object/get @config.assetManifest terrains {}) (object/get @t terrain)) null))) })) (fn s (and (validate/required (object/get @s asset)) (validate/required (object/get (object/get @s asset) url))))) }
|
|
279
279
|
{ type: draw-sprite-layer, items: (array/map @entity.features (fn f { type: draw-sprite, position: { x: (object/get @f x), y: (object/get @f y) }, asset: (object/get @f assetUrl) })) }
|
|
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 z) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
281
|
-
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: (object/get @u position), radiusX: 0.5, radiusY: 0.
|
|
281
|
+
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (object/get @u id) @entity.selectedUnitId))) (fn u { type: draw-shape, shape: "ellipse", position: (object/get @u position), radiusX: 0.5, radiusY: 0.5, stroke: "rgba(0,200,255,0.8)" })) }
|
|
282
282
|
{ type: draw-sprite-layer, items: (array/map (array/filter @entity.units (fn u (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))))) (fn u { type: draw-sprite, position: (object/get @u position), asset: (if (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (object/get @u modelUrl) (if (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey))) (object/get @entity.assetByKey (object/get @u assetKey)) null)), id: (object/get @u id), width: 0.8, height: 0.8, anchor: "ground" })) }
|
|
283
283
|
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (fn u (== (or (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (and (validate/required (object/get @u assetKey)) (object/has @entity.assetByKey (object/get @u assetKey)))) false))) (fn u { type: draw-shape, shape: @config.unitPlaceholderShape, position: (object/get @u position), id: (object/get @u id), radiusX: 0.3, radiusY: 0.3, width: 0.6, height: 0.6, fill: @config.unitPlaceholderFill, anchor: "ground" })) }
|
|
284
284
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
|
|
285
285
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: (object/get @u position), offsetY: -0.6, width: (* 0.8 (default (/ (object/get @u health) (object/get @u maxHealth)) 0)), height: 0.12, fill: "#22c55e" })) }
|
|
286
|
-
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position),
|
|
286
|
+
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: (object/get @u position), color: "#ffffff" })) }
|
|
287
287
|
{ type: draw-fx-layer, items: @entity.fx, tickMs: 500, presets: @config.fxPresets }
|
|
288
288
|
] } ]
|
|
289
289
|
})
|
|
@@ -390,7 +390,7 @@ orbital SurvivalBoard3DOrbital {
|
|
|
390
390
|
@label "Bg Color"
|
|
391
391
|
@description "Canvas background color."
|
|
392
392
|
@tier "presentation"
|
|
393
|
-
fxPresets : [FxPreset] = [ { type: "pickup", color: "#84a98c", color2: "#6b4226", size: 0.45, shape: "spark", count: 5, vy: -0.2 } ]
|
|
393
|
+
fxPresets : [FxPreset] = [ { type: "pickup", color: "#84a98c", color2: "#6b4226", size: 0.45, shape: "spark", count: 5, vy: -0.2, gravity: 0, vx: 0, vz: 0 } ]
|
|
394
394
|
@label "Fx Presets"
|
|
395
395
|
@description "This board's effect vocabulary — one look/recipe row per fx type its mechanics emit; unknown types fall back to a neutral spark."
|
|
396
396
|
@tier "presentation"
|
|
@@ -78,10 +78,10 @@ orbital TacticsBoard2DOrbital {
|
|
|
78
78
|
shape : string
|
|
79
79
|
count : number
|
|
80
80
|
glow : number
|
|
81
|
-
gravity : number
|
|
82
|
-
vx : number
|
|
83
|
-
vy : number
|
|
84
|
-
vz : number
|
|
81
|
+
gravity : number!
|
|
82
|
+
vx : number!
|
|
83
|
+
vy : number!
|
|
84
|
+
vz : number!
|
|
85
85
|
space : string
|
|
86
86
|
effect : string
|
|
87
87
|
particleCount : number
|
|
@@ -462,7 +462,7 @@ orbital TacticsBoard2DOrbital {
|
|
|
462
462
|
@label "Asset Manifest"
|
|
463
463
|
@description "Terrain/unit/feature/effect sprite manifest."
|
|
464
464
|
@tier "presentation"
|
|
465
|
-
fxPresets : [FxPreset] = [ { type: "hit", color: "#ff6b6b", color2: "#ffb347", shape: "spark", size: 0.45, count: 6, glow: 0.12, vy: -0.3 } ]
|
|
465
|
+
fxPresets : [FxPreset] = [ { type: "hit", color: "#ff6b6b", color2: "#ffb347", shape: "spark", size: 0.45, count: 6, glow: 0.12, vy: -0.3, gravity: 0, vx: 0, vz: 0 } ]
|
|
466
466
|
@label "Fx Presets"
|
|
467
467
|
@description "This board's effect vocabulary — one look/recipe row per fx type its mechanics emit; unknown types fall back to a neutral spark."
|
|
468
468
|
@tier "presentation"
|
|
@@ -107,10 +107,10 @@ orbital TacticsBoard3DOrbital {
|
|
|
107
107
|
shape : string
|
|
108
108
|
count : number
|
|
109
109
|
glow : number
|
|
110
|
-
gravity : number
|
|
111
|
-
vx : number
|
|
112
|
-
vy : number
|
|
113
|
-
vz : number
|
|
110
|
+
gravity : number!
|
|
111
|
+
vx : number!
|
|
112
|
+
vy : number!
|
|
113
|
+
vz : number!
|
|
114
114
|
space : string
|
|
115
115
|
effect : string
|
|
116
116
|
particleCount : number
|
|
@@ -251,14 +251,14 @@ orbital TacticsBoard3DOrbital {
|
|
|
251
251
|
(array/concat (let ((layers3 : [node] [
|
|
252
252
|
{ 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 z) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
253
253
|
{ type: draw-shape-layer, items: (array/map @entity.attackTargets (fn a { type: draw-shape, shape: "cell", position: { x: (object/get @a x), y: (object/get @a z) }, fill: "rgba(239,68,68,0.4)" })) }
|
|
254
|
-
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (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), z: (object/get @u z) }, radiusX: 0.5, radiusY: 0.
|
|
254
|
+
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (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), z: (object/get @u z) }, radiusX: 0.5, radiusY: 0.5, stroke: "rgba(0,200,255,0.8)" })) }
|
|
255
255
|
])) @layers3) (array/concat
|
|
256
256
|
(array/map (array/filter @entity.units (fn u (and (validate/required (object/get @u unitType)) (object/has @entity.meshAssetArt (object/get @u unitType))))) (fn u (let ((unitStates (default (object/get @entity.meshAssetArt (default (object/get @u unitType) "")) {})) (unitAnim (if (<= (object/get @u health) 0) "death" "idle"))) { type: draw-group, id: (object/get @u id), position: { x: (object/get @u x), y: (object/get @u y), z: (object/get @u z) }, scale: @config.meshUnitScale, rotate: (- 0 (object/get @u yaw 0)), items: (if (object/has @unitStates @unitAnim) (object/get @unitStates @unitAnim) (object/get @unitStates "idle")) })))
|
|
257
257
|
(array/concat (let ((layers4 : [node] [
|
|
258
258
|
{ type: draw-sprite-layer, items: (array/map (array/filter @entity.units (fn u (not (and (validate/required (object/get @u unitType)) (object/has @entity.meshAssetArt (object/get @u unitType)))))) (fn u { type: draw-sprite, position: { x: (object/get @u x), y: (object/get @u y), z: (object/get @u z) }, asset: (if (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (object/get @u modelUrl) (if (validate/required (object/get @u assetKey)) (object/get @entity.assetByKey (object/get @u assetKey)) null)), id: (object/get @u id), width: 0.8, height: 0.8, anchor: "ground" })) }
|
|
259
259
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get @u x), y: (object/get @u y), z: (object/get @u z) }, offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
|
|
260
260
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get @u x), y: (object/get @u y), z: (object/get @u z) }, offsetY: -0.6, width: (* 0.8 (default (/ (object/get @u health) (object/get @u maxHealth)) 0)), height: 0.12, fill: "#22c55e" })) }
|
|
261
|
-
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: { x: (object/get @u x), y: (object/get @u y), z: (object/get @u z) },
|
|
261
|
+
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: { x: (object/get @u x), y: (object/get @u y), z: (object/get @u z) }, color: "#ffffff" })) }
|
|
262
262
|
])) @layers4) (array/concat
|
|
263
263
|
[]
|
|
264
264
|
[
|
|
@@ -325,14 +325,14 @@ orbital TacticsBoard3DOrbital {
|
|
|
325
325
|
(array/concat (let ((layers7 : [node] [
|
|
326
326
|
{ 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 z) }, fill: "rgba(74,222,128,0.4)" })) }
|
|
327
327
|
{ type: draw-shape-layer, items: (array/map @entity.attackTargets (fn a { type: draw-shape, shape: "cell", position: { x: (object/get @a x), y: (object/get @a z) }, fill: "rgba(239,68,68,0.4)" })) }
|
|
328
|
-
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (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), z: (object/get @u z) }, radiusX: 0.5, radiusY: 0.
|
|
328
|
+
{ type: draw-shape-layer, items: (array/map (array/filter @entity.units (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), z: (object/get @u z) }, radiusX: 0.5, radiusY: 0.5, stroke: "rgba(0,200,255,0.8)" })) }
|
|
329
329
|
])) @layers7) (array/concat
|
|
330
330
|
(array/map (array/filter @entity.units (fn u (and (validate/required (object/get @u unitType)) (object/has @entity.meshAssetArt (object/get @u unitType))))) (fn u (let ((unitStates (default (object/get @entity.meshAssetArt (default (object/get @u unitType) "")) {})) (unitAnim (if (<= (object/get @u health) 0) "death" "idle"))) { type: draw-group, id: (object/get @u id), position: { x: (object/get @u x), y: (object/get @u y), z: (object/get @u z) }, scale: @config.meshUnitScale, rotate: (- 0 (object/get @u yaw 0)), items: (if (object/has @unitStates @unitAnim) (object/get @unitStates @unitAnim) (object/get @unitStates "idle")) })))
|
|
331
331
|
(array/concat (let ((layers8 : [node] [
|
|
332
332
|
{ type: draw-sprite-layer, items: (array/map (array/filter @entity.units (fn u (not (and (validate/required (object/get @u unitType)) (object/has @entity.meshAssetArt (object/get @u unitType)))))) (fn u { type: draw-sprite, position: { x: (object/get @u x), y: (object/get @u y), z: (object/get @u z) }, asset: (if (and (validate/required (object/get @u modelUrl)) (validate/required (object/get (object/get @u modelUrl) url))) (object/get @u modelUrl) (if (validate/required (object/get @u assetKey)) (object/get @entity.assetByKey (object/get @u assetKey)) null)), id: (object/get @u id), width: 0.8, height: 0.8, anchor: "ground" })) }
|
|
333
333
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get @u x), y: (object/get @u y), z: (object/get @u z) }, offsetY: -0.6, width: 0.8, height: 0.12, fill: "rgba(0,0,0,0.6)" })) }
|
|
334
334
|
{ type: draw-shape-layer, items: (array/map @entity.units (fn u { type: draw-shape, shape: "rect", position: { x: (object/get @u x), y: (object/get @u y), z: (object/get @u z) }, offsetY: -0.6, width: (* 0.8 (default (/ (object/get @u health) (object/get @u maxHealth)) 0)), height: 0.12, fill: "#22c55e" })) }
|
|
335
|
-
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: { x: (object/get @u x), y: (object/get @u y), z: (object/get @u z) },
|
|
335
|
+
{ type: draw-text-layer, items: (array/map @entity.units (fn u { type: draw-text, text: (object/get @u name), position: { x: (object/get @u x), y: (object/get @u y), z: (object/get @u z) }, color: "#ffffff" })) }
|
|
336
336
|
])) @layers8) (array/concat
|
|
337
337
|
[]
|
|
338
338
|
[
|
|
@@ -407,7 +407,7 @@ orbital TacticsBoard3DOrbital {
|
|
|
407
407
|
@label "Features"
|
|
408
408
|
@description "Decorative environment features drawn on the board."
|
|
409
409
|
@tier "presentation"
|
|
410
|
-
fxPresets : [FxPreset] = [ { type: "hit", color: "#ff5252", color2: "#7a1010", size: 0.5, shape: "spark", count: 6, glow: 0.12, gravity: 0.6, vy: -0.2 } ]
|
|
410
|
+
fxPresets : [FxPreset] = [ { type: "hit", color: "#ff5252", color2: "#7a1010", size: 0.5, shape: "spark", count: 6, glow: 0.12, gravity: 0.6, vy: -0.2, vx: 0, vz: 0 } ]
|
|
411
411
|
@label "Fx Presets"
|
|
412
412
|
@description "This board's effect vocabulary — one look/recipe row per fx type its mechanics emit; unknown types fall back to a neutral spark."
|
|
413
413
|
@tier "presentation"
|