docs(runicnpc): stage 8 built and walked; MODULE_API 1.12.0 progress(), map.live's RunicNPC rows
- website/MODULE_API.md: 1.12.0, an event action's optional progress(): its envelope, its two answer shapes, and the rule that it answers for one reader and never fails loudly. - website/EVENTS.md §I: a live occurrence's progress lines. - rust-link/PROTOCOL.md §17.3: map.live's RunicNPC rows (name, key, boss, health, add) and the world layer's boss. - runicnpc/PLAN.md: stage 8's design renamed live -> progress, and its "Built" section, with the branches, the tests and the walk on both rigs in the browser and on the emulator. Also recorded in the plan: a core finding outside this stage. The public page never shows a live run's phase label, because phaseLabel looks phases up by id while specs key them by key. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
@@ -1805,8 +1805,8 @@ drawing a second time. A new map key makes the file stale, and it is ignored.
|
||||
|
||||
| Field | Rows |
|
||||
|---|---|
|
||||
| `world` | `kind` (`cargo`, `heli`, `chinook`, `bradley`, `supply`, `crate`), `x`, `z`; a locked crate being hacked adds `hackLeftSec`, a hacked one `hacked: true` |
|
||||
| `events` | what this site's events placed (§15.2): `kind` (`zone`, `crate`, `npc`), `runId`, `x`, `z`, and a zone's `radius` and `name` or a thing's `prefab` |
|
||||
| `world` | `kind` (`cargo`, `heli`, `chinook`, `bradley`, `supply`, `crate`, `boss`), `x`, `z`; a locked crate being hacked adds `hackLeftSec`, a hacked one `hacked: true`; a `boss` (protocol 13, RunicNPC D302) is one of RunicNPC's bosses placed outside any event, with its `name` |
|
||||
| `events` | what this site's events placed (§15.2): `kind` (`zone`, `crate`, `npc`), `runId`, `x`, `z`, and a zone's `radius` and `name` or a thing's `prefab` and `key` (the step that placed it). Protocol 13 adds, for one of RunicNPC's NPCs, its `name`, and for a boss `boss: true` and `health` (0–1); and a boss's **adds**, which no step placed, under their boss's run with `add: true` |
|
||||
| `players` | `steamId`, `name`, `x`, `z`, `sleeping`, `online`. Connected players, then offline sleepers |
|
||||
| `bases` | `kind` (`tc`, `vending`), `x`, `z`. **Positions only**: no owner, no authorised list, no shop name |
|
||||
|
||||
@@ -1822,6 +1822,18 @@ an ask took under 1 ms.
|
||||
The Steam id comes from `userID`, not `UserIDString`. The phase 14 walk read the latter back empty from
|
||||
a sleeper made on the server.
|
||||
|
||||
**RunicNPC's rows (protocol 13, runicnpc stage 8).** One `RunicNpc_List` per ask is joined to the
|
||||
ledger by net id:
|
||||
|
||||
- **A ledgered NPC** gains its `name` and, for a boss, `boss` and `health`.
|
||||
- **A RunicNPC NPC owned by a run** (`run:<id>`) that no step ledgered is a boss's add. It joins
|
||||
`events` with `add: true`.
|
||||
- **Any other boss** joins `world` as `kind: "boss"`.
|
||||
- **A placement's ordinary NPCs are not sent** (D302).
|
||||
|
||||
`health` is for the event page's progress line. The site's map does not show it (D303) and removes
|
||||
it before a viewer is sent the layer.
|
||||
|
||||
### 17.4 Two bounds, and the console
|
||||
|
||||
Two config keys are written into an existing config the first time protocol 11 loads: **`MapMaxSleepers`**
|
||||
|
||||
Reference in New Issue
Block a user