diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index 98e4f963a96..cc938095e20 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -40,6 +40,8 @@ ..() if(!isliving(usr)) return + if(usr.is_incorporeal()) + return if(attached) visible_message("[attached] is detached from \the [src]") @@ -77,8 +79,8 @@ beaker = null qdel(src) return - else - return ..() + + . = ..() /obj/machinery/iv_drip/process() @@ -141,6 +143,9 @@ update_icon() /obj/machinery/iv_drip/attack_hand(mob/user as mob) + if(user.is_incorporeal()) + return + if(beaker) beaker.loc = get_turf(src) beaker = null @@ -160,6 +165,8 @@ if(usr.stat) return + if(usr.is_incorporeal()) + return mode = !mode to_chat(usr, "The IV drip is now [mode ? "injecting" : "taking blood"].") diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index 316fed3172a..9a1515bb2c4 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -232,6 +232,8 @@ ..() /obj/structure/bed/chair/wheelchair/MouseDrop(over_object, src_location, over_location) + if(usr.is_incorporeal()) + return ..() if((over_object == usr && (in_range(src, usr) || usr.contents.Find(src)))) if(!ishuman(usr)) return diff --git a/code/modules/recycling/disposal_machines.dm b/code/modules/recycling/disposal_machines.dm index aa682774af4..468ffde8c92 100644 --- a/code/modules/recycling/disposal_machines.dm +++ b/code/modules/recycling/disposal_machines.dm @@ -269,6 +269,8 @@ // mouse drop another mob or self // /obj/machinery/disposal/MouseDrop_T(atom/dropping, mob/user, src_location, over_location, src_control, over_control, params) + if(user.is_incorporeal()) + return if(isliving(dropping)) stuff_mob_in(dropping, user) else if(isobj(dropping) && isturf(dropping.loc)) @@ -334,6 +336,8 @@ /obj/machinery/disposal/attack_hand(mob/user) if(stat & BROKEN) return + if(user.is_incorporeal()) + return if(user && user.loc == src) to_chat(user, span_red("You cannot reach the controls from inside.")) @@ -352,6 +356,8 @@ if(user.canUseTopic) //Later... return */ + if(user.is_incorporeal()) + return if(get_dist(user, src) > 1 || user.loc == src || user.stat) //Until the above exists... return flush = !flush @@ -420,6 +426,8 @@ set src in oview(1) set category = "Object" set name = "Force Eject" + if(usr.is_incorporeal()) + return if(flushing) return eject()