From 263cdf4396c79e1a82e41856c88da18d32c71d78 Mon Sep 17 00:00:00 2001 From: RuiAlonso Date: Fri, 29 Apr 2022 17:00:49 +0200 Subject: [PATCH] feat: added cow bumper --- .../components/android_bumper/android_bumper.dart | 12 ++++++++++++ .../android_bumper/android_bumper_test.dart | 8 ++++++++ test/game/components/android_acres_test.dart | 6 ++++-- test/game/pinball_game_test.dart | 2 ++ 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/packages/pinball_components/lib/src/components/android_bumper/android_bumper.dart b/packages/pinball_components/lib/src/components/android_bumper/android_bumper.dart index ad954975..bc252046 100644 --- a/packages/pinball_components/lib/src/components/android_bumper/android_bumper.dart +++ b/packages/pinball_components/lib/src/components/android_bumper/android_bumper.dart @@ -62,6 +62,18 @@ class AndroidBumper extends BodyComponent with InitialPosition { children: children, ); + /// {@macro android_bumper} + AndroidBumper.cow({ + Iterable? children, + }) : this._( + majorRadius: 3.52, + minorRadius: 2.97, + litAssetPath: Assets.images.androidBumper.cow.lit.keyName, + dimmedAssetPath: Assets.images.androidBumper.cow.dimmed.keyName, + bloc: AndroidBumperCubit(), + children: children, + ); + /// Creates an [AndroidBumper] without any children. /// /// This can be used for testing [AndroidBumper]'s behaviors in isolation. diff --git a/packages/pinball_components/test/src/components/android_bumper/android_bumper_test.dart b/packages/pinball_components/test/src/components/android_bumper/android_bumper_test.dart index abc51a28..831330c0 100644 --- a/packages/pinball_components/test/src/components/android_bumper/android_bumper_test.dart +++ b/packages/pinball_components/test/src/components/android_bumper/android_bumper_test.dart @@ -17,6 +17,8 @@ void main() { Assets.images.androidBumper.a.dimmed.keyName, Assets.images.androidBumper.b.lit.keyName, Assets.images.androidBumper.b.dimmed.keyName, + Assets.images.androidBumper.cow.lit.keyName, + Assets.images.androidBumper.cow.dimmed.keyName, ]; final flameTester = FlameTester(() => TestGame(assets)); @@ -33,6 +35,12 @@ void main() { expect(game.contains(androidBumper), isTrue); }); + flameTester.test('"cow" loads correctly', (game) async { + final androidBumper = AndroidBumper.cow(); + await game.ensureAdd(androidBumper); + expect(game.contains(androidBumper), isTrue); + }); + // TODO(alestiago): Consider refactoring once the following is merged: // https://github.com/flame-engine/flame/pull/1538 // ignore: public_member_api_docs diff --git a/test/game/components/android_acres_test.dart b/test/game/components/android_acres_test.dart index 419524c6..01ab5d7b 100644 --- a/test/game/components/android_acres_test.dart +++ b/test/game/components/android_acres_test.dart @@ -27,6 +27,8 @@ void main() { Assets.images.androidBumper.a.dimmed.keyName, Assets.images.androidBumper.b.lit.keyName, Assets.images.androidBumper.b.dimmed.keyName, + Assets.images.androidBumper.cow.lit.keyName, + Assets.images.androidBumper.cow.dimmed.keyName, ]; final flameTester = FlameTester( () => EmptyPinballTestGame(assets: assets), @@ -73,7 +75,7 @@ void main() { ); flameTester.test( - 'two AndroidBumper', + 'three AndroidBumper', (game) async { final androidZone = AndroidAcres(); await game.addFromBlueprint(androidZone); @@ -81,7 +83,7 @@ void main() { expect( game.descendants().whereType().length, - equals(2), + equals(3), ); }, ); diff --git a/test/game/pinball_game_test.dart b/test/game/pinball_game_test.dart index ef831b5c..d614f709 100644 --- a/test/game/pinball_game_test.dart +++ b/test/game/pinball_game_test.dart @@ -18,6 +18,8 @@ void main() { Assets.images.androidBumper.a.dimmed.keyName, Assets.images.androidBumper.b.lit.keyName, Assets.images.androidBumper.b.dimmed.keyName, + Assets.images.androidBumper.cow.lit.keyName, + Assets.images.androidBumper.cow.dimmed.keyName, Assets.images.backboard.backboardScores.keyName, Assets.images.backboard.backboardGameOver.keyName, Assets.images.backboard.display.keyName,