{ "_comment": [ "Landing + surface videos, keyed by the world's SHEET FRAME (same index the", "sprite uses): videos = planets.png frames (0..2 terran, 3..5 gas giants,", "6..8 rocky — data/planets.json → frames); stationVideos = spacestations.png", "VARIANT frames (0..2 — the deep-space station types, data/stations.json →", "variants; the same frame the station is drawn with and its comms label", "reads, data/stations.json → typeLabels). See data/stations.json for the", "station variants; waypoints are beacons, not a port (no clips).", "", "`land` — the full-screen one-shot clip played when the ship lands.", "`surface` — the looping clip shown on the surface deck behind the action bar.", "`shop` — the looping clip the SHOP button swaps in over the surface", " clip (press SHOP again to swap back). null/missing = no shop", " on that world (a console note instead of a clip).", "`takeoff` — the full-screen one-shot clip played on TAKE OFF, before the", " flight world resumes. A null/missing entry takes off instantly.", "", "Entries are stubbed with the existing videos where a specific clip is", "missing: set `land`/`surface` to the real file name (in `videoBase`) when", "it is authored — no code change needed. Gas-giant surface clips don't", "exist yet, so they loop a terran surface clip as a placeholder.", "An entry may set `land`/`surface` to null to skip that stage entirely", "(land goes straight to the surface; a null surface shows the flat deck).", "A DOUBLE-CLICK (two quick presses) during the `land` or `takeoff`", "clips skips the rest of the clip — the deck / the flight world comes", "up immediately (no setting; the 350 ms window lives in SurfaceScene).", "", "Station surface/shop clips are authored later: the stationVideos entries", "carry null `surface`/`shop` slots until then — the deck degrades (flat", "deck, SHOP notes 'no shop') exactly like an unset planet slot. Land and", "takeoff are the ss-land-0N / ss-takeoff-0N clips (variant 1 = frame 0,", "…).", "", "Set `enabled` to false to disable landing entirely (REQUEST LANDING is", "greyed out in comms, same as a reputation ban)." ], "enabled": true, "videoBase": "assets/videos/", "volume": 1, "_hud_comment": "The upper-left HUD while the surface clip loops: the planet's NAME (Ethnocentric, the SAME shade the menu's game title uses — data/menu.json → colors.title — with a black stroke behind it so it holds over any clip) and, beneath it in the body face (Centauri), the planet TYPE + TETHER LEVEL (\"Terran World, Tether Level 1\"). Both decode in with the shared scramble (the name first). marginX/marginY = corner offsets (px); name/line = font sizes, letter spacing (px), stroke color/thickness, and line color (the theme's dim by default).", "hud": { "marginX": 24, "marginY": 20, "nameFontSize": 32, "nameLetterSpacing": 2, "nameStroke": "#000000", "nameStrokeWidth": 4, "lineGap": 10, "lineFontSize": 16, "lineLetterSpacing": 1, "lineColor": "#7d92c4", "lineStroke": "#000000", "lineStrokeWidth": 2 }, "videos": [ { "land": "terran-land-01.mp4", "surface": "terran-surface-01.mp4", "takeoff": "terran-takeoff-01.mp4", "shop": "terran-shop-01.mp4" }, { "land": "terran-land-02.mp4", "surface": "terran-surface-02.mp4", "takeoff": "terran-takeoff-02.mp4", "shop": "terran-shop-02.mp4" }, { "land": "terran-land-03.mp4", "surface": "terran-surface-03.mp4", "takeoff": "terran-takeoff-03.mp4", "shop": "terran-shop-03.mp4" }, { "land": "gasgiant-land-01.mp4", "surface": "gasgiant-surface-01.mp4", "takeoff": "gasgiant-takeoff-01.mp4", "shop": "gasgiant-shop-01.mp4" }, { "land": "gasgiant-land-02.mp4", "surface": "gasgiant-surface-02.mp4", "takeoff": "gasgiant-takeoff-02.mp4", "shop": "gasgiant-shop-02.mp4" }, { "land": "gasgiant-land-03.mp4", "surface": "gasgiant-surface-03.mp4", "takeoff": "gasgiant-takeoff-03.mp4", "shop": "gasgiant-shop-03.mp4" }, { "land": "rocky-land-01.mp4", "surface": "rocky-surface-01.mp4", "takeoff": "rocky-takeoff-01.mp4", "shop": "rocky-shop-01.mp4" }, { "land": "rocky-land-02.mp4", "surface": "rocky-surface-02.mp4", "takeoff": "rocky-takeoff-02.mp4", "shop": "rocky-shop-02.mp4" }, { "land": "rocky-land-03.mp4", "surface": "rocky-surface-03.mp4", "takeoff": "rocky-takeoff-03.mp4", "shop": "rocky-shop-03.mp4" } ], "stationVideos": [ { "land": "ss-land-01.mp4", "surface": "ss-surface-01.mp4", "takeoff": "ss-takeoff-01.mp4", "shop": null }, { "land": "ss-land-02.mp4", "surface": null, "takeoff": "ss-takeoff-02.mp4", "shop": null }, { "land": "ss-land-03.mp4", "surface": "ss-surface-03.mp4", "takeoff": "ss-takeoff-03.mp4", "shop": null } ] }