From 0504256a1c0f97ca3f44f9df239590dba874e8f0 Mon Sep 17 00:00:00 2001 From: panurgomatic Date: Sun, 24 Apr 2011 02:00:35 +0000 Subject: [PATCH] - Turrets should now disable properly - Mobs can climb out from mechs (think chestbuster chestbusting or similar). - Cleaned up alien weed code. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1495 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/machinery/turrets.dm | 2 +- code/game/mecha/combat/marauder.dm | 4 +++ code/game/mecha/mecha.dm | 6 ++++- code/game/objects/alien/weeds.dm | 43 +++++++++++++----------------- 4 files changed, 28 insertions(+), 27 deletions(-) diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm index 5ce1c9d8c95..7668294788a 100644 --- a/code/game/machinery/turrets.dm +++ b/code/game/machinery/turrets.dm @@ -177,7 +177,7 @@ /obj/machinery/turret/proc/target() - while(src && check_target(cur_target)) + while(src && enabled && !stat && check_target(cur_target)) src.dir = get_dir(src, cur_target) shootAt(cur_target) sleep(shot_delay) diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm index a1350270bc8..1c4698f6b90 100644 --- a/code/game/mecha/combat/marauder.dm +++ b/code/game/mecha/combat/marauder.dm @@ -31,6 +31,10 @@ return /obj/mecha/combat/marauder/relaymove(mob/user,direction) + if(user != src.occupant) //While not "realistic", this piece is player friendly. + user.loc = get_turf(src) + user << "You climb out from [src]" + return 0 if(!can_move) return 0 if(zoom) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index cbf745d9c2c..acbf441d826 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -172,7 +172,11 @@ ////////////////////////////////// /obj/mecha/relaymove(mob/user,direction) - if(!can_move || user != src.occupant) + if(user != src.occupant) //While not "realistic", this piece is player friendly. + user.loc = get_turf(src) + user << "You climb out from [src]" + return 0 + if(!can_move) return 0 if(connected_port) if(world.time - last_message > 20) diff --git a/code/game/objects/alien/weeds.dm b/code/game/objects/alien/weeds.dm index 5af42ce0ae2..2c40a181831 100644 --- a/code/game/objects/alien/weeds.dm +++ b/code/game/objects/alien/weeds.dm @@ -1,10 +1,16 @@ /obj/alien/weeds/New() + ..() if(istype(src.loc, /turf/space)) del(src) return + src.icon_state = pick("weeds", "weeds1", "weeds2") + spawn(rand(150,300)) + if(src) + src.Life() + return /obj/alien/weeds/proc/Life() - var/turf/U = src.loc + var/turf/U = get_turf(src) /* if (locate(/obj/movable, U)) U = locate(/obj/movable, U) @@ -22,35 +28,22 @@ Alien plants should do something if theres a lot of poison del(src) return - for(var/dirn in cardinal) - var/turf/T = get_step(src, dirn) + direction_loop: + for(var/dirn in cardinal) + var/turf/T = get_step(src, dirn) - if (istype(T.loc, /area/arrival)) - continue + if (!istype(T) || T.density || locate(/obj/alien/weeds) in T || istype(T.loc, /area/arrival) || istype(T, /turf/space)) + continue -// if (locate(/obj/movable, T)) // don't propogate into movables -// continue + // if (locate(/obj/movable, T)) // don't propogate into movables + // continue - var/cont = 0 - for(var/obj/O in T) - if(O.density) - cont = 1 - break + for(var/obj/O in T) + if(O.density) + continue direction_loop - if(cont) - continue + new /obj/alien/weeds(T) - var/obj/alien/weeds/B = new /obj/alien/weeds(U) - B.icon_state = pick("weeds", "weeds1", "weeds2") - - if(T.Enter(B,src) && !(locate(/obj/alien/weeds) in T)) - B.loc = T - spawn(200) - if(B) - B.Life() - // open cell, so expand - else - del(B) /obj/alien/weeds/ex_act(severity) switch(severity)