docs(rust): D206-D208, the org lead's answers to the helper spike

Lock-to-first-attacker per event via a BypassUseOwners patch; a step places
its base where RaidableBases picks or at an admin-given spot with a height
adjustment or exact height; a blocked spot is refused with the reason.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E14m6SuuY6i1vASFeGDBeY
This commit is contained in:
2026-09-28 12:20:30 -05:00
parent a34b5fdbf0
commit 664d2b2144

View File

@@ -1,7 +1,7 @@
# `module-rust` — the redesigns, planned
**Status:** plan, written 2026-09-27. **Its eleven questions were answered the same day: D188–D198 (§10).**
On 2026-09-28 the org lead added the first-class optional plugins (§11, D199–D202), and after the RaidableBases spike, D203–D205 (§11.4).
On 2026-09-28 the org lead added the first-class optional plugins (§11, D199–D202), and after the RaidableBases spikes, D203–D208 (§11.4).
It is step 3 of [`PLAN_FIXES.md`](PLAN_FIXES.md) §6: the six changes the org lead decided during the first
player walk, each "planned in detail before code". The org lead asked for all six in one plan (2026-09-27), so
they can be read together. No code has been written for any of them yet.
@@ -635,6 +635,9 @@ The org lead added §11 on 2026-09-28 and answered its questions the same day:
| **D203** | **RaidableBases picks where an event's base goes**; the site learns the spot from `OnRaidableBaseStarted` and shows it. The paid edition's placement, if it has one, is offered where installed. | A helper that places a base at a chosen monument. | 11.4.3 |
| **D204** | **At an event's end, a helper (`RunicGatewayRaids.cs`, D168) despawns only that event's base.** Without the helper the base despawns on its own timer, and the run records it as expiring on its own. | Leaving every base to its timer; RaidableBases' "despawn all". | 11.4.3 |
| **D205** | **An event picks a RaidableBases profile and a difficulty, may override a bounded set of settings for that spawn (through the helper), and the site edits RaidableBases' profiles** — a named exception to the editor never walking a data directory. | Profile and difficulty only; overrides without profile editing. | 11.4.3 |
| **D206** | **Lock-to-first-attacker is set per event.** RaidableBases keeps it only in its main config, so the raids helper patches the base's `BypassUseOwners()` to answer from the run's own setting for the event's base, and leaves every other base to the config. | One server-wide switch the config page edits; no lock control at all. | 11.4.5 |
| **D207** | **A step places its base either where RaidableBases picks (the default, D203) or at an admin-given spot:** x and z, plus either a height adjustment or an exact height. The spot needs the raids helper; without it the step offers only the plugin's pick. | Only an admin-given spot; keeping D203 alone. | 11.4.5 |
| **D208** | **A blocked spot is refused, with the reason.** The step does not spawn when the plugin's area check fails or the helper's water and terrain test fails, and the run log says why ("player building", "raid base", "in water"). The editor runs the same check when the step is saved. | Falling back to the plugin's pick; spawning anyway. | 11.4.5 |
## 11. First-class optional plugins (D199–D202)
@@ -890,6 +893,24 @@ zone helper does.
initialization completed". This includes the helper's spawns. The step has to wait for that, not fail
on it.
#### 11.4.5 Decided after the helper spike (2026-09-28)
The org lead answered §11.4.4's three questions the same day:
- **D206: lock-to-first-attacker is per event.** The helper adds a second Harmony patch, on each base's
`BypassUseOwners()`. For a base the helper tagged for a run, it answers from that run's setting. Every
other base, including one an admin spawns by hand, still follows RaidableBases' config. Without the
helper the lock follows the config, and the step says so.
- **D207: a step places its base one of two ways.** The default is D203, where RaidableBases picks. The
other is an admin-given spot: x and z, plus either a height adjustment (added to the profile's own) or
an exact height (the profile's forced height). Both go through the helper's deep copy of the profile
(§11.4.4). The spot needs the helper; without it the step offers only the plugin's pick.
- **D208: a blocked spot is refused, and the run log says why.** At spawn time the helper runs
RaidableBases' own area check and its own water and terrain test. If either fails, the step does not
spawn, and the run records the reason ("player building", "raid base", "in water"). The editor
runs the same check through the bridge when the step is saved. That is advice only, since the world
can change before the event runs.
### 11.5 Protocol
These are new verbs, events and hello fields. If they are built before the cutover they join the unreleased