refactor: suggestions

pull/209/head
Allison Ryan 3 years ago
parent 7cc5b05841
commit 9020df9df2

@ -1,6 +1,6 @@
import 'package:pinball_components/gen/fonts.gen.dart'; import 'package:pinball_components/gen/fonts.gen.dart';
const String _fontPath = 'packages/pinball_components/'; const String _fontPath = 'packages/pinball_components';
/// Class with the fonts available on the pinball game /// Class with the fonts available on the pinball game
class PinballFonts { class PinballFonts {

@ -21,72 +21,22 @@ class BackboardGameOver extends PositionComponent with HasGameRef {
required int score, required int score,
required String characterIconPath, required String characterIconPath,
BackboardOnSubmit? onSubmit, BackboardOnSubmit? onSubmit,
}) : _score = score, }) : _onSubmit = onSubmit,
_characterIconPath = characterIconPath, super(
_onSubmit = onSubmit; children: [
_BackboardSpriteComponent(),
_BackboardDisplaySpriteComponent(),
_ScoreTextComponent(score.formatScore()),
_CharacterIconSpriteComponent(characterIconPath),
],
);
final int _score;
final String _characterIconPath;
final BackboardOnSubmit? _onSubmit; final BackboardOnSubmit? _onSubmit;
@override @override
Future<void> onLoad() async { Future<void> onLoad() async {
final backgroundSprite = await gameRef.loadSprite(
Assets.images.backboard.backboardGameOver.keyName,
);
unawaited(
add(
SpriteComponent(
sprite: backgroundSprite,
size: backgroundSprite.originalSize / 10,
anchor: Anchor.bottomCenter,
),
),
);
final displaySprite = await gameRef.loadSprite(
Assets.images.backboard.display.keyName,
);
unawaited(
add(
SpriteComponent(
sprite: displaySprite,
size: displaySprite.originalSize / 10,
anchor: Anchor.bottomCenter,
position: Vector2(0, -11.5),
),
),
);
unawaited(
add(
TextComponent(
text: _score.formatScore(),
position: Vector2(-34, -45),
anchor: Anchor.centerLeft,
textRenderer: Backboard.textPaint,
),
),
);
final characterIconSprite = await Sprite.load(
_characterIconPath,
images: Images(prefix: ''),
);
unawaited(
add(
SpriteComponent(
sprite: characterIconSprite,
size: characterIconSprite.originalSize / 10,
anchor: Anchor.center,
position: Vector2(18.4, -45),
),
),
);
for (var i = 0; i < 3; i++) { for (var i = 0; i < 3; i++) {
unawaited( await add(
add(
BackboardLetterPrompt( BackboardLetterPrompt(
position: Vector2( position: Vector2(
24.3 + (4.5 * i), 24.3 + (4.5 * i),
@ -94,12 +44,10 @@ class BackboardGameOver extends PositionComponent with HasGameRef {
), ),
hasFocus: i == 0, hasFocus: i == 0,
), ),
),
); );
} }
unawaited( await add(
add(
KeyboardInputController( KeyboardInputController(
keyUp: { keyUp: {
LogicalKeyboardKey.arrowLeft: () => _movePrompt(true), LogicalKeyboardKey.arrowLeft: () => _movePrompt(true),
@ -107,7 +55,6 @@ class BackboardGameOver extends PositionComponent with HasGameRef {
LogicalKeyboardKey.enter: _submit, LogicalKeyboardKey.enter: _submit,
}, },
), ),
),
); );
} }
@ -135,3 +82,67 @@ class BackboardGameOver extends PositionComponent with HasGameRef {
return false; return false;
} }
} }
class _BackboardSpriteComponent extends SpriteComponent with HasGameRef {
_BackboardSpriteComponent() : super(anchor: Anchor.bottomCenter);
@override
Future<void> onLoad() async {
await super.onLoad();
final sprite = await gameRef.loadSprite(
Assets.images.backboard.backboardGameOver.keyName,
);
this.sprite = sprite;
size = sprite.originalSize / 10;
}
}
class _BackboardDisplaySpriteComponent extends SpriteComponent with HasGameRef {
_BackboardDisplaySpriteComponent()
: super(
anchor: Anchor.bottomCenter,
position: Vector2(0, -11.5),
);
@override
Future<void> onLoad() async {
await super.onLoad();
final sprite = await gameRef.loadSprite(
Assets.images.backboard.display.keyName,
);
this.sprite = sprite;
size = sprite.originalSize / 10;
}
}
class _ScoreTextComponent extends TextComponent {
_ScoreTextComponent(String score)
: super(
text: score,
anchor: Anchor.centerLeft,
position: Vector2(-34, -45),
textRenderer: Backboard.textPaint,
);
}
class _CharacterIconSpriteComponent extends SpriteComponent {
_CharacterIconSpriteComponent(String characterIconPath)
: _characterIconPath = characterIconPath,
super(
anchor: Anchor.center,
position: Vector2(18.4, -45),
);
final String _characterIconPath;
@override
Future<void> onLoad() async {
await super.onLoad();
final sprite = await Sprite.load(
_characterIconPath,
images: Images(prefix: ''),
);
this.sprite = sprite;
size = sprite.originalSize / 10;
}
}

