feat(rust): NPC profiles and placements pages, the profile leaderboard (runicnpc stage 4)
Admin: Rust NPC profiles (the form RunicNPC reads, per server, shared or fleet, each server's push state and refusals, replaced profiles with Restore) and Rust NPC placements (the live map: click to place, pins for every placement; edit, rename, respawn, remove). The live map takes a pick handler and pins, unchanged for the public page. Public: the leaderboard ranks by a profile's kills (D250), and opening a row shows that player's kills by profile (D252); the killfeed names a RunicNPC NPC by its own name. Player: your own kills by profile. Titles: a rule on a profile's kills picks the profile. npcs.test.js covers the profile checks, adoption, the push, the picker and verb, the triggers, kill crediting, titles and placements (481 server tests). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
@@ -124,3 +124,25 @@ export const IconZone = () => (
|
||||
<circle cx="12" cy="12" r="3" />
|
||||
</Icon>
|
||||
)
|
||||
|
||||
/**
|
||||
* A figure — the admin sidebar's row for RunicNPC's profiles (runicnpc stage 4).
|
||||
* A head and shoulders: the page is about who the NPCs are.
|
||||
*/
|
||||
export const IconNpc = () => (
|
||||
<Icon>
|
||||
<circle cx="12" cy="8" r="3.5" />
|
||||
<path d="M5 20c0-3.9 3.1-7 7-7s7 3.1 7 7" />
|
||||
</Icon>
|
||||
)
|
||||
|
||||
/**
|
||||
* A figure on a spot — the admin sidebar's row for NPC placements: where they stand.
|
||||
*/
|
||||
export const IconPlacement = () => (
|
||||
<Icon>
|
||||
<circle cx="12" cy="6" r="2.5" />
|
||||
<path d="M8 15c0-2.2 1.8-4 4-4s4 1.8 4 4" />
|
||||
<ellipse cx="12" cy="19" rx="7" ry="2" />
|
||||
</Icon>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user