diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index e218c1db92..8df5be2629 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -127,13 +127,12 @@ var/obj/effect/mist/mymist = null 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 var/list/temperature_settings = list("normal" = 310, "boiling" = T0C+100, "freezing" = T0C) /obj/machinery/shower/New() ..() - create_reagents(2) + create_reagents(50) //add heat controls? when emagged, you can freeze to death in it? @@ -171,6 +170,7 @@ overlays.Cut() //once it's been on for a while, in addition to handling the water overlay. if(mymist) qdel(mymist) + mymist = null if(on) overlays += image('icons/obj/watercloset.dmi', src, "water", MOB_LAYER + 1, dir) @@ -190,20 +190,9 @@ spawn(250) if(src && !on) qdel(mymist) + mymist = null ismist = 0 -/obj/machinery/shower/Crossed(atom/movable/O) - ..() - wash(O) - if(ismob(O)) - mobpresent += 1 - process_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/machinery/shower/proc/wash(atom/movable/O as obj|mob) if(!on) return @@ -292,24 +281,30 @@ if(isturf(loc)) var/turf/tile = loc - loc.clean_blood() for(var/obj/effect/E in tile) if(istype(E,/obj/effect/rune) || istype(E,/obj/effect/decal/cleanable) || istype(E,/obj/effect/overlay)) qdel(E) + reagents.splash(O, 10) + /obj/machinery/shower/process() if(!on) return + for(var/thing in loc) + var/atom/movable/AM = thing + var/mob/living/L = thing + if(istype(AM) && AM.simulated) + wash(AM) + if(istype(L)) + process_heat(L) wash_floor() - if(!mobpresent) return - for(var/mob/living/L in loc) - process_heat(L) + reagents.add_reagent("water", reagents.get_free_space()) /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) + reagents.splash(T, reagents.total_volume) T.clean(src) spawn(100) is_washing = 0 @@ -422,9 +417,6 @@ "[user] was stunned by \his wet [O]!", \ "[user] was stunned by \his wet [O]!") return 1 - // Short of a rewrite, this is necessary to stop monkeycubes being washed. - else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/monkeycube)) - return else if(istype(O, /obj/item/weapon/mop)) O.reagents.add_reagent("water", 5) user << "You wet \the [O] in \the [src]." diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index c0919eea55..5034c8aac0 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -1601,6 +1601,7 @@ /obj/item/weapon/reagent_containers/food/snacks/monkeycube name = "monkey cube" desc = "Just add water!" + flags = OPENCONTAINER icon_state = "monkeycube" bitesize = 12 filling_color = "#ADAC7F" @@ -1613,27 +1614,19 @@ ..() reagents.add_reagent("protein", 10) - afterattack(obj/O as obj, var/mob/living/carbon/human/user as mob, proximity) - if(!proximity) return - if(istype(O,/obj/structure/sink) && !wrapped) - user << "You place \the [name] under a stream of water..." - if(istype(user)) - user.unEquip(src) - src.loc = get_turf(src) - return Expand() - ..() - attack_self(mob/user as mob) if(wrapped) Unwrap(user) proc/Expand() src.visible_message("\The [src] expands!") - var/mob/living/carbon/human/H = new(src.loc) + var/mob/living/carbon/human/H = new(get_turf(src)) H.set_species(monkey_type) H.real_name = H.species.get_random_name() H.name = H.real_name - src.loc = null + if(ismob(loc)) + var/mob/M = loc + M.unEquip(src) qdel(src) return 1 @@ -1642,11 +1635,17 @@ desc = "Just add water!" user << "You unwrap the cube." wrapped = 0 + flags |= OPENCONTAINER return +/obj/item/weapon/reagent_containers/food/snacks/monkeycube/on_reagent_change() + if(reagents.has_reagent("water")) + Expand() + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped desc = "Still wrapped in some paper." icon_state = "monkeycubewrap" + flags = 0 wrapped = 1 /obj/item/weapon/reagent_containers/food/snacks/monkeycube/farwacube