import 'package:flame/components.dart'; import 'package:flame_bloc/flame_bloc.dart'; import 'package:pinball/game/game.dart'; import 'package:pinball_audio/pinball_audio.dart'; import 'package:pinball_flame/pinball_flame.dart'; /// Behavior that handles playing a bonus sound effect class BonusNoiseBehavior extends Component { @override Future onLoad() async { await add( FlameBlocListener( listenWhen: (previous, current) { return previous.bonusHistory.length != current.bonusHistory.length; }, onNewState: (state) { final bonus = state.bonusHistory.last; final audioPlayer = readProvider(); switch (bonus) { case GameBonus.googleWord: audioPlayer.play(PinballAudio.google); break; case GameBonus.sparkyTurboCharge: audioPlayer.play(PinballAudio.sparky); break; case GameBonus.dinoChomp: // TODO(erickzanardo): Add sound break; case GameBonus.androidSpaceship: // TODO(erickzanardo): Add sound break; case GameBonus.dashNest: // TODO(erickzanardo): Add sound break; } }, ), ); } }