@ -1,6 +1,7 @@
import 'package:flame/components.dart'; import 'package:flame/components.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:pinball_components/pinball_components.dart'; import 'package:pinball_components/pinball_components.dart' hide Assets;
import 'package:pinball_theme/pinball_theme.dart';
import 'package:sandbox/common/common.dart'; import 'package:sandbox/common/common.dart';
class BackboardGameOverGame extends BasicKeyboardGame { class BackboardGameOverGame extends BasicKeyboardGame {
@ -16,12 +17,10 @@ class BackboardGameOverGame extends BasicKeyboardGame {
final String character; final String character;
final characterIconPaths = <String, String>{ final characterIconPaths = <String, String>{
'Dash': 'packages/pinball_theme/assets/images/dash/leaderboard_icon.png', 'Dash': Assets.images.dash.leaderboardIcon.keyName,
'Sparky': 'Sparky': Assets.images.sparky.leaderboardIcon.keyName,
'packages/pinball_theme/assets/images/sparky/leaderboard_icon.png', 'Android': Assets.images.android.leaderboardIcon.keyName,
'Android': 'Dino': Assets.images.dino.leaderboardIcon.keyName,
'packages/pinball_theme/assets/images/android/leaderboard_icon.png',
'Dino': 'packages/pinball_theme/assets/images/dino/leaderboard_icon.png',
}; };
@override @override

@ -1,8 +1,8 @@
import 'package:dashbook/dashbook.dart'; import 'package:dashbook/dashbook.dart';
import 'package:flame/game.dart'; import 'package:flame/game.dart';
import 'package:sandbox/common/common.dart'; import 'package:sandbox/common/common.dart';
import 'package:sandbox/stories/backboard/game_over.dart'; import 'package:sandbox/stories/backboard/backboard_game_over_game.dart';
import 'package:sandbox/stories/backboard/waiting.dart'; import 'package:sandbox/stories/backboard/backboard_waiting_game.dart';
void addBackboardStories(Dashbook dashbook) { void addBackboardStories(Dashbook dashbook) {
final characters = ['Dash', 'Sparky', 'Android', 'Dino']; final characters = ['Dash', 'Sparky', 'Android', 'Dino'];

@ -255,7 +255,7 @@ packages:
source: path source: path
version: "1.0.0+1" version: "1.0.0+1"
pinball_theme: pinball_theme:
dependency: transitive dependency: "direct main"
description: description:
path: "../../pinball_theme" path: "../../pinball_theme"
relative: true relative: true

@ -16,6 +16,8 @@ dependencies:
path: ../ path: ../
pinball_flame: pinball_flame:
path: ../../pinball_flame path: ../../pinball_flame
pinball_theme:
path: ../../pinball_theme
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:

@ -1,6 +1,5 @@
// ignore_for_file: prefer_const_constructors // ignore_for_file: prefer_const_constructors
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:pinball_theme/pinball_theme.dart'; import 'package:pinball_theme/pinball_theme.dart';
@ -13,34 +12,5 @@ void main() {
test('supports value equality', () { test('supports value equality', () {
expect(AndroidTheme(), equals(AndroidTheme())); expect(AndroidTheme(), equals(AndroidTheme()));
}); });
test('ballColor is correct', () {
expect(AndroidTheme().ballColor, equals(Colors.green));
});
test('character asset is correct', () {
expect(
AndroidTheme().character,
equals(Assets.images.android.character),
);
});
test('background asset is correct', () {
expect(
AndroidTheme().background,
equals(Assets.images.android.background),
);
});
test('icon asset is correct', () {
expect(AndroidTheme().icon, equals(Assets.images.android.icon));
});
test('leaderboard icon asset is correct', () {
expect(
AndroidTheme().leaderboardIcon,
equals(Assets.images.android.leaderboardIcon),
);
});
}); });
} }

