feat: made BonusWord use InitialPosition

pull/50/head
alestiago 4 years ago
parent eec4684cce
commit 9ffcb5c91b

@ -74,10 +74,9 @@ class BonusWord extends Component with BlocComponent<GameBloc, GameState> {
unawaited( unawaited(
add( add(
BonusLetter( BonusLetter(
position: _position - Vector2(16 - (i * 6), -30),
letter: letters[i], letter: letters[i],
index: i, index: i,
), )..initialPosition = _position - Vector2(16 - (i * 6), -30),
), ),
); );
} }
@ -89,14 +88,12 @@ class BonusWord extends Component with BlocComponent<GameBloc, GameState> {
/// which will activate its letter after contact with a [Ball]. /// which will activate its letter after contact with a [Ball].
/// {@endtemplate} /// {@endtemplate}
class BonusLetter extends BodyComponent<PinballGame> class BonusLetter extends BodyComponent<PinballGame>
with BlocComponent<GameBloc, GameState> { with BlocComponent<GameBloc, GameState>, InitialPosition {
/// {@macro bonus_letter} /// {@macro bonus_letter}
BonusLetter({ BonusLetter({
required Vector2 position,
required String letter, required String letter,
required int index, required int index,
}) : _position = position, }) : _letter = letter,
_letter = letter,
_index = index { _index = index {
paint = Paint()..color = _disableColor; paint = Paint()..color = _disableColor;
} }
@ -107,7 +104,6 @@ class BonusLetter extends BodyComponent<PinballGame>
static const _activeColor = Colors.green; static const _activeColor = Colors.green;
static const _disableColor = Colors.red; static const _disableColor = Colors.red;
final Vector2 _position;
final String _letter; final String _letter;
final int _index; final int _index;
@ -134,7 +130,7 @@ class BonusLetter extends BodyComponent<PinballGame>
final bodyDef = BodyDef() final bodyDef = BodyDef()
..userData = this ..userData = this
..position = _position ..position = initialPosition
..type = BodyType.static; ..type = BodyType.static;
return world.createBody(bodyDef)..createFixture(fixtureDef); return world.createBody(bodyDef)..createFixture(fixtureDef);

@ -123,10 +123,9 @@ void main() {
'loads correctly', 'loads correctly',
(game) async { (game) async {
final bonusLetter = BonusLetter( final bonusLetter = BonusLetter(
position: Vector2.zero(),
letter: 'G', letter: 'G',
index: 0, index: 0,
); )..initialPosition = Vector2.zero();
await game.ensureAdd(bonusLetter); await game.ensureAdd(bonusLetter);
await game.ready(); await game.ready();
@ -140,10 +139,9 @@ void main() {
(game) async { (game) async {
final position = Vector2.all(10); final position = Vector2.all(10);
final bonusLetter = BonusLetter( final bonusLetter = BonusLetter(
position: position,
letter: 'G', letter: 'G',
index: 0, index: 0,
); )..initialPosition = position;
await game.ensureAdd(bonusLetter); await game.ensureAdd(bonusLetter);
game.contains(bonusLetter); game.contains(bonusLetter);
@ -155,10 +153,9 @@ void main() {
'is static', 'is static',
(game) async { (game) async {
final bonusLetter = BonusLetter( final bonusLetter = BonusLetter(
position: Vector2.zero(),
letter: 'G', letter: 'G',
index: 0, index: 0,
); )..initialPosition = Vector2.zero();
await game.ensureAdd(bonusLetter); await game.ensureAdd(bonusLetter);
expect(bonusLetter.body.bodyType, equals(BodyType.static)); expect(bonusLetter.body.bodyType, equals(BodyType.static));
@ -171,10 +168,9 @@ void main() {
'exists', 'exists',
(game) async { (game) async {
final bonusLetter = BonusLetter( final bonusLetter = BonusLetter(
position: Vector2.zero(),
letter: 'G', letter: 'G',
index: 0, index: 0,
); )..initialPosition = Vector2.zero();
await game.ensureAdd(bonusLetter); await game.ensureAdd(bonusLetter);
expect(bonusLetter.body.fixtures[0], isA<Fixture>()); expect(bonusLetter.body.fixtures[0], isA<Fixture>());
@ -185,10 +181,9 @@ void main() {
'is sensor', 'is sensor',
(game) async { (game) async {
final bonusLetter = BonusLetter( final bonusLetter = BonusLetter(
position: Vector2.zero(),
letter: 'G', letter: 'G',
index: 0, index: 0,
); )..initialPosition = Vector2.zero();
await game.ensureAdd(bonusLetter); await game.ensureAdd(bonusLetter);
final fixture = bonusLetter.body.fixtures[0]; final fixture = bonusLetter.body.fixtures[0];
@ -200,10 +195,9 @@ void main() {
'shape is circular', 'shape is circular',
(game) async { (game) async {
final bonusLetter = BonusLetter( final bonusLetter = BonusLetter(
position: Vector2.zero(),
letter: 'G', letter: 'G',
index: 0, index: 0,
); )..initialPosition = Vector2.zero();
await game.ensureAdd(bonusLetter); await game.ensureAdd(bonusLetter);
final fixture = bonusLetter.body.fixtures[0]; final fixture = bonusLetter.body.fixtures[0];

Loading…
Cancel
Save