fix(rules): preserve lock holes when arming effect seven

Record 148 writes player item 20 and its own type-three contact sentinel. It
does not clear lock-hole items or contacts 129 through 133; the panel completion
path owns that reset. Rust treated record 148 as a wheel-reset sensor and erased
all five lock holes immediately.

Rename the recovered mechanism to the special/effect-seven hole and preserve
existing lock progress when it is captured. Keep its multiball-ready state,
contact 2 publication, and later special-respawn suppression unchanged.

Test Plan:
- `cargo test --workspace --all-targets --all-features` -- 120 passed
- `cargo clippy --workspace --all-targets --all-features -- -D warnings` -- passed
- `rumdl check --flavor commonmark RECONSTRUCTION.md CHANGELOG.md` -- passed
- `git diff --cached --check` -- passed
This commit is contained in:
2026-08-23 20:07:39 +02:00
parent 2d14823c04
commit 8d436b8a4b
4 changed files with 32 additions and 27 deletions
+2 -1
View File
@@ -351,7 +351,8 @@ pub const LOCK_HOLES: [MechanismSensor; 5] = [
MechanismSensor::new(133, Vec2::new(115.0, 103.0), 19.0),
];
pub const WHEEL_RESET_SENSOR: MechanismSensor =
/// Record 148 arms the special/effect-seven path without clearing lock holes.
pub const SPECIAL_HOLE_SENSOR: MechanismSensor =
MechanismSensor::new(148, Vec2::new(17.0, 23.0), 19.0);
pub const EFFECT_SENSOR: TargetSensor = TargetSensor::new(149, Vec2::new(68.0, 65.0), 16.0, 500);