mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Merge pull request #1004 from Kelenius/master
Monkey cubes now expand in showers
This commit is contained in:
@@ -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>"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user