From 0cabcdd6733a9e447a9fef6ec2c4111b075e5fec Mon Sep 17 00:00:00 2001 From: Nerd Lord Date: Sun, 3 Apr 2016 20:34:18 -0400 Subject: [PATCH] Zombies can no longer remove more than one airlock at once --- .../living/simple_animal/hostile/zombie.dm | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/zombie.dm b/code/modules/mob/living/simple_animal/hostile/zombie.dm index 89ac80ec193..8585a75c303 100644 --- a/code/modules/mob/living/simple_animal/hostile/zombie.dm +++ b/code/modules/mob/living/simple_animal/hostile/zombie.dm @@ -31,12 +31,13 @@ see_invisible = SEE_INVISIBLE_MINIMUM see_in_dark = 8 layer = MOB_LAYER - 0.1 + var/removingairlock = 0 /mob/living/simple_animal/hostile/zombie/AttackingTarget() ..() - if(istype(target, /mob/living)) + if(isliving(target)) var/mob/living/L = target if(ishuman(L) && L.stat) var/mob/living/carbon/human/H = L @@ -51,19 +52,24 @@ visible_message("[src] tears [L] to pieces!") src << "You feast on [L], restoring your health!" revive(full_heal = 1) - + if(istype(target, /obj/machinery/door/airlock)) - src << "You start tearing apart the airlock..." - playsound(src.loc, 'sound/hallucinations/growl3.ogg', 50, 1) - if(do_after(src, 250, target)) - playsound(src.loc, 'sound/hallucinations/far_noise.ogg', 50, 1) - qdel(target) + if(!removingairlock) + src << "You start tearing apart the airlock..." + playsound(src.loc, 'sound/hallucinations/growl3.ogg', 50, 1) var/obj/machinery/door/airlock/A = target - var/obj/structure/door_assembly/door = new A.doortype(target.loc) - door.density = 0 - door.anchored = 1 - door.name = "ravaged airlock" - door.desc = "An airlock that has been torn apart. Looks like it wont be keeping much out now." + removingairlock = 1 + if(do_after(src, 250, 0, A, 1)) + playsound(src.loc, 'sound/hallucinations/far_noise.ogg', 50, 1) + var/obj/structure/door_assembly/door = new A.doortype(get_turf(A)) + door.density = 0 + door.anchored = 1 + door.name = "ravaged airlock" + door.desc = "An airlock that has been torn apart. Looks like it won't be keeping much out now." + qdel(A) + removingairlock = 0 + else + src << "You are already tearing an airlock apart!" /mob/living/simple_animal/hostile/zombie/death() ..()