|
|
|
@ -24,30 +24,13 @@ void main() {
|
|
|
|
|
];
|
|
|
|
|
final flameTester = FlameTester(() => TestGame(assets));
|
|
|
|
|
|
|
|
|
|
test('fails if multiplier value is not in range', () {
|
|
|
|
|
expect(
|
|
|
|
|
() => Multiplier(
|
|
|
|
|
value: 1,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
),
|
|
|
|
|
throwsA(isA<AssertionError>()),
|
|
|
|
|
);
|
|
|
|
|
expect(
|
|
|
|
|
() => Multiplier(
|
|
|
|
|
value: 7,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
),
|
|
|
|
|
throwsA(isA<AssertionError>()),
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
group('renders correctly', () {
|
|
|
|
|
flameTester.testGameWidget(
|
|
|
|
|
'x2 active',
|
|
|
|
|
setUp: (game, tester) async {
|
|
|
|
|
await game.images.loadAll(assets);
|
|
|
|
|
final multiplier = Multiplier(
|
|
|
|
|
value: 2,
|
|
|
|
|
value: MultiplierValue.x2,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
);
|
|
|
|
|
await game.ensureAdd(multiplier);
|
|
|
|
@ -55,17 +38,18 @@ void main() {
|
|
|
|
|
multiplier.toggle(2);
|
|
|
|
|
await tester.pump();
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
expect(
|
|
|
|
|
multiplier.children
|
|
|
|
|
game
|
|
|
|
|
.descendants()
|
|
|
|
|
.whereType<MultiplierSpriteGroupComponent>()
|
|
|
|
|
.first
|
|
|
|
|
.current,
|
|
|
|
|
MultiplierSpriteState.active,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
await expectLater(
|
|
|
|
|
find.byGame<TestGame>(),
|
|
|
|
|
matchesGoldenFile('golden/multipliers/x2-active.png'),
|
|
|
|
@ -79,23 +63,24 @@ void main() {
|
|
|
|
|
await game.images.loadAll(assets);
|
|
|
|
|
|
|
|
|
|
final multiplier = Multiplier(
|
|
|
|
|
value: 2,
|
|
|
|
|
value: MultiplierValue.x2,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
);
|
|
|
|
|
await game.ensureAdd(multiplier);
|
|
|
|
|
await tester.pump();
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
expect(
|
|
|
|
|
multiplier.children
|
|
|
|
|
game
|
|
|
|
|
.descendants()
|
|
|
|
|
.whereType<MultiplierSpriteGroupComponent>()
|
|
|
|
|
.first
|
|
|
|
|
.current,
|
|
|
|
|
MultiplierSpriteState.inactive,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
await expectLater(
|
|
|
|
|
find.byGame<TestGame>(),
|
|
|
|
|
matchesGoldenFile('golden/multipliers/x2-inactive.png'),
|
|
|
|
@ -109,28 +94,24 @@ void main() {
|
|
|
|
|
await game.images.loadAll(assets);
|
|
|
|
|
|
|
|
|
|
final multiplier = Multiplier(
|
|
|
|
|
value: 2,
|
|
|
|
|
value: MultiplierValue.x2,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
);
|
|
|
|
|
await game.ensureAdd(multiplier);
|
|
|
|
|
multiplier.toggle(1);
|
|
|
|
|
await tester.pump();
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
expect(
|
|
|
|
|
multiplier.children
|
|
|
|
|
game
|
|
|
|
|
.descendants()
|
|
|
|
|
.whereType<MultiplierSpriteGroupComponent>()
|
|
|
|
|
.first
|
|
|
|
|
.current,
|
|
|
|
|
MultiplierSpriteState.inactive,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
await expectLater(
|
|
|
|
|
find.byGame<TestGame>(),
|
|
|
|
|
matchesGoldenFile('golden/multipliers/x2-inactive.png'),
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
@ -140,7 +121,7 @@ void main() {
|
|
|
|
|
await game.images.loadAll(assets);
|
|
|
|
|
|
|
|
|
|
final multiplier = Multiplier(
|
|
|
|
|
value: 3,
|
|
|
|
|
value: MultiplierValue.x3,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
);
|
|
|
|
|
await game.ensureAdd(multiplier);
|
|
|
|
@ -148,17 +129,18 @@ void main() {
|
|
|
|
|
multiplier.toggle(3);
|
|
|
|
|
await tester.pump();
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
expect(
|
|
|
|
|
multiplier.children
|
|
|
|
|
game
|
|
|
|
|
.descendants()
|
|
|
|
|
.whereType<MultiplierSpriteGroupComponent>()
|
|
|
|
|
.first
|
|
|
|
|
.current,
|
|
|
|
|
MultiplierSpriteState.active,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
await expectLater(
|
|
|
|
|
find.byGame<TestGame>(),
|
|
|
|
|
matchesGoldenFile('golden/multipliers/x3-active.png'),
|
|
|
|
@ -172,23 +154,24 @@ void main() {
|
|
|
|
|
await game.images.loadAll(assets);
|
|
|
|
|
|
|
|
|
|
final multiplier = Multiplier(
|
|
|
|
|
value: 3,
|
|
|
|
|
value: MultiplierValue.x3,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
);
|
|
|
|
|
await game.ensureAdd(multiplier);
|
|
|
|
|
await tester.pump();
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
expect(
|
|
|
|
|
multiplier.children
|
|
|
|
|
game
|
|
|
|
|
.descendants()
|
|
|
|
|
.whereType<MultiplierSpriteGroupComponent>()
|
|
|
|
|
.first
|
|
|
|
|
.current,
|
|
|
|
|
MultiplierSpriteState.inactive,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
await expectLater(
|
|
|
|
|
find.byGame<TestGame>(),
|
|
|
|
|
matchesGoldenFile('golden/multipliers/x3-inactive.png'),
|
|
|
|
@ -202,28 +185,24 @@ void main() {
|
|
|
|
|
await game.images.loadAll(assets);
|
|
|
|
|
|
|
|
|
|
final multiplier = Multiplier(
|
|
|
|
|
value: 3,
|
|
|
|
|
value: MultiplierValue.x3,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
);
|
|
|
|
|
await game.ensureAdd(multiplier);
|
|
|
|
|
multiplier.toggle(1);
|
|
|
|
|
await tester.pump();
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
expect(
|
|
|
|
|
multiplier.children
|
|
|
|
|
game
|
|
|
|
|
.descendants()
|
|
|
|
|
.whereType<MultiplierSpriteGroupComponent>()
|
|
|
|
|
.first
|
|
|
|
|
.current,
|
|
|
|
|
MultiplierSpriteState.inactive,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
await expectLater(
|
|
|
|
|
find.byGame<TestGame>(),
|
|
|
|
|
matchesGoldenFile('golden/multipliers/x3-inactive.png'),
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
@ -233,7 +212,7 @@ void main() {
|
|
|
|
|
await game.images.loadAll(assets);
|
|
|
|
|
|
|
|
|
|
final multiplier = Multiplier(
|
|
|
|
|
value: 4,
|
|
|
|
|
value: MultiplierValue.x4,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
);
|
|
|
|
|
await game.ensureAdd(multiplier);
|
|
|
|
@ -241,17 +220,18 @@ void main() {
|
|
|
|
|
multiplier.toggle(4);
|
|
|
|
|
await tester.pump();
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
expect(
|
|
|
|
|
multiplier.children
|
|
|
|
|
game
|
|
|
|
|
.descendants()
|
|
|
|
|
.whereType<MultiplierSpriteGroupComponent>()
|
|
|
|
|
.first
|
|
|
|
|
.current,
|
|
|
|
|
MultiplierSpriteState.active,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
await expectLater(
|
|
|
|
|
find.byGame<TestGame>(),
|
|
|
|
|
matchesGoldenFile('golden/multipliers/x4-active.png'),
|
|
|
|
@ -265,23 +245,24 @@ void main() {
|
|
|
|
|
await game.images.loadAll(assets);
|
|
|
|
|
|
|
|
|
|
final multiplier = Multiplier(
|
|
|
|
|
value: 4,
|
|
|
|
|
value: MultiplierValue.x4,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
);
|
|
|
|
|
await game.ensureAdd(multiplier);
|
|
|
|
|
await tester.pump();
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
expect(
|
|
|
|
|
multiplier.children
|
|
|
|
|
game
|
|
|
|
|
.descendants()
|
|
|
|
|
.whereType<MultiplierSpriteGroupComponent>()
|
|
|
|
|
.first
|
|
|
|
|
.current,
|
|
|
|
|
MultiplierSpriteState.inactive,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
await expectLater(
|
|
|
|
|
find.byGame<TestGame>(),
|
|
|
|
|
matchesGoldenFile('golden/multipliers/x4-inactive.png'),
|
|
|
|
@ -295,28 +276,24 @@ void main() {
|
|
|
|
|
await game.images.loadAll(assets);
|
|
|
|
|
|
|
|
|
|
final multiplier = Multiplier(
|
|
|
|
|
value: 4,
|
|
|
|
|
value: MultiplierValue.x4,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
);
|
|
|
|
|
await game.ensureAdd(multiplier);
|
|
|
|
|
multiplier.toggle(1);
|
|
|
|
|
await tester.pump();
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
expect(
|
|
|
|
|
multiplier.children
|
|
|
|
|
game
|
|
|
|
|
.descendants()
|
|
|
|
|
.whereType<MultiplierSpriteGroupComponent>()
|
|
|
|
|
.first
|
|
|
|
|
.current,
|
|
|
|
|
MultiplierSpriteState.inactive,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
await expectLater(
|
|
|
|
|
find.byGame<TestGame>(),
|
|
|
|
|
matchesGoldenFile('golden/multipliers/x4-inactive.png'),
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
@ -326,7 +303,7 @@ void main() {
|
|
|
|
|
await game.images.loadAll(assets);
|
|
|
|
|
|
|
|
|
|
final multiplier = Multiplier(
|
|
|
|
|
value: 5,
|
|
|
|
|
value: MultiplierValue.x5,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
);
|
|
|
|
|
await game.ensureAdd(multiplier);
|
|
|
|
@ -334,17 +311,18 @@ void main() {
|
|
|
|
|
multiplier.toggle(5);
|
|
|
|
|
await tester.pump();
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
expect(
|
|
|
|
|
multiplier.children
|
|
|
|
|
game
|
|
|
|
|
.descendants()
|
|
|
|
|
.whereType<MultiplierSpriteGroupComponent>()
|
|
|
|
|
.first
|
|
|
|
|
.current,
|
|
|
|
|
MultiplierSpriteState.active,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
await expectLater(
|
|
|
|
|
find.byGame<TestGame>(),
|
|
|
|
|
matchesGoldenFile('golden/multipliers/x5-active.png'),
|
|
|
|
@ -358,23 +336,24 @@ void main() {
|
|
|
|
|
await game.images.loadAll(assets);
|
|
|
|
|
|
|
|
|
|
final multiplier = Multiplier(
|
|
|
|
|
value: 5,
|
|
|
|
|
value: MultiplierValue.x5,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
);
|
|
|
|
|
await game.ensureAdd(multiplier);
|
|
|
|
|
await tester.pump();
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
expect(
|
|
|
|
|
multiplier.children
|
|
|
|
|
game
|
|
|
|
|
.descendants()
|
|
|
|
|
.whereType<MultiplierSpriteGroupComponent>()
|
|
|
|
|
.first
|
|
|
|
|
.current,
|
|
|
|
|
MultiplierSpriteState.inactive,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
await expectLater(
|
|
|
|
|
find.byGame<TestGame>(),
|
|
|
|
|
matchesGoldenFile('golden/multipliers/x5-inactive.png'),
|
|
|
|
@ -388,28 +367,24 @@ void main() {
|
|
|
|
|
await game.images.loadAll(assets);
|
|
|
|
|
|
|
|
|
|
final multiplier = Multiplier(
|
|
|
|
|
value: 5,
|
|
|
|
|
value: MultiplierValue.x5,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
);
|
|
|
|
|
await game.ensureAdd(multiplier);
|
|
|
|
|
multiplier.toggle(1);
|
|
|
|
|
await tester.pump();
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
expect(
|
|
|
|
|
multiplier.children
|
|
|
|
|
game
|
|
|
|
|
.descendants()
|
|
|
|
|
.whereType<MultiplierSpriteGroupComponent>()
|
|
|
|
|
.first
|
|
|
|
|
.current,
|
|
|
|
|
MultiplierSpriteState.inactive,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
await expectLater(
|
|
|
|
|
find.byGame<TestGame>(),
|
|
|
|
|
matchesGoldenFile('golden/multipliers/x5-inactive.png'),
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
@ -419,7 +394,7 @@ void main() {
|
|
|
|
|
await game.images.loadAll(assets);
|
|
|
|
|
|
|
|
|
|
final multiplier = Multiplier(
|
|
|
|
|
value: 6,
|
|
|
|
|
value: MultiplierValue.x6,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
);
|
|
|
|
|
await game.ensureAdd(multiplier);
|
|
|
|
@ -427,17 +402,18 @@ void main() {
|
|
|
|
|
multiplier.toggle(6);
|
|
|
|
|
await tester.pump();
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
expect(
|
|
|
|
|
multiplier.children
|
|
|
|
|
game
|
|
|
|
|
.descendants()
|
|
|
|
|
.whereType<MultiplierSpriteGroupComponent>()
|
|
|
|
|
.first
|
|
|
|
|
.current,
|
|
|
|
|
MultiplierSpriteState.active,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
await expectLater(
|
|
|
|
|
find.byGame<TestGame>(),
|
|
|
|
|
matchesGoldenFile('golden/multipliers/x6-active.png'),
|
|
|
|
@ -451,23 +427,24 @@ void main() {
|
|
|
|
|
await game.images.loadAll(assets);
|
|
|
|
|
|
|
|
|
|
final multiplier = Multiplier(
|
|
|
|
|
value: 6,
|
|
|
|
|
value: MultiplierValue.x6,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
);
|
|
|
|
|
await game.ensureAdd(multiplier);
|
|
|
|
|
await tester.pump();
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
expect(
|
|
|
|
|
multiplier.children
|
|
|
|
|
game
|
|
|
|
|
.descendants()
|
|
|
|
|
.whereType<MultiplierSpriteGroupComponent>()
|
|
|
|
|
.first
|
|
|
|
|
.current,
|
|
|
|
|
MultiplierSpriteState.inactive,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
await expectLater(
|
|
|
|
|
find.byGame<TestGame>(),
|
|
|
|
|
matchesGoldenFile('golden/multipliers/x6-inactive.png'),
|
|
|
|
@ -481,28 +458,24 @@ void main() {
|
|
|
|
|
await game.images.loadAll(assets);
|
|
|
|
|
|
|
|
|
|
final multiplier = Multiplier(
|
|
|
|
|
value: 6,
|
|
|
|
|
value: MultiplierValue.x6,
|
|
|
|
|
position: Vector2.zero(),
|
|
|
|
|
);
|
|
|
|
|
await game.ensureAdd(multiplier);
|
|
|
|
|
multiplier.toggle(1);
|
|
|
|
|
await tester.pump();
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
expect(
|
|
|
|
|
multiplier.children
|
|
|
|
|
game
|
|
|
|
|
.descendants()
|
|
|
|
|
.whereType<MultiplierSpriteGroupComponent>()
|
|
|
|
|
.first
|
|
|
|
|
.current,
|
|
|
|
|
MultiplierSpriteState.inactive,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
game.camera.followVector2(Vector2.zero());
|
|
|
|
|
},
|
|
|
|
|
verify: (game, tester) async {
|
|
|
|
|
await expectLater(
|
|
|
|
|
find.byGame<TestGame>(),
|
|
|
|
|
matchesGoldenFile('golden/multipliers/x6-inactive.png'),
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|