fix(physics): restore upward flipper transfer

Apply flipper movement after the physics substep, matching the original timer
order. Replace the weak generic tangent kick with the recovered swept-body
position transfer and pre-clamp velocity curve fitted from three live left-edge
probes, then mirror that local transform for the right flipper.

The x=125 probe now reaches `(138.182,355)` with raw velocity within two units
of `(2217,-5889)`. Keep downstroke interaction listed as pending rather than
claiming the upward fit is the complete raw routine.

Test Plan:
- `cargo test --all-targets` -- 43 passed
- `cargo clippy --all-targets -- -D warnings` -- passed
- `cargo build --profile production` -- passed
- three live left-flipper transfer probes matched within documented tolerance
- `git diff --cached --check` -- passed
This commit is contained in:
2026-08-22 21:05:02 +02:00
parent e07a915277
commit d813b5b9da
4 changed files with 39 additions and 21 deletions
+7
View File
@@ -29,6 +29,13 @@ impl MilliVec {
}
}
pub fn from_millipixels(value: Vec2) -> Self {
Self {
x: value.x.round() as i32,
y: value.y.round() as i32,
}
}
pub fn to_position(self) -> Vec2 {
vec2(self.x as f32 / 1_000.0, self.y as f32 / 1_000.0)
}