diff --git a/lib/game/components/baseboard.dart b/lib/game/components/baseboard.dart index bbc9b0a6..9153d4f3 100644 --- a/lib/game/components/baseboard.dart +++ b/lib/game/components/baseboard.dart @@ -10,8 +10,9 @@ class Baseboard extends BodyComponent { /// {@macro baseboard} Baseboard._({ required Vector2 position, - required this.side, - }) : _position = position; + required BoardSide side, + }) : _position = position, + _side = side; /// A left positioned [Baseboard]. Baseboard.left({ @@ -39,7 +40,7 @@ class Baseboard extends BodyComponent { final Vector2 _position; /// Whether the [Baseboard] is on the left or right side of the board. - final BoardSide side; + final BoardSide _side; List _createFixtureDefs() { final fixtures = []; @@ -73,12 +74,14 @@ class Baseboard extends BodyComponent { @override Body createBody() { + // TODO(allisonryan0002): share sweeping angle with flipper when components + // are grouped. const angle = math.pi / 7; final bodyDef = BodyDef() ..position = _position ..type = BodyType.static - ..angle = side.isLeft ? -angle : angle; + ..angle = _side.isLeft ? -angle : angle; final body = world.createBody(bodyDef); _createFixtureDefs().forEach(body.createFixture); diff --git a/lib/game/pinball_game.dart b/lib/game/pinball_game.dart index 30ff777b..70ff4cb8 100644 --- a/lib/game/pinball_game.dart +++ b/lib/game/pinball_game.dart @@ -27,7 +27,7 @@ class PinballGame extends Forge2DGame await _addGameBoundaries(); unawaited(_addFlippers()); - await _addBaseboards(); + unawaited(_addBaseboards()); unawaited(_addPlunger()); // Corner wall above plunger so the ball deflects into the rest of the diff --git a/test/game/components/baseboard_test.dart b/test/game/components/baseboard_test.dart index 2da49ddc..51002cef 100644 --- a/test/game/components/baseboard_test.dart +++ b/test/game/components/baseboard_test.dart @@ -25,16 +25,6 @@ void main() { }, ); - group('constructor', () { - test('sets BoardSide', () { - final leftBaseboard = Baseboard.left(position: Vector2.zero()); - expect(leftBaseboard.side, equals(leftBaseboard.side)); - - final rightBaseboard = Baseboard.right(position: Vector2.zero()); - expect(rightBaseboard.side, equals(rightBaseboard.side)); - }); - }); - group('body', () { flameTester.test( 'positions correctly', diff --git a/test/game/pinball_game_test.dart b/test/game/pinball_game_test.dart index d7db79e2..2b74a0cb 100644 --- a/test/game/pinball_game_test.dart +++ b/test/game/pinball_game_test.dart @@ -82,6 +82,15 @@ void main() { ); }); + flameTester.test( + 'Baseboards has two Baseboards', + (game) async { + await game.ready(); + final baseboards = game.children.whereType().toList(); + expect(baseboards.length, 2); + }, + ); + flameTester.test( 'Plunger has only one Plunger', (game) async {