diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm
index a3b79f41a1..c44563cf95 100644
--- a/code/game/objects/explosion.dm
+++ b/code/game/objects/explosion.dm
@@ -64,15 +64,18 @@
else if(dist <= far_dist)
var/far_volume = Clamp(far_dist, 30, 50) // Volume is based on explosion size and dist
far_volume += (dist <= far_dist * 0.5 ? 50 : 0) // add 50 volume if the mob is pretty close to the explosion
- if(devastation_range > 0)
+ if(devastation_range > 1)
M.playsound_local(epicenter, 'sound/effects/explosionfar.ogg', far_volume, 1, frequency, falloff = 5)
shake_camera(M, 3, 1)
else
M.playsound_local(epicenter, 'sound/effects/explosionsmallfar.ogg', far_volume, 1, frequency, falloff = 5)
skip_shake = 1
- if(!explosion_shake_message_cooldown && devastation_range > 0 && !skip_shake)
- M << "You feel the station's structure shaking all around you."
+ if(!explosion_shake_message_cooldown && devastation_range > 1 && !skip_shake && M.stat == CONSCIOUS && !istype(get_turf(M), /turf/open/space))
+ if(istype(get_turf(M), /turf/open/floor/plasteel/asteroid | /turf/open/floor/plating/ash))
+ M << "You feel the ground shaking below you."
+ else
+ M << "You feel the station's structure shaking all around you."
explosion_shake_message_cooldown = 1
spawn(50)
explosion_shake_message_cooldown = 0