diff --git a/code/game/objects/effects/chem/coating.dm b/code/game/objects/effects/chem/coating.dm
new file mode 100644
index 0000000000..a777bbe5e0
--- /dev/null
+++ b/code/game/objects/effects/chem/coating.dm
@@ -0,0 +1,36 @@
+/*
+ * Home of the floor chemical coating.
+ */
+
+/obj/effect/decal/cleanable/chemcoating
+ icon = 'icons/effects/effects.dmi'
+ icon_state = "dirt"
+
+/obj/effect/decal/cleanable/chemcoating/New()
+ ..()
+ create_reagents(100)
+
+/obj/effect/decal/cleanable/chemcoating/Initialize()
+ ..()
+ var/turf/T = get_turf(src)
+ if(T)
+ for(var/obj/O in get_turf(src))
+ if(O == src)
+ continue
+ if(istype(O, /obj/effect/decal/cleanable/chemcoating))
+ var/obj/effect/decal/cleanable/chemcoating/C = O
+ if(C.reagents && C.reagents.reagent_list.len)
+ C.reagents.trans_to_obj(src,C.reagents.total_volume)
+ qdel(O)
+
+/obj/effect/decal/cleanable/chemcoating/Bumped(A as mob|obj)
+ if(reagents)
+ reagents.touch(A)
+ return ..()
+
+/obj/effect/decal/cleanable/chemcoating/Crossed(AM as mob|obj)
+ Bumped(AM)
+
+/obj/effect/decal/cleanable/chemcoating/update_icon()
+ ..()
+ color = reagents.get_color()
diff --git a/code/modules/clothing/head/flowercrowns.dm b/code/modules/clothing/head/flowercrowns.dm
index 6c6469de73..7e13993bcb 100644
--- a/code/modules/clothing/head/flowercrowns.dm
+++ b/code/modules/clothing/head/flowercrowns.dm
@@ -7,33 +7,27 @@
/obj/item/clothing/head/woodcirclet/attackby(obj/item/W as obj, mob/user as mob)
var/obj/item/complete
- if(istype(W,/obj/item/seeds/poppyseed))
- user << "You attach the poppy to the circlet and create a beautiful flower crown."
- complete = new /obj/item/clothing/head/poppy_crown(get_turf(user))
- user.drop_from_inventory(W)
- user.drop_from_inventory(src)
- qdel(W)
- qdel(src)
- user.put_in_hands(complete)
- return
- else if(istype(W,/obj/item/seeds/sunflowerseed))
- user << "You attach the sunflower to the circlet and create a beautiful flower crown."
- complete = new /obj/item/clothing/head/sunflower_crown(get_turf(user))
- user.drop_from_inventory(W)
- user.drop_from_inventory(src)
- qdel(W)
- qdel(src)
- user.put_in_hands(complete)
- return
- else if(istype(W,/obj/item/seeds/lavenderseed))
- user << "You attach the lavender to the circlet and create a beautiful flower crown."
- complete = new /obj/item/clothing/head/lavender_crown(get_turf(user))
+ if(istype(W, /obj/item/weapon/reagent_containers/food/snacks/grown))
+ var/obj/item/weapon/reagent_containers/food/snacks/grown/G = W
+ if(G.seed.kitchen_tag == "poppy")
+ to_chat(user, "You attach the poppy to the circlet and create a beautiful flower crown.")
+ complete = new /obj/item/clothing/head/poppy_crown(get_turf(user))
+ else if(G.seed.kitchen_tag == "sunflower")
+ to_chat(user, "You attach the sunflower to the circlet and create a beautiful flower crown.")
+ complete = new /obj/item/clothing/head/sunflower_crown(get_turf(user))
+ else if(G.seed.kitchen_tag == "lavender")
+ to_chat(user, "You attach the lavender to the circlet and create a beautiful flower crown.")
+ complete = new /obj/item/clothing/head/lavender_crown(get_turf(user))
+ else if(G.seed.kitchen_tag == "rose")
+ to_chat(user, "You attach the rose to the circlet and create a beautiful flower crown.")
+ complete = new /obj/item/clothing/head/rose_crown(get_turf(user))
user.drop_from_inventory(W)
user.drop_from_inventory(src)
qdel(W)
qdel(src)
user.put_in_hands(complete)
return
+ return ..()
//Flower crowns
@@ -53,4 +47,10 @@
name = "poppy crown"
desc = "A flower crown weaved with poppies."
icon_state = "poppy_crown"
- body_parts_covered = 0
\ No newline at end of file
+ body_parts_covered = 0
+
+/obj/item/clothing/head/rose_crown
+ name = "rose crown"
+ desc = "A flower crown weaved with roses."
+ icon_state = "poppy_crown"
+ body_parts_covered = 0
diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm
index 82fe5a8a5a..8392c9de6b 100644
--- a/code/modules/food/food/snacks.dm
+++ b/code/modules/food/food/snacks.dm
@@ -742,6 +742,18 @@
reagents.add_reagent("carpotoxin", 3)
bitesize = 3
+/obj/item/weapon/reagent_containers/food/snacks/zestfish
+ name = "Zesty Fish"
+ desc = "Lightly seasoned fish fillets."
+ icon_state = "zestfish"
+ filling_color = "#FFDEFE"
+ center_of_mass = list("x"=16, "y"=13)
+
+/obj/item/weapon/reagent_containers/food/snacks/zestfish/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 4)
+ bitesize = 3
+
/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice
name = "huge mushroom slice"
desc = "A slice from a huge mushroom."
@@ -2196,6 +2208,21 @@
. = ..()
bitesize = 2
+/obj/item/weapon/reagent_containers/food/snacks/kudzudonburi
+ name = "Zhan-Kudzu Overtaker"
+ desc = "Seasoned Kudzu and fish donburi."
+ icon_state = "kudzudonburi"
+ trash = /obj/item/trash/snack_bowl
+ filling_color = "#FFFBDB"
+ center_of_mass = list("x"=17, "y"=11)
+ nutriment_amt = 16
+ nutriment_desc = list("rice" = 2, "gauze" = 4, "fish" = 10)
+
+/obj/item/weapon/reagent_containers/food/snacks/kudzudonburi/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 4)
+ bitesize = 2
+
/obj/item/weapon/reagent_containers/food/snacks/pastatomato
name = "Spaghetti"
desc = "Spaghetti and crushed tomatoes. Just like your abusive father used to make!"
@@ -2343,6 +2370,14 @@
. = ..()
reagents.add_reagent("cherryjelly", 5)
+/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/peanutbutter
+ desc = "You wish you had some peanut butter to go with this... Oh wait!"
+ icon_state = "pbandj"
+
+/obj/item/weapon/reagent_containers/food/snacks/jellysandwich/peanutbutter/Initialize()
+ . = ..()
+ reagents.add_reagent("peanutbutter", 5)
+
/obj/item/weapon/reagent_containers/food/snacks/boiledslimecore
name = "Boiled slime Core"
desc = "A boiled red thing."
@@ -2713,6 +2748,35 @@
/obj/item/weapon/reagent_containers/food/snacks/slice/cheesecake/filled
filled = TRUE
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/peanutcake
+ name = "Peanut Cake"
+ desc = "DANGEROUSLY nutty. Sometimes literally."
+ icon_state = "peanutcake"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/peanutcake
+ slices_num = 5
+ filling_color = "#4F3500"
+ center_of_mass = list("x"=16, "y"=10)
+ nutriment_desc = list("cake" = 10, "peanuts" = 15)
+ nutriment_amt = 10
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/peanutcake/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 5)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/slice/peanutcake
+ name = "Peanut Cake slice"
+ desc = "Slice of nutty goodness."
+ icon_state = "peanutcake_slice"
+ trash = /obj/item/trash/plate
+ filling_color = "#4F3500"
+ bitesize = 2
+ center_of_mass = list("x"=16, "y"=14)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/peanutcake
+
+/obj/item/weapon/reagent_containers/food/snacks/slice/peanutcake/filled
+ filled = TRUE
+
/obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake
name = "Vanilla Cake"
desc = "A plain cake, not a lie."
@@ -3050,6 +3114,34 @@
/obj/item/weapon/reagent_containers/food/snacks/slice/margherita/filled
filled = TRUE
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/pineapple
+ name = "Hawaiian"
+ desc = "The accursed wheel from ancient times."
+ icon_state = "pizzamargherita"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/slice/pineapple
+ slices_num = 6
+ center_of_mass = list("x"=16, "y"=11)
+ nutriment_desc = list("pizza crust" = 5, "tomato" = 5, "cheese" = 5, "pineapple" = 20)
+ nutriment_amt = 35
+
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/pineapple/Initialize()
+ . = ..()
+ reagents.add_reagent("protein", 5)
+ reagents.add_reagent("pineapplejuice", 6)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/slice/pineapple
+ name = "Hawaiian slice"
+ desc = "A slice of the accursed pizza."
+ icon_state = "pizzamargheritaslice"
+ filling_color = "#BAA14C"
+ bitesize = 2
+ center_of_mass = list("x"=16, "y"=13)
+ whole_path = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/pineapple
+
+/obj/item/weapon/reagent_containers/food/snacks/slice/pineapple/filled
+ filled = TRUE
+
/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza
name = "Meatpizza"
desc = "A pizza with meat topping."
@@ -3563,7 +3655,11 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/attackby(obj/item/weapon/W, mob/user)
if(seed && seed.kitchen_tag && seed.kitchen_tag == "potato" && istype(W,/obj/item/weapon/material/knife))
new /obj/item/weapon/reagent_containers/food/snacks/rawsticks(get_turf(src))
- user << "You cut the potato."
+ to_chat(user, "You cut the potato.")
+ qdel(src)
+ else if(seed && seed.kitchen_tag && seed.kitchen_tag == "sunflower" && istype(W,/obj/item/weapon/material/knife))
+ new /obj/item/weapon/reagent_containers/food/snacks/rawsunflower(get_turf(src))
+ to_chat(user, "You remove the seeds from the flower, slightly damaging them.")
qdel(src)
else
..()
@@ -3581,6 +3677,39 @@
/obj/item/weapon/reagent_containers/food/snacks/rawsticks/Initialize()
. = ..()
+/obj/item/weapon/reagent_containers/food/snacks/rawsunflower
+ name = "sunflower seeds"
+ desc = "Raw sunflower seeds, alright. They look too damaged to plant."
+ icon = 'icons/obj/food_ingredients.dmi'
+ icon_state = "sunflowerseed"
+ bitesize = 1
+ center_of_mass = list("x"=17, "y"=18)
+ nutriment_amt = 1
+ nutriment_desc = list("starch" = 3)
+
+/obj/item/weapon/reagent_containers/food/snacks/rawsunflower/Initialize()
+ . = ..()
+
+/obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
+ name = "sunflower seeds"
+ desc = "Sunflower seeds!"
+ icon = 'icons/obj/food.dmi'
+ icon_state = "sunflowerseed"
+ bitesize = 1
+ center_of_mass = list("x"=15, "y"=17)
+ nutriment_amt = 2
+ nutriment_desc = list("salt" = 3)
+
+/obj/item/weapon/reagent_containers/food/snacks/roastedpeanuts
+ name = "peanuts"
+ desc = "Stopped being the planetary airline food of Earth in 2120."
+ icon = 'icons/obj/food.dmi'
+ icon_state = "roastnuts"
+ bitesize = 1
+ center_of_mass = list("x"=15, "y"=17)
+ nutriment_amt = 2
+ nutriment_desc = list("salt" = 3)
+
/obj/item/weapon/reagent_containers/food/snacks/liquidfood
name = "\improper LiquidFood Ration"
desc = "A prepackaged grey slurry of all the essential nutrients for a spacefarer on the go. Should this be crunchy?"
@@ -3754,6 +3883,21 @@
reagents.add_reagent("protein", 2)
bitesize = 2
+/obj/item/weapon/reagent_containers/food/snacks/devilledegg
+ name = "devilled eggs"
+ desc = "Spicy homestyle favorite."
+ icon_state = "devilledegg"
+ filling_color = "#799ACE"
+ center_of_mass = list("x"=17, "y"=16)
+ nutriment_amt = 8
+ nutriment_desc = list("egg" = 4, "chili" = 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/devilledegg/Initialize()
+ . = ..()
+ reagents.add_reagent("nutriment", 6)
+ reagents.add_reagent("capsaicin", 2)
+ bitesize = 2
+
/obj/item/weapon/reagent_containers/food/snacks/fruitsalad
name = "fruit salad"
desc = "Your standard fruit salad."
@@ -3767,6 +3911,33 @@
reagents.add_reagent("nutriment", 10)
bitesize = 4
+/obj/item/weapon/reagent_containers/food/snacks/flowerchildsalad
+ name = "flowerchild salad"
+ desc = "A fragrant salad."
+ icon_state = "flowerchildsalad"
+ filling_color = "#FF3867"
+ nutriment_amt = 10
+ nutriment_desc = list("bittersweet" = 10)
+
+/obj/item/weapon/reagent_containers/food/snacks/flowerchildsalad/Initialize()
+ . = ..()
+ reagents.add_reagent("nutriment", 10)
+ bitesize = 4
+
+/obj/item/weapon/reagent_containers/food/snacks/rosesalad
+ name = "flowerchild salad"
+ desc = "A fragrant salad."
+ icon_state = "rosesalad"
+ filling_color = "#FF3867"
+ nutriment_amt = 5
+ nutriment_desc = list("bittersweet" = 10, "iron" = 5)
+
+/obj/item/weapon/reagent_containers/food/snacks/rosesalad/Initialize()
+ . = ..()
+ reagents.add_reagent("nutriment", 10)
+ reagents.add_reagent("stoxin", 2)
+ bitesize = 4
+
/obj/item/weapon/reagent_containers/food/snacks/eggbowl
name = "egg bowl"
desc = "A bowl of fried rice with egg mixed in."
@@ -3885,6 +4056,19 @@
reagents.add_reagent("capsaicin", 4)
bitesize = 2
+/obj/item/weapon/reagent_containers/food/snacks/curryrice
+ name = "curry rice"
+ desc = "That's some dangerously spicy rice."
+ icon_state = "curryrice"
+ nutriment_amt = 6
+ nutriment_desc = list("salt" = 1, "rice" = 2, "chili peppers" = 3)
+
+/obj/item/weapon/reagent_containers/food/snacks/curryrice/Initialize()
+ . = ..()
+ reagents.add_reagent("nutriment", 5)
+ reagents.add_reagent("capsaicin", 4)
+ bitesize = 2
+
/obj/item/weapon/reagent_containers/food/snacks/piginblanket
name = "pig in a blanket"
desc = "A sausage embedded in soft, fluffy pastry. Free this pig from its blanket prison by eating it."
diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm
index f80fecdd9f..acbbc7666a 100644
--- a/code/modules/food/recipes_microwave.dm
+++ b/code/modules/food/recipes_microwave.dm
@@ -33,6 +33,15 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/boiledegg
+/datum/recipe/devilledegg
+ fruit = list("chili" = 1)
+ reagents = list("salt" = 2, "mayo" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/egg,
+ /obj/item/weapon/reagent_containers/food/snacks/egg
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/devilledegg
+
/datum/recipe/dionaroast
fruit = list("apple" = 1)
reagents = list("pacid" = 5) //It dissolves the carapace. Still poisonous, though.
@@ -484,6 +493,15 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita
+/datum/recipe/pizzahawaiian
+ fruit = list("tomato" = 1, "pineapple" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
+ /obj/item/weapon/reagent_containers/food/snacks/cutlet,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/pineapple
+
/datum/recipe/meatpizza
fruit = list("tomato" = 1)
items = list(
@@ -665,6 +683,14 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/toastedsandwich
+/datum/recipe/peanutbutterjellysandwich
+ reagents = list("berryjuice" = 5, "peanutbutter" = 5)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread,
+ /obj/item/weapon/reagent_containers/food/snacks/slice/bread
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/peanutbutter
+
/datum/recipe/grilledcheese
items = list(
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,
@@ -874,6 +900,30 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/fishfingers
+/datum/recipe/zestfish
+ fruit = list("lemon" = 1)
+ reagents = list("salt" = 3)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/carpmeat
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/zestfish
+
+/datum/recipe/limezestfish
+ fruit = list("lime" = 1)
+ reagents = list("salt" = 3)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/carpmeat
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/zestfish
+
+/datum/recipe/kudzudonburi
+ fruit = list("kudzu" = 1)
+ reagents = list("rice" = 10)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/carpmeat
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/kudzudonburi
+
/datum/recipe/mysterysoup
reagents = list("water" = 10)
items = list(
@@ -925,6 +975,20 @@ I said no!
fruit = list("cabbage" = 2, "tomato" = 1, "carrot" = 1, "apple" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/tossedsalad
+/datum/recipe/flowersalad
+ fruit = list("harebell" = 1, "poppy" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/flowerchildsalad
+
+/datum/recipe/rosesalad
+ fruit = list("harebell" = 1, "rose" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/rosesalad
+
/datum/recipe/aesirsalad
fruit = list("goldapple" = 1, "ambrosiadeus" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/aesirsalad
@@ -1019,6 +1083,25 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/fries
+/datum/recipe/roastedsunflowerseeds
+ reagents = list("salt" = 1, "cornoil" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/rawsunflower
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
+
+/datum/recipe/roastedpeanutsunflowerseeds
+ reagents = list("salt" = 1, "peanutoil" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/rawsunflower
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
+
+/datum/recipe/roastedpeanuts
+ fruit = list("peanut" = 2)
+ reagents = list("salt" = 2, "cornoil" = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/roastedpeanuts
+
/datum/recipe/mint
reagents = list("sugar" = 5, "frostoil" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/mint
@@ -1156,6 +1239,11 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/cubannachos
+/datum/recipe/curryrice
+ fruit = list("chili" = 1)
+ reagents = list("rice" = 10)
+ result = /obj/item/weapon/reagent_containers/food/snacks/curryrice
+
/datum/recipe/piginblanket
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
@@ -1163,10 +1251,9 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/piginblanket
-
// Cakes.
/datum/recipe/cake
- reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
+ reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9, "vanilla" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake
/datum/recipe/cake/carrot
@@ -1175,12 +1262,18 @@ I said no!
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake
/datum/recipe/cake/cheese
+ reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake
+/datum/recipe/cake/peanut
+ fruit = list("peanut" = 3)
+ reagents = list("milk" = 5, "flour" = 10, "sugar" = 5, "egg" = 6, "peanutbutter" = 5)
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/peanutcake
+
/datum/recipe/cake/orange
fruit = list("orange" = 1)
reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
@@ -1202,6 +1295,7 @@ I said no!
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake
/datum/recipe/cake/birthday
+ reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
items = list(/obj/item/clothing/head/cakehat)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake
@@ -1211,5 +1305,6 @@ I said no!
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake
/datum/recipe/cake/brain
+ reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
items = list(/obj/item/organ/internal/brain)
- result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake
\ No newline at end of file
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake
diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm
index 0ec87dca8a..0f86faf875 100644
--- a/code/modules/hydroponics/seed.dm
+++ b/code/modules/hydroponics/seed.dm
@@ -21,7 +21,9 @@
var/kitchen_tag // Used by the reagent grinder.
var/trash_type // Garbage item produced when eaten.
var/splat_type = /obj/effect/decal/cleanable/fruit_smudge // Graffiti decal.
- var/has_mob_product
+ var/has_mob_product // Mob products. (Dionaea, Walking Mushrooms, Angry Tomatoes)
+ var/apply_color_to_mob = TRUE // Do we color the mob to match the plant?
+ var/has_item_product // Item products. (Eggy)
var/force_layer
/datum/seed/New()
@@ -619,6 +621,7 @@
gene.values["[TRAIT_CONSUME_GASSES]"] = null
if(GENE_METABOLISM)
has_mob_product = gene.values["mob_product"]
+ has_item_product = gene.values["item_product"]
gene.values["mob_product"] = null
for(var/trait in gene.values)
@@ -649,6 +652,7 @@
traits_to_copy = list(TRAIT_TOXINS_TOLERANCE,TRAIT_PEST_TOLERANCE,TRAIT_WEED_TOLERANCE,TRAIT_ENDURANCE)
if(GENE_METABOLISM)
P.values["mob_product"] = has_mob_product
+ P.values["item_product"] = has_item_product
traits_to_copy = list(TRAIT_REQUIRES_NUTRIENTS,TRAIT_REQUIRES_WATER,TRAIT_ALTER_TEMP)
if(GENE_VIGOUR)
traits_to_copy = list(TRAIT_PRODUCTION,TRAIT_MATURATION,TRAIT_YIELD,TRAIT_SPREAD)
@@ -709,6 +713,8 @@
var/obj/item/product
if(has_mob_product)
product = new has_mob_product(get_turf(user),name)
+ else if(has_item_product)
+ product = new has_item_product(get_turf(user),name)
else
product = new /obj/item/weapon/reagent_containers/food/snacks/grown(get_turf(user),name)
if(get_trait(TRAIT_PRODUCT_COLOUR))
@@ -752,6 +758,8 @@
new_seed.kitchen_tag = kitchen_tag
new_seed.trash_type = trash_type
new_seed.has_mob_product = has_mob_product
+ new_seed.has_item_product = has_item_product
+
//Copy over everything else.
if(mutants) new_seed.mutants = mutants.Copy()
if(chems) new_seed.chems = chems.Copy()
diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm
index eab78597b1..5974284b7b 100644
--- a/code/modules/hydroponics/seed_datums.dm
+++ b/code/modules/hydroponics/seed_datums.dm
@@ -112,7 +112,6 @@
mutants = list("deathnettle")
chems = list("nutriment" = list(1,50), "sacid" = list(0,1))
kitchen_tag = "nettle"
- kitchen_tag = "nettle"
/datum/seed/nettle/New()
..()
@@ -222,7 +221,7 @@
name = "eggplant"
seed_name = "eggplant"
display_name = "eggplants"
- mutants = list("realeggplant")
+ mutants = list("egg-plant")
chems = list("nutriment" = list(1,10))
kitchen_tag = "eggplant"
@@ -239,6 +238,16 @@
set_trait(TRAIT_IDEAL_HEAT, 298)
set_trait(TRAIT_IDEAL_LIGHT, 7)
+// Return of Eggy. Just makes purple eggs. If the reagents are separated from the egg production by xenobotany or RNG, it's still an Egg plant.
+/datum/seed/eggplant/egg
+ name = "egg-plant"
+ seed_name = "egg-plant"
+ display_name = "egg-plants"
+ mutants = null
+ chems = list("nutriment" = list(1,5), "egg" = list(3,12))
+ kitchen_tag = "egg-plant"
+ has_item_product = /obj/item/weapon/reagent_containers/food/snacks/egg/purple
+
//Apples/varieties.
/datum/seed/apple
name = "apple"
@@ -503,6 +512,7 @@
seed_name = "harebell"
display_name = "harebells"
chems = list("nutriment" = list(1,20))
+ kitchen_tag = "harebell"
/datum/seed/flower/New()
..()
@@ -539,6 +549,7 @@
name = "sunflowers"
seed_name = "sunflower"
display_name = "sunflowers"
+ kitchen_tag = "sunflower"
/datum/seed/flower/sunflower/New()
..()
@@ -554,6 +565,7 @@
name = "lavender"
seed_name = "lavender"
display_name = "lavender"
+ kitchen_tag = "lavender"
chems = list("nutriment" = list(1,20), "bicaridine" = list(1,10))
/datum/seed/flower/lavender/New()
@@ -569,6 +581,40 @@
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.05)
set_trait(TRAIT_WATER_CONSUMPTION, 0.5)
+/datum/seed/flower/rose
+ name = "rose"
+ seed_name = "rose"
+ display_name = "rose"
+ kitchen_tag = "rose"
+ mutants = list("bloodrose")
+ chems = list("nutriment" = list(1,5), "stoxin" = list(0,2))
+
+/datum/seed/flower/rose/New()
+ ..()
+ set_trait(TRAIT_MATURATION,7)
+ set_trait(TRAIT_PRODUCTION,5)
+ set_trait(TRAIT_YIELD,3)
+ set_trait(TRAIT_PRODUCT_ICON,"flowers")
+ set_trait(TRAIT_PRODUCT_COLOUR,"#ce0e0e")
+ set_trait(TRAIT_PLANT_COLOUR,"#6B8C5E")
+ set_trait(TRAIT_PLANT_ICON,"bush5")
+ set_trait(TRAIT_IDEAL_LIGHT, 7)
+ set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.1)
+ set_trait(TRAIT_WATER_CONSUMPTION, 0.5)
+ set_trait(TRAIT_STINGS,1)
+
+/datum/seed/flower/rose/blood
+ name = "bloodrose"
+ display_name = "bleeding rose"
+ mutants = null
+ chems = list("nutriment" = list(1,5), "stoxin" = list(1,5), "blood" = list(0,2))
+
+/datum/seed/flower/rose/blood/New()
+ ..()
+ set_trait(TRAIT_IDEAL_LIGHT, 1)
+ set_trait(TRAIT_PLANT_COLOUR,"#5e0303")
+ set_trait(TRAIT_CARNIVOROUS,1)
+
//Grapes/varieties
/datum/seed/grapes
name = "grapes"
@@ -602,12 +648,103 @@
..()
set_trait(TRAIT_PRODUCT_COLOUR,"42ed2f")
+// Lettuce/varieties.
+/datum/seed/lettuce
+ name = "lettuce"
+ seed_name = "lettuce"
+ display_name = "lettuce"
+ chems = list("nutriment" = list(1,15))
+ kitchen_tag = "cabbage"
+
+/datum/seed/lettuce/New()
+ ..()
+ set_trait(TRAIT_HARVEST_REPEAT,1)
+ set_trait(TRAIT_MATURATION,4)
+ set_trait(TRAIT_PRODUCTION,5)
+ set_trait(TRAIT_YIELD,6)
+ set_trait(TRAIT_POTENCY,8)
+ set_trait(TRAIT_PRODUCT_ICON,"lettuce")
+ set_trait(TRAIT_PRODUCT_COLOUR,"#A8D0A7")
+ set_trait(TRAIT_PLANT_COLOUR,"#6D9C6B")
+ set_trait(TRAIT_PLANT_ICON,"vine2")
+ set_trait(TRAIT_IDEAL_LIGHT, 6)
+ set_trait(TRAIT_WATER_CONSUMPTION, 8)
+ set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.13)
+
+/datum/seed/lettuce/ice
+ name = "siflettuce"
+ seed_name = "glacial lettuce"
+ display_name = "glacial lettuce"
+ chems = list("nutriment" = list(1,5), "paracetamol" = list(0,2))
+ kitchen_tag = "icelettuce"
+
+/datum/seed/lettuce/ice/New()
+ ..()
+ set_trait(TRAIT_ALTER_TEMP, -5)
+ set_trait(TRAIT_PRODUCT_COLOUR,"#9ABCC9")
+
+//Wabback / varieties.
+/datum/seed/wabback
+ name = "whitewabback"
+ seed_name = "white wabback"
+ seed_noun = "nodes"
+ display_name = "white wabback"
+ chems = list("nutriment" = list(1,10), "protein" = list(1,5), "enzyme" = list(0,3))
+ kitchen_tag = "wabback"
+ mutants = list("blackwabback","wildwabback")
+ has_item_product = /obj/item/stack/material/cloth
+
+/datum/seed/wabback/New()
+ ..()
+ set_trait(TRAIT_IDEAL_LIGHT, 5)
+ set_trait(TRAIT_MATURATION,8)
+ set_trait(TRAIT_PRODUCTION,3)
+ set_trait(TRAIT_YIELD,2)
+ set_trait(TRAIT_POTENCY,5)
+ set_trait(TRAIT_PRODUCT_ICON,"carrot2")
+ set_trait(TRAIT_PRODUCT_COLOUR,"#E6EDFA")
+ set_trait(TRAIT_PLANT_ICON,"chute")
+ set_trait(TRAIT_PLANT_COLOUR, "#0650ce")
+ set_trait(TRAIT_WATER_CONSUMPTION, 10)
+ set_trait(TRAIT_ALTER_TEMP, -1)
+ set_trait(TRAIT_CARNIVOROUS,1)
+ set_trait(TRAIT_HARVEST_REPEAT,1)
+ set_trait(TRAIT_SPREAD,1)
+
+/datum/seed/wabback/vine
+ name = "blackwabback"
+ seed_name = "black wabback"
+ display_name = "black wabback"
+ mutants = null
+ chems = list("nutriment" = list(1,3), "protein" = list(1,10), "serotrotium_v" = list(0,1))
+
+/datum/seed/wabback/vine/New()
+ ..()
+ set_trait(TRAIT_PRODUCT_COLOUR,"#2E2F32")
+ set_trait(TRAIT_CARNIVOROUS,2)
+
+/datum/seed/wabback/wild
+ name = "wildwabback"
+ seed_name = "wild wabback"
+ display_name = "wild wabback"
+ mutants = list("whitewabback")
+ has_item_product = null
+ chems = list("nutriment" = list(1,15), "protein" = list(0,2), "enzyme" = list(0,1))
+
+/datum/seed/wabback/wild/New()
+ ..()
+ set_trait(TRAIT_IDEAL_LIGHT, 3)
+ set_trait(TRAIT_WATER_CONSUMPTION, 7)
+ set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.1)
+ set_trait(TRAIT_YIELD,5)
+
//Everything else
/datum/seed/peanuts
name = "peanut"
seed_name = "peanut"
display_name = "peanut vines"
- chems = list("nutriment" = list(1,10))
+ chems = list("nutriment" = list(1,10), "peanutoil" = list(1,3))
+ kitchen_tag = "peanut"
/datum/seed/peanuts/New()
..()
@@ -621,6 +758,25 @@
set_trait(TRAIT_PLANT_ICON,"bush2")
set_trait(TRAIT_IDEAL_LIGHT, 6)
+/datum/seed/vanilla
+ name = "vanilla"
+ seed_name = "vanilla"
+ display_name = "vanilla"
+ chems = list("nutriment" = list(1,10), "vanilla" = list(0,3), "sugar" = list(0, 1))
+
+/datum/seed/vanilla/New()
+ ..()
+ set_trait(TRAIT_MATURATION,7)
+ set_trait(TRAIT_PRODUCTION,5)
+ set_trait(TRAIT_YIELD,3)
+ set_trait(TRAIT_PRODUCT_ICON,"chili")
+ set_trait(TRAIT_PRODUCT_COLOUR,"#B57EDC")
+ set_trait(TRAIT_PLANT_COLOUR,"#6B8C5E")
+ set_trait(TRAIT_PLANT_ICON,"bush5")
+ set_trait(TRAIT_IDEAL_LIGHT, 8)
+ set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.3)
+ set_trait(TRAIT_WATER_CONSUMPTION, 0.5)
+
/datum/seed/cabbage
name = "cabbage"
seed_name = "cabbage"
@@ -707,22 +863,22 @@
set_trait(TRAIT_WATER_CONSUMPTION, 6)
/datum/seed/onion
- name = "onion"
- seed_name = "onion"
- display_name = "onions"
- chems = list("nutriment" = list(1,10))
- kitchen_tag = "onion"
+ name = "onion"
+ seed_name = "onion"
+ display_name = "onions"
+ chems = list("nutriment" = list(1,10))
+ kitchen_tag = "onion"
/datum/seed/onion/New()
- ..()
- set_trait(TRAIT_MATURATION,10)
- set_trait(TRAIT_PRODUCTION,1)
- set_trait(TRAIT_YIELD,4)
- set_trait(TRAIT_POTENCY,10)
- set_trait(TRAIT_PRODUCT_ICON,"onion")
- set_trait(TRAIT_PRODUCT_COLOUR,"#E0C367")
- set_trait(TRAIT_PLANT_ICON,"carrot")
- set_trait(TRAIT_WATER_CONSUMPTION, 6)
+ ..()
+ set_trait(TRAIT_MATURATION,10)
+ set_trait(TRAIT_PRODUCTION,1)
+ set_trait(TRAIT_YIELD,4)
+ set_trait(TRAIT_POTENCY,10)
+ set_trait(TRAIT_PRODUCT_ICON,"onion")
+ set_trait(TRAIT_PRODUCT_COLOUR,"#E0C367")
+ set_trait(TRAIT_PLANT_ICON,"carrot")
+ set_trait(TRAIT_WATER_CONSUMPTION, 6)
/datum/seed/soybean
name = "soybean"
@@ -855,6 +1011,87 @@
set_trait(TRAIT_PLANT_ICON,"stalk3")
set_trait(TRAIT_IDEAL_HEAT, 298)
+/datum/seed/rhubarb
+ name = "rhubarb"
+ seed_name = "rhubarb"
+ display_name = "rhubarb"
+ chems = list("nutriment" = list(1,15))
+ kitchen_tag = "rhubarb"
+
+/datum/seed/rhubarb/New()
+ ..()
+ set_trait(TRAIT_HARVEST_REPEAT,1)
+ set_trait(TRAIT_MATURATION,3)
+ set_trait(TRAIT_PRODUCTION,5)
+ set_trait(TRAIT_YIELD,5)
+ set_trait(TRAIT_POTENCY,6)
+ set_trait(TRAIT_PRODUCT_ICON,"stalk")
+ set_trait(TRAIT_PRODUCT_COLOUR,"#FD5656")
+ set_trait(TRAIT_PLANT_ICON,"stalk3")
+
+/datum/seed/celery
+ name = "celery"
+ seed_name = "celery"
+ display_name = "celery"
+ chems = list("nutriment" = list(5,20))
+ kitchen_tag = "celery"
+
+/datum/seed/celery/New()
+ ..()
+ set_trait(TRAIT_HARVEST_REPEAT,1)
+ set_trait(TRAIT_MATURATION,6)
+ set_trait(TRAIT_PRODUCTION,4)
+ set_trait(TRAIT_YIELD,3)
+ set_trait(TRAIT_POTENCY,8)
+ set_trait(TRAIT_PRODUCT_ICON,"stalk")
+ set_trait(TRAIT_PRODUCT_COLOUR,"#56FD56")
+ set_trait(TRAIT_PLANT_ICON,"stalk3")
+
+/datum/seed/spineapple
+ name = "spineapple"
+ seed_name = "spineapple"
+ display_name = "spineapple"
+ chems = list("nutriment" = list(1,5), "enzyme" = list(1,5), "pineapplejuice" = list(1, 20))
+ kitchen_tag = "pineapple"
+
+/datum/seed/spineapple/New()
+ ..()
+ set_trait(TRAIT_HARVEST_REPEAT,1)
+ set_trait(TRAIT_MATURATION,10)
+ set_trait(TRAIT_PRODUCTION,6)
+ set_trait(TRAIT_YIELD,1)
+ set_trait(TRAIT_POTENCY,13)
+ set_trait(TRAIT_PRODUCT_ICON,"pineapple")
+ set_trait(TRAIT_PRODUCT_COLOUR,"#FFF23B")
+ set_trait(TRAIT_PLANT_COLOUR,"#87C969")
+ set_trait(TRAIT_PLANT_ICON,"corn")
+ set_trait(TRAIT_IDEAL_HEAT, 298)
+ set_trait(TRAIT_IDEAL_LIGHT, 4)
+ set_trait(TRAIT_WATER_CONSUMPTION, 8)
+ set_trait(TRAIT_STINGS,1)
+
+/datum/seed/durian
+ name = "durian"
+ seed_name = "durian"
+ seed_noun = "pits"
+ display_name = "durian"
+ chems = list("nutriment" = list(1,5), "durianpaste" = list(1, 20))
+ kitchen_tag = "durian"
+
+/datum/seed/durian/New()
+ ..()
+ set_trait(TRAIT_HARVEST_REPEAT,1)
+ set_trait(TRAIT_MATURATION,6)
+ set_trait(TRAIT_PRODUCTION,5)
+ set_trait(TRAIT_YIELD,3)
+ set_trait(TRAIT_POTENCY,10)
+ set_trait(TRAIT_PRODUCT_ICON,"spinefruit")
+ set_trait(TRAIT_PRODUCT_COLOUR,"#757631")
+ set_trait(TRAIT_PLANT_COLOUR,"#87C969")
+ set_trait(TRAIT_PLANT_ICON,"tree")
+ set_trait(TRAIT_IDEAL_LIGHT, 8)
+ set_trait(TRAIT_WATER_CONSUMPTION, 8)
+
/datum/seed/watermelon
name = "watermelon"
seed_name = "watermelon"
@@ -1011,6 +1248,7 @@
seed_name = "kudzu"
display_name = "kudzu vines"
chems = list("nutriment" = list(1,50), "anti_toxin" = list(1,25))
+ kitchen_tag = "kudzu"
/datum/seed/kudzu/New()
..()
@@ -1031,6 +1269,7 @@
seed_noun = "nodes"
display_name = "replicant pods"
can_self_harvest = 1
+ apply_color_to_mob = FALSE
has_mob_product = /mob/living/carbon/alien/diona
/datum/seed/diona/New()
@@ -1094,7 +1333,8 @@
/datum/seed/telriis/New()
..()
- set_trait(TRAIT_PLANT_ICON,"telriis")
+ set_trait(TRAIT_PLANT_ICON,"ambrosia")
+ set_trait(TRAIT_PRODUCT_ICON,"ambrosia")
set_trait(TRAIT_ENDURANCE,50)
set_trait(TRAIT_MATURATION,5)
set_trait(TRAIT_PRODUCTION,5)
@@ -1109,7 +1349,8 @@
/datum/seed/thaadra/New()
..()
- set_trait(TRAIT_PLANT_ICON,"thaadra")
+ set_trait(TRAIT_PLANT_ICON,"grass")
+ set_trait(TRAIT_PLANT_COLOUR,"#ABC7D2")
set_trait(TRAIT_ENDURANCE,10)
set_trait(TRAIT_MATURATION,5)
set_trait(TRAIT_PRODUCTION,9)
@@ -1124,7 +1365,7 @@
/datum/seed/jurlmah/New()
..()
- set_trait(TRAIT_PLANT_ICON,"jurlmah")
+ set_trait(TRAIT_PLANT_ICON,"mushroom9")
set_trait(TRAIT_ENDURANCE,12)
set_trait(TRAIT_MATURATION,8)
set_trait(TRAIT_PRODUCTION,9)
@@ -1139,7 +1380,7 @@
/datum/seed/amauri/New()
..()
- set_trait(TRAIT_PLANT_ICON,"amauri")
+ set_trait(TRAIT_PLANT_ICON,"bush4")
set_trait(TRAIT_ENDURANCE,10)
set_trait(TRAIT_MATURATION,8)
set_trait(TRAIT_PRODUCTION,9)
@@ -1154,7 +1395,7 @@
/datum/seed/gelthi/New()
..()
- set_trait(TRAIT_PLANT_ICON,"gelthi")
+ set_trait(TRAIT_PLANT_ICON,"mushroom3")
set_trait(TRAIT_ENDURANCE,15)
set_trait(TRAIT_MATURATION,6)
set_trait(TRAIT_PRODUCTION,6)
@@ -1169,7 +1410,7 @@
/datum/seed/vale/New()
..()
- set_trait(TRAIT_PLANT_ICON,"vale")
+ set_trait(TRAIT_PLANT_ICON,"flower4")
set_trait(TRAIT_ENDURANCE,15)
set_trait(TRAIT_MATURATION,8)
set_trait(TRAIT_PRODUCTION,10)
@@ -1184,7 +1425,7 @@
/datum/seed/surik/New()
..()
- set_trait(TRAIT_PLANT_ICON,"surik")
+ set_trait(TRAIT_PLANT_ICON,"bush6")
set_trait(TRAIT_ENDURANCE,18)
set_trait(TRAIT_MATURATION,7)
set_trait(TRAIT_PRODUCTION,7)
diff --git a/code/modules/hydroponics/seed_mobs.dm b/code/modules/hydroponics/seed_mobs.dm
index 88462acb47..0c9441dbac 100644
--- a/code/modules/hydroponics/seed_mobs.dm
+++ b/code/modules/hydroponics/seed_mobs.dm
@@ -3,6 +3,9 @@
if(!host || !istype(host)) return
+ if(apply_color_to_mob)
+ host.color = traits[TRAIT_PRODUCT_COLOUR]
+
var/datum/ghosttrap/plant/P = get_ghost_trap("living plant")
P.request_player(host, "Someone is harvesting [display_name]. ")
diff --git a/code/modules/hydroponics/seed_packets.dm b/code/modules/hydroponics/seed_packets.dm
index f4b8b951a5..70714cf509 100644
--- a/code/modules/hydroponics/seed_packets.dm
+++ b/code/modules/hydroponics/seed_packets.dm
@@ -283,3 +283,33 @@ GLOBAL_LIST_BOILERPLATE(all_seed_packs, /obj/item/seeds)
/obj/item/seeds/thaadra
seed_type = "thaadra"
+
+/obj/item/seeds/celery
+ seed_type = "celery"
+
+/obj/item/seeds/rhubarb
+ seed_type = "rhubarb"
+
+/obj/item/seeds/wabback
+ seed_type = "whitewabback"
+
+/obj/item/seeds/blackwabback
+ seed_type = "blackwabback"
+
+/obj/item/seeds/wildwabback
+ seed_type = "wildwabback"
+
+/obj/item/seeds/lettuce
+ seed_type = "lettuce"
+
+/obj/item/seeds/siflettuce
+ seed_type = "siflettuce"
+
+/obj/item/seeds/eggyplant
+ seed_type = "egg-plant"
+
+/obj/item/seeds/spineapple
+ seed_type = "spineapple"
+
+/obj/item/seeds/durian
+ seed_type = "durian"
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
index 7425520c29..f66fbb16cc 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
@@ -121,6 +121,14 @@
M.sleeping = max(M.sleeping, 20)
M.drowsyness = max(M.drowsyness, 60)
+/datum/reagent/nutriment/mayo
+ name = "mayonnaise"
+ id = "mayo"
+ description = "A thick, bitter sauce."
+ taste_description = "unmistakably mayonnaise"
+ nutriment_factor = 10
+ color = "#FFFFFF"
+
/datum/reagent/nutriment/flour
name = "Flour"
id = "flour"
@@ -208,6 +216,76 @@
if(volume >= 3)
T.wet_floor()
+/datum/reagent/nutriment/peanutoil
+ name = "Peanut Oil"
+ id = "peanutoil"
+ description = "An oil derived from various types of nuts."
+ taste_description = "nuts"
+ taste_mult = 0.3
+ reagent_state = LIQUID
+ nutriment_factor = 15
+ color = "#4F3500"
+
+/datum/reagent/nutriment/peanutoil/touch_turf(var/turf/simulated/T)
+ if(!istype(T))
+ return
+
+ var/hotspot = (locate(/obj/fire) in T)
+ if(hotspot && !istype(T, /turf/space))
+ var/datum/gas_mixture/lowertemp = T.remove_air(T:air:total_moles)
+ lowertemp.temperature = max(min(lowertemp.temperature-2000, lowertemp.temperature / 2), 0)
+ lowertemp.react()
+ T.assume_air(lowertemp)
+ qdel(hotspot)
+
+ if(volume >= 5)
+ T.wet_floor()
+
+/datum/reagent/nutriment/peanutbutter
+ name = "Peanut Butter"
+ id = "peanutbutter"
+ description = "A butter derived from various types of nuts."
+ taste_description = "peanuts"
+ taste_mult = 0.5
+ reagent_state = LIQUID
+ nutriment_factor = 30
+ color = "#4F3500"
+
+/datum/reagent/nutriment/vanilla
+ name = "Vanilla Extract"
+ id = "vanilla"
+ description = "Vanilla extract. Tastes suspiciously like boring ice-cream."
+ taste_description = "vanilla"
+ taste_mult = 5
+ reagent_state = LIQUID
+ nutriment_factor = 2
+ color = "#0F0A00"
+
+/datum/reagent/nutriment/durian
+ name = "Durian Paste"
+ id = "durianpaste"
+ description = "A strangely sweet and savory paste."
+ taste_description = "sweet and savory"
+ color = "#757631"
+
+ glass_name = "durian paste"
+ glass_desc = "Durian paste. It smells horrific."
+
+/datum/reagent/nutriment/durian/touch_mob(var/mob/M, var/amount)
+ if(iscarbon(M) && !M.isSynthetic())
+ var/message = pick("Oh god, it smells disgusting here.", "What is that stench?", "That's an awful odor.")
+ to_chat(M,"[message]")
+ if(prob(CLAMP(amount, 5, 90)))
+ var/mob/living/L = M
+ L.vomit()
+ return ..()
+
+/datum/reagent/nutriment/durian/touch_turf(var/turf/T, var/amount)
+ if(istype(T))
+ var/obj/effect/decal/cleanable/chemcoating/C = new /obj/effect/decal/cleanable/chemcoating(T)
+ C.reagents.add_reagent(id, amount)
+ return ..()
+
/datum/reagent/nutriment/virus_food
name = "Virus Food"
id = "virusfood"
@@ -551,6 +629,16 @@
glass_name = "berry juice"
glass_desc = "Berry juice. Or maybe it's jam. Who cares?"
+/datum/reagent/drink/juice/pineapple
+ name = "Pineapple Juice"
+ id = "pineapplejuice"
+ description = "A sour but refreshing juice from a pineapple."
+ taste_description = "pineapple"
+ color = "#C3AF00"
+
+ glass_name = "pineapple juice"
+ glass_desc = "Pineapple juice. Or maybe it's spineapple. Who cares?"
+
/datum/reagent/drink/juice/carrot
name = "Carrot juice"
id = "carrotjuice"
@@ -1072,6 +1160,42 @@
glass_desc = "Oh the nostalgia..."
glass_special = list(DRINK_FIZZ)
+/datum/reagent/drink/soda/melonade
+ name = "Melonade"
+ id = "melonade"
+ description = "Oh the.. nostalgia?"
+ taste_description = "watermelon"
+ color = "#FFB3BB"
+ adj_temp = -5
+
+ glass_name = "melonade"
+ glass_desc = "Oh the.. nostalgia?"
+ glass_special = list(DRINK_FIZZ)
+
+/datum/reagent/drink/soda/appleade
+ name = "Appleade"
+ id = "appleade"
+ description = "Applejuice, improved."
+ taste_description = "apples"
+ color = "#FFD1B3"
+ adj_temp = -5
+
+ glass_name = "appleade"
+ glass_desc = "Applejuice, improved."
+ glass_special = list(DRINK_FIZZ)
+
+/datum/reagent/drink/soda/pineappleade
+ name = "Pineappleade"
+ id = "pineappleade"
+ description = "Spineapple, juiced up."
+ taste_description = "sweet`n`sour pineapples"
+ color = "#FFFF00"
+ adj_temp = -5
+
+ glass_name = "pineappleade"
+ glass_desc = "Spineapple, juiced up."
+ glass_special = list(DRINK_FIZZ)
+
/datum/reagent/drink/soda/kiraspecial
name = "Kira Special"
id = "kiraspecial"
@@ -1167,6 +1291,16 @@
/datum/reagent/drink/milkshake/coffeeshake/overdose(var/mob/living/carbon/M, var/alien)
M.make_jittery(5)
+/datum/reagent/drink/milkshake/peanutshake
+ name = "Peanut Milkshake"
+ id = "peanutmilkshake"
+ description = "Savory cream in an ice-cold stature."
+ taste_description = "cold peanuts and cream"
+ color = "#8e6f44"
+
+ glass_name = "Peanut Milkshake"
+ glass_desc = "Savory cream in an ice-cold stature."
+
/datum/reagent/drink/rewriter
name = "Rewriter"
id = "rewriter"
@@ -1209,6 +1343,7 @@
description = "Made in the modern day with proper pomegranate substitute. Who uses real fruit, anyways?"
taste_description = "100% pure pomegranate"
color = "#FF004F"
+ water_based = FALSE
glass_name = "grenadine syrup"
glass_desc = "Sweet and tangy, a bar syrup used to add color or flavor to drinks."
@@ -1277,7 +1412,6 @@
glass_desc = "A tangy substance made of 0.5% natural citrus!"
glass_special = list(DRINK_FIZZ)
-
/datum/reagent/drink/soda/gingerale
name = "Ginger Ale"
id = "gingerale"
@@ -1501,6 +1635,18 @@
glass_desc = "A concoction that should probably be in an engine, rather than your stomach."
glass_icon = DRINK_ICON_NOISY
+/datum/reagent/drink/slimeslammer
+ name = "Slick Slimes Slammer"
+ id = "slimeslammer"
+ description = "A viscous, but savory, ooze."
+ taste_description = "peanuts`n`slime"
+ color = "#93604D"
+ water_based = FALSE
+
+ glass_name = "Slick Slime Slammer"
+ glass_desc = "A concoction that should probably be in an engine, rather than your stomach. Still."
+ glass_icon = DRINK_ICON_NOISY
+
/datum/reagent/drink/eggnog
name = "Eggnog"
id = "eggnog"
@@ -1567,6 +1713,73 @@
if(D.water_based)
M.adjustToxLoss(removed * -2)
+/datum/reagent/drink/mojito
+ name = "Mojito"
+ id = "virginmojito"
+ description = "Mint, bubbly water, and citrus, made for sailing."
+ taste_description = "mint and lime"
+ color = "#FFF7B3"
+
+ glass_name = "mojito"
+ glass_desc = "Mint, bubbly water, and citrus, made for sailing."
+ glass_special = list(DRINK_FIZZ)
+
+/datum/reagent/drink/sexonthebeach
+ name = "Virgin Sex On The Beach"
+ id = "virginsexonthebeach"
+ description = "A secret combination of orange juice and pomegranate."
+ taste_description = "60% orange juice, 40% pomegranate"
+ color = "#7051E3"
+
+ glass_name = "sex on the beach"
+ glass_desc = "A secret combination of orange juice and pomegranate."
+
+/datum/reagent/drink/driverspunch
+ name = "Driver's Punch"
+ id = "driverspunch"
+ description = "A fruity punch!"
+ taste_description = "sharp, sour apples"
+ color = "#D2BA6E"
+
+ glass_name = "driver`s punch"
+ glass_desc = "A fruity punch!"
+ glass_special = list(DRINK_FIZZ)
+
+/datum/reagent/drink/berrycordial
+ name = "Berry Cordial"
+ id = "berrycordial"
+ description = "How berry cordial of you."
+ taste_description = "sweet chivalry"
+ color = "#D26EB8"
+
+ glass_name = "berry cordial"
+ glass_desc = "How berry cordial of you."
+ glass_icon = DRINK_ICON_NOISY
+
+/datum/reagent/drink/tropicalfizz
+ name = "Tropical Fizz"
+ id = "tropicalfizz"
+ description = "One sip and you're in the bahamas."
+ taste_description = "tropical"
+ color = "#69375C"
+
+ glass_name = "tropical fizz"
+ glass_desc = "One sip and you're in the bahamas."
+ glass_icon = DRINK_ICON_NOISY
+ glass_special = list(DRINK_FIZZ)
+
+/datum/reagent/drink/fauxfizz
+ name = "Faux Fizz"
+ id = "fauxfizz"
+ description = "One sip and you're in the bahamas... maybe."
+ taste_description = "slightly tropical"
+ color = "#69375C"
+
+ glass_name = "tropical fizz"
+ glass_desc = "One sip and you're in the bahamas... maybe."
+ glass_icon = DRINK_ICON_NOISY
+ glass_special = list(DRINK_FIZZ)
+
/* Alcohol */
// Basic
@@ -1654,6 +1867,17 @@
return
M.dizziness +=5
+/datum/reagent/ethanol/firepunch
+ name = "Fire Punch"
+ id = "firepunch"
+ description = "Yo ho ho and a jar of honey."
+ taste_description = "sharp butterscotch"
+ color = "#ECB633"
+ strength = 7
+
+ glass_name = "fire punch"
+ glass_desc = "Yo ho ho and a jar of honey."
+
/datum/reagent/ethanol/gin
name = "Gin"
id = "gin"
@@ -1721,6 +1945,18 @@
glass_name = "melon liquor"
glass_desc = "A relatively sweet and fruity 46 proof liquor."
+/datum/reagent/ethanol/melonspritzer
+ name = "Melon Spritzer"
+ id = "melonspritzer"
+ description = "Melons: Citrus style."
+ taste_description = "sour melon"
+ color = "#934D5D"
+ strength = 10
+
+ glass_name = "melon spritzer"
+ glass_desc = "Melons: Citrus style."
+ glass_special = list(DRINK_FIZZ)
+
/datum/reagent/ethanol/rum
name = "Rum"
id = "rum"
@@ -1744,6 +1980,17 @@
glass_name = "sake"
glass_desc = "A glass of sake."
+/datum/reagent/ethanol/sexonthebeach
+ name = "Sex On The Beach"
+ id = "sexonthebeach"
+ description = "A concoction of vodka and a secret combination of orange juice and pomegranate."
+ taste_description = "60% orange juice, 40% pomegranate, 100% alcohol"
+ color = "#7051E3"
+ strength = 15
+
+ glass_name = "sex on the beach"
+ glass_desc = "A concoction of vodka and a secret combination of orange juice and pomegranate."
+
/datum/reagent/ethanol/tequila
name = "Tequila"
id = "tequilla"
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index 8e4e84e3bf..89d03e9673 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -1194,6 +1194,21 @@
required_reagents = list("tomatojuice" = 2, "water" = 1, "sugar" = 1)
result_amount = 4
+/datum/chemical_reaction/food/peanutbutter
+ name = "Peanut Butter"
+ id = "peanutbutter"
+ result = "peanutbutter"
+ required_reagents = list("peanutoil" = 2, "sugar" = 1, "salt" = 1)
+ catalysts = list("enzyme" = 5)
+ result_amount = 3
+
+/datum/chemical_reaction/food/mayonnaise
+ name = "mayonnaise"
+ id = "mayo"
+ result = "mayo"
+ required_reagents = list("egg" = 9, "cornoil" = 5, "lemonjuice" = 5, "salt" = 1)
+ result_amount = 15
+
/datum/chemical_reaction/food/cheesewheel
name = "Cheesewheel"
id = "cheesewheel"
@@ -1822,6 +1837,79 @@
required_reagents = list("lemonjuice" = 1, "sugar" = 1, "water" = 1)
result_amount = 3
+/datum/chemical_reaction/drinks/melonade
+ name = "Melonade"
+ id = "melonade"
+ result = "melonade"
+ required_reagents = list("watermelonjuice" = 1, "sugar" = 1, "sodawater" = 1)
+ result_amount = 3
+
+/datum/chemical_reaction/drinks/appleade
+ name = "Appleade"
+ id = "appleade"
+ result = "appleade"
+ required_reagents = list("applejuice" = 1, "sugar" = 1, "sodawater" = 1)
+ result_amount = 3
+
+/datum/chemical_reaction/drinks/pineappleade
+ name = "Pineappleade"
+ id = "pineappleade"
+ result = "pineappleade"
+ required_reagents = list("pineapplejuice" = 2, "limejuice" = 1, "sodawater" = 2, "honey" = 1)
+ result_amount = 5
+
+/datum/chemical_reaction/drinks/driverspunch
+ name = "Driver`s Punch"
+ id = "driverspunch"
+ result = "driverspunch"
+ required_reagents = list("appleade" = 2, "orangejuice" = 1, "mint" = 1, "sodawater" = 1)
+ result_amount = 3
+
+/datum/chemical_reaction/drinks/mintapplesparkle
+ name = "Mint Apple Sparkle"
+ id = "mintapplesparkle"
+ result = "mintapplesparkle"
+ required_reagents = list("appleade" = 2, "mint" = 1)
+ inhibitors = list("sodawater" = 1)
+ result_amount = 3
+
+/datum/chemical_reaction/drinks/berrycordial
+ name = "Berry Cordial"
+ id = "berrycordial"
+ result = "berrycordial"
+ required_reagents = list("berryjuice" = 4, "sugar" = 1, "lemonjuice" = 1)
+ result_amount = 5
+
+/datum/chemical_reaction/drinks/tropicalfizz
+ name = "Tropical Fizz"
+ id = "tropicalfizz"
+ result = "tropicalfizz"
+ required_reagents = list("sodawater" = 6, "berryjuice" = 1, "mint" = 1, "limejuice" = 1, "lemonjuice" = 1, "pineapplejuice" = 1)
+ inhibitors = list("sugar" = 1)
+ result_amount = 8
+
+/datum/chemical_reaction/drinks/melonspritzer
+ name = "Melon Spritzer"
+ id = "melonspritzer"
+ result = "melonspritzer"
+ required_reagents = list("watermelonjuice" = 2, "wine" = 2, "applejuice" = 1, "limejuice" = 1)
+ result_amount = 6
+
+/datum/chemical_reaction/drinks/fauxfizz
+ name = "Faux Fizz"
+ id = "fauxfizz"
+ result = "fauxfizz"
+ required_reagents = list("sodawater" = 2, "berryjuice" = 1, "applejuice" = 1, "limejuice" = 1, "honey" = 1)
+ inhibitors = list("sugar" = 1)
+ result_amount = 6
+
+/datum/chemical_reaction/drinks/firepunch
+ name = "Fire Punch"
+ id = "firepunch"
+ result = "firepunch"
+ required_reagents = list("sugar" = 1, "rum" = 2)
+ result_amount = 3
+
/datum/chemical_reaction/drinks/kiraspecial
name = "Kira Special"
id = "kiraspecial"
@@ -1843,6 +1931,13 @@
required_reagents = list("cream" = 1, "ice" = 2, "milk" = 2)
result_amount = 5
+/datum/chemical_reaction/drinks/peanutmilkshake
+ name = "Peanutbutter Milkshake"
+ id = "peanutmilkshake"
+ result = "peanutmilkshake"
+ required_reagents = list("cream" = 1, "ice" = 1, "peanutbutter" = 2, "milk" = 1)
+ result_amount = 5
+
/datum/chemical_reaction/drinks/rewriter
name = "Rewriter"
id = "rewriter"
@@ -2216,6 +2311,13 @@
required_reagents = list("rum" = 3, "limejuice" = 1, "mint" = 1)
result_amount = 5
+/datum/chemical_reaction/drinks/virginmojito
+ name = "Mojito"
+ id = "virginmojito"
+ result = "virginmojito"
+ required_reagents = list("sodawater" = 3, "limejuice" = 1, "mint" = 1, "sugar" = 1)
+ result_amount = 5
+
/datum/chemical_reaction/drinks/piscosour
name = "Pisco Sour"
id = "piscosour"
@@ -2288,6 +2390,27 @@
required_reagents = list("cornoil" = 2, "honey" = 1)
result_amount = 3
+/datum/chemical_reaction/drinks/slimeslam
+ name = "Slick Slime Slammer"
+ id = "slimeslammer"
+ result = "slimeslammer"
+ required_reagents = list("cornoil" = 2, "peanutbutter" = 1)
+ result_amount = 3
+
+/datum/chemical_reaction/drinks/virginsexonthebeach
+ name = "Virgin Sex On The Beach"
+ id = "virginsexonthebeach"
+ result = "virginsexonthebeach"
+ required_reagents = list("orangejuice" = 3, "grenadine" = 2)
+ result_amount = 4
+
+/datum/chemical_reaction/drinks/sexonthebeach
+ name = "Sex On The Beach"
+ id = "sexonthebeach"
+ result = "sexonthebeach"
+ required_reagents = list("orangejuice" = 3, "grenadine" = 2, "vodka" = 1)
+ result_amount = 6
+
/datum/chemical_reaction/drinks/eggnog
name = "Eggnog"
id = "eggnog"
diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi
index bb1f398a79..65d92bbe67 100644
Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ
diff --git a/icons/obj/food_ingredients.dmi b/icons/obj/food_ingredients.dmi
index 3e30f51153..0437258fb6 100644
Binary files a/icons/obj/food_ingredients.dmi and b/icons/obj/food_ingredients.dmi differ
diff --git a/icons/obj/hydroponics_growing.dmi b/icons/obj/hydroponics_growing.dmi
index 9bf7fa4354..12de9e5a6d 100644
Binary files a/icons/obj/hydroponics_growing.dmi and b/icons/obj/hydroponics_growing.dmi differ
diff --git a/icons/obj/hydroponics_products.dmi b/icons/obj/hydroponics_products.dmi
index 9fdc7c763f..1e44595752 100644
Binary files a/icons/obj/hydroponics_products.dmi and b/icons/obj/hydroponics_products.dmi differ
diff --git a/icons/obj/seeds.dmi b/icons/obj/seeds.dmi
index 380cae9e9c..e8dfd76299 100644
Binary files a/icons/obj/seeds.dmi and b/icons/obj/seeds.dmi differ
diff --git a/polaris.dme b/polaris.dme
index 336c0776af..fe78da6b6a 100644
--- a/polaris.dme
+++ b/polaris.dme
@@ -814,6 +814,7 @@
#include "code\game\objects\effects\zone_divider.dm"
#include "code\game\objects\effects\alien\aliens.dm"
#include "code\game\objects\effects\chem\chemsmoke.dm"
+#include "code\game\objects\effects\chem\coating.dm"
#include "code\game\objects\effects\chem\foam.dm"
#include "code\game\objects\effects\chem\water.dm"
#include "code\game\objects\effects\decals\cleanable.dm"