diff --git a/lib/game/components/controlled_ball.dart b/lib/game/components/controlled_ball.dart index 457cd309..04396575 100644 --- a/lib/game/components/controlled_ball.dart +++ b/lib/game/components/controlled_ball.dart @@ -5,6 +5,7 @@ import 'package:flame_forge2d/forge2d_game.dart'; import 'package:pinball/flame/flame.dart'; import 'package:pinball/game/game.dart'; import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_theme/pinball_theme.dart'; /// {@template controlled_ball} /// A [Ball] with a [BallController] attached. @@ -21,12 +22,11 @@ abstract class _ControlledBall extends Ball /// and a new [PlungerBall] is spawned if it's possible. /// {@endtemplate} class PlungerBall extends _ControlledBall { - // TODO(alestiago): Work on a better solution than passing the game. /// {@macro plunger_ball} - PlungerBall( - PinballGame game, { + PlungerBall({ + required PinballTheme theme, required Plunger plunger, - }) : super(baseColor: game.theme.characterTheme.ballColor) { + }) : super(baseColor: theme.characterTheme.ballColor) { // TODO(alestiago): Dicuss if this is a good idea. initialPosition = Vector2( plunger.body.position.x, @@ -45,8 +45,9 @@ class PlungerBall extends _ControlledBall { /// {@endtemplate} class BonusBall extends _ControlledBall { /// {@macro bonus_ball} - BonusBall(PinballGame game) - : super(baseColor: game.theme.characterTheme.ballColor); + BonusBall({ + required PinballTheme theme, + }) : super(baseColor: theme.characterTheme.ballColor); @override BallController controllerBuilder() => BallController(this); diff --git a/lib/game/components/flutter_forest.dart b/lib/game/components/flutter_forest.dart index 7cb8f96d..98e0669e 100644 --- a/lib/game/components/flutter_forest.dart +++ b/lib/game/components/flutter_forest.dart @@ -33,7 +33,9 @@ class FlutterForest extends Component super.onNewState(state); add( - BonusBall(gameRef)..initialPosition = Vector2(17.2, 52.7), + BonusBall( + theme: gameRef.theme, + )..initialPosition = Vector2(17.2, 52.7), ); } diff --git a/lib/game/pinball_game.dart b/lib/game/pinball_game.dart index bc0b931d..fc82e96f 100644 --- a/lib/game/pinball_game.dart +++ b/lib/game/pinball_game.dart @@ -101,7 +101,10 @@ class PinballGame extends Forge2DGame } void spawnBall() { - final ball = PlungerBall(this, plunger: plunger); + final ball = PlungerBall( + theme: theme, + plunger: plunger, + ); add(ball); } }