diff --git a/lib/game/components/controlled_multiplier.dart b/lib/game/components/controlled_multiplier.dart index b2bbf48b..152d1f56 100644 --- a/lib/game/components/controlled_multiplier.dart +++ b/lib/game/components/controlled_multiplier.dart @@ -1,3 +1,5 @@ +// ignore_for_file: public_member_api_docs + import 'dart:math' as math; import 'package:flame/components.dart'; import 'package:flame_bloc/flame_bloc.dart'; @@ -9,61 +11,52 @@ import 'package:pinball_flame/pinball_flame.dart'; /// {@template multipliers_group_component} /// A [SpriteGroupComponent] for the multiplier over the board. /// {@endtemplate} -class MultipliersGroup extends Component +class Multipliers extends Component with Controls, HasGameRef { /// {@macro multipliers_group_component} - MultipliersGroup() : super() { + Multipliers() + : x2multiplier = Multiplier( + value: 2, + position: Vector2(-19.5, -2), + rotation: -15 * math.pi / 180, + ), + x3multiplier = Multiplier( + value: 3, + position: Vector2(13, -9.5), + rotation: 15 * math.pi / 180, + ), + x4multiplier = Multiplier( + value: 4, + position: Vector2(0, -21), + ), + x5multiplier = Multiplier( + value: 5, + position: Vector2(-8.5, -28), + rotation: -3 * math.pi / 180, + ), + x6multiplier = Multiplier( + value: 6, + position: Vector2(10, -31), + rotation: 8 * math.pi / 180, + ), + super() { controller = MultipliersController(this); } - /// Multiplier x2. - late final Multiplier x2multiplier; + final Multiplier x2multiplier; - /// Multiplier x3. - late final Multiplier x3multiplier; + final Multiplier x3multiplier; - /// Multiplier x4. - late final Multiplier x4multiplier; + final Multiplier x4multiplier; - /// Multiplier x5. - late final Multiplier x5multiplier; + final Multiplier x5multiplier; - /// Multiplier x6. - late final Multiplier x6multiplier; + final Multiplier x6multiplier; @override Future onLoad() async { await super.onLoad(); - x2multiplier = Multiplier( - value: 2, - position: Vector2(-19.5, -2), - rotation: -15 * math.pi / 180, - ); - - x3multiplier = Multiplier( - value: 3, - position: Vector2(13, -9.5), - rotation: 15 * math.pi / 180, - ); - - x4multiplier = Multiplier( - value: 4, - position: Vector2(0, -21), - ); - - x5multiplier = Multiplier( - value: 5, - position: Vector2(-8.5, -28), - rotation: -3 * math.pi / 180, - ); - - x6multiplier = Multiplier( - value: 6, - position: Vector2(10, -31), - rotation: 8 * math.pi / 180, - ); - await addAll([ x2multiplier, x3multiplier, @@ -75,15 +68,14 @@ class MultipliersGroup extends Component } /// {@template multipliers_controller} -/// Controller attached to a [MultipliersGroup] that handles its game related +/// Controller attached to a [Multipliers] that handles its game related /// logic. /// {@endtemplate} @visibleForTesting -class MultipliersController extends ComponentController +class MultipliersController extends ComponentController with BlocComponent, HasGameRef { /// {@macro multipliers_controller} - MultipliersController(MultipliersGroup multipliersGroup) - : super(multipliersGroup); + MultipliersController(Multipliers multipliersGroup) : super(multipliersGroup); @override bool listenWhen(GameState? previousState, GameState newState) { diff --git a/lib/game/pinball_game.dart b/lib/game/pinball_game.dart index d1925be4..00a3fcb2 100644 --- a/lib/game/pinball_game.dart +++ b/lib/game/pinball_game.dart @@ -55,7 +55,7 @@ class PinballGame extends Forge2DGame final launcher = Launcher(); unawaited(addFromBlueprint(launcher)); unawaited(add(Board())); - unawaited(add(MultipliersGroup())); + unawaited(add(Multipliers())); unawaited(add(AlienZone())); await addFromBlueprint(SparkyFireZone()); unawaited(addFromBlueprint(Slingshots())); diff --git a/test/game/components/controlled_multiplier_test.dart b/test/game/components/controlled_multiplier_test.dart index d740ae5d..4662187a 100644 --- a/test/game/components/controlled_multiplier_test.dart +++ b/test/game/components/controlled_multiplier_test.dart @@ -28,7 +28,7 @@ void main() { flameTester.test( 'loads correctly', (game) async { - final multipliersGroup = MultipliersGroup(); + final multipliersGroup = Multipliers(); await game.ensureAdd(multipliersGroup); expect(game.contains(multipliersGroup), isTrue); @@ -39,7 +39,7 @@ void main() { flameTester.test( 'five Multiplier', (game) async { - final multipliersGroup = MultipliersGroup(); + final multipliersGroup = Multipliers(); await game.ensureAdd(multipliersGroup); expect( @@ -60,7 +60,7 @@ void main() { const previous = GameState.initial(); final state = previous.copyWith(score: 100); - final multipliersGroup = MultipliersGroup(); + final multipliersGroup = Multipliers(); await game.ensureAdd(multipliersGroup); expect( @@ -75,7 +75,7 @@ void main() { (game) async { const previous = GameState.initial(); - final multipliersGroup = MultipliersGroup(); + final multipliersGroup = Multipliers(); await game.ensureAdd(multipliersGroup); expect( diff --git a/test/helpers/mocks.dart b/test/helpers/mocks.dart index 65edda9d..b3e6fd60 100644 --- a/test/helpers/mocks.dart +++ b/test/helpers/mocks.dart @@ -88,4 +88,4 @@ class MockSparkyBumper extends Mock implements SparkyBumper {} class MockMultiplier extends Mock implements Multiplier {} -class MockMultipliersGroup extends Mock implements MultipliersGroup {} +class MockMultipliersGroup extends Mock implements Multipliers {}