diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index 39ff2a7da9..62d0adfef7 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -3,6 +3,7 @@
* Morgue
* Morgue tray
* Crematorium
+ * Creamatorium
* Crematorium tray
* Crematorium button
*/
@@ -223,6 +224,20 @@ GLOBAL_LIST_EMPTY(crematoriums)
update_icon()
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) //you horrible people
+/obj/structure/bodycontainer/crematorium/creamatorium
+ name = "creamatorium"
+ desc = "A human incinerator. Works well during ice cream socials."
+
+/obj/structure/bodycontainer/crematorium/creamatorium/cremate(mob/user)
+ var/list/icecreams = new()
+ for(var/mob/living/i_scream in GetAllContents())
+ var/obj/item/weapon/reagent_containers/food/snacks/icecream/IC = new()
+ IC.set_cone_type("waffle")
+ IC.add_mob_flavor(i_scream)
+ icecreams += IC
+ . = ..()
+ for(var/obj/IC in icecreams)
+ IC.forceMove(src)
/*
* Generic Tray
diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
index 43be7ad747..2f810d70d7 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
@@ -147,15 +147,7 @@
if(product_types[dispense_cone] >= 1)
product_types[dispense_cone] -= 1
var/obj/item/weapon/reagent_containers/food/snacks/icecream/I = new(src.loc)
- I.cone_type = cone_name
- I.icon_state = "icecream_cone_[cone_name]"
- switch (I.cone_type)
- if ("waffle")
- I.reagents.add_reagent("nutriment", 1)
- if ("chocolate")
- I.reagents.add_reagent("cocoa", 1) // chocolate ain't as nutritious kids
-
- I.desc = "Delicious [cone_name] cone, but no ice cream."
+ I.set_cone_type(cone_name)
src.visible_message("[usr] dispenses a crunchy [cone_name] cone from [src].")
else
to_chat(usr, "There are no [cone_name] cones left!")
@@ -187,10 +179,23 @@
var/cone_type
bitesize = 3
-/obj/item/weapon/reagent_containers/food/snacks/icecream/New()
+/obj/item/weapon/reagent_containers/food/snacks/icecream/Initialize()
+ . = ..()
create_reagents(20)
reagents.add_reagent("nutriment", 4)
+/obj/item/weapon/reagent_containers/food/snacks/icecream/proc/set_cone_type(var/cone_name)
+ cone_type = cone_name
+ icon_state = "icecream_cone_[cone_name]"
+ switch (cone_type)
+ if ("waffle")
+ reagents.add_reagent("nutriment", 1)
+ if ("chocolate")
+ reagents.add_reagent("cocoa", 1) // chocolate ain't as nutritious kids
+
+ desc = "Delicious [cone_name] cone, but no ice cream."
+
+
/obj/item/weapon/reagent_containers/food/snacks/icecream/proc/add_ice_cream(var/flavour_name)
name = "[flavour_name] icecream"
src.add_overlay("icecream_[flavour_name]")
@@ -206,8 +211,15 @@
if ("blue")
desc = "A delicious [cone_type] cone filled with blue ice cream. Made with real... blue?"
reagents.add_reagent("singulo", 2)
+ if ("mob")
+ desc = "A suspicious [cone_type] cone filled with bright red ice cream. That's probably not strawberry..."
+ reagents.add_reagent("liquidgibs", 2)
ice_creamed = 1
+/obj/item/weapon/reagent_containers/food/snacks/icecream/proc/add_mob_flavor(var/mob/M)
+ add_ice_cream("mob")
+ name = "[M.name] icecream"
+
/obj/machinery/icecream_vat/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
new /obj/item/stack/sheet/metal(loc, 4)