Commit Graph

5 Commits

Author SHA1 Message Date
Brian Fertig 6dcc340a3b Add system-complete comm and audioPool random clip support
- Introduce the oac-system-complete visual comm that fires on the
  'systemComplete' trigger when a system's jumpgate research unlocks,
  arming before the generic researchComplete sign-off so the FIFO plays
  specific -> generic.
- Support an optional audioPool list of speech clips in CommsModel; the
  hub picks one at random per arm so only the chosen clip is fetched and
  cached, with validation that audio comms need a clip or pool.
- Wire GameScene to trigger systemComplete on activateGates when the
  system nav chart is complete.
- Update comms tests for the new comm, pool normalization/asset rolling,
  roster counts, and add a tether-rules audit script plus station shop
  video references and lava assets.
2026-09-09 22:20:30 -06:00
Brian Fertig b33aecade2 Rename firstForeignPlanet trigger to firstWorld and make busy() type-awa
- The Trestle intro comm now fires on the first discovered world (the
  starter quest's own witness, `discoveredWorldCount`) instead of the
  first planet in a foreign system, so the comm and the quest can never
  drift; delayMs drops to 0 so it lands at the moment of discovery.
- The scene's `busy()` contract is now comm-type-aware: audio-only comms
  (voice, no box, no pause) ride over in-progress actions like mining or
  a scan sweep, while ack/visual comms still wait; modal windows and a
  jump in flight block every type.
- Add the `comms-mine` dev harness that walks the type-aware busy
  contract (free scene → real mining → audio comm mid-mining → jump) and
  update the trestle dev scripts/tests to the new trigger and witness.
- Arm the pair on scene-create for loaded saves that already hold
  discovered worlds, and widen the cdp-shot ready dump.
- Add ice-shop art/video assets.
2026-09-09 13:00:25 -06:00
Brian Fertig 8afe4c78c6 Add Trestle's first-foreign-planet intro comm pair and ACK pulse cue
- Introduce the `firstForeignPlanet` trigger: when the player discovers a planet in a non-home system, Trestle (new out-of-system mentor character) delivers a two-part ack comm pair (meetup + quest claim), with dedicated video and speech assets.
- Make audio cache keys folder-scoped so characters with identically-named clips (e.g. both having `intro-01.mp3`) don't collide in the loader.
- Add an amber pulsing attention cue (halo + staggered sonar rings) on the ACKNOWLEDGE button for ack comms, driven per-frame from CommsBox.update().
- Put the ActionBar deck into a standby state while an ack comm holds: slots go inert (no hover/press), dimmed visually; re-arms when the comm ends. GameScene wires this via `actionBar.setEnabled()` each frame based on `comms.paused`.
- Extend MenuButton to accept a custom border color so the ACK button can wear the box's amber against the cyan UI.
- Add dev self-check harnesses (`comms-trestle.mjs`, `comms-trestle-hold.mjs`) and update existing tests to cover the new pair, folder-scoped keys, deck standby behavior, and pulse animation.
- Disable browser module caching in CDP probe/shot scripts to avoid stale ES modules shadowing on-disk changes during dev testing.
2026-09-09 12:12:34 -06:00
Brian Fertig 881a94a1b6 Add full OAC tutorial comms chain and ice-surface video assets
- Wire 10 new comm beats (oac-tether, oac-scan, oac-upgrade, oac-minerals,
  oac-fly-mine, oac-first-cluster, oac-research-complete, oac-tether2,
  oac-relaunch, oac-explore) into data/comms.json with their triggers,
  speech clips, and FIFO ordering
- Add trigger arming in GameScene (firstScan, tetherResearch, firstCluster,
  minerals200, researchComplete) and SurfaceScene (tetherL2Launch)
- Make CommsHub.trigger idempotent so a double-click can't queue the same
  comm twice
- Fix landing.json to use ice-surface-02/03.mp4 instead of rocky variants;
  add the two new ice-surface videos and an ice-shop image
- Add speech clips intro-05 through intro-10 and research-complete
- Expand dev/comms-intro.mjs into a full 10-step walkthrough self-check,
  add dev/comms-upgrade-hold page for screenshotting the longest comm, and
  update dev/comms.test.mjs to cover the new roster
2026-09-09 11:28:22 -06:00
Brian Fertig aaa953d654 Added Comms Feature 2026-09-09 10:10:38 -06:00