diff --git a/assets/sfx/effects/cash.ogg b/assets/sfx/effects/cash.ogg index 448a156..b3fbcda 100644 Binary files a/assets/sfx/effects/cash.ogg and b/assets/sfx/effects/cash.ogg differ diff --git a/assets/sfx/ui/backpack_close.ogg b/assets/sfx/ui/backpack_close.ogg new file mode 100644 index 0000000..5ae1505 Binary files /dev/null and b/assets/sfx/ui/backpack_close.ogg differ diff --git a/assets/sfx/ui/backpack_open.ogg b/assets/sfx/ui/backpack_open.ogg new file mode 100644 index 0000000..8f390da Binary files /dev/null and b/assets/sfx/ui/backpack_open.ogg differ diff --git a/assets/sfx/ui/selection.ogg b/assets/sfx/ui/selection.ogg new file mode 100644 index 0000000..a2c6581 Binary files /dev/null and b/assets/sfx/ui/selection.ogg differ diff --git a/src/backpack/backpack_ui.rs b/src/backpack/backpack_ui.rs index 1a4258a..6eacd78 100644 --- a/src/backpack/backpack_ui.rs +++ b/src/backpack/backpack_ui.rs @@ -1,5 +1,5 @@ use super::{BackbackSwapEvent, Backpack, BackpackHead}; -use crate::{GameState, heads_ui::HeadsImages, loading_assets::UIAssets}; +use crate::{GameState, heads_ui::HeadsImages, loading_assets::UIAssets, sounds::PlaySound}; use bevy::prelude::*; static HEAD_SLOTS: usize = 5; @@ -270,6 +270,7 @@ fn swap_head_inputs( let action = *trigger.event(); if action == BackpackAction::OpenClose { state.open = !state.open; + commands.trigger(PlaySound::Backpack { open: state.open }); } if !state.open { @@ -290,6 +291,7 @@ fn swap_head_inputs( } if changed { + commands.trigger(PlaySound::Selection); sync(&backpack, &mut state); } } diff --git a/src/heads_ui.rs b/src/heads_ui.rs index 1dc375e..f737f08 100644 --- a/src/heads_ui.rs +++ b/src/heads_ui.rs @@ -3,6 +3,7 @@ use crate::{ backpack::{BackbackSwapEvent, Backpack, BackpackHead}, loading_assets::UIAssets, player::head_id_to_str, + sounds::PlaySound, }; use bevy::prelude::*; @@ -204,6 +205,7 @@ fn on_select_active_head( } } + commands.trigger(PlaySound::Selection); commands.trigger(HeadChanged(res.heads[res.current_slot].unwrap())); } diff --git a/src/loading_assets.rs b/src/loading_assets.rs index 8eba579..2ce80d2 100644 --- a/src/loading_assets.rs +++ b/src/loading_assets.rs @@ -16,6 +16,14 @@ pub struct AudioAssets { pub gate: Handle, #[asset(path = "sfx/effects/cash.ogg")] pub cash: Handle, + #[asset(path = "sfx/ui/selection.ogg")] + pub selection: Handle, + + #[asset(path = "sfx/ui/backpack_open.ogg")] + pub backpack_open: Handle, + #[asset(path = "sfx/ui/backpack_close.ogg")] + pub backpack_close: Handle, + #[asset(path = "sfx/hit", collection(typed))] pub hit: Vec>, #[asset(path = "sfx/heads", collection(mapped, typed))] diff --git a/src/main.rs b/src/main.rs index 40fd0cd..20af4b7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -133,7 +133,7 @@ fn music(assets: Res, mut commands: Commands) { AudioPlayer::new(assets.music.clone()), PlaybackSettings { mode: PlaybackMode::Loop, - volume: Volume::new(0.6), + volume: Volume::new(0.4), ..default() }, )); @@ -142,7 +142,7 @@ fn music(assets: Res, mut commands: Commands) { AudioPlayer::new(assets.ambient.clone()), PlaybackSettings { mode: PlaybackMode::Loop, - volume: Volume::new(1.), + volume: Volume::new(0.8), ..default() }, )); diff --git a/src/sounds.rs b/src/sounds.rs index d33278b..34f69c0 100644 --- a/src/sounds.rs +++ b/src/sounds.rs @@ -8,6 +8,8 @@ pub enum PlaySound { Gun, Gate, CashCollect, + Selection, + Backpack { open: bool }, Head(String), } @@ -37,6 +39,14 @@ fn spawn_sounds( PlaySound::Gun => assets.gun.clone(), PlaySound::Gate => assets.gate.clone(), PlaySound::CashCollect => assets.cash.clone(), + PlaySound::Selection => assets.selection.clone(), + PlaySound::Backpack { open } => { + if *open { + assets.backpack_open.clone() + } else { + assets.backpack_close.clone() + } + } PlaySound::Head(name) => { let filename = format!("{}.ogg", name); assets