fix(game): restore effect-seven multiball spawn
Use the exact record 148 spawn point and the reconstructed 0.8 * 3800 millipixel velocity for ball slot two. This removes the guessed shooter-lane launch and keeps the multiball lifecycle tied to the recovered effect-seven path. Test Plan: - cargo test --all-targets - cargo clippy --all-targets --all-features -- -D warnings - rumdl check CHANGELOG.md RECONSTRUCTION.md README.md - git diff --check
This commit is contained in:
@@ -1155,8 +1155,8 @@ impl Game {
|
||||
}
|
||||
7 => {
|
||||
self.secondary_ball = Some(Ball {
|
||||
position: LAUNCHER_POSITION,
|
||||
velocity: vec2(0.0, -300.0),
|
||||
position: vec2(17.0, 23.0),
|
||||
velocity: MilliVec { x: 0, y: 3_040 }.to_velocity_per_second(),
|
||||
in_launcher: false,
|
||||
spin: Real48::ZERO,
|
||||
});
|
||||
@@ -1844,14 +1844,17 @@ mod tests {
|
||||
let spawned = game
|
||||
.secondary_ball
|
||||
.expect("effect seven should spawn a second ball");
|
||||
assert_eq!(spawned.position, LAUNCHER_POSITION);
|
||||
assert_eq!(spawned.velocity, vec2(0.0, -300.0));
|
||||
assert_eq!(spawned.position, vec2(17.0, 23.0));
|
||||
assert_eq!(
|
||||
MilliVec::from_velocity_per_second(spawned.velocity),
|
||||
MilliVec { x: 0, y: 3_040 }
|
||||
);
|
||||
|
||||
game.advance_secondary_ball(&mut events);
|
||||
let moving_ball = game
|
||||
.secondary_ball
|
||||
.expect("second ball should remain active");
|
||||
assert!(moving_ball.position.y < spawned.position.y);
|
||||
assert!(moving_ball.position.y > spawned.position.y);
|
||||
|
||||
let balls_before = game.player().balls;
|
||||
game.drain(&mut events);
|
||||
|
||||
Reference in New Issue
Block a user