diff --git a/code/game/machinery/vendors/departmental_vendors.dm b/code/game/machinery/vendors/departmental_vendors.dm index a8793506384..a7b1e63320e 100644 --- a/code/game/machinery/vendors/departmental_vendors.dm +++ b/code/game/machinery/vendors/departmental_vendors.dm @@ -185,6 +185,7 @@ /obj/item/seeds/berry = 3, /obj/item/seeds/cabbage = 3, /obj/item/seeds/carrot = 3, + /obj/item/seeds/cassava = 3, /obj/item/seeds/cherry = 3, /obj/item/seeds/chanter = 3, /obj/item/seeds/chili = 3, diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index 6c9b762d196..492293b821e 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -1072,6 +1072,8 @@ Mix one part each of lemon juice, sugar, and water.

Melonade:

Mix two parts each of lemonade and watermelon juice to one part ice. +

Milk Tea:

+ Mix one part each of tea, sugar, and milk.

Monster Mix:

Mix one part each of soda water, Dr. Gibb, space mountain wind soda, space-up, cola, and ice.

Party Punch:

@@ -1117,6 +1119,10 @@ Mix one part TCP Sip (Easy Soft Drinks) to one part Triple Citrus (Trivial Soft Drinks).

Bubbly Beep: ยง

Mix one part space cleaner to one part soda water. Custodial or Chemistry can help. +

Bubble Milk Tea

+ Mix three parts Milk Tea (Easy Soft Drinks) to one part cooked tapioca pearls. The Kitchen and Botany can help. +

Bubble Tea

+ Mix two parts tea to one part each of sugar and cooked tapioca pearls. The Kitchen and Botany can help.

Cherry Shake:

Mix one part each of cherry jelly, cream, and ice. Botany or the Kitchen can help.

Chocolate Milk:

