From 95f1682365ee240386d6990351edd8cdae708ef6 Mon Sep 17 00:00:00 2001 From: Allison Ryan Date: Mon, 2 May 2022 16:31:32 -0500 Subject: [PATCH] refactor: move logic to cubit --- .../behaviors/chrome_dino_chomping_behavior.dart | 6 ++---- .../src/components/chrome_dino/cubit/chrome_dino_cubit.dart | 4 +++- .../behaviors/chrome_dino_chomping_behavior_test.dart | 3 +-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/pinball_components/lib/src/components/chrome_dino/behaviors/chrome_dino_chomping_behavior.dart b/packages/pinball_components/lib/src/components/chrome_dino/behaviors/chrome_dino_chomping_behavior.dart index c8a19d18..eff84ff4 100644 --- a/packages/pinball_components/lib/src/components/chrome_dino/behaviors/chrome_dino_chomping_behavior.dart +++ b/packages/pinball_components/lib/src/components/chrome_dino/behaviors/chrome_dino_chomping_behavior.dart @@ -14,9 +14,7 @@ class ChromeDinoChompingBehavior extends ContactBehavior { super.beginContact(other, contact); if (other is! Ball) return; - if (parent.bloc.state.status != ChromeDinoStatus.chomping) { - other.firstChild()!.setOpacity(0); - parent.bloc.onChomp(other); - } + other.firstChild()!.setOpacity(0); + parent.bloc.onChomp(other); } } diff --git a/packages/pinball_components/lib/src/components/chrome_dino/cubit/chrome_dino_cubit.dart b/packages/pinball_components/lib/src/components/chrome_dino/cubit/chrome_dino_cubit.dart index d470869c..649e804b 100644 --- a/packages/pinball_components/lib/src/components/chrome_dino/cubit/chrome_dino_cubit.dart +++ b/packages/pinball_components/lib/src/components/chrome_dino/cubit/chrome_dino_cubit.dart @@ -18,7 +18,9 @@ class ChromeDinoCubit extends Cubit { } void onChomp(Ball ball) { - emit(state.copyWith(status: ChromeDinoStatus.chomping, ball: ball)); + if (ball != state.ball) { + emit(state.copyWith(status: ChromeDinoStatus.chomping, ball: ball)); + } } void onSpit() { diff --git a/packages/pinball_components/test/src/components/chrome_dino/behaviors/chrome_dino_chomping_behavior_test.dart b/packages/pinball_components/test/src/components/chrome_dino/behaviors/chrome_dino_chomping_behavior_test.dart index ae3b9500..141d89de 100644 --- a/packages/pinball_components/test/src/components/chrome_dino/behaviors/chrome_dino_chomping_behavior_test.dart +++ b/packages/pinball_components/test/src/components/chrome_dino/behaviors/chrome_dino_chomping_behavior_test.dart @@ -26,8 +26,7 @@ void main() { }); flameTester.test( - 'beginContact sets ball sprite to be invisible and calls onChomp ' - 'when status is not chomping', + 'beginContact sets ball sprite to be invisible and calls onChomp', (game) async { final ball = Ball(baseColor: Colors.red); final behavior = ChromeDinoChompingBehavior();