feat(rust): bosses and passive NPCs on the profile form, and public boss triggers (runicnpc stage 6) #31

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

What

RunicNPC stage 6 on the site (decisions D273–D289):

  • The profile form's boss box: the bar's distance, where its lines are said, and the spawn and death lines. Phases sit at health percentages, each with optional damage, aim, speed, ranges, a kit swap, adds of another profile, and a line.
  • The passive role: press E answers with a chat line or a window. Choosing passive unticks "Players can hurt it" (D279) and sets stand (D288).
  • Server checks in RunicNPC's own words: a phase's kit is checked on each server, and its adds must be a site profile that is not a boss.
  • Public triggers: rust.boss.spawned, rust.boss.phase and rust.boss.killed, with ceiling everyone and default subscribers (D277). engagement-triggers.json is regenerated.
  • The feed and catalogue: a boss appearing is public; its death names the killer, so it sits behind the presence setting; a phase is staff-only, as the game tells it only to players near the boss (D286).

Tested

  • 491 server and 67 client tests; check:imports, check:bundle, check:engagement, check:swagger and check:externals all pass.
  • Walked on both rigs in the browser as an admin: a boss and a passive NPC made on the form, pushed and placed from the map.
    • All three boss triggers fired.
    • The public events route showed only the spawn signed out, and the death signed in.
    • An event's phase gate advanced on rust.boss.killed.

Checklist

  • I have read CONTRIBUTING.md.
  • 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 6 on the site (decisions D273–D289): - **The profile form's boss box:** the bar's distance, where its lines are said, and the spawn and death lines. Phases sit at health percentages, each with optional damage, aim, speed, ranges, a kit swap, adds of another profile, and a line. - **The passive role:** press E answers with a chat line or a window. Choosing passive unticks "Players can hurt it" (D279) and sets `stand` (D288). - **Server checks in RunicNPC's own words:** a phase's kit is checked on each server, and its adds must be a site profile that is not a boss. - **Public triggers:** `rust.boss.spawned`, `rust.boss.phase` and `rust.boss.killed`, with ceiling `everyone` and default `subscribers` (D277). `engagement-triggers.json` is regenerated. - **The feed and catalogue:** a boss appearing is public; its death names the killer, so it sits behind the presence setting; a phase is staff-only, as the game tells it only to players near the boss (D286). ## Tested - 491 server and 67 client tests; `check:imports`, `check:bundle`, `check:engagement`, `check:swagger` and `check:externals` all pass. - Walked on both rigs in the browser as an admin: a boss and a passive NPC made on the form, pushed and placed from the map. - All three boss triggers fired. - The public events route showed only the spawn signed out, and the death signed in. - An event's phase gate advanced on `rust.boss.killed`. ## Checklist - [x] I have read CONTRIBUTING.md. - [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-05 18:13:03 +00:00
feat(rust): bosses and passive NPCs on the profile form, and public boss triggers (runicnpc stage 6)
All checks were successful
PR Checks / client-build (pull_request) Successful in 20s
PR Checks / server-tests (pull_request) Successful in 24s
PR Checks / frozen-manifest (pull_request) Successful in 46s
f2ca314d10
The profile form's boss box (D273-D277): the bar's distance, where its
lines are said, the spawn and death lines, and phases at health
percentages, each with optional damage, aim, speed, ranges, a kit swap,
adds of another profile and a line. The passive role (D278, D279,
D288): press E answers with a chat line or a window, it moves as its
profile says (now including `stand`), and it starts unhurtable.

The site checks both as RunicNPC does, in its words; a phase's kit is
checked on each server like the profile's own, and its adds must name a
site profile that is not a boss.

Public triggers rust.boss.spawned, rust.boss.phase and rust.boss.killed
(D277) from the bridge's new frames. In the feed, a boss appearing is
public; its death names the killer, so it sits behind the presence
setting; its phases are staff's, as the game tells them only to players
near it (D286). engagement-triggers.json regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
whitlocktech merged commit bb3e25b5d7 into edge 2026-10-06 00:45:21 +00:00
whitlocktech deleted branch feat/runicnpc-stage6 2026-10-06 00:45:21 +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#31
No description provided.