07a07ec64d
Build Phase 1 gym first; standing ★-review auth; build A0 material foundation now; delete siege branches. Phase 1: manual aim (auto-target cut), 4 discrete ability buttons, Harpooner yanks target-to-you, roadmap 5 Sparks. Fresh save epoch (no migration). Dark-side contact = non-telegraphed chip. Lantern = free-position plant. Locked into: operator-questions (resolved summary), Phase 1 spec (open forks -> resolved), currency spec (fresh saves), world-model Build Spec (operator-resolutions block). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
75 lines
5.3 KiB
Markdown
75 lines
5.3 KiB
Markdown
---
|
|
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. **RESOLVED (operator,
|
|
2026-07-14): start LANTERN saves FRESH** — a new save version epoch, no migration of co-op-Hades saves (old
|
|
saves won't load into LANTERN). This dodges the value-remap entirely; the byte-3 (Charge→Tallow) reuse is
|
|
safe because no old save is ever read.
|
|
|
|
## 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
|