diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 3d9991161e4..8da56cc267d 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -501,11 +501,13 @@ GLOBAL_VAR(station_nuke_source) SSticker.roundend_check_paused = FALSE /obj/machinery/nuclearbomb/proc/really_actually_explode(off_station) + var/turf/bomb_location = get_turf(src) Cinematic(get_cinematic_type(off_station),world,CALLBACK(SSticker,/datum/controller/subsystem/ticker/proc/station_explosion_detonation,src)) - INVOKE_ASYNC(GLOBAL_PROC,.proc/KillEveryoneOnZLevel, z) + if(off_station != NUKE_NEAR_MISS) // Don't kill people in the station if the nuke missed, even if we are technically on the same z-level + INVOKE_ASYNC(GLOBAL_PROC,.proc/KillEveryoneOnZLevel, bomb_location.z) /obj/machinery/nuclearbomb/proc/get_cinematic_type(off_station) - if(off_station < 2) + if(off_station < NUKE_NEAR_MISS) return CINEMATIC_SELFDESTRUCT else return CINEMATIC_SELFDESTRUCT_MISS @@ -595,6 +597,7 @@ GLOBAL_VAR(station_nuke_source) return for(var/_victim in GLOB.mob_living_list) var/mob/living/victim = _victim + to_chat(victim, span_userdanger("You are shredded to atoms!")) if(victim.stat != DEAD && victim.z == z) victim.gib()