Merge pull request #1004 from Kelenius/master

Monkey cubes now expand in showers
This commit is contained in:
Zuhayr
2016-02-21 17:49:46 +10:30
2 changed files with 25 additions and 34 deletions

View File

@@ -127,13 +127,12 @@
var/obj/effect/mist/mymist = null 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/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/is_washing = 0
var/list/temperature_settings = list("normal" = 310, "boiling" = T0C+100, "freezing" = T0C) var/list/temperature_settings = list("normal" = 310, "boiling" = T0C+100, "freezing" = T0C)
/obj/machinery/shower/New() /obj/machinery/shower/New()
..() ..()
create_reagents(2) create_reagents(50)
//add heat controls? when emagged, you can freeze to death in it? //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. overlays.Cut() //once it's been on for a while, in addition to handling the water overlay.
if(mymist) if(mymist)
qdel(mymist) qdel(mymist)
mymist = null
if(on) if(on)
overlays += image('icons/obj/watercloset.dmi', src, "water", MOB_LAYER + 1, dir) overlays += image('icons/obj/watercloset.dmi', src, "water", MOB_LAYER + 1, dir)
@@ -190,20 +190,9 @@
spawn(250) spawn(250)
if(src && !on) if(src && !on)
qdel(mymist) qdel(mymist)
mymist = null
ismist = 0 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. //Yes, showers are super powerful as far as washing goes.
/obj/machinery/shower/proc/wash(atom/movable/O as obj|mob) /obj/machinery/shower/proc/wash(atom/movable/O as obj|mob)
if(!on) return if(!on) return
@@ -292,24 +281,30 @@
if(isturf(loc)) if(isturf(loc))
var/turf/tile = loc var/turf/tile = loc
loc.clean_blood()
for(var/obj/effect/E in tile) for(var/obj/effect/E in tile)
if(istype(E,/obj/effect/rune) || istype(E,/obj/effect/decal/cleanable) || istype(E,/obj/effect/overlay)) if(istype(E,/obj/effect/rune) || istype(E,/obj/effect/decal/cleanable) || istype(E,/obj/effect/overlay))
qdel(E) qdel(E)
reagents.splash(O, 10)
/obj/machinery/shower/process() /obj/machinery/shower/process()
if(!on) return 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() wash_floor()
if(!mobpresent) return reagents.add_reagent("water", reagents.get_free_space())
for(var/mob/living/L in loc)
process_heat(L)
/obj/machinery/shower/proc/wash_floor() /obj/machinery/shower/proc/wash_floor()
if(!ismist && is_washing) if(!ismist && is_washing)
return return
is_washing = 1 is_washing = 1
var/turf/T = get_turf(src) var/turf/T = get_turf(src)
reagents.add_reagent("water", 2) reagents.splash(T, reagents.total_volume)
T.clean(src) T.clean(src)
spawn(100) spawn(100)
is_washing = 0 is_washing = 0
@@ -422,9 +417,6 @@
"<span class='danger'>[user] was stunned by \his wet [O]!</span>", \ "<span class='danger'>[user] was stunned by \his wet [O]!</span>", \
"<span class='userdanger'>[user] was stunned by \his wet [O]!</span>") "<span class='userdanger'>[user] was stunned by \his wet [O]!</span>")
return 1 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)) else if(istype(O, /obj/item/weapon/mop))
O.reagents.add_reagent("water", 5) O.reagents.add_reagent("water", 5)
user << "<span class='notice'>You wet \the [O] in \the [src].</span>" user << "<span class='notice'>You wet \the [O] in \the [src].</span>"

View File

@@ -1601,6 +1601,7 @@
/obj/item/weapon/reagent_containers/food/snacks/monkeycube /obj/item/weapon/reagent_containers/food/snacks/monkeycube
name = "monkey cube" name = "monkey cube"
desc = "Just add water!" desc = "Just add water!"
flags = OPENCONTAINER
icon_state = "monkeycube" icon_state = "monkeycube"
bitesize = 12 bitesize = 12
filling_color = "#ADAC7F" filling_color = "#ADAC7F"
@@ -1613,27 +1614,19 @@
..() ..()
reagents.add_reagent("protein", 10) 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) attack_self(mob/user as mob)
if(wrapped) if(wrapped)
Unwrap(user) Unwrap(user)
proc/Expand() proc/Expand()
src.visible_message("<span class='notice'>\The [src] expands!</span>") src.visible_message("<span class='notice'>\The [src] expands!</span>")
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.set_species(monkey_type)
H.real_name = H.species.get_random_name() H.real_name = H.species.get_random_name()
H.name = H.real_name H.name = H.real_name
src.loc = null if(ismob(loc))
var/mob/M = loc
M.unEquip(src)
qdel(src) qdel(src)
return 1 return 1
@@ -1642,11 +1635,17 @@
desc = "Just add water!" desc = "Just add water!"
user << "You unwrap the cube." user << "You unwrap the cube."
wrapped = 0 wrapped = 0
flags |= OPENCONTAINER
return 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 /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped
desc = "Still wrapped in some paper." desc = "Still wrapped in some paper."
icon_state = "monkeycubewrap" icon_state = "monkeycubewrap"
flags = 0
wrapped = 1 wrapped = 1
/obj/item/weapon/reagent_containers/food/snacks/monkeycube/farwacube /obj/item/weapon/reagent_containers/food/snacks/monkeycube/farwacube