From 264504c595f2409182b07e0260b04f13fb7fd1f1 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Thu, 4 Sep 2014 16:36:26 +0200 Subject: [PATCH] Showers now cause wet floors. Mops can now be used to clean shuttles (non-simulated floor). --- code/game/objects/items/weapons/mop.dm | 24 +++++++++++---------- code/game/objects/structures/watercloset.dm | 19 +++++++++++++++- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm index a3e71cd8cdd..d032959d641 100644 --- a/code/game/objects/items/weapons/mop.dm +++ b/code/game/objects/items/weapons/mop.dm @@ -17,21 +17,22 @@ /obj/item/weapon/mop/New() create_reagents(5) - -obj/item/weapon/mop/proc/clean(turf/simulated/A) - if(reagents.has_reagent("water", 1)) - A.clean_blood() - A.dirt = 0 - for(var/obj/effect/O in A) +/turf/proc/clean(atom/source) + if(source.reagents.has_reagent("water", 1)) + clean_blood() + if(istype(src, /turf/simulated)) + var/turf/simulated/T = src + T.dirt = 0 + for(var/obj/effect/O in src) if(istype(O,/obj/effect/rune) || istype(O,/obj/effect/decal/cleanable) || istype(O,/obj/effect/overlay)) del(O) - reagents.reaction(A, TOUCH, 10) //10 is the multiplier for the reaction effect. probably needed to wet the floor properly. - reagents.remove_any(1) //reaction() doesn't use up the reagents + source.reagents.reaction(src, TOUCH, 10) //10 is the multiplier for the reaction effect. probably needed to wet the floor properly. + source.reagents.remove_any(1) //reaction() doesn't use up the reagents /obj/item/weapon/mop/afterattack(atom/A, mob/user, proximity) if(!proximity) return - if(istype(A, /turf/simulated) || istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/overlay) || istype(A, /obj/effect/rune)) + if(istype(A, /turf) || istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/overlay) || istype(A, /obj/effect/rune)) if(reagents.total_volume < 1) user << "Your mop is dry!" return @@ -39,8 +40,9 @@ obj/item/weapon/mop/proc/clean(turf/simulated/A) user.visible_message("[user] begins to clean \the [get_turf(A)].") if(do_after(user, 40)) - if(A) - clean(get_turf(A)) + var/turf/T = A + if(T) + T.clean(src) user << "You have finished mopping!" diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 5d6caee5e21..64317a1ac08 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -128,6 +128,11 @@ 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() + var/is_washing = 0 + +/obj/machinery/shower/New() + ..() + create_reagents(2) //add heat controls? when emagged, you can freeze to death in it? @@ -285,10 +290,22 @@ del(E) /obj/machinery/shower/process() - if(!on || !mobpresent) return + if(!on) return + wash_floor() + if(!mobpresent) return for(var/mob/living/carbon/C in loc) check_heat(C) +/obj/machinery/shower/proc/wash_floor() + if(!ismist && is_washing) + return + is_washing = 1 + var/turf/T = get_turf(src) + reagents.add_reagent("water", 2) + T.clean(src) + spawn(100) + is_washing = 0 + /obj/machinery/shower/proc/check_heat(mob/M as mob) if(!on || watertemp == "normal") return if(iscarbon(M))