@ -1,6 +1,5 @@
// ignore_for_file: prefer_const_constructors // ignore_for_file: prefer_const_constructors
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:pinball_theme/pinball_theme.dart'; import 'package:pinball_theme/pinball_theme.dart';
@ -13,34 +12,5 @@ void main() {
test('supports value equality', () { test('supports value equality', () {
expect(DashTheme(), equals(DashTheme())); expect(DashTheme(), equals(DashTheme()));
}); });
test('ballColor is correct', () {
expect(DashTheme().ballColor, equals(Colors.blue));
});
test('character asset is correct', () {
expect(
DashTheme().character,
equals(Assets.images.dash.character),
);
});
test('background asset is correct', () {
expect(
DashTheme().background,
equals(Assets.images.dash.background),
);
});
test('icon asset is correct', () {
expect(DashTheme().icon, equals(Assets.images.dash.icon));
});
test('leaderboard icon asset is correct', () {
expect(
DashTheme().leaderboardIcon,
equals(Assets.images.dash.leaderboardIcon),
);
});
}); });
} }

@ -1,6 +1,5 @@
// ignore_for_file: prefer_const_constructors // ignore_for_file: prefer_const_constructors
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:pinball_theme/pinball_theme.dart'; import 'package:pinball_theme/pinball_theme.dart';
@ -13,34 +12,5 @@ void main() {
test('supports value equality', () { test('supports value equality', () {
expect(DinoTheme(), equals(DinoTheme())); expect(DinoTheme(), equals(DinoTheme()));
}); });
test('ballColor is correct', () {
expect(DinoTheme().ballColor, equals(Colors.grey));
});
test('character asset is correct', () {
expect(
DinoTheme().character,
equals(Assets.images.dino.character),
);
});
test('background asset is correct', () {
expect(
DinoTheme().background,
equals(Assets.images.dino.background),
);
});
test('icon asset is correct', () {
expect(DinoTheme().icon, equals(Assets.images.dino.icon));
});
test('leaderboard icon asset is correct', () {
expect(
DinoTheme().leaderboardIcon,
equals(Assets.images.dino.leaderboardIcon),
);
});
}); });
} }

@ -1,6 +1,5 @@
// ignore_for_file: prefer_const_constructors // ignore_for_file: prefer_const_constructors
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:pinball_theme/pinball_theme.dart'; import 'package:pinball_theme/pinball_theme.dart';
@ -13,34 +12,5 @@ void main() {
test('supports value equality', () { test('supports value equality', () {
expect(SparkyTheme(), equals(SparkyTheme())); expect(SparkyTheme(), equals(SparkyTheme()));
}); });
test('ballColor is correct', () {
expect(SparkyTheme().ballColor, equals(Colors.orange));
});
test('character asset is correct', () {
expect(
SparkyTheme().character,
equals(Assets.images.sparky.character),
);
});
test('background asset is correct', () {
expect(
SparkyTheme().background,
equals(Assets.images.sparky.background),
);
});
test('icon asset is correct', () {
expect(SparkyTheme().icon, equals(Assets.images.sparky.icon));
});
test('leaderboard icon asset is correct', () {
expect(
SparkyTheme().leaderboardIcon,
equals(Assets.images.sparky.leaderboardIcon),
);
});
}); });
} }

Loading…
Cancel
Save