test(harness): stage 5 spike, NPC targets, turrets, kit items, PVE (D231, D253) #7

Merged
whitlocktech merged 1 commits from spike/stage-5 into edge 2026-10-01 08:17:28 +00:00
Member

What

tools/RunicNpcHarness.cs 0.2.0: the measurements stage 5 opens with (docs runicnpc/PLAN.md, stage 5). The plugin itself is unchanged. The prototype combat state lives in the harness only.

Command Measures
rnh.npcfight [secs] [only] our own sensing and combat state against a stock scientist, ours, a boar, a wolf, and an ally on the line of fire
rnh.sense [secs] what that sensing costs: 100 against 100 scientists, 50 against 50 of ours
rnh.turrets [secs] [only] auto turret, flame turret and shotgun trap against a stand-in, a stock scientist and ours (D259)
rnh.items [secs] which kit items Rust's AI uses by itself (D260)
rnh.pve what TruePVE or NextGenPVE (whichever is loaded) does with ours, with no answer, "allow" or "deny" to CanEntityTakeDamage (D261)

The prototype marks only its own target Horror for the length of its own shot, because Rust skips every NPC-to-NPC bullet hit otherwise. It guards the nesting of ShotTest and TriggerDown: the first run without that guard left targets Horror for good, and allies shot each other.

Results are in docs#310's text, measured on both rigs. The harness is removed from both rigs.

Checklist

  • I have read CONTRIBUTING.md.
  • Developer tool only (tools/); nothing shipped changes.
  • 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 `tools/RunicNpcHarness.cs` 0.2.0: the measurements stage 5 opens with (docs `runicnpc/PLAN.md`, stage 5). The plugin itself is unchanged. The prototype combat state lives in the harness only. | Command | Measures | |---|---| | `rnh.npcfight [secs] [only]` | our own sensing and combat state against a stock scientist, ours, a boar, a wolf, and an ally on the line of fire | | `rnh.sense [secs]` | what that sensing costs: 100 against 100 scientists, 50 against 50 of ours | | `rnh.turrets [secs] [only]` | auto turret, flame turret and shotgun trap against a stand-in, a stock scientist and ours (D259) | | `rnh.items [secs]` | which kit items Rust's AI uses by itself (D260) | | `rnh.pve` | what TruePVE or NextGenPVE (whichever is loaded) does with ours, with no answer, "allow" or "deny" to `CanEntityTakeDamage` (D261) | The prototype marks only its own target `Horror` for the length of its own shot, because Rust skips every NPC-to-NPC bullet hit otherwise. It guards the nesting of `ShotTest` and `TriggerDown`: the first run without that guard left targets `Horror` for good, and allies shot each other. Results are in docs#310's text, measured on both rigs. The harness is removed from both rigs. ## Checklist - [x] I have read CONTRIBUTING.md. - [x] Developer tool only (`tools/`); nothing shipped changes. - [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-01 06:02:50 +00:00
test(harness): stage 5 spike, NPC targets, turrets, kit items, PVE (D231, D253)
All checks were successful
PR Checks / plugin-checks (pull_request) Successful in -1m28s
9424dca6d1
RunicNpcHarness 0.2.0 adds the measurements stage 5 opens with:

- rnh.npcfight: our own sensing and combat state against a stock
  scientist, another of ours, a boar and a wolf, and with an ally on
  the line of fire. Rust's BaseProjectile.ServerUse drops every hit on
  an NPC from an NPC's gun unless the victim's faction is Horror; the
  prototype marks only its current target Horror for the length of
  each of its own shots.
- rnh.sense: what that sensing costs, 100 against 100 scientists and
  50 against 50 of ours.
- rnh.turrets: auto turret, flame turret and shotgun trap against a
  stand-in player, a stock scientist and ours (D259).
- rnh.items: which kit items Rust's AI uses by itself (D260).
- rnh.pve: what TruePVE or NextGenPVE does with our NPC, and with an
  answer to CanEntityTakeDamage (D261).

Never shipped: a developer tool in tools/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
whitlocktech merged commit 340f1dc8f5 into edge 2026-10-01 08:17:28 +00:00
whitlocktech deleted branch spike/stage-5 2026-10-01 08:17:29 +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/runicnpc-rust#7
No description provided.