diff --git a/code/game/objects/structures/manned_turret.dm b/code/game/objects/structures/manned_turret.dm index 2deb2d2fde..70176ede53 100644 --- a/code/game/objects/structures/manned_turret.dm +++ b/code/game/objects/structures/manned_turret.dm @@ -68,14 +68,15 @@ START_PROCESSING(SSfastprocess, src) /obj/machinery/manned_turret/process() - if(!LAZYLEN(buckled_mobs)) + if (!update_positioning()) return PROCESS_KILL - update_positioning() /obj/machinery/manned_turret/proc/update_positioning() + if (!LAZYLEN(buckled_mobs)) + return FALSE var/mob/living/controller = buckled_mobs[1] if(!istype(controller)) - return + return FALSE var/client/C = controller.client if(C) var/atom/A = C.mouseObject @@ -143,7 +144,7 @@ addtimer(CALLBACK(src, /obj/machinery/manned_turret/.proc/fire_helper, user), i*rate_of_fire) /obj/machinery/manned_turret/proc/fire_helper(mob/user) - if(user.incapacitated()) + if(user.incapacitated() || !(user in buckled_mobs)) return update_positioning() //REFRESH MOUSE TRACKING!! var/turf/targets_from = get_turf(src) diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 3d87de4e62..d17071eeb3 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -278,7 +278,7 @@ //dist_check - set to only shock mobs within 1 of source (vendors, airlocks, etc.) //No animations will be performed by this proc. /proc/electrocute_mob(mob/living/carbon/M, power_source, obj/source, siemens_coeff = 1, dist_check = FALSE) - if(ismecha(M.loc)) + if(!M || ismecha(M.loc)) return 0 //feckin mechs are dumb if(dist_check) if(!in_range(source,M))