diff --git a/LICENSE.md b/LICENSE.md index 57f0005..2ed5ecd 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -35,6 +35,10 @@ - gasp.ogg: Gasping for air - gasprelief.ogg: Heavy breathing - growl.ogg: Growled into a Xaphoon (2024-09-13@18:21), lowered by an octave, added reverb + - refill.ogg: This consists of 3 overlaid parts: + - Starting clang: Hit a fire extinguisher with a chunk of metal + - Main hiss: Sprayed a can of WD-40, applied high pass filter (1khz, 36db roll-off per octave), fade out + - Finishing hiss: Opened a beer bottle - thruster.ogg: Sprayed a can of WD-40, applied low pass filter (2khz, 6db roll-off per octave) - wakeup.ogg: Heavy breathing - woosh.ogg: Blew into the mic, pitch lowered by 24 semitones diff --git a/assets/sounds/refill.ogg b/assets/sounds/refill.ogg new file mode 100644 index 0000000..b92db71 Binary files /dev/null and b/assets/sounds/refill.ogg differ diff --git a/src/audio.rs b/src/audio.rs index 1fa0932..d220084 100644 --- a/src/audio.rs +++ b/src/audio.rs @@ -78,6 +78,7 @@ const PATHS: &[(SfxType, Sfx, &str)] = &[ ), (SfxType::OneOff, Sfx::Ping, "sounds/connect.ogg"), (SfxType::OneOff, Sfx::Switch, "sounds/click2.ogg"), + (SfxType::OneOff, Sfx::Refill, "sounds/refill.ogg"), (SfxType::OneOff, Sfx::WakeUp, "sounds/wakeup.ogg"), (SfxType::OneOff, Sfx::Woosh, "sounds/woosh.ogg"), (SfxType::OneOff, Sfx::Zoom, "sounds/zoom.ogg"), @@ -98,6 +99,7 @@ pub enum Sfx { IncomingChatMessage, Ion, Ping, + Refill, Switch, Thruster, WakeUp, @@ -115,6 +117,7 @@ pub fn str2sfx(sfx_label: &str) -> Sfx { "chat" => Sfx::IncomingChatMessage, "ping" => Sfx::Ping, "connect" => Sfx::Connect, + "refill" => Sfx::Refill, "entervehicle" => Sfx::EnterVehicle, "crash" => Sfx::Ping, _ => Sfx::Click, diff --git a/src/chat.rs b/src/chat.rs index d9a3fef..7685091 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -861,6 +861,7 @@ pub fn handle_chat_scripts( "refilloxygen" => { if let Ok(mut amount) = param1.to_string().parse::() { for (_, mut suit, _) in q_player.iter_mut() { + ew_sfx.send(audio::PlaySfxEvent(audio::Sfx::Refill)); if param2.is_empty() { suit.oxygen = (suit.oxygen + amount).clamp(0.0, suit.oxygen_max); } else {