feat(rust): event NPCs named on the map, and a Place NPCs step's progress line (runicnpc stage 8) #33

Merged
whitlocktech merged 1 commits from feat/runicnpc-stage8 into edge 2026-10-06 13:32:45 +00:00
Member

What

RunicNPC stage 8, the site's half.

  • rust.npc.place's progress() (MODULE_API 1.12.0, website#210, D304).
    • A step's line counts its NPCs still standing, by the step's key, against how many it placed: "Bandit: 2 of 3 left".
    • A boss step is its boss's health instead: "Walk Juggernaut: 59%".
    • A boss's adds are not counted.
    • The data comes from the map's own live answer (one map.live per server per 5 s), so a busy event page costs the game nothing extra.
    • A reader who may not see the map's events layer gets no line.
  • The map (D302, D303).
    • An NPC's tooltip is its name and its event's title, read once from core's public calendar. The calendar lists only announced events.
    • A boss is bigger and in its own colour, and an add says it is an add.
    • A boss placed outside any event is in the world layer.
    • A boss's health is removed from what a viewer is sent.
  • The world layer's visibility hint now mentions those bosses.
  • coreApi stays ^1.11.0. A 1.11 core ignores the optional member, and the action works without a line.

Tested

  • Tests: 503 server and 73 client tests pass (new: eventProgress.test.js, mapEvents.test.js, and a map projection test), and every check:* script.
  • Walk: both rigs, signed in as the walk admin, against website#210.
    • The progress lines moved as NPCs died ("3 of 3" → "2 of 3", "100%" → "59%").
    • The adds left the count alone.
    • The map tooltips, the bigger boss and the world-layer boss were right.
    • With the events layer set to staff only, a signed-out reader got no lines and no events layer, while the admin got both.

Checklist

  • I have read CONTRIBUTING.md.
  • OpenAPI fragment regenerated.
  • AI tools were used. Tool(s): Claude Code (Claude Opus 5.5). The commit carries the Co-Authored-By trailer.
  • I agree that my contribution is licensed under GPL-3.0-or-later.

🤖 Generated with Claude Code

https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY

## What RunicNPC stage 8, the site's half. - **`rust.npc.place`'s `progress()`** (MODULE_API 1.12.0, website#210, D304). - A step's line counts its NPCs still standing, by the step's key, against how many it placed: "Bandit: 2 of 3 left". - A boss step is its boss's health instead: "Walk Juggernaut: 59%". - A boss's adds are not counted. - The data comes from the map's own live answer (one `map.live` per server per 5 s), so a busy event page costs the game nothing extra. - A reader who may not see the map's events layer gets no line. - **The map** (D302, D303). - An NPC's tooltip is its name and its event's title, read once from core's public calendar. The calendar lists only announced events. - A boss is bigger and in its own colour, and an add says it is an add. - A boss placed outside any event is in the world layer. - A boss's health is removed from what a viewer is sent. - **The world layer's visibility hint** now mentions those bosses. - **`coreApi` stays `^1.11.0`.** A 1.11 core ignores the optional member, and the action works without a line. ## Tested - **Tests:** 503 server and 73 client tests pass (new: `eventProgress.test.js`, `mapEvents.test.js`, and a map projection test), and every `check:*` script. - **Walk:** both rigs, signed in as the walk admin, against website#210. - The progress lines moved as NPCs died ("3 of 3" → "2 of 3", "100%" → "59%"). - The adds left the count alone. - The map tooltips, the bigger boss and the world-layer boss were right. - With the events layer set to staff only, a signed-out reader got no lines and no events layer, while the admin got both. ## Checklist - [x] I have read CONTRIBUTING.md. - [x] OpenAPI fragment regenerated. - [x] AI tools were used. Tool(s): `Claude Code (Claude Opus 5.5)`. The commit carries the `Co-Authored-By` trailer. - [x] I agree that my contribution is licensed under GPL-3.0-or-later. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
wtclaude added 1 commit 2026-10-06 13:28:03 +00:00
feat(rust): event NPCs named on the map, and a Place NPCs step's progress line (runicnpc stage 8)
All checks were successful
PR Checks / client-build (pull_request) Successful in 20s
PR Checks / server-tests (pull_request) Successful in 25s
PR Checks / frozen-manifest (pull_request) Successful in -1m18s
5162496d74
- rust.npc.place's progress() (MODULE_API 1.12.0, D304). It reports the
  step's NPCs still standing, by its key, of how many it placed, with
  the profile's label: "Bandit: 2 of 3 left". A boss step is its
  health, "Walk Juggernaut: 59%", and a boss's adds are not counted.
  The data comes from the map's live answer, so it costs the game no
  extra ask. A reader who may not see the map's events layer gets no
  line.
- The map (D302, D303):
  - an NPC's tooltip is its name and its event's title, read from
    core's public calendar, which lists only announced events;
  - a boss is bigger and in its own colour, and an add says so;
  - a boss outside any event is in the world layer;
  - a boss's health is removed from what a viewer is sent.
- The world layer's visibility hint mentions those bosses.

coreApi stays ^1.11.0: an older core ignores the optional member, and
the action works without a progress line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
whitlocktech merged commit 72f6c557d2 into edge 2026-10-06 13:32:45 +00:00
whitlocktech deleted branch feat/runicnpc-stage8 2026-10-06 13:32:46 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RunicGateway/Module-Rust#33
No description provided.