diff --git a/lib/game/bloc/game_bloc.dart b/lib/game/bloc/game_bloc.dart index 061e5906..f30d22b4 100644 --- a/lib/game/bloc/game_bloc.dart +++ b/lib/game/bloc/game_bloc.dart @@ -12,6 +12,7 @@ class GameBloc extends Bloc { on(_onBallLost); on(_onScored); on(_onIncreasedMultiplier); + on(_onAppliedMultiplier); on(_onResetMultiplier); on(_onBonusActivated); on(_onSparkyTurboChargeActivated); @@ -24,7 +25,7 @@ class GameBloc extends Bloc { void _onScored(Scored event, Emitter emit) { if (!state.isGameOver) { emit( - state.copyWith(score: state.score + state.multiplier * event.points), + state.copyWith(score: state.score + event.points), ); } } @@ -35,6 +36,12 @@ class GameBloc extends Bloc { } } + void _onAppliedMultiplier(AppliedMultiplier event, Emitter emit) { + if (!state.isGameOver) { + emit(state.copyWith(score: state.score * state.multiplier)); + } + } + void _onResetMultiplier(ResetMultiplier event, Emitter emit) { if (!state.isGameOver) { emit(state.copyWith(multiplier: 1)); diff --git a/lib/game/bloc/game_event.dart b/lib/game/bloc/game_event.dart index 0b42af53..58000cd9 100644 --- a/lib/game/bloc/game_event.dart +++ b/lib/game/bloc/game_event.dart @@ -64,6 +64,17 @@ class IncreasedMultiplier extends GameEvent { List get props => [increase]; } +/// {@template applied_multiplier_game_event} +/// Event added when multiplier is applied to score. +/// {@endtemplate} +class AppliedMultiplier extends GameEvent { + /// {@macro applied_multiplier_game_event} + const AppliedMultiplier(); + + @override + List get props => []; +} + /// {@template reset_multiplier_game_event} /// Event added when multiplier is reset. /// {@endtemplate}