diff --git a/assets/sfx/effects/head_collect.ogg b/assets/sfx/effects/head_collect.ogg new file mode 100644 index 0000000..e7ec2f5 Binary files /dev/null and b/assets/sfx/effects/head_collect.ogg differ diff --git a/assets/sfx/effects/head_drop.ogg b/assets/sfx/effects/head_drop.ogg new file mode 100644 index 0000000..5c0fbec Binary files /dev/null and b/assets/sfx/effects/head_drop.ogg differ diff --git a/src/head_drop.rs b/src/head_drop.rs index ec5da1e..8cdc904 100644 --- a/src/head_drop.rs +++ b/src/head_drop.rs @@ -1,6 +1,6 @@ use crate::{ GameState, billboards::Billboard, global_observer, loading_assets::GameAssets, player::Player, - squish_animation::SquishAnimation, + sounds::PlaySound, squish_animation::SquishAnimation, }; use avian3d::prelude::*; use bevy::prelude::*; @@ -28,6 +28,8 @@ fn on_head_drop(trigger: Trigger, mut commands: Commands, assets: Res let angle = rand::random::() * PI * 2.; let spawn_dir = Quat::from_rotation_y(angle) * Vec3::new(0.5, 0.6, 0.).normalize(); + commands.trigger(PlaySound::HeadDrop); + commands .spawn(( Name::new("headdrop"), @@ -64,7 +66,7 @@ fn collect_head( let key = query_collectable.get(collectable).unwrap(); - // commands.trigger(PlaySound::KeyCollect); + commands.trigger(PlaySound::HeadCollect); commands.trigger(HeadCollected(key.0)); commands.entity(collectable).despawn_recursive(); } diff --git a/src/loading_assets.rs b/src/loading_assets.rs index 2469f08..3c7b346 100644 --- a/src/loading_assets.rs +++ b/src/loading_assets.rs @@ -43,6 +43,11 @@ pub struct AudioAssets { #[asset(path = "sfx/ui/backpack_close.ogg")] pub backpack_close: Handle, + #[asset(path = "sfx/effects/head_collect.ogg")] + pub head_collect: Handle, + #[asset(path = "sfx/effects/head_drop.ogg")] + pub head_drop: Handle, + #[asset(path = "sfx/hit", collection(typed))] pub hit: Vec>, #[asset(path = "sfx/heads", collection(mapped, typed))] diff --git a/src/sounds.rs b/src/sounds.rs index 31e85b8..e071d3c 100644 --- a/src/sounds.rs +++ b/src/sounds.rs @@ -10,6 +10,8 @@ pub enum PlaySound { ThrowHit, Gate, CashCollect, + HeadCollect, + HeadDrop, Selection, Invalid, Reloaded, @@ -52,6 +54,8 @@ fn on_spawn_sounds( PlaySound::Reloaded => assets.reloaded.clone(), PlaySound::Invalid => assets.invalid.clone(), PlaySound::CashHeal => assets.cash_heal.clone(), + PlaySound::HeadDrop => assets.head_drop.clone(), + PlaySound::HeadCollect => assets.head_collect.clone(), PlaySound::Backpack { open } => { if *open { assets.backpack_open.clone()