diff --git a/lib/game/components/components.dart b/lib/game/components/components.dart index 7d4b23f7..46e5e8cf 100644 --- a/lib/game/components/components.dart +++ b/lib/game/components/components.dart @@ -3,6 +3,7 @@ export 'board.dart'; export 'camera_controller.dart'; export 'controlled_ball.dart'; export 'controlled_flipper.dart'; +export 'controlled_multiplier.dart'; export 'controlled_plunger.dart'; export 'flutter_forest.dart'; export 'game_flow_controller.dart'; diff --git a/lib/game/components/controlled_multiplier.dart b/lib/game/components/controlled_multiplier.dart new file mode 100644 index 00000000..8b2b7d12 --- /dev/null +++ b/lib/game/components/controlled_multiplier.dart @@ -0,0 +1,49 @@ +import 'package:flame/components.dart'; +import 'package:pinball/game/game.dart'; +import 'package:pinball/game/pinball_game.dart'; +import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_flame/pinball_flame.dart'; + +/// {@template multipliers_group_component} +/// A [SpriteGroupComponent] for the multiplier over the board. +/// {@endtemplate} +class MultipliersGroup extends Component + with Controls<_MultipliersController>, HasGameRef { + /// {@macro multipliers_group_component} + MultipliersGroup() + : super( + children: [ + MultiplierSpriteGroupComponent( + position: Vector2(-20, 0), + onAssetPath: Assets.images.multiplier.x2.active.keyName, + offAssetPath: Assets.images.multiplier.x2.inactive.keyName, + ), + MultiplierSpriteGroupComponent( + position: Vector2(20, -5), + onAssetPath: Assets.images.multiplier.x3.active.keyName, + offAssetPath: Assets.images.multiplier.x3.inactive.keyName, + ), + MultiplierSpriteGroupComponent( + position: Vector2(0, -15), + onAssetPath: Assets.images.multiplier.x4.active.keyName, + offAssetPath: Assets.images.multiplier.x4.inactive.keyName, + ), + MultiplierSpriteGroupComponent( + position: Vector2(-10, -25), + onAssetPath: Assets.images.multiplier.x5.active.keyName, + offAssetPath: Assets.images.multiplier.x5.inactive.keyName, + ), + MultiplierSpriteGroupComponent( + position: Vector2(10, -35), + onAssetPath: Assets.images.multiplier.x6.active.keyName, + offAssetPath: Assets.images.multiplier.x6.inactive.keyName, + ), + ], + ); +} + +class _MultipliersController extends ComponentController + with HasGameRef { + _MultipliersController(MultipliersGroup multipliersGroup) + : super(multipliersGroup); +}