Maintainer-requested updates

Makes breathing sounds now play anytime the sound pressure is below a certain point AND you have internals on AND can breathe, rather than specifically on a space turf.

Makes it respect the ambience pref.
This commit is contained in:
Rykka
2022-03-24 15:32:43 -06:00
parent 41f616ffde
commit 4cfd38edf7
+5 -4
View File
@@ -566,9 +566,10 @@
if(!does_not_breathe && client) // If we breathe, and have an active client, check if we have synthetic lungs.
var/obj/item/organ/internal/lungs/L = internal_organs_by_name[O_LUNGS]
if(L.robotic < ORGAN_ROBOT && (istype(get_turf(src), /turf/space))) // Only non-synthetic lungs, please, and only play these while we're in space.
var/turf = get_turf(src)
var/mob/living/carbon/human/M = src
if(L.robotic < ORGAN_ROBOT && is_below_sound_pressure(turf) && M.internal) // Only non-synthetic lungs, please, and only play these while the pressure is below that which we can hear sounds normally AND we're on internals.
if(!failed_inhale && (world.time >= (last_breath_sound + 7 SECONDS))) // Were we able to inhale successfully? Play inhale.
var/mob/living/carbon/human/M = src
var/exhale = failed_exhale // Pass through if we passed exhale or not
play_inhale(M, exhale)
last_breath_sound = world.time
@@ -646,7 +647,7 @@
else // Failsafe
suit_inhale_sound = 'sound/effects/mob_effects/suit_breathe_in.ogg'
M << sound(suit_inhale_sound,0,0,0,100)
playsound_local(get_turf(src), suit_inhale_sound, 100, pressure_affected = FALSE, volume_channel = VOLUME_CHANNEL_AMBIENCE)
if(!exhale) // Did we fail exhale? If no, play it after inhale finishes.
addtimer(CALLBACK(src, .proc/play_exhale, M), 5 SECONDS)
@@ -657,7 +658,7 @@
else // Failsafe
suit_exhale_sound = 'sound/effects/mob_effects/suit_breathe_out.ogg'
M << sound(suit_exhale_sound,0,0,0,100)
playsound_local(get_turf(src), suit_exhale_sound, 100, pressure_affected = FALSE, volume_channel = VOLUME_CHANNEL_AMBIENCE)
/mob/living/carbon/human/handle_environment(datum/gas_mixture/environment)
if(!environment)