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"