refactor: used EmptyPinballGame

pull/147/head
alestiago 4 years ago
parent 4e0f0ffe29
commit aa4e0dcf61

@ -19,8 +19,6 @@ class PinballGame extends Forge2DGame
final PinballTheme theme;
late final Plunger plunger;
@override
void onAttach() {
super.onAttach();
@ -75,7 +73,7 @@ class PinballGame extends Forge2DGame
}
Future<void> _addPlunger() async {
plunger = Plunger(compressionDistance: 29)
final plunger = Plunger(compressionDistance: 29)
..initialPosition =
BoardDimensions.bounds.center.toVector2() + Vector2(41.5, -49);
await add(plunger);
@ -98,6 +96,10 @@ class PinballGame extends Forge2DGame
}
void spawnBall() {
// TODO(alestiago): Remove once this logic is moved to controller.
final plunger = firstChild<Plunger>();
if (plunger == null) return;
final ball = ControlledBall.launch(
theme: theme,
)..initialPosition = Vector2(

@ -25,7 +25,7 @@ void beginContact(Forge2DGame game, BodyComponent bodyA, BodyComponent bodyB) {
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
final flameTester = FlameTester(PinballGameTest.create);
final flameTester = FlameTester(EmptyPinballGame.create);
group('FlutterForest', () {
flameTester.test(
@ -146,16 +146,15 @@ void main() {
});
final flameBlocTester = FlameBlocTester<PinballGame, GameBloc>(
gameBuilder: PinballGameTest.create,
gameBuilder: EmptyPinballGame.create,
blocBuilder: () => gameBloc,
);
flameBlocTester.testGameWidget(
'add DashNestActivated event',
setUp: (game, tester) async {
await game.ready();
final flutterForest =
game.descendants().whereType<FlutterForest>().first;
final flutterForest = FlutterForest();
await game.ensureAdd(flutterForest);
await game.ensureAdd(ball);
final bumpers =
@ -177,15 +176,16 @@ void main() {
final flutterForest = FlutterForest();
await game.ensureAdd(flutterForest);
await game.ensureAdd(ball);
game.addContactCallback(BallScorePointsCallback(game));
final bumpers =
flutterForest.descendants().whereType<DashNestBumper>();
final bumpers = flutterForest.descendants().whereType<ScorePoints>();
for (final bumper in bumpers) {
beginContact(game, bumper, ball);
final points = (bumper as ScorePoints).points;
verify(
() => gameBloc.add(Scored(points: points)),
() => gameBloc.add(
Scored(points: bumper.points),
),
).called(1);
}
},

@ -1,3 +1,4 @@
import 'package:flutter/services.dart';
import 'package:pinball/game/game.dart';
import 'package:pinball_theme/pinball_theme.dart';
@ -20,3 +21,16 @@ extension DebugPinballGameTest on DebugPinballGame {
),
);
}
class EmptyPinballGame extends PinballGame {
EmptyPinballGame({required PinballTheme theme}) : super(theme: theme);
@override
Future<void> onLoad() async {}
static PinballGame create() => EmptyPinballGame(
theme: const PinballTheme(
characterTheme: DashTheme(),
),
);
}

Loading…
Cancel
Save