From db3c2d3771647e482a802fa1a8debfd38503fe71 Mon Sep 17 00:00:00 2001 From: "baloh.matevz" Date: Sat, 19 May 2012 00:01:04 +0000 Subject: [PATCH] - Office chairs are now unanchored and can be pulled around, even when there is someone on them, making them the perfect prisoner transport vehicle~ - The extinguisher will now tell you when it's empty - Office chairs and extinguishers.... OH HOW COULD I RESIST. Yes, you can have extinguisher derby races with office chairs :) (Shame there are currently no office chairs on the map) git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3615 316c924e-a436-60f5-8080-3fe189b3f50e --- code/defines/obj.dm | 9 +++++++++ code/game/objects/items.dm | 23 +++++++++++++++++++++++ code/game/objects/stool.dm | 3 ++- 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/code/defines/obj.dm b/code/defines/obj.dm index 9c794362bb7..45c15396663 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -632,12 +632,21 @@ /obj/structure/stool/bed/chair/comfy/teal icon_state = "comfychair_teal" +/obj/structure/stool/bed/chair/office + anchored = 0 + /obj/structure/stool/bed/chair/comfy/black icon_state = "comfychair_black" /obj/structure/stool/bed/chair/comfy/lime icon_state = "comfychair_lime" +/obj/structure/stool/bed/chair/office/Move() + ..() + if(buckled_mob) + if(buckled_mob.buckled == src) + buckled_mob.loc = src.loc + buckled_mob.dir = src.dir /obj/structure/stool/bed/chair/office/light icon_state = "officechair_white" diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index a3fdef7a6b3..cb70d2b3726 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -116,6 +116,7 @@ if (!safety) if (src.reagents.total_volume < 1) + usr << "\red the [src] is empty." return if (world.time < src.last_use + 20) @@ -127,6 +128,28 @@ var/direction = get_dir(src,target) + if(usr.buckled && isobj(usr.buckled) && !usr.buckled.anchored ) + spawn(0) + var/obj/B = usr.buckled + var/movementdirection = turn(direction,180) + B.Move(get_step(usr,movementdirection), movementdirection) + sleep(1) + B.Move(get_step(usr,movementdirection), movementdirection) + sleep(1) + B.Move(get_step(usr,movementdirection), movementdirection) + sleep(1) + B.Move(get_step(usr,movementdirection), movementdirection) + sleep(2) + B.Move(get_step(usr,movementdirection), movementdirection) + sleep(2) + B.Move(get_step(usr,movementdirection), movementdirection) + sleep(3) + B.Move(get_step(usr,movementdirection), movementdirection) + sleep(3) + B.Move(get_step(usr,movementdirection), movementdirection) + sleep(3) + B.Move(get_step(usr,movementdirection), movementdirection) + var/turf/T = get_turf(target) var/turf/T1 = get_step(T,turn(direction, 90)) var/turf/T2 = get_step(T,turn(direction, -90)) diff --git a/code/game/objects/stool.dm b/code/game/objects/stool.dm index 7e628afa744..a0bf5a422b0 100644 --- a/code/game/objects/stool.dm +++ b/code/game/objects/stool.dm @@ -111,7 +111,8 @@ return /obj/structure/stool/bed/chair/New() - src.verbs -= /atom/movable/verb/pull + if(anchored) + src.verbs -= /atom/movable/verb/pull if(src.dir == NORTH) src.layer = FLY_LAYER ..()