From b5bd0f1f0e80c350c945bd0e4edb297cecf99b2e Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Sat, 5 Dec 2015 02:38:06 -0800 Subject: [PATCH] Pull no longer works bad with medical machines Mousedropping mobs into them now cancels your pull, so you don't, for example, start pulling around your surgery patient on accident, or have a funny pull that you need to use on something else, for sleepers. Walking while inside of a sleeper will also let you exit it easily --- code/game/dna/dna_modifier.dm | 6 +----- code/game/machinery/OpTable.dm | 2 ++ code/game/machinery/Sleeper.dm | 11 ++++++----- code/game/machinery/cryo.dm | 6 +----- 4 files changed, 10 insertions(+), 15 deletions(-) diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index b0dcf14933f..f0afc49aa57 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -174,10 +174,6 @@ if(occupant) user << "\blue The DNA Scanner is already occupied!" return -/* if(isrobot(user)) - if(!istype(user:module, /obj/item/weapon/robot_module/medical)) - user << "You do not have the means to do this!" - return*/ var/mob/living/L = O if(!istype(L) || L.buckled) return @@ -193,7 +189,7 @@ visible_message("[user] puts [L.name] into the DNA Scanner.") put_in(L) if(user.pulling == L) - user.pulling = null + user.stop_pulling() /obj/machinery/dna_scannernew/attackby(var/obj/item/weapon/item as obj, var/mob/user as mob, params) if(istype(item, /obj/item/weapon/screwdriver)) diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 6a0bd412e8f..96849a2905d 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -98,6 +98,8 @@ C.client.eye = src C.resting = 1 C.loc = src.loc + if (user.pulling == C) + user.stop_pulling() for(var/obj/O in src) O.loc = src.loc src.add_fingerprint(user) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 0035170d4dd..bc4b732d047 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -322,6 +322,11 @@ max_chem = E * 20 min_health = -E * 25 +/obj/machinery/sleeper/relaymove(mob/user as mob) + if(user.incapacitated()) + return 0 //maybe they should be able to get out with cuffs, but whatever + go_out() + /obj/machinery/sleeper/process() if(filtering > 0) if(beaker) @@ -566,10 +571,6 @@ if(occupant) user << "The sleeper is already occupied!" return -/* if(isrobot(user)) - if(!istype(user:module, /obj/item/weapon/robot_module/medical)) - user << "You do not have the means to do this!" - return*/ var/mob/living/L = O if(!istype(L) || L.buckled) return @@ -600,7 +601,7 @@ L << "You feel cool air surround you. You go numb as your senses turn inward." src.add_fingerprint(user) if(user.pulling == L) - user.pulling = null + user.stop_pulling() return return diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 8419189dee3..9b4bec6516d 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -97,10 +97,6 @@ if(occupant) user << "\blue The cryo cell is already occupied!" return -/* if(isrobot(user)) - if(!istype(user:module, /obj/item/weapon/robot_module/medical)) - user << "You do not have the means to do this!" - return*/ var/mob/living/L = O if(!istype(L) || L.buckled) return @@ -117,7 +113,7 @@ else visible_message("[user] puts [L.name] into the cryo cell.") if(user.pulling == L) - user.pulling = null + user.stop_pulling() /obj/machinery/atmospherics/unary/cryo_cell/process() ..()