Docs: LANTERN art-pipeline recipes (Workstream A0/A1) + currency re-mean spec
- Art pipeline recipes: the material foundation (palette atlas + 3 master shaders Lit-Palette/Emissive-Gloam/Skinned-Palette), statics recipe, skinned recipe (proven Rukhanka HUMANOID path), the 3 rig families (Drifter/Crawler/Strider), CreatureKit (A2) framing. Built on DR-022/023 + the proven Blender recipe; every carry-over gotcha flagged. - Currency re-mean: Ore/Aether/Biomass/Charge -> Flame/Lumen/Gloam/Loudness/Salvage/Chum/ Tallow with byte-id assignments; flags the fresh-saves-vs-migrate fork (Charge byte reuse). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
---
|
||||
title: LANTERN — Currency Re-Mean (Ore/Aether/Biomass/Charge → the light economy)
|
||||
date: 2026-07-13
|
||||
tags: [roadmap, lantern, economy, currency, save-schema]
|
||||
status: draft-spec
|
||||
permalink: gamevault/06-roadmap/lantern-currency-remean
|
||||
---
|
||||
|
||||
# LANTERN — Currency Re-Mean
|
||||
|
||||
> Re-means the current economy to the LANTERN currency set ([[Identity_Lantern]] currency table). Feeds the
|
||||
> economy rework + the save schema. **Most of this is a value-relabel** — the ledger (`StorageEntry`, ItemId-
|
||||
> keyed) + personal bag (`InventorySlot`) + swept harvest plumbing stay; the **byte ids re-mean and the meters
|
||||
> change**. Grounded in the resource ground-truth: 4 `ResourceId` bytes today (Ore/Aether/Biomass/Charge),
|
||||
> `StorageEntry{ushort ItemId; int Count}` on the global untagged ledger, personal `InventorySlot`, unified
|
||||
> swept `ResourceHarvestSystem`.
|
||||
|
||||
## The seven LANTERN currencies — and what each maps to
|
||||
|
||||
| LANTERN | What it is | Current analog | Representation |
|
||||
|---|---|---|---|
|
||||
| **Flame** | your life — the loaned fire in your chest | `Health` + respawn | **NOT a ledger resource** — it's `Health`/`RespawnState`. The death "split" (Phase 5) rides this. |
|
||||
| **Lumen** | spendable light — abilities, fuel, the banked economy | **Aether** (universal charge) + the win-meter feed | Ledger byte; also **banked** at lanterns → the **Lamp meter** (the `GoalProgress`-equivalent campaign readout). The primary economy. |
|
||||
| **Gloam** | the wild radiance grafts drink — the **mutation feed** | (new; kill/vent/bloom-derived) | A run/descent-scoped meter that fills toward the **paced mutation thresholds** (Phase 4). Server-derived from kills/vents; likely NOT a stored ledger row (a per-descent counter). |
|
||||
| **Loudness** | how much attention your light draws | the threat/aggro pressure (`WaveSystem` escalation) | **Derived meter, not stored** — party lamp-output sum → spawn/aggro pressure; per-Wick pip on the HUD. Rides the global untagged ghost ([GhostField]). |
|
||||
| **Salvage** | build materials | **Ore** | Ledger byte. Feeds building v1 (lanterns, small buildables). |
|
||||
| **Chum** | garden feedstock (automation input) | **Biomass** (reserved automation input) | Ledger byte. **Slice: likely dormant** (automation is assignment-based, v1.0 — [[Lantern_Strip_Mothball_Inventory]]). Keep the byte reserved. |
|
||||
| **Tallow** | rendered fixative — **fixes a mutation** | (new; the scarce fix material) | The scarcity gate of the mutation economy (1 fix slot/Spark). A ledger byte OR a slot count. Phase 4. |
|
||||
|
||||
## Proposed `ResourceId` byte assignment
|
||||
|
||||
Bytes, never enums (Burst rule). Re-mean the existing values where the meaning survives; free the mothballed
|
||||
one; append the new ones:
|
||||
|
||||
| Byte | Was | Becomes | Notes |
|
||||
|---|---|---|---|
|
||||
| 0 | Ore | **Salvage** | build material (value survives, relabel) |
|
||||
| 1 | Aether | **Lumen** | universal spend + banked light (value survives, relabel) |
|
||||
| 2 | Biomass | **Chum** | garden feedstock, slice-dormant (relabel, reserved) |
|
||||
| 3 | Charge | *(freed)* → **Tallow** | turret-ammo Charge is mothballed (no turrets); reuse the byte for Tallow, or leave 3 dead and add Tallow=4 |
|
||||
| 4 | — | **(Gloam)** | if stored; more likely a per-descent server counter, not a ledger row |
|
||||
|
||||
- **Flame** and **Loudness** are **not** ledger bytes (Health; a derived meter). Do not give them `ResourceId`s.
|
||||
- ⚠ **Re-meaning byte 3 (Charge→Tallow) changes a persisted VALUE's meaning.** The save persists `Ledger[]` as
|
||||
`{ItemId, Count}` rows — an old save's `ItemId=3` (Charge) would load as Tallow. **Recommendation:** since
|
||||
the pivot is a hard direction change and old co-op-Hades saves are not carried into LANTERN, **start LANTERN
|
||||
saves fresh** (a new save version epoch) rather than migrate — cleaner than a value-remap migration. Confirm
|
||||
with the operator (parked). If saves must migrate, add a `SaveData.Version`-gated remap in `SaveService.Load`.
|
||||
|
||||
## What changes vs. stays
|
||||
|
||||
- **STAYS:** `StorageEntry` global ledger (ItemId-keyed), `InventorySlot` personal bag (`[GhostField]`
|
||||
`OwnerSendType.All`), the unified swept `ResourceHarvestSystem` (nodes + clutter, immortal-sink guard,
|
||||
`math.max(1,(int)yield)`), the `G`-deposit RPC, cargo-into-bag routing.
|
||||
- **CHANGES:** harvest sources re-theme (Ore/Aether/Biomass nodes → **Lumen nodes + organ drops**); the
|
||||
**carried-vs-banked cargo** distinction is new (unbanked Lumen/organs strand with the suit on death — the
|
||||
Phase-5 split); the win-meter (`GoalProgress`) becomes the **Lamp meter** fed by banked Lumen; **Loudness**
|
||||
replaces the incursion/attention timer as the spawn-pressure driver.
|
||||
- **NEW meters on the global untagged ghost:** Lamp (campaign), party Loudness sum. **New per-descent server
|
||||
counters:** Gloam (mutation feed), Tallow slots.
|
||||
|
||||
## Sequencing
|
||||
|
||||
This is **not** a standalone slice — it lands *inside* the phases that need each currency: Lumen + Salvage +
|
||||
harvest re-theme with Phase 2 (harvest) / Phase 3 (banked light, Lamp meter); Gloam + Tallow with Phase 4
|
||||
(mutations); Loudness with Phase 2 (brighter-is-louder). This doc is the **single source of the mapping** so
|
||||
those phases don't each re-decide the byte ids.
|
||||
|
||||
## Related
|
||||
|
||||
- [[Identity_Lantern]] — the currency table + the death split + brighter-is-louder
|
||||
- [[Lantern_Strip_Mothball_Inventory]] — ledger/harvest/automation salvage verdicts
|
||||
- [[Lantern_Operator_Questions]] — the fresh-saves-vs-migrate fork (item 6)
|
||||
- [[Roadmap_Lantern_Slice]] — the phases each currency lands in
|
||||
Reference in New Issue
Block a user