From 25147ad58ecd54fdc0837abeca37a0afc6ddac74 Mon Sep 17 00:00:00 2001 From: ddidderr Date: Mon, 31 Aug 2026 22:14:17 +0200 Subject: [PATCH] fix(divergence): preserve multiball Greifarm captures The original port consumed a ball as soon as record 89 completed during multiball, which skipped the Greifarm animation and lost the ball permanently. Keep the captured slot through the full animation instead, latch whether the capture began with two live balls, and exclude the launcher release (frame 18) for that capture. The surviving slot continues physics, scoring, nudging, and flipper responses while the held slot is suspended; drain and promotion paths also preserve the held ball. A later Greifarm entry makes a fresh ball-count decision. Update slot-aware rendering and refresh the browser WASM artifact. Test Plan: - `just --justfile tdkpin-rs/justfile test` -- passed (149 game/service tests) - `just --justfile tdkpin-rs/justfile clippy` -- passed - `just --justfile tdkpin-rs/justfile build-production` -- passed - `just --justfile tdkpin-rs/justfile web-build` -- passed - `cargo +nightly fmt --manifest-path tdkpin-rs/Cargo.toml --all -- --check` -- passed - `rumdl check --flavor commonmark tdkpin-rs/CHANGELOG.md tdkpin-rs/AGENTS.md` -- passed - `git diff --cached --check` -- passed --- tdkpin-rs/CHANGELOG.md | 7 + tdkpin-rs/src/app.rs | 6 +- tdkpin-rs/src/game.rs | 533 +++++++++++++++++++++++++++++++---- tdkpin-rs/web/tdkpin-rs.wasm | Bin 1331213 -> 1332282 bytes 4 files changed, 492 insertions(+), 54 deletions(-) diff --git a/tdkpin-rs/CHANGELOG.md b/tdkpin-rs/CHANGELOG.md index 80780cc..e5363b2 100644 --- a/tdkpin-rs/CHANGELOG.md +++ b/tdkpin-rs/CHANGELOG.md @@ -8,6 +8,13 @@ and this project adheres to ## [Unreleased] +### Fixed + +- Keep a ball captured by the Greifarm during multiball instead of consuming it; + latch the two-ball capture rule at each entry, exclude the launcher release + while that capture is active, and let later single-ball re-entries use all + four original release choices. + ## [1.2.0] - 2026-08-31 ### Added diff --git a/tdkpin-rs/src/app.rs b/tdkpin-rs/src/app.rs index 58341a1..4f9d320 100644 --- a/tdkpin-rs/src/app.rs +++ b/tdkpin-rs/src/app.rs @@ -901,7 +901,7 @@ impl App { ); } } - if !game.claw.ball_suspended { + if !game.primary_ball_suspended() { draw_texture( &self.assets.ball, game.ball.position.x - 8.0, @@ -909,7 +909,9 @@ impl App { WHITE, ); } - if let Some(ball) = game.secondary_ball { + if let Some(ball) = game.secondary_ball + && !game.secondary_ball_suspended() + { draw_texture( &self.assets.ball, ball.position.x - 8.0, diff --git a/tdkpin-rs/src/game.rs b/tdkpin-rs/src/game.rs index ef80267..8988eae 100644 --- a/tdkpin-rs/src/game.rs +++ b/tdkpin-rs/src/game.rs @@ -46,6 +46,7 @@ const CLAW_FRAME_SECONDS: f32 = 0.030; const DETAIL_TIMER_SECONDS: [f32; 5] = [0.050, 0.040, 0.030, 0.020, 0.010]; const DETAIL_SUBSTEPS: [u8; 5] = [5, 4, 3, 2, 1]; const CLAW_TERMINAL_FRAMES: [u8; 4] = [1, 6, 7, 18]; +const CLAW_TABLE_TERMINAL_FRAMES: [u8; 3] = [1, 6, 7]; const ORIGINAL_BALL_SPEED_PER_SECOND: f32 = 380.0; #[allow(clippy::cast_possible_wrap)] @@ -129,12 +130,20 @@ pub enum ClawSpriteBank { Opening, } +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +enum ClawBallSlot { + Primary, + Secondary, +} + #[derive(Clone, Copy, Debug)] pub struct Claw { pub active: bool, pub frame: u8, pub bank: ClawSpriteBank, pub ball_suspended: bool, + captured_slot: Option, + capture_restricted: bool, target_frame: u8, frame_accumulator: f32, } @@ -146,6 +155,8 @@ impl Default for Claw { frame: 10, bank: ClawSpriteBank::Opening, ball_suspended: false, + captured_slot: None, + capture_restricted: false, target_frame: 10, frame_accumulator: 0.0, } @@ -592,39 +603,46 @@ impl Game { self.update_target_rotation(events); } let panel_active = self.update_panel_completion(events); - // The original collapses an inactive two-ball slot immediately before - // the next physics pass. Capture removal does not clear multiball - // scoring until that collapse, so the surviving slot retains double - // scoring for the remainder of the callback in which it was captured. - if self.secondary_ball.is_none() && self.score_mode == ScoreMode::Multiball { + // A held claw ball still counts as the second live ball until the + // other slot disappears or the claw releases it. + if self.secondary_ball.is_none() + && self.claw.captured_slot != Some(ClawBallSlot::Secondary) + && self.score_mode == ScoreMode::Multiball + { self.score_mode = ScoreMode::Normal; } - if !self.claw.ball_suspended && !panel_active { + if !panel_active { let had_secondary_ball = self.secondary_ball.is_some(); let mut spawned_secondary = None; + let primary_held = self.claw_holds_slot(ClawBallSlot::Primary); + let secondary_held = self.claw_holds_slot(ClawBallSlot::Secondary); if had_secondary_ball { self.score_mode = ScoreMode::Multiball; } - for _ in 0..substeps { - let stop = self.fixed_update(events); - // Effect seven publishes its spawn request during record 149, - // but the original timer does not create slot two until the - // complete slot-one simulation pass has returned. - if !had_secondary_ball && spawned_secondary.is_none() { - spawned_secondary = self.secondary_ball.take(); - } - if stop || self.finished || self.claw.ball_suspended { - break; + if !primary_held { + for _ in 0..substeps { + let stop = self.fixed_update(events); + // Effect seven publishes its spawn request during record 149, + // but the original timer does not create slot two until the + // complete slot-one simulation pass has returned. + if !had_secondary_ball && spawned_secondary.is_none() { + spawned_secondary = self.secondary_ball.take(); + } + if stop || self.finished || self.claw_holds_slot(ClawBallSlot::Primary) { + break; + } } } - if had_secondary_ball && !self.finished && !self.claw.ball_suspended { - if self.secondary_ball.is_some() { + if had_secondary_ball && !self.finished { + if self.secondary_ball.is_some() && !self.claw_holds_slot(ClawBallSlot::Secondary) { for _ in 0..substeps { - if self.advance_secondary_ball(events) { + if self.advance_secondary_ball_slot(events, !primary_held) { break; } } - } else { + } else if !self.claw_holds_slot(ClawBallSlot::Primary) + && !self.claw_holds_slot(ClawBallSlot::Secondary) + { self.secondary_ball = Some(self.ball); for _ in 0..substeps { if self.advance_secondary_ball_slot(events, false) { @@ -642,6 +660,10 @@ impl Game { debug_assert!(self.secondary_ball.is_none()); self.secondary_ball = Some(spawned); } + + // The two slots are mutually exclusive while the claw is holding + // a ball. + debug_assert!(!(primary_held && secondary_held)); } self.pending_flipper_edges[0] = @@ -759,6 +781,8 @@ impl Game { } Nudge::None => return, } + let primary_held = self.claw_holds_slot(ClawBallSlot::Primary); + let secondary_held = self.claw_holds_slot(ClawBallSlot::Secondary); if let Some(secondary) = &mut self.secondary_ball { let slot_impulse = match nudge { Nudge::Left | Nudge::Right => MilliVec { @@ -778,12 +802,16 @@ impl Game { let mut primary_slot = MilliVec::from_velocity_per_second(self.ball.velocity); primary_slot.x = primary_slot.x.wrapping_add(slot_impulse.x); primary_slot.y = primary_slot.y.wrapping_add(slot_impulse.y); - self.ball.velocity = primary_slot.to_velocity_per_second(); + if !primary_held { + self.ball.velocity = primary_slot.to_velocity_per_second(); + } let mut secondary_slot = MilliVec::from_velocity_per_second(secondary.velocity); secondary_slot.x = secondary_slot.x.wrapping_add(slot_impulse.x); secondary_slot.y = secondary_slot.y.wrapping_add(slot_impulse.y); - secondary.velocity = secondary_slot.to_velocity_per_second(); - } else { + if !secondary_held { + secondary.velocity = secondary_slot.to_velocity_per_second(); + } + } else if !primary_held { self.ball.velocity = velocity.to_velocity_per_second(); } @@ -832,8 +860,13 @@ impl Game { ); let mut best_collision = best_static .map(|(id, is_wall, candidate)| (id, is_wall, candidate.resolve(velocity, ball.spin))); + let primary_held = self.claw_holds_slot(ClawBallSlot::Primary); + let secondary_held = self.claw_holds_slot(ClawBallSlot::Secondary); let mut transferred_secondary_velocity = None; - if let Some(secondary) = initial_secondary { + if let Some(secondary) = initial_secondary + && !primary_held + && !secondary_held + { let other_position = MilliVec::from_position(secondary.position); let response = ball_collision_response( old_position, @@ -876,6 +909,8 @@ impl Game { if object_id == 175 && let (Some(secondary), Some(transferred)) = (&mut self.secondary_ball, transferred_secondary_velocity) + && !secondary_held + && !primary_held { secondary.velocity = transferred.to_velocity_per_second(); } @@ -944,6 +979,10 @@ impl Game { .secondary_ball .take() .expect("a multiball capture must leave the other slot active"); + if self.claw.captured_slot == Some(ClawBallSlot::Secondary) { + self.claw.captured_slot = Some(ClawBallSlot::Primary); + self.score_mode = ScoreMode::Normal; + } return true; } } @@ -1008,12 +1047,12 @@ impl Game { &mut capture_candidate, events, ) { - CaptureStep::Complete if ball_count == 1 => { - let terminal_frame = self.next_claw_terminal_frame(); - self.begin_claw_capture_after_hold(ball, terminal_frame, events); + CaptureStep::Complete => { + let terminal_frame = + self.next_claw_terminal_frame(self.claw.capture_restricted); + self.begin_claw_capture_after_hold(ball, ball_number, terminal_frame, events); action = BallAction::Suspend; } - CaptureStep::Complete => action = BallAction::Remove, CaptureStep::Outside | CaptureStep::Holding => {} } *velocity = MilliVec::from_velocity_per_second(ball.velocity); @@ -1227,8 +1266,9 @@ impl Game { ) } + #[cfg(test)] fn advance_secondary_ball(&mut self, events: &mut Vec) -> bool { - self.advance_secondary_ball_slot(events, true) + self.advance_secondary_ball_slot(events, !self.claw_holds_slot(ClawBallSlot::Primary)) } #[allow(clippy::too_many_lines)] @@ -1267,6 +1307,8 @@ impl Game { let mut transferred_primary_velocity = None; let other_position = MilliVec::from_position(primary_position); if primary_slot_active + && !self.claw_holds_slot(ClawBallSlot::Primary) + && !self.claw_holds_slot(ClawBallSlot::Secondary) && predicted.x >= other_position.x.wrapping_sub(21_000) && predicted.x <= other_position.x.wrapping_add(21_000) && predicted.y >= other_position.y.wrapping_sub(21_000) @@ -1556,13 +1598,10 @@ impl Game { ) { CaptureStep::Holding | CaptureStep::Outside => {} CaptureStep::Complete => { - if ball_count == 1 { - let terminal_frame = self.next_claw_terminal_frame(); - self.begin_claw_capture_after_hold(ball, terminal_frame, events); - action = BallAction::Suspend; - } else { - action = BallAction::Remove; - } + let terminal_frame = + self.next_claw_terminal_frame(self.claw.capture_restricted); + self.begin_claw_capture_after_hold(ball, ball_number, terminal_frame, events); + action = BallAction::Suspend; } } } @@ -1595,7 +1634,11 @@ impl Game { SensorScanResult { action } } - #[allow(clippy::cast_possible_truncation, clippy::too_many_arguments)] + #[allow( + clippy::cast_possible_truncation, + clippy::too_many_arguments, + clippy::too_many_lines + )] fn capture_record_step( &mut self, ball: &mut Ball, @@ -1637,6 +1680,12 @@ impl Game { && contact_allowed && !(record_id == 148 && self.special_hole_gate == SpecialHoleGate::Suppressed) { + if record_id == 89 && ball.capture_age == 0 { + // Latch the restriction when the ball first enters the deep + // capture zone, before the pull/hold phase can outlive the + // other active ball. + self.claw.capture_restricted = ball_count > 1; + } if ball.capture_age < 300 { let mut velocity = MilliVec::from_velocity_per_second(ball.velocity); let stationary = center.x.wrapping_sub(previous_position.x).wrapping_abs() < 500 @@ -1679,16 +1728,24 @@ impl Game { return CaptureStep::Complete; } ball.capture_age = 0; - self.record_contacts[contact_index] = if record_id == 148 { 2 } else { 99 }; - if ball_count > 1 { - self.record_contacts[contact_index] = 2; - } + self.record_contacts[contact_index] = if record_id == 89 && ball_count > 1 { + // Keep ownership with the held slot so its later release can + // clear the claw contact before a fresh entry. + ball_number + } else if record_id == 148 || ball_count > 1 { + 2 + } else { + 99 + }; return CaptureStep::Complete; } if surface_distance > -11_000 && contact == ball_number { self.record_contacts[contact_index] = 0; ball.capture_age = 0; + if record_id == 89 { + self.claw.capture_restricted = false; + } } let velocity = MilliVec::from_velocity_per_second(ball.velocity); if surface_distance <= milli_distance(velocity) @@ -2052,8 +2109,26 @@ impl Game { self.target_effect.min(7) } - fn next_claw_terminal_frame(&mut self) -> u8 { - CLAW_TERMINAL_FRAMES[usize::from(self.random.below(4))] + fn next_claw_terminal_frame(&mut self, restricted: bool) -> u8 { + if restricted { + // Frame 18 sends the released ball down the shooter lane. During + // a capture that began with two live balls, keep it on the table. + CLAW_TABLE_TERMINAL_FRAMES[usize::from(self.random.below(3))] + } else { + CLAW_TERMINAL_FRAMES[usize::from(self.random.below(4))] + } + } + + fn claw_holds_slot(&self, slot: ClawBallSlot) -> bool { + self.claw.ball_suspended && self.claw.captured_slot == Some(slot) + } + + pub fn primary_ball_suspended(&self) -> bool { + self.claw_holds_slot(ClawBallSlot::Primary) + } + + pub fn secondary_ball_suspended(&self) -> bool { + self.claw_holds_slot(ClawBallSlot::Secondary) } fn apply_flipper_kicks(&mut self) { @@ -2062,6 +2137,8 @@ impl Game { if self.ball.in_launcher || self.tilted { return; } + let primary_held = self.claw_holds_slot(ClawBallSlot::Primary); + let secondary_held = self.claw_holds_slot(ClawBallSlot::Secondary); for (delta, side) in [ (i32::from(pending[0]), FlipperSide::Left), @@ -2070,8 +2147,12 @@ impl Game { if delta == 0 { continue; } - apply_flipper_response_to_ball(&mut self.ball, delta, side); - if let Some(secondary) = &mut self.secondary_ball { + if !primary_held { + apply_flipper_response_to_ball(&mut self.ball, delta, side); + } + if let Some(secondary) = &mut self.secondary_ball + && !secondary_held + { apply_flipper_response_to_ball(secondary, delta, side); } } @@ -2087,6 +2168,8 @@ impl Game { self.claw.target_frame = terminal_frame; self.claw.bank = ClawSpriteBank::Closing; self.claw.ball_suspended = true; + self.claw.captured_slot = Some(ClawBallSlot::Primary); + self.claw.capture_restricted = false; self.claw.frame_accumulator = 0.0; self.ball.velocity = Vec2::ZERO; self.ball.spin = Real48::ZERO; @@ -2097,6 +2180,7 @@ impl Game { fn begin_claw_capture_after_hold( &mut self, ball: &mut Ball, + ball_number: u16, terminal_frame: u8, events: &mut Vec, ) { @@ -2108,6 +2192,11 @@ impl Game { self.claw.target_frame = terminal_frame; self.claw.bank = ClawSpriteBank::Closing; self.claw.ball_suspended = true; + self.claw.captured_slot = Some(if ball_number == 2 { + ClawBallSlot::Secondary + } else { + ClawBallSlot::Primary + }); self.claw.frame_accumulator = 0.0; ball.velocity = Vec2::ZERO; ball.spin = Real48::ZERO; @@ -2115,7 +2204,7 @@ impl Game { } fn update_claw(&mut self, dt: f32, events: &mut Vec) { - if !self.claw.active || self.score_mode == ScoreMode::Multiball { + if !self.claw.active { return; } self.claw.frame_accumulator += dt; @@ -2145,7 +2234,24 @@ impl Game { let release_frame = self.claw.frame; self.claw.target_frame = 10; self.claw.bank = ClawSpriteBank::Opening; - (self.ball.position, self.ball.velocity) = claw_release(release_frame); + let release = claw_release(release_frame); + match self.claw.captured_slot { + Some(ClawBallSlot::Primary) => { + (self.ball.position, self.ball.velocity) = release; + } + Some(ClawBallSlot::Secondary) => { + if let Some(ball) = &mut self.secondary_ball { + (ball.position, ball.velocity) = release; + } else { + (self.ball.position, self.ball.velocity) = release; + self.claw.captured_slot = Some(ClawBallSlot::Primary); + } + } + None => { + (self.ball.position, self.ball.velocity) = release; + self.claw.captured_slot = Some(ClawBallSlot::Primary); + } + } self.claw.ball_suspended = false; events.push(Event::ClawRelease); events.push(Event::Sound(2016)); @@ -2180,6 +2286,16 @@ impl Game { } fn drain(&mut self, events: &mut Vec) { + if self.claw_holds_slot(ClawBallSlot::Secondary) { + self.ball = self + .secondary_ball + .take() + .expect("the claw-held secondary ball must remain in slot two"); + self.claw.captured_slot = Some(ClawBallSlot::Primary); + self.score_mode = ScoreMode::Normal; + events.push(Event::Drain); + return; + } if let Some(remaining_ball) = self.secondary_ball.take() { self.ball = remaining_ball; self.score_mode = ScoreMode::Normal; @@ -3496,20 +3612,18 @@ mod tests { } #[test] - fn active_multiball_pauses_the_returning_claw_until_slot_collapse() { + fn active_multiball_advances_the_returning_claw_while_both_balls_live() { let mut game = Game::new(1); game.claw.active = true; game.claw.frame = 1; game.claw.target_frame = 10; game.claw.bank = ClawSpriteBank::Opening; game.claw.frame_accumulator = 0.0; + game.claw.ball_suspended = true; + game.claw.captured_slot = Some(ClawBallSlot::Primary); game.score_mode = ScoreMode::Multiball; let mut events = Vec::new(); - game.update_claw(CLAW_FRAME_SECONDS, &mut events); - assert_eq!(game.claw.frame, 1); - - game.score_mode = ScoreMode::Normal; game.update_claw(CLAW_FRAME_SECONDS, &mut events); assert_eq!(game.claw.frame, 2); } @@ -4365,6 +4479,321 @@ mod tests { assert!(!game.claw.active); } + #[test] + fn multiball_claw_capture_keeps_the_ball_and_uses_only_table_releases() { + let mut game = Game::new_with_seed(1, 7); + game.ball.in_launcher = false; + game.ball.position = CLAW_TRIGGER_CENTER; + game.ball.velocity = Vec2::ZERO; + game.secondary_ball = Some(Ball { + position: vec2(210.0, 240.0), + velocity: vec2(12.0, -34.0), + in_launcher: false, + spin: Real48::ZERO, + capture_age: 0, + }); + game.object_active.fill(false); + game.score_mode = ScoreMode::Multiball; + let claw_position = MilliVec::from_position(CLAW_TRIGGER_CENTER); + let mut events = Vec::new(); + + assert_eq!( + game.check_sensor_objects(claw_position, MilliVec::default(), &mut events), + BallAction::Keep + ); + assert!(game.claw.capture_restricted); + + assert_eq!( + game.check_sensor_objects(claw_position, MilliVec::default(), &mut events), + BallAction::Suspend + ); + assert!(game.claw.active); + assert!(game.primary_ball_suspended()); + assert!(!game.secondary_ball_suspended()); + assert!(matches!(game.claw.target_frame, 1 | 6 | 7)); + assert_eq!(game.record_contacts[89], 1); + + let survivor_before = game.secondary_ball.expect("survivor must remain").position; + game.timer_tick(CLAW_FRAME_SECONDS, 1, &mut events); + assert_ne!( + game.secondary_ball.expect("survivor must remain").position, + survivor_before + ); + + while game.claw.active { + game.update_claw(CLAW_FRAME_SECONDS, &mut events); + } + assert!(events.contains(&Event::ClawRelease)); + assert!(!game.primary_ball_suspended()); + assert!(game.secondary_ball.is_some()); + + game.ball.position = CLAW_TRIGGER_CENTER + vec2(20.0, 0.0); + game.ball.velocity = Vec2::ZERO; + game.ball.capture_age = 0; + assert_eq!( + game.check_sensor_objects( + MilliVec::from_position(game.ball.position), + MilliVec::default(), + &mut events, + ), + BallAction::Keep + ); + assert_eq!(game.record_contacts[89], 0); + } + + #[test] + fn multiball_claw_restriction_is_latched_before_the_other_ball_drains() { + let mut game = Game::new_with_seed(1, 7); + game.ball.in_launcher = false; + game.ball.position = CLAW_TRIGGER_CENTER; + game.ball.velocity = vec2(100.0, 0.0); + game.secondary_ball = Some(Ball { + position: vec2(210.0, 240.0), + velocity: Vec2::ZERO, + in_launcher: false, + spin: Real48::ZERO, + capture_age: 0, + }); + game.object_active.fill(false); + game.score_mode = ScoreMode::Multiball; + let claw_position = MilliVec::from_position(CLAW_TRIGGER_CENTER); + let mut events = Vec::new(); + + assert_eq!( + game.check_sensor_objects(claw_position, MilliVec::default(), &mut events), + BallAction::Keep + ); + game.secondary_ball = None; + game.score_mode = ScoreMode::Normal; + game.ball.velocity = Vec2::ZERO; + game.ball.capture_age = 300; + + assert_eq!( + game.check_sensor_objects(claw_position, MilliVec::default(), &mut events), + BallAction::Suspend + ); + assert!(game.claw.capture_restricted); + assert!(matches!(game.claw.target_frame, 1 | 6 | 7)); + } + + #[test] + fn secondary_multiball_ball_can_be_held_by_the_claw_without_hiding_primary() { + let mut game = Game::new_with_seed(1, 7); + game.ball.in_launcher = false; + game.ball.position = vec2(210.0, 240.0); + game.ball.velocity = Vec2::ZERO; + game.secondary_ball = Some(Ball { + position: CLAW_TRIGGER_CENTER, + velocity: Vec2::ZERO, + in_launcher: false, + spin: Real48::ZERO, + capture_age: 0, + }); + game.object_active.fill(false); + game.score_mode = ScoreMode::Multiball; + let claw_position = MilliVec::from_position(CLAW_TRIGGER_CENTER); + let mut events = Vec::new(); + let mut secondary = game.secondary_ball.take().expect("secondary ball"); + + assert_eq!( + game.check_sensor_objects_for_ball( + &mut secondary, + 2, + 2, + claw_position, + MilliVec::default(), + &mut events, + ) + .action, + BallAction::Keep + ); + game.secondary_ball = Some(secondary); + let mut secondary = game.secondary_ball.take().expect("secondary ball"); + assert_eq!( + game.check_sensor_objects_for_ball( + &mut secondary, + 2, + 2, + claw_position, + MilliVec::default(), + &mut events, + ) + .action, + BallAction::Suspend + ); + game.secondary_ball = Some(secondary); + + assert!(!game.primary_ball_suspended()); + assert!(game.secondary_ball_suspended()); + assert!(matches!(game.claw.target_frame, 1 | 6 | 7)); + let primary_before = game.ball.position; + game.timer_tick(CLAW_FRAME_SECONDS, 1, &mut events); + assert_ne!(game.ball.position, primary_before); + } + + #[test] + fn held_claw_ball_survives_the_other_ball_draining() { + let mut game = Game::new_with_seed(1, 7); + game.ball.in_launcher = false; + game.ball.position = CLAW_TRIGGER_CENTER; + game.ball.velocity = Vec2::ZERO; + game.secondary_ball = Some(Ball { + position: vec2(340.0, 100.0), + velocity: vec2(1.0, 0.0), + in_launcher: false, + spin: Real48::ZERO, + capture_age: 0, + }); + game.object_active.fill(false); + game.score_mode = ScoreMode::Multiball; + let claw_position = MilliVec::from_position(CLAW_TRIGGER_CENTER); + let mut events = Vec::new(); + assert_eq!( + game.check_sensor_objects(claw_position, MilliVec::default(), &mut events), + BallAction::Keep + ); + assert_eq!( + game.check_sensor_objects(claw_position, MilliVec::default(), &mut events), + BallAction::Suspend + ); + let balls_before = game.player().balls; + + game.timer_tick(CLAW_FRAME_SECONDS, 1, &mut events); + assert!(game.secondary_ball.is_none()); + assert_eq!(game.player().balls, balls_before); + assert_eq!(game.score_mode, ScoreMode::Normal); + assert!(game.claw.ball_suspended); + + while game.claw.ball_suspended { + game.update_claw(CLAW_FRAME_SECONDS, &mut events); + } + assert!(events.contains(&Event::ClawRelease)); + assert!(!game.ball.in_launcher); + } + + #[test] + fn held_secondary_claw_ball_is_promoted_if_primary_drains() { + let mut game = Game::new_with_seed(1, 7); + game.ball.in_launcher = false; + game.ball.position = vec2(340.0, 100.0); + game.ball.velocity = vec2(1.0, 0.0); + game.secondary_ball = Some(Ball { + position: CLAW_TRIGGER_CENTER, + velocity: Vec2::ZERO, + in_launcher: false, + spin: Real48::ZERO, + capture_age: 0, + }); + game.object_active.fill(false); + game.score_mode = ScoreMode::Multiball; + let claw_position = MilliVec::from_position(CLAW_TRIGGER_CENTER); + let mut events = Vec::new(); + let mut secondary = game.secondary_ball.take().expect("secondary ball"); + assert_eq!( + game.check_sensor_objects_for_ball( + &mut secondary, + 2, + 2, + claw_position, + MilliVec::default(), + &mut events, + ) + .action, + BallAction::Keep + ); + game.secondary_ball = Some(secondary); + let mut secondary = game.secondary_ball.take().expect("secondary ball"); + assert_eq!( + game.check_sensor_objects_for_ball( + &mut secondary, + 2, + 2, + claw_position, + MilliVec::default(), + &mut events, + ) + .action, + BallAction::Suspend + ); + game.secondary_ball = Some(secondary); + + game.timer_tick(CLAW_FRAME_SECONDS, 1, &mut events); + assert!(game.secondary_ball.is_none()); + assert!(game.primary_ball_suspended()); + assert_eq!(game.score_mode, ScoreMode::Normal); + assert!(events.contains(&Event::Drain)); + } + + #[test] + fn unrestricted_claw_capture_retains_the_launcher_release_choice() { + let mut saw_launcher_release = false; + for seed in 0..64 { + let mut game = Game::new_with_seed(1, seed); + if game.next_claw_terminal_frame(false) == 18 { + saw_launcher_release = true; + break; + } + } + assert!(saw_launcher_release); + } + + #[test] + fn claw_reentry_after_multiball_uses_the_current_ball_count() { + let mut game = Game::new_with_seed(1, 7); + game.ball.in_launcher = false; + game.ball.position = CLAW_TRIGGER_CENTER; + game.ball.velocity = Vec2::ZERO; + game.secondary_ball = Some(Ball { + position: vec2(210.0, 240.0), + velocity: Vec2::ZERO, + in_launcher: false, + spin: Real48::ZERO, + capture_age: 0, + }); + game.object_active.fill(false); + game.score_mode = ScoreMode::Multiball; + let claw_position = MilliVec::from_position(CLAW_TRIGGER_CENTER); + let mut events = Vec::new(); + assert_eq!( + game.check_sensor_objects(claw_position, MilliVec::default(), &mut events), + BallAction::Keep + ); + assert_eq!( + game.check_sensor_objects(claw_position, MilliVec::default(), &mut events), + BallAction::Suspend + ); + assert!(game.claw.capture_restricted); + + game.secondary_ball = None; + game.score_mode = ScoreMode::Normal; + while game.claw.active { + game.update_claw(CLAW_FRAME_SECONDS, &mut events); + } + + let unrestricted_seed = (0..64) + .find(|seed| { + let mut candidate = Game::new_with_seed(1, *seed); + candidate.next_claw_terminal_frame(false) == 18 + }) + .expect("a seed must select the launcher release"); + game.random = BorlandRandom::new(unrestricted_seed); + game.ball.position = CLAW_TRIGGER_CENTER; + game.ball.velocity = Vec2::ZERO; + game.ball.capture_age = 0; + game.record_contacts[89] = 0; + + assert_eq!( + game.check_sensor_objects(claw_position, MilliVec::default(), &mut events), + BallAction::Keep + ); + assert!(!game.claw.capture_restricted); + assert_eq!( + game.check_sensor_objects(claw_position, MilliVec::default(), &mut events), + BallAction::Suspend + ); + assert_eq!(game.claw.target_frame, 18); + } + #[test] fn claw_frame_cadence_follows_the_five_original_timer_choices() { for (detail, frame_seconds) in DETAIL_TIMER_SECONDS.into_iter().enumerate() { diff --git a/tdkpin-rs/web/tdkpin-rs.wasm b/tdkpin-rs/web/tdkpin-rs.wasm index 8d1d9c6181353bce9b5da1ef1e41cbcb244c452b..bad9928f66203259b522bdaf305568a580888601 100755 GIT binary patch delta 110688 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 delta 109584 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