diff --git a/assets/audio/backspace0.ogg b/assets/audio/backspace0.ogg new file mode 100644 index 0000000..c50bf6b Binary files /dev/null and b/assets/audio/backspace0.ogg differ diff --git a/src/audio.rs b/src/audio.rs index dbb820a..ea1b4d1 100644 --- a/src/audio.rs +++ b/src/audio.rs @@ -21,6 +21,7 @@ impl Plugin for AudioPlugin { pub enum SoundEffectKind { DefaultUpgrade, Keyboard, + Backspace, } #[derive(AssetCollection, Resource, Reflect, Default)] @@ -33,6 +34,8 @@ pub struct AudioAssets { collection(typed) )] pub keyboard_sounds: Vec>, + #[asset(path = "audio/backspace0.ogg")] + pub backspace_sound: Handle, #[asset(path = "music/ingame.ogg")] pub music: Handle, } @@ -40,11 +43,16 @@ pub struct AudioAssets { impl AudioAssets { pub fn get_sfx(&self, kind: SoundEffectKind) -> Handle { use SoundEffectKind::*; - let options: &Vec> = match kind { - DefaultUpgrade => &self.upgrade_sounds, - Keyboard => &self.keyboard_sounds, - }; - options.choose(&mut thread_rng()).unwrap().clone() + macro_rules! select_from { + ($a:expr) => { + $a.choose(&mut thread_rng()).unwrap().clone() + }; + } + match kind { + DefaultUpgrade => select_from!(self.upgrade_sounds), + Keyboard => select_from!(self.keyboard_sounds), + Backspace => self.backspace_sound.clone(), + } } } diff --git a/src/upgrade.rs b/src/upgrade.rs index c497bb2..f83c35b 100644 --- a/src/upgrade.rs +++ b/src/upgrade.rs @@ -892,6 +892,7 @@ generate_upgrade_list!( Refactor: Upgrade { name: "Refactor".to_string(), desc: "Improves the quality of the codebase.".to_string(), + sound: Some(SoundEffectKind::Backspace), tech_debt: -5.0, base_cost: 10.0, cost_scale_factor: 1.5,