From 1b2a8b8dc5bf09599fcfe31277b4cf889b287442 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Tue, 24 Apr 2012 21:47:17 +0400 Subject: [PATCH 1/2] Unanchored stools and chairs Players can still anchor/unanchor stools, chairs and beds with screwdrivers --- code/defines/obj.dm | 3 ++- code/game/objects/stool.dm | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/code/defines/obj.dm b/code/defines/obj.dm index fd4dc7d4d98..4ddce4f2cdd 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -759,7 +759,6 @@ desc = "Apply butt." icon = 'objects.dmi' icon_state = "stool" - anchored = 1.0 flags = FPRINT pressure_resistance = 3*ONE_ATMOSPHERE @@ -768,6 +767,7 @@ desc = "This is used to lie in, sleep in or strap on." icon_state = "bed" var/mob/living/buckled_mob + anchored = 1.0 /obj/structure/stool/bed/alien name = "Resting contraption" @@ -779,6 +779,7 @@ name = "chair" desc = "You sit in this. Either by will or force." icon_state = "chair" + anchored = 0 /obj/structure/stool/bed/chair/comfy name = "comfy chair" diff --git a/code/game/objects/stool.dm b/code/game/objects/stool.dm index 3fb7bf794d3..6e9fea0f798 100644 --- a/code/game/objects/stool.dm +++ b/code/game/objects/stool.dm @@ -19,6 +19,13 @@ del(src) /obj/structure/stool/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/screwdriver)) + if (src.anchored) + src.anchored = 0 + user << "/blue You unfasten [src] from the floor." + else + src.anchored = 1 + user << "/blue You fasten [src] to the floor." if(istype(W, /obj/item/weapon/wrench)) playsound(src.loc, 'Ratchet.ogg', 50, 1) new /obj/item/stack/sheet/metal(src.loc) From 337002634d0782a5773c688cb817e10ff5e2aafd Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 25 Apr 2012 00:56:39 +0400 Subject: [PATCH 2/2] Fixed a couple of derps in my previous commit Also support for moving chairs with people buckled in them. Beds too. Though beds start anchored by default. --- code/game/objects/stool.dm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/code/game/objects/stool.dm b/code/game/objects/stool.dm index 6e9fea0f798..1fffa4c72c0 100644 --- a/code/game/objects/stool.dm +++ b/code/game/objects/stool.dm @@ -22,10 +22,10 @@ if(istype(W, /obj/item/weapon/screwdriver)) if (src.anchored) src.anchored = 0 - user << "/blue You unfasten [src] from the floor." + user << "\blue You unfasten [src] from the floor." else src.anchored = 1 - user << "/blue You fasten [src] to the floor." + user << "\blue You fasten [src] to the floor." if(istype(W, /obj/item/weapon/wrench)) playsound(src.loc, 'Ratchet.ogg', 50, 1) new /obj/item/stack/sheet/metal(src.loc) @@ -118,7 +118,6 @@ return /obj/structure/stool/bed/chair/New() - src.verbs -= /atom/movable/verb/pull if(src.dir == NORTH) src.layer = FLY_LAYER ..() @@ -152,11 +151,20 @@ icon_state = "down" anchored = 0 -/obj/structure/stool/bed/roller/Move() +//obj/structure/stool/bed/roller/Move() +/obj/structure/stool/bed/Move() ..() if(buckled_mob) if(buckled_mob.buckled == src) buckled_mob.loc = src.loc + buckled_mob.dir = src.dir + +/obj/structure/stool/bed/chair/Move() + ..() + if(src.dir == NORTH) + src.layer = FLY_LAYER + else + src.layer = OBJ_LAYER /obj/structure/stool/bed/roller/buckle_mob(mob/M as mob, mob/user as mob) if ((!( istype(M, /mob) ) || get_dist(src, user) > 1 || M.loc != src.loc || user.restrained() || usr.stat || M.buckled || istype(usr, /mob/living/silicon/pai)))