orbit/data
Brian Fertig 30af365c68 Add the tether: the player's range, a level-1 zone (5120 px) with a glitchy barrier rim
The player starts with a level-1 tether anchored on the home world:
a circular zone 5120 px from the planet's center. The ship may fly
anywhere in the UNION of its tethers' zones — where zones overlap there
is no line and no wall — and the union's boundary is a hard barrier,
rendered as a thick cyberpunk glitch dotted line (marching dashes,
additive glow + RGB fringe, ambient glitch bursts with dash flicker,
radial displacement and data drops, contact shudder + camera kick +
throttled console toast where the ship bumps it).

- data/tether.json: level radii (5120 x 1.25^lv), the starting tether,
  barrier line/look, glitch and contact tuning (manifest-registered)
- js/tether/Tether.js: pure range math (union membership, clamp to the
  nearest union boundary point + normal, visibleArcs = each tether's
  share of the union boundary) — Node-tested
- js/tether/TetherField.js: scene-facing field — add/remove/setLevel
  seam for future builds/upgrades, per-frame ship constraint, and the
  barrier renderer (on-screen dot culling only)
- js/scenes/GameScene.js: home tether at the system origin, HUD
  readout (level / range / anchor per tether), click-to-fly and
  autopilot targets clamped to the union boundary, contact feedback,
  destruction on shutdown
- dev/tether.test.mjs: 29 checks incl. the two-direction boundary
  property (no line in overlaps, no gaps in the line) and a numeric
  nearest-boundary cross-check (worst 0.79 px)
- dev/smoke-game.mjs: ?tethers / ?homeLevel / ?report dev hooks for
  manual and headless verification
- README + PROJECT_NOTES: the system, its rules and its layering

Verified in headless Chromium: clean boot (menu + game), barrier
rendering (calm and glitch-burst frames), union boundary with two
tethers (arcs meet at the rim crossings, lens is line-free), ship
clamped exactly onto the rim from outside, contact toast fired.
2026-09-03 22:03:29 -06:00
..
actionbar.json Add CRT scanlines and RGB pull-apart to the command deck 2026-09-03 20:42:33 -06:00
builds.json Add command deck UI and research/build data layer 2026-09-03 20:33:04 -06:00
galaxy.json
game.json Add the tether: the player's range, a level-1 zone (5120 px) with a glitchy barrier rim 2026-09-03 22:03:29 -06:00
manifest.json Add the tether: the player's range, a level-1 zone (5120 px) with a glitchy barrier rim 2026-09-03 22:03:29 -06:00
menu.json
naming.json
planets.json Add discovery system with off-screen compass and in-world planet layout 2026-09-03 19:45:21 -06:00
research.json Add command deck UI and research/build data layer 2026-09-03 20:33:04 -06:00
settlements.json
ship.json Replace procedural ship sprite with spritesheet art and facing offset 2026-09-03 21:40:33 -06:00
systems.json
tether.json Add the tether: the player's range, a level-1 zone (5120 px) with a glitchy barrier rim 2026-09-03 22:03:29 -06:00
theme.json Remove cyberpunk overlay from game scene 2026-09-03 18:47:54 -06:00