diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index b6c39f95c5b..694f5efd3e3 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -334,15 +334,16 @@ return canmove /mob/living/silicon/robot/proc/process_level_restrictions() - //If they are on a player level -> abort - if (src.z in current_map.player_levels) + //Abort if they should not get blown + if (lockcharge || scrambledcodes || emagged) + return + //Check if they are on a player level -> abort + var/turf/T = get_turf(src) + if (!T || (T.z in current_map.player_levels)) return //If they are on centcom -> abort if (istype(get_area(src), /area/centcom) || istype(get_area(src), /area/shuttle/escape) || istype(get_area(src), /area/shuttle/arrival)) return - //Make sure they should not get blown - if (lockcharge || scrambledcodes || emagged) - return self_destruct(TRUE) /mob/living/silicon/robot/update_fire()