Docs: LANTERN roadmap index + Phase 4/5 design passes + session log B
- Roadmap_Lantern_Slice: Phase-0 status callout + doc index (all Phase-0 artifacts linked). - Phase 4 (mutations): mostly a re-theme of the shipped boon overhaul (DR-047) + Gloam gating + Tallow fixing (persistence) + raw-socketing + culture library; salvage map + gate. - Phase 5 (death/recovery): the split, stranded suits (deterministic relocation), body-carry, flame-share revive, the Tender solo valve, Selkie tariff; builds on the world-model in-pocket-death decision (C4); the slice's 2nd falsifiable-test half. - Session log Part B: the autonomous design pass + the world-model review record. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
---
|
||||
title: LANTERN — Phase 5 Death, Recovery & the Solo Valve (design pass, pre-review)
|
||||
date: 2026-07-13
|
||||
tags: [roadmap, lantern, death, recovery, phase-5, design]
|
||||
status: design-pre-review
|
||||
permalink: gamevault/06-roadmap/lantern-phase5-death-recovery-design
|
||||
---
|
||||
|
||||
# LANTERN — Phase 5: Death, Recovery & the Solo Valve
|
||||
|
||||
> Phase 5 of [[Roadmap_Lantern_Slice]] — a **design pass** (deepens + gets its ★review when reached; this is
|
||||
> netcode-heavy — stranded-suit persistence, body-carry, the Tender companion). It owns the **second half of
|
||||
> the slice's falsifiable test:** *does a stranded suit feel worth a second descent?* The world-model review
|
||||
> already locked the load-bearing constraint (NR-2/C4 in [[World_Model_Build_Spec]]): **in-pocket death, warp-
|
||||
> to-station gated behind party-wipe, revive is new code.** This phase builds the rest on that.
|
||||
|
||||
## The one rule, applied to the body
|
||||
|
||||
> *What the light holds, stays; what the dark holds, changes* — applied to death: **your flame (the person)
|
||||
> returns to the light; your cargo (what the dark held) strands with the suit in the dark.**
|
||||
|
||||
## The split (the core design — [[Identity_Lantern]])
|
||||
|
||||
- **Flame returns cheap.** Snuffed, the flame goes home; re-kindle in a rack-spare. **Base grafts regrow
|
||||
cheaply/immediately from the culture library** (Phase 4) → kit functional within minutes. *Non-negotiable in
|
||||
a skillshot game* — recovery is an optional value-run with a WORKING build, never mandatory kit-repair.
|
||||
- **What strands with the suit (dark in the deep):** cargo (unbanked Lumen + organs), **fixed mutations**, and
|
||||
any **raw-socketed** wild organ. This is exactly the Phase-4 return-strip set — death = a *localized,
|
||||
recoverable* version of homecoming-evaporation, dropped at the death site instead of evaporated.
|
||||
- **Salvage:** `PlayerDeathStateSystem` (derives `Dead` from `Health<=0`, gates move/aim/fire) + `RespawnState`/
|
||||
`PlayerRespawnSystem` are the base — but per C4 the respawn is **rewritten to in-pocket** (the guttering
|
||||
suit stays put; full-wipe warps everyone home together).
|
||||
|
||||
## Stranded suits (recovery — deterministic, never RNG)
|
||||
|
||||
- A death spawns a **stranded-suit entity** at the death site (a server ghost carrying the stranded cargo/
|
||||
mutation manifest). **Persists across descents** — deterministic **server relocation, never RNG theft** (the
|
||||
doppelganger that "wears your build" is the marquee *deferred* post-slice encounter; until then the dark just
|
||||
relocates the container by a server rule).
|
||||
- **Ally body-carry:** a teammate hauls the suit home. **Carried suits stay LOUD** (count fully toward party
|
||||
Loudness — no dead-mule stealth logistics). A carried suit = an attachment/parent on the carrier + a Loudness
|
||||
contribution.
|
||||
- **One-suit debt cap:** die on the recovery run → the older suit is **dark-claimed** (resurfaces later as a
|
||||
partial salvage lot at the Selkie's counter). Cap = 1 outstanding stranded suit; this bounds the state +
|
||||
prevents a soft-lock spiral.
|
||||
- **Party wipe:** all stranded suits **drift one pocket shallower** (the dark spits out what it plays with) — a
|
||||
deep wipe never soft-locks the save. This composes with the world-model loss-floor invariant (DP-5/C2 —
|
||||
muster keyed on graph-reachability-from-station; drifting-shallower keeps recovery reachable).
|
||||
|
||||
## Guttering & flame-share revive (co-op — NEW code per C4)
|
||||
|
||||
- A downed Wick's flame **gutters** (a telegraphed countdown; the lamp-morse revive-plea, per the
|
||||
[[Lantern_Tone_Bible]]). An ally re-lights it **from their own flame** — it **costs the giver** (a Flame/
|
||||
Health price). Reachable *because* the downed suit stays in-pocket (C4).
|
||||
- Mechanically: a `Guttering` state (server-only timer) on the downed player; a revive RPC/proximity-interact
|
||||
that transfers a Flame cost from giver → downed and clears `Dead`/`Guttering` in place (at the pocket origin,
|
||||
`PocketTag = active`, never the station). Full gutter (no revive in time) = the flame goes home, suit strands.
|
||||
|
||||
## The solo valve (the Tender dive-companion)
|
||||
|
||||
Converts the co-op-only verbs (revive, carry, hold-the-line) into **degraded-but-present solo verbs,
|
||||
diegetically** — a solo Wick may take **one Tender** down:
|
||||
- **No combat power.** It drags your guttering suit toward light, hauls cargo, and can hold a lantern's feed
|
||||
during a tide.
|
||||
- Mechanically: a server-only companion entity with simple follow/drag AI (reuse the `EnemyAISystem` seek/
|
||||
move-util chassis, no attack; the collide-and-slide mover). **Not** a ghost the party competes over — a
|
||||
solo-only support. Its "drag guttering suit toward light" = a body-carry variant driven by AI.
|
||||
|
||||
## The Selkie tariff (menu-level for the slice)
|
||||
|
||||
- The Selkie **retrieves a lost suit for a steep tariff** — for the slice, a **menu-level** transaction (spend
|
||||
banked Lumen at the station to recover a dark-claimed suit), not a full questline (that's v1.0). Reuse the
|
||||
storage/deposit RPC + a station vendor panel.
|
||||
|
||||
## Salvage map
|
||||
|
||||
| Piece | Verdict |
|
||||
|---|---|
|
||||
| `PlayerDeathStateSystem` (Dead-derive, gate move/aim/fire) | **KEEP** |
|
||||
| `PlayerRespawnSystem` | **REWRITE to in-pocket** (C4; warp-to-station only on party-wipe) |
|
||||
| `RespawnState` / respawn timer | **REWORK** → guttering timer + in-place resolve |
|
||||
| Stranded-suit ghost + manifest | **NEW** (server ghost; persists via the Phase-2/3 save schema — additive) |
|
||||
| Body-carry (parent + Loudness) | **NEW** (attachment + the Loudness meter from currency re-mean) |
|
||||
| Flame-share revive RPC | **NEW** (co-op verb; the receiver-sets-command / proximity-interact idiom) |
|
||||
| Tender companion AI | **NEW** (reuse the `EnemyAISystem` seek/move-util chassis, no combat) |
|
||||
| Selkie vendor | **NEW-lite** (reuse storage/deposit RPC + a station panel) |
|
||||
|
||||
## The gate ([[Roadmap_Lantern_Slice]])
|
||||
|
||||
★ **a stranded suit feels worth a second descent** — solo death is a story, not a rage-quit. Feel knobs: gutter
|
||||
window, flame-share cost, carried-suit Loudness weight, party-wipe drift distance, Selkie tariff.
|
||||
|
||||
## Dependencies & sequencing
|
||||
|
||||
Depends on: the world-model (in-pocket death, loss-floor, muster — [[World_Model_Build_Spec]]), the currency
|
||||
re-mean (Flame = Health, Loudness meter, cargo-vs-banked — [[Lantern_Currency_ReMean]]), and the Phase-4
|
||||
culture library (cheap regrow is what makes the split fair). Netcode-heavy → **its own ★ design review before
|
||||
code** (stranded-suit persistence + relevancy, body-carry replication, the companion).
|
||||
|
||||
## Related
|
||||
|
||||
- [[World_Model_Build_Spec]] C4 — the in-pocket death constraint this builds on
|
||||
- [[Identity_Lantern]] — the split, recovery, the Tender, the Selkie · [[Lantern_Phase4_Mutations_Design]] — the culture floor
|
||||
- [[Lantern_Tone_Bible]] — the revive-plea lamp-morse · [[Roadmap_Lantern_Slice]] Phase 5
|
||||
Reference in New Issue
Block a user