feat(rust): bosses and passive NPCs on the profile form, and public boss triggers (runicnpc stage 6)
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
This commit is contained in:
@@ -84,6 +84,245 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "rust.boss.killed",
|
||||
"label": "A boss was killed",
|
||||
"description": "Players killed a RunicNPC boss on a server.",
|
||||
"kind": "event",
|
||||
"subjectKey": "profile",
|
||||
"audience": "subscribers",
|
||||
"ceiling": "everyone",
|
||||
"version": 1,
|
||||
"variables": [
|
||||
{
|
||||
"name": "serverId",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"example": "main",
|
||||
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
|
||||
},
|
||||
{
|
||||
"name": "server",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"example": "Runic Gateway | Main",
|
||||
"description": "The server's display name."
|
||||
},
|
||||
{
|
||||
"name": "serverUrl",
|
||||
"type": "url",
|
||||
"required": false,
|
||||
"example": "/rust/servers/main",
|
||||
"description": "Site-relative path to the server's page."
|
||||
},
|
||||
{
|
||||
"name": "title",
|
||||
"type": "string",
|
||||
"required": false,
|
||||
"example": "Main is back online",
|
||||
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
|
||||
},
|
||||
{
|
||||
"name": "intro",
|
||||
"type": "string",
|
||||
"required": false,
|
||||
"example": "Main is back up and taking players.",
|
||||
"description": "One sentence of detail. Core generic bodies use it as the body."
|
||||
},
|
||||
{
|
||||
"name": "profile",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"example": "juggernaut",
|
||||
"description": "The RunicNPC profile the boss was made from."
|
||||
},
|
||||
{
|
||||
"name": "boss",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"example": "Juggernaut",
|
||||
"description": "The boss's own name, as players see it."
|
||||
},
|
||||
{
|
||||
"name": "byEvent",
|
||||
"type": "boolean",
|
||||
"required": true,
|
||||
"example": true,
|
||||
"description": "Whether an event placed it."
|
||||
},
|
||||
{
|
||||
"name": "killer",
|
||||
"type": "string",
|
||||
"required": false,
|
||||
"example": "Marisol",
|
||||
"description": "The player who landed the killing blow, by in-game name. Absent when no player did."
|
||||
},
|
||||
{
|
||||
"name": "damagers",
|
||||
"type": "int",
|
||||
"required": true,
|
||||
"example": 5,
|
||||
"description": "How many players hurt it, the killer included."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "rust.boss.phase",
|
||||
"label": "A boss changed phase",
|
||||
"description": "A RunicNPC boss fell to one of its phases' health thresholds and changed: stronger, faster, or calling for help.",
|
||||
"kind": "event",
|
||||
"subjectKey": "phaseKey",
|
||||
"audience": "subscribers",
|
||||
"ceiling": "everyone",
|
||||
"version": 1,
|
||||
"variables": [
|
||||
{
|
||||
"name": "serverId",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"example": "main",
|
||||
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
|
||||
},
|
||||
{
|
||||
"name": "server",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"example": "Runic Gateway | Main",
|
||||
"description": "The server's display name."
|
||||
},
|
||||
{
|
||||
"name": "serverUrl",
|
||||
"type": "url",
|
||||
"required": false,
|
||||
"example": "/rust/servers/main",
|
||||
"description": "Site-relative path to the server's page."
|
||||
},
|
||||
{
|
||||
"name": "title",
|
||||
"type": "string",
|
||||
"required": false,
|
||||
"example": "Main is back online",
|
||||
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
|
||||
},
|
||||
{
|
||||
"name": "intro",
|
||||
"type": "string",
|
||||
"required": false,
|
||||
"example": "Main is back up and taking players.",
|
||||
"description": "One sentence of detail. Core generic bodies use it as the body."
|
||||
},
|
||||
{
|
||||
"name": "profile",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"example": "juggernaut",
|
||||
"description": "The RunicNPC profile the boss was made from."
|
||||
},
|
||||
{
|
||||
"name": "boss",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"example": "Juggernaut",
|
||||
"description": "The boss's own name, as players see it."
|
||||
},
|
||||
{
|
||||
"name": "byEvent",
|
||||
"type": "boolean",
|
||||
"required": true,
|
||||
"example": true,
|
||||
"description": "Whether an event placed it."
|
||||
},
|
||||
{
|
||||
"name": "phaseKey",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"example": "juggernaut:2",
|
||||
"description": "The profile and the phase. The cooldown subject; not meant for display."
|
||||
},
|
||||
{
|
||||
"name": "phase",
|
||||
"type": "int",
|
||||
"required": true,
|
||||
"example": 2,
|
||||
"description": "Which phase it entered, counting from 1."
|
||||
},
|
||||
{
|
||||
"name": "percent",
|
||||
"type": "int",
|
||||
"required": true,
|
||||
"example": 25,
|
||||
"description": "The health it fell to, as a percentage."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "rust.boss.spawned",
|
||||
"label": "A boss appeared",
|
||||
"description": "A RunicNPC boss spawned on a server: an admin's placement, an event, or another plugin.",
|
||||
"kind": "event",
|
||||
"subjectKey": "profile",
|
||||
"audience": "subscribers",
|
||||
"ceiling": "everyone",
|
||||
"version": 1,
|
||||
"variables": [
|
||||
{
|
||||
"name": "serverId",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"example": "main",
|
||||
"description": "The server the event happened on, as configured in Admin -> Rust. Also the cooldown subject for broadcasts."
|
||||
},
|
||||
{
|
||||
"name": "server",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"example": "Runic Gateway | Main",
|
||||
"description": "The server's display name."
|
||||
},
|
||||
{
|
||||
"name": "serverUrl",
|
||||
"type": "url",
|
||||
"required": false,
|
||||
"example": "/rust/servers/main",
|
||||
"description": "Site-relative path to the server's page."
|
||||
},
|
||||
{
|
||||
"name": "title",
|
||||
"type": "string",
|
||||
"required": false,
|
||||
"example": "Main is back online",
|
||||
"description": "A one-line headline naming what happened and where. Core generic bodies use it as the title."
|
||||
},
|
||||
{
|
||||
"name": "intro",
|
||||
"type": "string",
|
||||
"required": false,
|
||||
"example": "Main is back up and taking players.",
|
||||
"description": "One sentence of detail. Core generic bodies use it as the body."
|
||||
},
|
||||
{
|
||||
"name": "profile",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"example": "juggernaut",
|
||||
"description": "The RunicNPC profile the boss was made from."
|
||||
},
|
||||
{
|
||||
"name": "boss",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"example": "Juggernaut",
|
||||
"description": "The boss's own name, as players see it."
|
||||
},
|
||||
{
|
||||
"name": "byEvent",
|
||||
"type": "boolean",
|
||||
"required": true,
|
||||
"example": true,
|
||||
"description": "Whether an event placed it."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "rust.clan.disbanded",
|
||||
"label": "Your clan was disbanded",
|
||||
|
||||
Reference in New Issue
Block a user