diff --git a/code/modules/cooking/recipes/cutting_board_recipes.dm b/code/modules/cooking/recipes/cutting_board_recipes.dm index 294825e03b1..dfeb76d0f99 100644 --- a/code/modules/cooking/recipes/cutting_board_recipes.dm +++ b/code/modules/cooking/recipes/cutting_board_recipes.dm @@ -586,3 +586,11 @@ PCWJ_ADD_ITEM(/obj/item/food/sliced/tomato), PCWJ_ADD_ITEM(/obj/item/food/sliced/bread), ) + +/datum/cooking/recipe/drytapioca_pearls + container_type = /obj/item/reagent_containers/cooking/board + product_type = /obj/item/reagent_containers/food/drytapioca_pearls + catalog_category = COOKBOOK_CATEGORY_SIDES + steps = list( + PCWJ_ADD_ITEM(/obj/item/food/tapiocadough) + ) diff --git a/code/modules/cooking/recipes/oven_recipes.dm b/code/modules/cooking/recipes/oven_recipes.dm index 99c2d6bfdaa..0b56d6f373f 100644 --- a/code/modules/cooking/recipes/oven_recipes.dm +++ b/code/modules/cooking/recipes/oven_recipes.dm @@ -1181,3 +1181,12 @@ PCWJ_ADD_ITEM(/obj/item/food/meatball), PCWJ_USE_OVEN(J_MED, 10 SECONDS), ) + +/datum/cooking/recipe/tapiocaflatbread + container_type = /obj/item/reagent_containers/cooking/oven + product_type = /obj/item/food/tapiocaflatbread + catalog_category = COOKBOOK_CATEGORY_BREAD + steps = list( + PCWJ_ADD_ITEM(/obj/item/food/tapiocadough), + PCWJ_USE_OVEN(J_MED, 15 SECONDS), + ) diff --git a/code/modules/cooking/recipes/stove_recipes.dm b/code/modules/cooking/recipes/stove_recipes.dm index e0aba517787..a036674f0ac 100644 --- a/code/modules/cooking/recipes/stove_recipes.dm +++ b/code/modules/cooking/recipes/stove_recipes.dm @@ -810,3 +810,14 @@ PCWJ_ADD_ITEM(/obj/item/food/choc_pile), PCWJ_USE_STOVE(J_MED, 10 SECONDS), ) + +/datum/cooking/recipe/tapioca_pudding + container_type =/obj/item/reagent_containers/cooking/pot + product_type = /obj/item/food/tapioca_pudding + catalog_category = COOKBOOK_CATEGORY_DESSERTS + steps = list( + PCWJ_ADD_REAGENT("tapioca", 5), + PCWJ_ADD_REAGENT("milk", 5), + PCWJ_ADD_REAGENT("sugar", 5), + PCWJ_USE_STOVE(J_MED, 20 SECONDS), + ) diff --git a/code/modules/food_and_drinks/food/foods/baked_goods.dm b/code/modules/food_and_drinks/food/foods/baked_goods.dm index b45b65d5b6e..3b49e444e23 100644 --- a/code/modules/food_and_drinks/food/foods/baked_goods.dm +++ b/code/modules/food_and_drinks/food/foods/baked_goods.dm @@ -1341,3 +1341,15 @@ #undef DONUT_NORMAL #undef DONUT_FROSTED + +/obj/item/food/tapiocaflatbread + name = "tapioca flatbread" + desc = "A delicious flatbread made from tapioca." + icon = 'icons/obj/food/food_ingredients.dmi' + icon_state = "tapioca_flatbread" + bitesize = 4 + filling_color = "#ecb54f" + list_reagents = list("nutriment" = 4, "sugar" = 2) + tastes = list("tapioca" = 0.5, "flat" = 0.25, "bread" = 0.25) + goal_difficulty = FOOD_GOAL_HARD + diff --git a/code/modules/food_and_drinks/food/foods/desserts.dm b/code/modules/food_and_drinks/food/foods/desserts.dm index 1287e11ddbf..17752a1e0fe 100644 --- a/code/modules/food_and_drinks/food/foods/desserts.dm +++ b/code/modules/food_and_drinks/food/foods/desserts.dm @@ -59,3 +59,13 @@ filling_color = "#F2F2F2" list_reagents = list("minttoxin" = 1) goal_difficulty = FOOD_GOAL_NORMAL + +/obj/item/food/tapioca_pudding + name = "tapioca pudding" + desc = "A bubbly and sweet pudding." + icon_state = "tapiocapudding" + bitesize = 4 + filling_color = "#c4c5bb" + list_reagents = list("sugar" = 3, "milk" = 2) + tastes = list("vanilla" = 2, "chewiness" = 1) + goal_difficulty = FOOD_GOAL_HARD diff --git a/code/modules/food_and_drinks/food/foods/ingredients.dm b/code/modules/food_and_drinks/food/foods/ingredients.dm index 8e4f4a053da..52548b37372 100644 --- a/code/modules/food_and_drinks/food/foods/ingredients.dm +++ b/code/modules/food_and_drinks/food/foods/ingredients.dm @@ -294,7 +294,6 @@ return ITEM_INTERACT_COMPLETE return NONE - /obj/item/food/rawcookies/chocochips desc = "Ready for oven! They have little pieces of chocolate all over them" @@ -302,6 +301,14 @@ list_reagents = list("nutriment" = 5, "sugar" = 5, "chocolate" = 5) tastes = list("dough" = 1, "sugar" = 1, "chocolate" = 1) +/obj/item/food/tapiocadough + name = "uncooked tapioca dough" + desc = "A flat piece of uncooked tapioca dough." + icon = 'icons/obj/food/food_ingredients.dmi' + icon_state = "tapioca_dough" + list_reagents = list("tapioca" = 5, "water" = 2) + tastes = list ("raw dough" = 1) + ////////////////////// // Chocolate // ////////////////////// diff --git a/code/modules/hydroponics/grown/cassava.dm b/code/modules/hydroponics/grown/cassava.dm new file mode 100644 index 00000000000..b600f31a0e2 --- /dev/null +++ b/code/modules/hydroponics/grown/cassava.dm @@ -0,0 +1,44 @@ +// cassava root +/obj/item/seeds/cassava + name = "pack of cassava seeds" + desc = "These seeds grow into Cassava." + icon_state = "seed-cassava" + species = "cassava" + plantname = "Cassava" + product = /obj/item/food/grown/cassava + lifespan = 50 + endurance = 35 + yield = 5 + growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' + icon_grow = "cassava-grow" + icon_dead = "cassava-dead" + mutatelist = list(/obj/item/seeds/cassava/iron) + reagents_add = list("tapioca" = 0.4, "nutriment" = 0.1) + +/obj/item/food/grown/cassava + seed = /obj/item/seeds/cassava + name = "cassava root" + desc = "The root of the cassava plant. Nice." + icon_state = "cassava" + filling_color = "#d1d1bcff" + bitesize = 5 + tastes = list("dirt" = 0.75, "starch" = 0.25) + +// Cast-ava root (cast iron, i really was trying to think of puns for this but :shrug:) +/obj/item/seeds/cassava/iron + name = "pack of cast-ava seeds." + desc = "These grow into cassava that are made of softened cast-iron steel." + species = "ironcassava" + plantname = "Cast-ava" + product = /obj/item/food/grown/cassava/iron + mutatelist = list() + reagents_add = list("nutriment" = 0.4, "tapioca" = 0.1) + +/obj/item/food/grown/cassava/iron + seed = /obj/item/seeds/cassava/iron + name = "cast-ava root" + desc = "A cassava root that looks like it was forged out of cast-iron." + icon_state = "ironcassava" + filling_color = "#333333ff" + distill_reagent = null diff --git a/code/modules/reagents/chemistry/reagents/drinks_reagents.dm b/code/modules/reagents/chemistry/reagents/drinks_reagents.dm index 02af4933e59..bc4008bec73 100644 --- a/code/modules/reagents/chemistry/reagents/drinks_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drinks_reagents.dm @@ -822,6 +822,47 @@ M.satiety += 5 return ..() + +/datum/reagent/consumable/drink/tapioca_pearls + name = "Tapioca Pearls" + description = "Tapioca pearls made from starch ground by cassava root. Tastes pretty good in tea." + id = "tapiocapearls" + color = "#222222" + drink_icon = "tapiocapearl" + drink_name = "Tapioca Pearls" + drink_desc = "This would go great with sugar, milk, and tea." + taste_description = "chewy starch" + +/datum/reagent/consumable/drink/bubbletea + name = "Bubble Tea" + description = "A tea-based drink made with tapioca pearls. Known by some as boba tea." + id = "bubbletea" + color = "#c79a47" + drink_icon = "bubbletea" + drink_name = "Bubble Tea" + drink_desc = "You feel trendy for drinking this." + taste_description = "sweet tea with chewy pearls" + +/datum/reagent/consumable/drink/milktea + name = "Milk Tea" + description = "Tea and milk mixed together. Both sweet and creamy." + id = "milktea" + color = "#bfa46f" + drink_icon = "milktea" + drink_name = "Milk Tea" + drink_desc = "A refreshing and sweet beverage." + taste_description = "sweet milky tea" + +/datum/reagent/consumable/drink/bubblemilktea + name = "Bubble Milk Tea" + description = "A tea-based drink made with milk and tapioca pearls. Known by some as boba milk tea." + id = "bubblemilktea" + color = "#d4b483" + drink_icon = "bubblemilktea" + drink_name = "Bubble Milk Tea" + drink_desc = "You feel extra trendy for drinking this." + taste_description = "sweet milky tea with chewy pearls" + /datum/reagent/consumable/drink/royrogers name = "Roy Rogers" description = "A cola classic from the days of Earth." diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index b66490a7994..890aad608d9 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -1034,3 +1034,17 @@ color = "#ffffff" goal_department = "Kitchen" goal_difficulty = REAGENT_GOAL_NORMAL + +/datum/reagent/consumable/tapioca_powder + name = "Tapioca Powder" + id = "tapioca" + description = "A starchy powder made by grinding up cassava. Would be good mixed with water." + color = "#DFDFDF" // rgb: 223, 223, 223 + taste_description = "starchy powder" + +/datum/reagent/consumable/drytapioca_pearls + name = "Dry Tapioca Pearls" + id = "drytapioca" + description = "Small, hard balls of dried tapioca powder." + color = "#DFDFDF" // rgb: 223, 223, 223 + taste_description = "dry starchy pearls" diff --git a/code/modules/reagents/chemistry/recipes/drinks_reactions.dm b/code/modules/reagents/chemistry/recipes/drinks_reactions.dm index e44740ffedf..18fd2cf1896 100644 --- a/code/modules/reagents/chemistry/recipes/drinks_reactions.dm +++ b/code/modules/reagents/chemistry/recipes/drinks_reactions.dm @@ -1158,6 +1158,41 @@ result_amount = 5 mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/tapioca_pearls + name = "Tapioca Pearls" + id = "tapiocapearls" + result = "tapiocapearls" + required_reagents = list("drytapioca" = 1, "water" = 1) + result_amount = 2 + min_temp = T0C + 100 + mix_message = "The pearls turn plump and translucent as they cook through." + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/bubbletea + name = "Bubble Tea" + id = "bubbletea" + result = "bubbletea" + required_reagents = list("tea" = 2, "sugar" = 1, "tapiocapearls" = 1) + result_amount = 4 + mix_message = "The pearls fall to the bottom of the glass as the tea mixes with the sugar." + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/milktea + name = "Milk Tea" + id = "milktea" + result = "milktea" + required_reagents = list("tea" = 1, "sugar" = 1, "milk" = 1) + result_amount = 3 + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/bubblemilktea + name = "Bubble Milk Tea" + id = "bubblemilktea" + result = "bubblemilktea" + required_reagents = list("milktea" = 3, "tapiocapearls" = 1) + result_amount = 4 + /datum/chemical_reaction/royrogers name = "Roy Rogers" id = "royrogers" diff --git a/code/modules/reagents/chemistry/recipes/food_reactions.dm b/code/modules/reagents/chemistry/recipes/food_reactions.dm index 583f354d333..9e3d33fbf09 100644 --- a/code/modules/reagents/chemistry/recipes/food_reactions.dm +++ b/code/modules/reagents/chemistry/recipes/food_reactions.dm @@ -258,3 +258,16 @@ result = "vinegar" required_reagents = list("acetic_acid" = 1, "water" = 9) result_amount = 10 + +/datum/chemical_reaction/tapiocadough + name = "Tapioca dough" + id = "tapiocadough" + result = null + required_reagents = list("water" = 10, "tapioca" = 15) + result_amount = 1 + mix_message = "The ingredients form a flat dough." + +/datum/chemical_reaction/tapiocadough/on_reaction(datum/reagents/holder, created_volume) + var/location = get_turf(holder.my_atom) + for(var/i in 1 to created_volume) + new /obj/item/food/tapiocadough(location) diff --git a/code/modules/reagents/reagent_containers/food.dm b/code/modules/reagents/reagent_containers/food.dm new file mode 100644 index 00000000000..91f3eb9ed0f --- /dev/null +++ b/code/modules/reagents/reagent_containers/food.dm @@ -0,0 +1,53 @@ +// This is a base used for food ingredients that is to be turned into a reagent, it's mainly pill code, with no swallowing function. +/obj/item/reagent_containers/food + name = "food item" + desc = ABSTRACT_TYPE_DESC + inhand_icon_state = "tapioca_drypearls" // placeholder + possible_transfer_amounts = null + visible_transfer_rate = FALSE + volume = 10 + +/obj/item/reagent_containers/food/activate_self(mob/user) + if(..()) + return FINISH_ATTACK + + apply(user, user) + +/obj/item/reagent_containers/food/proc/apply(mob/living/carbon/C, mob/user) + if(!istype(C)) + return FALSE + + if(!reagents.total_volume) + qdel(src) + return TRUE + +/obj/item/reagent_containers/food/interact_with_atom(atom/target, mob/living/user, list/modifiers) + if(isnull(target.reagents)) + return + + return ..() + +/obj/item/reagent_containers/food/mob_act(mob/target, mob/living/user) + apply(target, user) + return TRUE + +/obj/item/reagent_containers/food/normal_act(atom/target, mob/living/user) + . = TRUE + if(!target.is_refillable()) + return + if(target.reagents.holder_full()) + to_chat(user, "[target] is full.") + return + + to_chat(user, "You [!target.reagents.total_volume ? "pour" : "dump"] [src] in [target].") + for(var/mob/O as anything in oviewers(2, user)) + O.show_message("[user] puts something in [target].", 1) + reagents.trans_to(target, reagents.total_volume) + qdel(src) + +/obj/item/reagent_containers/food/drytapioca_pearls + name = "dry tapioca pearls" + desc = "Small, hard balls of dried tapioca powder." + icon = 'icons/obj/food/food_ingredients.dmi' + icon_state = "tapioca_drypearls" + list_reagents = list("drytapioca" = 10) diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index c57c0edc9da..9b0e298bb34 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index 19a43ff7d57..c1b6f351e02 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ diff --git a/icons/obj/food/food_ingredients.dmi b/icons/obj/food/food_ingredients.dmi index 85d7da73600..b5faf97905b 100644 Binary files a/icons/obj/food/food_ingredients.dmi and b/icons/obj/food/food_ingredients.dmi differ diff --git a/icons/obj/hydroponics/growing_vegetables.dmi b/icons/obj/hydroponics/growing_vegetables.dmi index 39da034b007..5423ece8482 100644 Binary files a/icons/obj/hydroponics/growing_vegetables.dmi and b/icons/obj/hydroponics/growing_vegetables.dmi differ diff --git a/icons/obj/hydroponics/harvest.dmi b/icons/obj/hydroponics/harvest.dmi index ded1705672d..bf82eaff6b1 100644 Binary files a/icons/obj/hydroponics/harvest.dmi and b/icons/obj/hydroponics/harvest.dmi differ diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi index db4b781941c..bf0ab047d89 100644 Binary files a/icons/obj/hydroponics/seeds.dmi and b/icons/obj/hydroponics/seeds.dmi differ diff --git a/paradise.dme b/paradise.dme index 9e7ffd4f51e..3664c9df0c1 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1939,10 +1939,10 @@ #include "code\modules\client\preference\loadout\loadout_suit.dm" #include "code\modules\client\preference\loadout\loadout_tgui.dm" #include "code\modules\client\preference\loadout\loadout_uniform.dm" -#include "code\modules\client\preference\quirks\quirk.dm" -#include "code\modules\client\preference\quirks\quirk_tgui.dm" #include "code\modules\client\preference\quirks\negative_quirks.dm" #include "code\modules\client\preference\quirks\positive_quirks.dm" +#include "code\modules\client\preference\quirks\quirk.dm" +#include "code\modules\client\preference\quirks\quirk_tgui.dm" #include "code\modules\clothing\chameleon.dm" #include "code\modules\clothing\clothing.dm" #include "code\modules\clothing\ears\earmuffs.dm" @@ -2244,6 +2244,7 @@ #include "code\modules\hydroponics\grown\beans.dm" #include "code\modules\hydroponics\grown\berries.dm" #include "code\modules\hydroponics\grown\cannabis.dm" +#include "code\modules\hydroponics\grown\cassava.dm" #include "code\modules\hydroponics\grown\cereals.dm" #include "code\modules\hydroponics\grown\chili.dm" #include "code\modules\hydroponics\grown\citrus.dm" @@ -2503,8 +2504,8 @@ #include "code\modules\mob\living\basic\hostile\jungle_animals.dm" #include "code\modules\mob\living\basic\hostile\killertomato.dm" #include "code\modules\mob\living\basic\hostile\pirate.dm" -#include "code\modules\mob\living\basic\hostile\spiderlings.dm" #include "code\modules\mob\living\basic\hostile\soviet.dm" +#include "code\modules\mob\living\basic\hostile\spiderlings.dm" #include "code\modules\mob\living\basic\hostile\tree.dm" #include "code\modules\mob\living\basic\hostile\viscerator.dm" #include "code\modules\mob\living\basic\hostile\vox_raiders.dm" @@ -2514,6 +2515,9 @@ #include "code\modules\mob\living\basic\hostile\alien\alien_mob_maid.dm" #include "code\modules\mob\living\basic\hostile\alien\alien_mob_queen.dm" #include "code\modules\mob\living\basic\hostile\alien\alien_mob_sentinel.dm" +#include "code\modules\mob\living\basic\hostile\bees\bee_ai_behaviors.dm" +#include "code\modules\mob\living\basic\hostile\bees\bee_ai_subtree.dm" +#include "code\modules\mob\living\basic\hostile\bees\bees.dm" #include "code\modules\mob\living\basic\hostile\demons\demon.dm" #include "code\modules\mob\living\basic\hostile\demons\demon_loot.dm" #include "code\modules\mob\living\basic\hostile\demons\demon_objectives.dm" @@ -2522,16 +2526,11 @@ #include "code\modules\mob\living\basic\hostile\demons\pulse_demon_interactions.dm" #include "code\modules\mob\living\basic\hostile\demons\shadow_demon.dm" #include "code\modules\mob\living\basic\hostile\demons\slaughter_demon.dm" -#include "code\modules\mob\living\basic\hostile\bees\bee_ai_behaviors.dm" -#include "code\modules\mob\living\basic\hostile\bees\bee_ai_subtree.dm" -#include "code\modules\mob\living\basic\hostile\bees\bees.dm" #include "code\modules\mob\living\basic\hostile\giant_spider\giant_spider.dm" #include "code\modules\mob\living\basic\hostile\giant_spider\giant_spider_actions.dm" #include "code\modules\mob\living\basic\hostile\giant_spider\giant_spider_ai.dm" #include "code\modules\mob\living\basic\hostile\gorilla\gorilla.dm" #include "code\modules\mob\living\basic\hostile\gorilla\gorilla_emote.dm" -#include "code\modules\mob\living\basic\hostile\revenant\revenant.dm" -#include "code\modules\mob\living\basic\hostile\revenant\revenant_abilities.dm" #include "code\modules\mob\living\basic\hostile\nether_mobs\blankbody.dm" #include "code\modules\mob\living\basic\hostile\nether_mobs\creature.dm" #include "code\modules\mob\living\basic\hostile\nether_mobs\faithless.dm" @@ -2542,6 +2541,8 @@ #include "code\modules\mob\living\basic\hostile\nether_mobs\migo.dm" #include "code\modules\mob\living\basic\hostile\nether_mobs\nether_mobs.dm" #include "code\modules\mob\living\basic\hostile\nether_mobs\skeleton_mob.dm" +#include "code\modules\mob\living\basic\hostile\revenant\revenant.dm" +#include "code\modules\mob\living\basic\hostile\revenant\revenant_abilities.dm" #include "code\modules\mob\living\basic\lavaland\goliath\goliath.dm" #include "code\modules\mob\living\basic\lavaland\goliath\goliath_actions.dm" #include "code\modules\mob\living\basic\lavaland\goliath\goliath_ai.dm" @@ -3054,6 +3055,7 @@ #include "code\modules\reagents\reagent_containers\borghydro.dm" #include "code\modules\reagents\reagent_containers\chemical_bottle.dm" #include "code\modules\reagents\reagent_containers\dropper.dm" +#include "code\modules\reagents\reagent_containers\food.dm" #include "code\modules\reagents\reagent_containers\glass_containers.dm" #include "code\modules\reagents\reagent_containers\hypospray.dm" #include "code\modules\reagents\reagent_containers\iv_bag.dm"