diff --git a/lib/game/behaviors/bonus_noise_behavior.dart b/lib/game/behaviors/bonus_noise_behavior.dart index 70c8ad3e..c071f064 100644 --- a/lib/game/behaviors/bonus_noise_behavior.dart +++ b/lib/game/behaviors/bonus_noise_behavior.dart @@ -25,10 +25,13 @@ class BonusNoiseBehavior extends Component { audioPlayer.play(PinballAudio.sparky); break; case GameBonus.dinoChomp: + audioPlayer.play(PinballAudio.dino); break; case GameBonus.androidSpaceship: + audioPlayer.play(PinballAudio.android); break; case GameBonus.dashNest: + audioPlayer.play(PinballAudio.dash); break; } }, diff --git a/packages/pinball_audio/assets/sfx/android.mp3 b/packages/pinball_audio/assets/sfx/android.mp3 new file mode 100644 index 00000000..33bebe07 Binary files /dev/null and b/packages/pinball_audio/assets/sfx/android.mp3 differ diff --git a/packages/pinball_audio/assets/sfx/dash.mp3 b/packages/pinball_audio/assets/sfx/dash.mp3 new file mode 100644 index 00000000..1180fc4e Binary files /dev/null and b/packages/pinball_audio/assets/sfx/dash.mp3 differ diff --git a/packages/pinball_audio/assets/sfx/dino.mp3 b/packages/pinball_audio/assets/sfx/dino.mp3 new file mode 100644 index 00000000..e8e4a1d5 Binary files /dev/null and b/packages/pinball_audio/assets/sfx/dino.mp3 differ diff --git a/packages/pinball_audio/lib/gen/assets.gen.dart b/packages/pinball_audio/lib/gen/assets.gen.dart index 08e83d87..bdd8e09e 100644 --- a/packages/pinball_audio/lib/gen/assets.gen.dart +++ b/packages/pinball_audio/lib/gen/assets.gen.dart @@ -14,8 +14,11 @@ class $AssetsMusicGen { class $AssetsSfxGen { const $AssetsSfxGen(); + String get android => 'assets/sfx/android.mp3'; String get bumperA => 'assets/sfx/bumper_a.mp3'; String get bumperB => 'assets/sfx/bumper_b.mp3'; + String get dash => 'assets/sfx/dash.mp3'; + String get dino => 'assets/sfx/dino.mp3'; String get gameOverVoiceOver => 'assets/sfx/game_over_voice_over.mp3'; String get google => 'assets/sfx/google.mp3'; String get ioPinballVoiceOver => 'assets/sfx/io_pinball_voice_over.mp3'; diff --git a/packages/pinball_audio/lib/src/pinball_audio.dart b/packages/pinball_audio/lib/src/pinball_audio.dart index 95c993c5..767fc3a6 100644 --- a/packages/pinball_audio/lib/src/pinball_audio.dart +++ b/packages/pinball_audio/lib/src/pinball_audio.dart @@ -28,6 +28,15 @@ enum PinballAudio { /// Sparky sparky, + + /// Android + android, + + /// Dino + dino, + + /// Dash + dash, } /// Defines the contract of the creation of an [AudioPool]. @@ -169,6 +178,21 @@ class PinballPlayer { playSingleAudio: _playSingleAudio, path: Assets.sfx.sparky, ), + PinballAudio.dino: _SimplePlayAudio( + preCacheSingleAudio: _preCacheSingleAudio, + playSingleAudio: _playSingleAudio, + path: Assets.sfx.dino, + ), + PinballAudio.dash: _SimplePlayAudio( + preCacheSingleAudio: _preCacheSingleAudio, + playSingleAudio: _playSingleAudio, + path: Assets.sfx.dash, + ), + PinballAudio.android: _SimplePlayAudio( + preCacheSingleAudio: _preCacheSingleAudio, + playSingleAudio: _playSingleAudio, + path: Assets.sfx.android, + ), PinballAudio.launcher: _SimplePlayAudio( preCacheSingleAudio: _preCacheSingleAudio, playSingleAudio: _playSingleAudio, diff --git a/packages/pinball_audio/test/src/pinball_audio_test.dart b/packages/pinball_audio/test/src/pinball_audio_test.dart index 39060eb2..e95eb8f7 100644 --- a/packages/pinball_audio/test/src/pinball_audio_test.dart +++ b/packages/pinball_audio/test/src/pinball_audio_test.dart @@ -145,6 +145,18 @@ void main() { () => preCacheSingleAudio .onCall('packages/pinball_audio/assets/sfx/sparky.mp3'), ).called(1); + verify( + () => preCacheSingleAudio + .onCall('packages/pinball_audio/assets/sfx/dino.mp3'), + ).called(1); + verify( + () => preCacheSingleAudio + .onCall('packages/pinball_audio/assets/sfx/android.mp3'), + ).called(1); + verify( + () => preCacheSingleAudio + .onCall('packages/pinball_audio/assets/sfx/dash.mp3'), + ).called(1); verify( () => preCacheSingleAudio.onCall( 'packages/pinball_audio/assets/sfx/io_pinball_voice_over.mp3', @@ -239,6 +251,42 @@ void main() { }); }); + group('dino', () { + test('plays the correct file', () async { + await Future.wait(player.load()); + player.play(PinballAudio.dino); + + verify( + () => playSingleAudio + .onCall('packages/pinball_audio/${Assets.sfx.dino}'), + ).called(1); + }); + }); + + group('android', () { + test('plays the correct file', () async { + await Future.wait(player.load()); + player.play(PinballAudio.android); + + verify( + () => playSingleAudio + .onCall('packages/pinball_audio/${Assets.sfx.android}'), + ).called(1); + }); + }); + + group('dash', () { + test('plays the correct file', () async { + await Future.wait(player.load()); + player.play(PinballAudio.dash); + + verify( + () => playSingleAudio + .onCall('packages/pinball_audio/${Assets.sfx.dash}'), + ).called(1); + }); + }); + group('launcher', () { test('plays the correct file', () async { await Future.wait(player.load()); diff --git a/test/game/behaviors/bonus_noise_behavior_test.dart b/test/game/behaviors/bonus_noise_behavior_test.dart index 12f62545..fada7d1e 100644 --- a/test/game/behaviors/bonus_noise_behavior_test.dart +++ b/test/game/behaviors/bonus_noise_behavior_test.dart @@ -126,7 +126,7 @@ void main() { await game.pump(behavior, player: player, bloc: bloc); }, verify: (_, __) async { - verifyNever(() => player.play(any())); + verify(() => player.play(PinballAudio.dino)).called(1); }, ); @@ -151,7 +151,7 @@ void main() { await game.pump(behavior, player: player, bloc: bloc); }, verify: (_, __) async { - verifyNever(() => player.play(any())); + verify(() => player.play(PinballAudio.android)).called(1); }, ); @@ -176,7 +176,7 @@ void main() { await game.pump(behavior, player: player, bloc: bloc); }, verify: (_, __) async { - verifyNever(() => player.play(any())); + verify(() => player.play(PinballAudio.dash)).called(1); }, ); });