diff --git a/lib/game/components/components.dart b/lib/game/components/components.dart index fc914ebf..7d4b23f7 100644 --- a/lib/game/components/components.dart +++ b/lib/game/components/components.dart @@ -4,7 +4,6 @@ export 'camera_controller.dart'; export 'controlled_ball.dart'; export 'controlled_flipper.dart'; export 'controlled_plunger.dart'; -export 'controlled_sparky_computer.dart'; export 'flutter_forest.dart'; export 'game_flow_controller.dart'; export 'google_word.dart'; diff --git a/lib/game/components/controlled_sparky_computer.dart b/lib/game/components/controlled_sparky_computer.dart deleted file mode 100644 index 65190a1f..00000000 --- a/lib/game/components/controlled_sparky_computer.dart +++ /dev/null @@ -1,52 +0,0 @@ -// ignore_for_file: avoid_renaming_method_parameters - -import 'package:flame/components.dart'; -import 'package:flame_forge2d/flame_forge2d.dart'; -import 'package:flutter/material.dart'; -import 'package:pinball/game/game.dart'; -import 'package:pinball_components/pinball_components.dart'; -import 'package:pinball_flame/pinball_flame.dart'; - -/// {@template controlled_sparky_computer} -/// [SparkyComputer] with a [SparkyComputerController] attached. -/// {@endtemplate} -class ControlledSparkyComputer extends SparkyComputer - with Controls, HasGameRef { - /// {@macro controlled_sparky_computer} - ControlledSparkyComputer() : super() { - controller = SparkyComputerController(this); - } - - @override - Future onLoad() async { - await super.onLoad(); - gameRef.addContactCallback(SparkyComputerSensorBallContactCallback()); - } -} - -/// {@template sparky_computer_controller} -/// Controller attached to a [SparkyComputer] that handles its game related -/// logic. -/// {@endtemplate} -// TODO(allisonryan0002): listen for turbo charge game bonus and animate Sparky. -class SparkyComputerController - extends ComponentController { - /// {@macro sparky_computer_controller} - SparkyComputerController(ControlledSparkyComputer controlledComputer) - : super(controlledComputer); -} - -/// {@template sparky_computer_sensor_ball_contact_callback} -/// Turbo charges the [Ball] when it enters the [SparkyComputer] -/// {@endtemplate} -@visibleForTesting -class SparkyComputerSensorBallContactCallback - extends ContactCallback { - /// {@macro sparky_computer_sensor_ball_contact_callback} - SparkyComputerSensorBallContactCallback(); - - @override - void begin(_, ControlledBall ball, __) { - ball.controller.turboCharge(); - } -} diff --git a/lib/game/components/sparky_fire_zone.dart b/lib/game/components/sparky_fire_zone.dart index 6d78d32b..6dffac39 100644 --- a/lib/game/components/sparky_fire_zone.dart +++ b/lib/game/components/sparky_fire_zone.dart @@ -1,10 +1,12 @@ // ignore_for_file: avoid_renaming_method_parameters import 'package:flame/components.dart'; +import 'package:flame_bloc/flame_bloc.dart'; import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:flutter/material.dart'; import 'package:pinball/game/game.dart'; import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_flame/pinball_flame.dart'; /// {@template sparky_fire_zone} /// Area positioned at the top left of the [Board] where the [Ball] @@ -12,13 +14,10 @@ import 'package:pinball_components/pinball_components.dart'; /// /// When a [Ball] hits [SparkyBumper]s, the bumper animates. /// {@endtemplate} -class SparkyFireZone extends Component with HasGameRef { - /// {@macro sparky_fire_zone} - SparkyFireZone(); - +class SparkyFireZone extends Forge2DBlueprint { @override - Future onLoad() async { - await super.onLoad(); + void build(Forge2DGame gameRef) { + addBlueprint(SparkyComputer()); gameRef.addContactCallback(SparkyBumperBallContactCallback()); @@ -29,10 +28,11 @@ class SparkyFireZone extends Component with HasGameRef { final rightBumper = _SparkyBumper.c() ..initialPosition = Vector2(-3.3, -52.55); - await addAll([ + addAll([ lowerLeftBumper, upperLeftBumper, rightBumper, + SparkyAnimatronic(), ]); } } diff --git a/lib/game/pinball_game.dart b/lib/game/pinball_game.dart index 4865e820..4e9b429a 100644 --- a/lib/game/pinball_game.dart +++ b/lib/game/pinball_game.dart @@ -48,7 +48,7 @@ class PinballGame extends Forge2DGame await _addGameBoundaries(); unawaited(addFromBlueprint(Boundaries())); - unawaited(addFromBlueprint(ControlledSparkyComputer())); + unawaited(addFromBlueprint(LaunchRamp())); final launcher = Launcher(); unawaited(addFromBlueprint(launcher));