From f2f3c6bebf7d71efc0a0fdf887d7977ebddeee86 Mon Sep 17 00:00:00 2001 From: "petethegoat@gmail.com" Date: Sun, 27 May 2012 16:31:08 +0000 Subject: [PATCH] Updated toilets, urinals, and showers with NEW features. The shower path has changed! From /obj/structure/shower to /obj/machinery/shower Made bookcases appear empty if they have no books, and fill up as more books are placed in them. Updated do_after() to have an extra var that determines if the user is required to keep the item in the active hand. This is only used in swirlies at the moment. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3684 316c924e-a436-60f5-8080-3fe189b3f50e --- code/defines/procs/helpers.dm | 9 ++- code/game/magic/library.dm | 105 +++++++++++++++-------------- code/game/objects/watercloset.dm | 110 ++++++++++++++++++++++++++----- icons/obj/library.dmi | Bin 19269 -> 17569 bytes maps/tgstation.2.0.9.dmm | 8 +-- 5 files changed, 159 insertions(+), 73 deletions(-) diff --git a/code/defines/procs/helpers.dm b/code/defines/procs/helpers.dm index 92444251a3d..73cbd5aa6db 100644 --- a/code/defines/procs/helpers.dm +++ b/code/defines/procs/helpers.dm @@ -1301,8 +1301,8 @@ proc/listclearnulls(list/list) return 1 */ -/proc/do_after(var/mob/user as mob, delay as num, var/numticks = 5) // Replacing the upper one with this one because Byond keeps feeling that the upper one is an infinate loop - if(!user || isnull(user)) // This one should have less temptation +/proc/do_after(var/mob/user as mob, delay as num, var/numticks = 5, var/needhand = 1) // Replacing the upper one with this one because Byond keeps feeling that the upper one is an infinate loop + if(!user || isnull(user)) // This one should have less temptation return 0 if(numticks == 0) return 0 @@ -1313,7 +1313,10 @@ proc/listclearnulls(list/list) for(var/i = 0, iYour sanity barely endures the seconds spent in the vault's browsing window. The only thing to remind you of this when you stop browsing is a dusty old tome sitting on the desk. You don't really remember printing it." - for (var/mob/V in hearers(src)) - V.show_message("[usr] stares at the blank screen for a few moments, his expression frozen in fear. When he finally awakens from it, he looks a lot older.", 2) + user << "Your sanity barely endures the seconds spent in the vault's browsing window. The only thing to remind you of this when you stop browsing is a dusty old tome sitting on the desk. You don't really remember printing it." + user.visible_message("[user] stares at the blank screen for a few moments, his expression frozen in fear. When he finally awakens from it, he looks a lot older.", 2) src.arcanecheckout = 0 if(1) // Inventory diff --git a/code/game/objects/watercloset.dm b/code/game/objects/watercloset.dm index 4a8b7e33220..011acc91e74 100644 --- a/code/game/objects/watercloset.dm +++ b/code/game/objects/watercloset.dm @@ -1,4 +1,4 @@ -//todo: flushing, flushing heads, showers actually cleaning people +//todo: toothbrushes, and some sort of "toilet-filthinator" for the hos /obj/structure/toilet name = "toilet" @@ -8,18 +8,43 @@ density = 0 anchored = 1 var/open = 0 + var/mob/swirlie = null /obj/structure/toilet/New() open = round(rand(0, 1)) update_icon() /obj/structure/toilet/attack_hand() - open = !open - update_icon() + if(!swirlie) + open = !open + update_icon() + else + usr.visible_message("[usr] slams the toilet seat onto [swirlie.name]'s head!", "You slam the toilet seat onto [swirlie.name]'s head!", "You hear reverberating porcelain.") + swirlie.adjustBruteLoss(8) /obj/structure/toilet/update_icon() icon_state = "toilet[open]" +/obj/structure/toilet/attackby(var/obj/item/I, var/mob/user) + if(istype(I, /obj/item/weapon/grab)) + var/obj/item/weapon/grab/G = I + var/mob/GM = G.affecting + if(ismob(G.affecting)) + if(G.state>1 && GM.loc == get_turf(src)) + if(open && !swirlie) + user.visible_message("[user] starts to give [GM.name] a swirlie!", "You start to give [GM.name] a swirlie!") + swirlie = GM + if(do_after(user, 30, 5, 0)) + user.visible_message("[user] gives [GM.name] a swirlie!", "You give [GM.name] a swirlie!", "You hear a toilet flushing.") + if(!GM.internal) + GM.adjustOxyLoss(5) + swirlie = null + else + user.visible_message("[user] slams [GM.name] into the [src]!", "You slam [GM.name] into the [src]!") + GM.adjustBruteLoss(8) + else + user << "You need a tighter grip." + /obj/structure/urinal @@ -30,9 +55,20 @@ density = 0 anchored = 1 +/obj/structure/urinal/attackby(var/obj/item/I, var/mob/user) + if(istype(I, /obj/item/weapon/grab)) + var/obj/item/weapon/grab/G = I + var/mob/GM = G.affecting + if(ismob(G.affecting)) + if(G.state>1 && GM.loc == get_turf(src)) + user.visible_message("[user] slams [GM.name] into the [src]!", "You slam [GM.name] into the [src]!") + GM.adjustBruteLoss(8) + else + user << "You need a tighter grip." -/obj/structure/shower + +/obj/machinery/shower name = "shower" desc = "The HS-451. Installed in the 2550s by the Nanotrasen Hygiene Division." icon = 'watercloset.dmi' @@ -41,7 +77,9 @@ anchored = 1 var/on = 0 var/obj/effect/mist/mymist = null - var/ismist = 0 //needs a var so we can make it linger~ + var/ismist = 0 //needs a var so we can make it linger~ + var/watertemp = "normal" //freezing, normal, or boiling + var/mobpresent = 0 //true if there is a mob on the shower's loc, this is to ease process() //add heat controls? when emagged, you can freeze to death in it? @@ -52,22 +90,37 @@ layer = MOB_LAYER + 1 mouse_opacity = 0 -/obj/structure/shower/attack_hand(mob/M as mob) +/obj/machinery/shower/attack_hand(mob/M as mob) on = !on update_icon() if(on && M.loc == loc) wash(M) + check_heat(M) -/obj/structure/shower/attackby(mob/M as mob) - attack_hand(M) +/obj/machinery/shower/attackby(var/obj/item/I, var/mob/user) + if(I.type == /obj/item/device/analyzer) + user << "The water temperature seems to be [watertemp]." + if(istype(I, /obj/item/weapon/wrench)) + user << "You begin to adjust the temperature valve with the [I]." + if(do_after(user, 50)) + switch(watertemp) + if("normal") + watertemp = "freezing" + if("freezing") + watertemp = "boiling" + if("boiling") + watertemp = "normal" + user.visible_message("[user] adjusts the shower with the [I].", "You adjust the shower with the [I].") -/obj/structure/shower/update_icon() - overlays = null +/obj/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up + overlays = null //once it's been on for a while, in addition to handling the water overlay. if(mymist) del(mymist) if(on) overlays += image('watercloset.dmi', src, "water", MOB_LAYER + 1, dir) + if(watertemp == "freezing") + return if(!ismist) spawn(50) if(src && on) @@ -84,13 +137,20 @@ del(mymist) ismist = 0 -/obj/structure/shower/HasEntered(atom/movable/O as obj|mob) +/obj/machinery/shower/HasEntered(atom/movable/O) ..() wash(O) + if(ismob(O)) + mobpresent += 1 + check_heat(O) + +/obj/machinery/shower/Uncrossed(atom/movable/O) + if(ismob(O)) + mobpresent -= 1 + ..() //Yes, showers are super powerful as far as washing goes. -/obj/structure/shower/proc/wash(atom/movable/O as obj|mob) - ..() +/obj/machinery/shower/proc/wash(atom/movable/O as obj|mob) if(!on) return O.clean_blood() @@ -108,10 +168,10 @@ var/mob/living/carbon/human/washer = O if(washer.head) washer.head.clean_blood() - if(washer.w_uniform) - washer.w_uniform.clean_blood() if(washer.wear_suit) washer.wear_suit.clean_blood() + else if(washer.w_uniform) + washer.w_uniform.clean_blood() if(washer.shoes) washer.shoes.clean_blood() if(washer.gloves) @@ -129,6 +189,26 @@ for(var/obj/effect/overlay/R in tile) del(R) +/obj/machinery/shower/process() + if(!on || !mobpresent) return + for(var/mob/living/carbon/C in loc) + check_heat(C) + +/obj/machinery/shower/proc/check_heat(mob/M as mob) + if(!on || watertemp == "normal") return + if(iscarbon(M)) + var/mob/living/carbon/C = M + + if(watertemp == "freezing") + C.bodytemperature = min(100, C.bodytemperature - 80) + C << "The water is freezing!" + return + if(watertemp == "boiling") + C.bodytemperature = max(500, C.bodytemperature + 35) + C.adjustFireLoss(10) + C << "The water is searing!" + return + /obj/item/weapon/bikehorn/rubberducky diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index c502c2f5234101017abfae68fa05f1f0986f6014..1fbf68d176a0a6c62bc90ca8e000d8386ff9c9f3 100644 GIT binary patch literal 17569 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 Q9zDX~>FVdQ&MBb@0N~8SjsO4v literal 19269 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 r4S