diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 0fa6a04cac3..d60cde96cc2 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -361,7 +361,7 @@ /obj/machinery/sleeper/blob_act() if(prob(75)) - var/atom/movable/A = src.loc + var/atom/movable/A = src.occupant go_out() A.blob_act() qdel(src) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 45ee6e0f4c9..24eb10ac92b 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -59,11 +59,14 @@ else dir = 4 playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + return if(exchange_parts(user, G)) return - default_deconstruction_crowbar(G) + if(istype(G, /obj/item/weapon/crowbar)) + default_deconstruction_crowbar(G) + return if(istype(G, /obj/item/weapon/grab)) var/obj/item/weapon/grab/TYPECAST_YOUR_SHIT = G @@ -158,31 +161,23 @@ return /obj/machinery/bodyscanner/ex_act(severity) + var/mob/M = src.occupant switch(severity) if(1.0) - for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc - ex_act(severity) - //Foreach goto(35) - //SN src = null + go_out() + M.ex_act(severity) qdel(src) return if(2.0) if (prob(50)) - for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc - ex_act(severity) - //Foreach goto(108) - //SN src = null + go_out() + M.ex_act(severity) qdel(src) return if(3.0) if (prob(25)) - for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc - ex_act(severity) - //Foreach goto(181) - //SN src = null + go_out() + M.ex_act(severity) qdel(src) return else @@ -190,10 +185,19 @@ /obj/machinery/bodyscanner/blob_act() if(prob(50)) - for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc + var/atom/movable/A = src.occupant + go_out() + A.blob_act() qdel(src) +/obj/machinery/bodyscanner/attack_animal(var/mob/living/simple_animal/M)//Stop putting hostile mobs in things guise + if(M.environment_smash) + M.do_attack_animation(src) + visible_message("[M.name] smashes [src] apart!") + go_out() + qdel(src) + return + /obj/machinery/body_scanconsole var/obj/machinery/bodyscanner/connected var/delete @@ -249,6 +253,13 @@ if(prob(50)) qdel(src) +/obj/machinery/body_scanconsole/attack_animal(var/mob/living/simple_animal/M)//Stop putting hostile mobs in things guise + if(M.environment_smash) + M.do_attack_animation(src) + visible_message("[M.name] smashes [src] apart!") + qdel(src) + return + /obj/machinery/body_scanconsole/proc/findscanner() var/obj/machinery/bodyscanner/bodyscannernew = null // Loop through every direction diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index b1627d17af0..85d7d02ccf8 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -299,7 +299,7 @@ return /mob/living/simple_animal/hostile/proc/FindHidden() - if(istype(target.loc, /obj/structure/closet) || istype(target.loc, /obj/machinery/disposal) || istype(target.loc, /obj/machinery/sleeper)) + if(istype(target.loc, /obj/structure/closet) || istype(target.loc, /obj/machinery/disposal) || istype(target.loc, /obj/machinery/sleeper) || istype(target.loc, /obj/machinery/bodyscanner)) var/atom/A = target.loc Goto(A,move_to_delay,minimum_distance) if(A.Adjacent(src))