orbit/dev
Brian Fertig 1e3beccb22 Add "Special Delivery" quest with package handoff and shop gating
- New main quest granted after claiming "Leaving the Nest": land at the neutral capital (the bar), upgrade cargo bays, then deliver the sealed package to the home world.
- Introduce a non-tradeable `special-package` good (sheet frame 114) that no shop stocks or buys back; `Economy.isTradeable` filters it out of every floor and the sell grid refuses to queue it.
- Record story witnesses (`capitalLanded`, `launchedFromCapital`, `lastLandedWorld`, `delivered`) in a registry-backed ledger, persisted via SaveData so progress survives load and reset clears it.
- Gate the surface shop behind the capital landing: deck slot disabled and `toggleShop` refuses until `isShopUnlocked`.
- On capital departure, set the destination back to the home world so the compass marks the delivery leg; delivery proof is monotonic once recorded.
- Surface console note announces the package handoff when it first lands in the hold.
- Extend economy and quest test suites to cover the new check types, non-tradeable exclusion, unlock chain, and save/load of the story ledger.
2026-09-13 08:49:50 -06:00
..
actionbar.test.mjs
…
asteroids.test.mjs
…
build-check.html
…
build-check.mjs
…
build-shot.html
…
build-shot.mjs
…
builds.test.mjs
…
cargo.test.mjs
…
cbox-test.html
…
cdp-cast.mjs
…
cdp-eval.mjs
…
cdp-firefox.mjs
…
cdp-probe.mjs
…
cdp-shot.mjs
…
cdpshot.mjs
…
clickout-test.html
…
clickout-test.mjs
…
comms-click.html
…
comms-click.mjs
…
comms-hold.html
…
comms-hold.mjs
…
comms-intro.html
…
comms-intro.mjs
…
comms-mine.html
…
comms-mine.mjs
…
comms-shot.html
…
comms-shot.mjs
…
comms-trestle-hold.html
…
comms-trestle-hold.mjs
…
comms-trestle.html
…
comms-trestle.mjs
…
comms-types.html
…
comms-types.mjs
…
comms-upgrade-hold.html
…
comms-upgrade-hold.mjs
…
comms.test.mjs Rework "Leaving the Nest" arrival to the capital world with voice 2026-09-12 23:16:49 -06:00
compass-far.html
…
compass-far.mjs
…
contact.test.mjs
…
container-probe.html
…
container-probe.mjs
…
decode.test.mjs
…
dialog-shot.html
…
dialog-shot.mjs
…
discovery.test.mjs
…
economy.test.mjs Add "Special Delivery" quest with package handoff and shop gating 2026-09-13 08:49:50 -06:00
exit-gate-shot.html
…
exit-gate-shot.mjs
…
faction-balance.diag.mjs
…
faction-sweep.diag.mjs
…
factions.test.mjs
…
frames.test.mjs
…
galaxy-labels.test.mjs
…
galaxy-legend-shot.html
…
galaxy-legend-shot.mjs
…
galaxy-map.test.mjs
…
galaxy.test.mjs
…
gate-comms.html
…
gate-comms.mjs
…
hold-restore.html
…
hold-restore.mjs
…
jump-travel.test.mjs
…
jumpgate.test.mjs
…
jumps.test.mjs
…
landing-click.html
…
landing-click.mjs
…
map-click.html
…
map-click.mjs
…
map-dest-shot.html
…
map-dest-shot.mjs
…
map-shot.html
…
map-shot.mjs
…
menu-intro-test.html
…
menu-intro-test.mjs
…
mineral-hud.test.mjs
…
mining-test.html
…
mining-test.mjs
…
mining.test.mjs
…
music.test.mjs
…
nebula.test.mjs
…
perimeter-shimmer.test.mjs
…
phaser-loader.mjs
…
phaser-stub.mjs
…
planet.test.mjs
…
popup-shot.html
…
popup-shot.mjs
…
probe-imports.html
…
quest-ready.html
…
quest-ready.mjs
…
quest-tracker.test.mjs
…
quests.test.mjs Add "Special Delivery" quest with package handoff and shop gating 2026-09-13 08:49:50 -06:00
queue-celebrate.html
…
queue-celebrate.mjs
…
reputation.test.mjs
…
research-builds.test.mjs
…
research-complete-shot.html
…
research-complete-shot.mjs
…
research-shot.html
…
research-shot.mjs
…
route-pulse-live.html
…
route-pulse-live.mjs
…
route-pulse.test.mjs
…
route-shot.html
…
route-shot.mjs
…
route.test.mjs
…
save-shot.html
…
save-shot.mjs
…
saves-ui-test.html
…
saves-ui-test.mjs
…
saves.test.mjs Name scout exits by their world, not just the system 2026-09-12 20:53:16 -06:00
scan-test.html
…
scan-test.mjs
…
scan.test.mjs
…
scene-restart-probe.html
…
scene-restart-probe.mjs
…
scout-dest-shot.html
…
scout-dest-shot.mjs
…
scout-dest.html
…
scout-dest.mjs Name scout exits by their world, not just the system 2026-09-12 20:53:16 -06:00
scout-overlap.html Name scout exits by their world, not just the system 2026-09-12 20:53:16 -06:00
scout-overlap.mjs Name scout exits by their world, not just the system 2026-09-12 20:53:16 -06:00
server.mjs
…
sfx.test.mjs
…
ship-behavior.test.mjs
…
shop-hud-shot.html
…
shop-hud-shot.mjs
…
shop-hud.html
…
shop-hud.mjs
…
shop-select-shot.html
…
shop-select-shot.mjs
…
shop-shot.html
…
shop-shot.mjs
…
shop-ui.test.mjs
…
shot-firefox.mjs
…
signal-compass-flow.html
…
signal-compass-flow.mjs
…
signal-compass.test.mjs
…
smoke-game.mjs
…
star-art.test.mjs
…
starfield.test.mjs
…
station-frames.test.mjs
…
station-shot.html
…
station-shot.mjs
…
storm.test.mjs
…
surface-flow.mjs
…
surface-hud-shot.html
…
surface-hud-shot.mjs
…
surface-hud.html
…
surface-hud.mjs
…
surface-shot.html
…
surface-shot.mjs
…
surface-skip.html
…
surface-skip.mjs
…
surface-test.html
…
system-category.test.mjs
…
system-chart.test.mjs
…
system-effects.test.mjs
…
system-hud.test.mjs
…
system-layout.test.mjs
…
test-game.html
…
tether-flow.html
…
tether-flow.mjs
…
tether-newworld.html
…
tether-newworld.mjs
…
tether-rules.audit.mjs
…
tether.test.mjs
…
trade-scout.test.mjs Name scout exits by their world, not just the system 2026-09-12 20:53:16 -06:00
type-preview.test.mjs
…
video-reopen.html
…
video-reopen.mjs
…
video-replay.html
…
video-replay.mjs
…
wd-shot.mjs
…
wdshot.mjs
…
world-names.test.mjs
…
zorder-test.html
…
zorder-test.mjs
…