orbit/data/landing.json

57 lines
3.8 KiB
JSON

{
"_comment": [
"Landing + surface videos, keyed by planets.png SHEET FRAME (same index the",
"planet sprite uses — frames 0..2 are the terran worlds, 3..5 the gas",
"giants; see data/planets.json → frames).",
"",
"`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).",
"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": "terran-shop-01.mp4" },
{ "land": "gasgiant-land-02.mp4", "surface": "gasgiant-surface-02.mp4", "takeoff": "gasgiant-takeoff-02.mp4", "shop": "terran-shop-01.mp4" },
{ "land": "rocky-land-03.mp4", "surface": "terran-surface-01.mp4", "takeoff": "gasgiant-takeoff-03.mp4", "shop": "terran-shop-01.mp4" }
]
}