feat: resetting google word bonus

pull/441/head
alestiago 3 years ago
parent 09754760f0
commit 9bcce32b48

@ -21,6 +21,7 @@ class GameBlocStatusListener extends Component
break;
case GameStatus.playing:
readProvider<PinballAudioPlayer>().play(PinballAudio.backgroundMusic);
_resetBonuses();
gameRef
.descendants()
.whereType<Flipper>()
@ -46,6 +47,15 @@ class GameBlocStatusListener extends Component
}
}
void _resetBonuses() {
gameRef
.descendants()
.whereType<FlameBlocProvider<GoogleWordCubit, GoogleWordState>>()
.single
.bloc
.onReset();
}
void _addFlipperKeyControls(Flipper flipper) {
flipper
..add(FlipperKeyControllingBehavior())

@ -17,7 +17,7 @@ class GoogleWordBonusBehavior extends Component {
onNewState: (state) {
readBloc<GameBloc, GameState>()
.add(const BonusActivated(GameBonus.googleWord));
readBloc<GoogleWordCubit, GoogleWordState>().onBonusAwarded();
readBloc<GoogleWordCubit, GoogleWordState>().onReset();
add(BonusBallSpawningBehavior());
},
),

@ -11,6 +11,11 @@ class GoogleWordCubit extends Cubit<GoogleWordState> {
int _lastLitLetter = 0;
void onReset() {
emit(GoogleWordState.initial());
_lastLitLetter = 0;
}
void onRolloverContacted() {
final spriteStatesMap = {...state.letterSpriteStates};
if (_lastLitLetter < _lettersInGoogle) {
@ -22,9 +27,4 @@ class GoogleWordCubit extends Cubit<GoogleWordState> {
_lastLitLetter++;
}
}
void onBonusAwarded() {
emit(GoogleWordState.initial());
_lastLitLetter = 0;
}
}

@ -27,7 +27,7 @@ void main() {
blocTest<GoogleWordCubit, GoogleWordState>(
'onBonusAwarded emits initial state',
build: GoogleWordCubit.new,
act: (bloc) => bloc.onBonusAwarded(),
act: (bloc) => bloc.onReset(),
expect: () => [GoogleWordState.initial()],
);
},

@ -114,7 +114,7 @@ void main() {
verify(
() => gameBloc.add(const BonusActivated(GameBonus.googleWord)),
).called(1);
verify(googleWordBloc.onBonusAwarded).called(1);
verify(googleWordBloc.onReset).called(1);
},
);

Loading…
Cancel
Save