feat: added event for sparky bumpers hit

pull/154/head
RuiAlonso 4 years ago
parent 254c38d2a4
commit 14cf994dda

@ -13,6 +13,7 @@ class GameBloc extends Bloc<GameEvent, GameState> {
on<Scored>(_onScored);
on<BonusLetterActivated>(_onBonusLetterActivated);
on<DashNestActivated>(_onDashNestActivated);
on<SparkyFireActivated>(_onSparkyFireActivated);
}
static const bonusWord = 'GOOGLE';
@ -77,4 +78,23 @@ class GameBloc extends Bloc<GameEvent, GameState> {
);
}
}
void _onSparkyFireActivated(SparkyFireActivated event, Emitter emit) {
var newFires = <String>{};
if (state.activatedSparkyFires.contains(event.fireId)) {
newFires = state.activatedSparkyFires.difference({event.fireId});
} else {
newFires = {
...state.activatedSparkyFires,
event.fireId,
};
}
emit(
state.copyWith(
activatedSparkyFires: newFires,
),
);
}
}

@ -54,3 +54,12 @@ class DashNestActivated extends GameEvent {
@override
List<Object?> get props => [nestId];
}
class SparkyFireActivated extends GameEvent {
const SparkyFireActivated(this.fireId);
final String fireId;
@override
List<Object?> get props => [fireId];
}

@ -24,6 +24,7 @@ class GameState extends Equatable {
required this.activatedBonusLetters,
required this.bonusHistory,
required this.activatedDashNests,
required this.activatedSparkyFires,
}) : assert(score >= 0, "Score can't be negative"),
assert(balls >= 0, "Number of balls can't be negative");
@ -32,6 +33,7 @@ class GameState extends Equatable {
balls = 3,
activatedBonusLetters = const [],
activatedDashNests = const {},
activatedSparkyFires = const {},
bonusHistory = const [];
/// The current score of the game.
@ -48,6 +50,9 @@ class GameState extends Equatable {
/// Active dash nests.
final Set<String> activatedDashNests;
/// Active sparky fires.
final Set<String> activatedSparkyFires;
/// Holds the history of all the [GameBonus]es earned by the player during a
/// PinballGame.
final List<GameBonus> bonusHistory;
@ -64,6 +69,7 @@ class GameState extends Equatable {
int? balls,
List<int>? activatedBonusLetters,
Set<String>? activatedDashNests,
Set<String>? activatedSparkyFires,
List<GameBonus>? bonusHistory,
}) {
assert(
@ -77,6 +83,7 @@ class GameState extends Equatable {
activatedBonusLetters:
activatedBonusLetters ?? this.activatedBonusLetters,
activatedDashNests: activatedDashNests ?? this.activatedDashNests,
activatedSparkyFires: activatedSparkyFires ?? this.activatedSparkyFires,
bonusHistory: bonusHistory ?? this.bonusHistory,
);
}
@ -87,6 +94,7 @@ class GameState extends Equatable {
balls,
activatedBonusLetters,
activatedDashNests,
activatedSparkyFires,
bonusHistory,
];
}

Loading…
Cancel
Save