From 3b7630259c8ed678187e9b39cf6c5fca6a17c3a6 Mon Sep 17 00:00:00 2001 From: Nadyr <41974248+Darlantanis@users.noreply.github.com> Date: Fri, 12 Apr 2019 05:59:48 -0500 Subject: [PATCH] Introducing matcha! -Adds matcha, matcha powder, and matcha latte reagents -Adds recipe to microwave a steamed tea leaf to get tencha then use a knife to devein and obtain matcha -Adds matcha latte to the coffee dispenser, also makes the new cartridge available in the coffee dispenser refill crate -Fixes grammatical issues with tea -Removes teamush added when steaming tea leaves -Adds matcha ice cream -Adds icons for new objects --- code/game/machinery/kitchen/icecream.dm | 16 +++-- code/modules/food/recipes_microwave_vr.dm | 8 ++- .../Chemistry-Reagents-Food-Drinks.dm | 64 ++++++++++++++++-- code/modules/reagents/Chemistry-Recipes_ch.dm | 14 +++- .../reagents/dispenser/cartridge_presets.dm | 1 + .../reagents/dispenser/dispenser2_energy.dm | 2 +- .../reagents/dispenser/dispenser_presets.dm | 3 +- code/modules/reagents/dispenser/supply.dm | 3 +- .../reagent_containers/food/snacks_vr.dm | 29 +++++++- icons/obj/food.dmi | Bin 114747 -> 116549 bytes 10 files changed, 122 insertions(+), 18 deletions(-) diff --git a/code/game/machinery/kitchen/icecream.dm b/code/game/machinery/kitchen/icecream.dm index 09cb3289ed..35b41bafbd 100644 --- a/code/game/machinery/kitchen/icecream.dm +++ b/code/game/machinery/kitchen/icecream.dm @@ -2,8 +2,10 @@ #define ICECREAM_CHOCOLATE 2 #define ICECREAM_STRAWBERRY 3 #define ICECREAM_BLUE 4 -#define CONE_WAFFLE 5 -#define CONE_CHOC 6 +#define ICECREAM_MATCHA 5 +#define CONE_WAFFLE 6 +#define CONE_CHOC 7 + // Ported wholesale from Apollo Station. @@ -29,6 +31,8 @@ return list("milk", "ice", "berryjuice") if(ICECREAM_BLUE) return list("milk", "ice", "singulo") + if(ICECREAM_MATCHA) + return list("milk", "ice", "matcha") if(CONE_WAFFLE) return list("flour", "sugar") if(CONE_CHOC) @@ -44,6 +48,8 @@ return "strawberry" if(ICECREAM_BLUE) return "blue" + if(ICECREAM_MATCHA) + return "matcha" if(CONE_WAFFLE) return "waffle" if(CONE_CHOC) @@ -54,7 +60,7 @@ /obj/machinery/icecream_vat/initialize() . = ..() create_reagents(100) - while(product_types.len < 6) + while(product_types.len < 7) product_types.Add(5) reagents.add_reagent("milk", 5) reagents.add_reagent("flour", 5) @@ -72,7 +78,8 @@ dat += "Vanilla icecream: Select Make x5 [product_types[ICECREAM_VANILLA]] scoops left. (Ingredients: milk, ice)
" dat += "Strawberry icecream: Select Make x5 [product_types[ICECREAM_STRAWBERRY]] dollops left. (Ingredients: milk, ice, berry juice)
" dat += "Chocolate icecream: Select Make x5 [product_types[ICECREAM_CHOCOLATE]] dollops left. (Ingredients: milk, ice, coco powder)
" - dat += "Blue icecream: Select Make x5 [product_types[ICECREAM_BLUE]] dollops left. (Ingredients: milk, ice, singulo)
" + dat += "Blue icecream: Select Make x5 [product_types[ICECREAM_BLUE]] dollops left. (Ingredients: milk, ice, singulo)
" + dat += "Matcha icecream: Select Make x5 [product_types[ICECREAM_MATCHA]] dollops left. (Ingredients: milk, ice, matcha)
" dat += "
CONES
" dat += "Waffle cones: Dispense Make x5 [product_types[CONE_WAFFLE]] cones left. (Ingredients: flour, sugar)
" dat += "Chocolate cones: Dispense Make x5 [product_types[CONE_CHOC]] cones left. (Ingredients: flour, sugar, coco powder)
" @@ -191,5 +198,6 @@ #undef FLAVOUR_CHOCOLATE #undef FLAVOUR_STRAWBERRY #undef FLAVOUR_BLUE +#undef FLAVOUR_MATCHA #undef CONE_WAFFLE #undef CONE_CHOC \ No newline at end of file diff --git a/code/modules/food/recipes_microwave_vr.dm b/code/modules/food/recipes_microwave_vr.dm index 475a25674f..5bfdcd66af 100644 --- a/code/modules/food/recipes_microwave_vr.dm +++ b/code/modules/food/recipes_microwave_vr.dm @@ -218,4 +218,10 @@ items = list( /obj/item/weapon/reagent_containers/food/snacks/steamrolltealeaf ) - result = /obj/item/weapon/reagent_containers/food/snacks/greentealeaf \ No newline at end of file + result = /obj/item/weapon/reagent_containers/food/snacks/greentealeaf + +/datum/recipe/tencha //TODO: Figure out how to make this recipe with a drying rack. + items = list( + /obj/item/weapon/reagent_containers/food/snacks/steamtealeaf + ) + result = /obj/item/weapon/reagent_containers/food/snacks/tencha \ No newline at end of file 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 d0534ee42b..4d4de7b0ab 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -807,7 +807,7 @@ adj_sleepy = -3 adj_temp = 20 - glass_name = "cup of tea" + glass_name = "tea" glass_desc = "Tasty black tea, it has antioxidants, it's good for you!" cup_icon_state = "cup_tea" @@ -945,6 +945,22 @@ cup_name = "cup of watermelon tea" cup_desc = "A tasty mixture of watermelon and tea. It's apparently good for you!" +/datum/reagent/drink/tea/matcha_latte //Putting this as tea to inherit tea variables. Should not have the same toxloss as matcha so it can be placed in a dispenser without breaking balance. + name = "Matcha latte" + id = "matcha_latte" + description = "A nice and tasty beverage to enjoy while studying." + taste_description = "creamy, vegetal sweetness" + color = "#b1c48c" + adj_temp = 5 + + glass_name = "matcha latte" + glass_desc = "A nice and refreshing beverage while you are studying." + + cup_icon_state = "cup_latte" + cup_name = "cup of matcha latte" + cup_desc = "A nice and refreshing beverage while you are studying." + + /datum/reagent/drink/coffee name = "Coffee" id = "coffee" @@ -1030,7 +1046,6 @@ glass_desc = "A nice and refreshing beverage while you are reading." glass_name = "soy latte" - glass_desc = "A nice and refrshing beverage while you are reading." cup_icon_state = "cup_latte" cup_name = "cup of soy latte" @@ -1049,11 +1064,11 @@ adj_temp = 5 glass_name = "cafe latte" - glass_desc = "A nice, strong and refreshing beverage while you are reading." + glass_desc = "A nice, strong, and refreshing beverage while you are reading." cup_icon_state = "cup_latte" cup_name = "cup of cafe latte" - cup_desc = "A nice and refreshing beverage while you are reading." + cup_desc = "A nice, strong, and refreshing beverage while you are reading." /datum/reagent/drink/coffee/cafe_latte/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() @@ -3295,7 +3310,7 @@ glass_name = "Sit on my face" glass_desc = "A drink made of irish coffee and nuts, mostly known for its vulgar name. Makes for a great pickup line though!" - + /datum/reagent/ethanol/hachi name = "Hachi" id = "hachi" @@ -3366,7 +3381,7 @@ name = "Instant green tea powder" id = "instantteapowdergreen" description = "Green tea powder missing all the goodness of green tea." //Heathen. - taste_description = "strongly bitter with a subtle chemical aftertaste" + taste_description = "strong bitterness with a subtle chemical aftertaste" color = "#56761d" glass_name = "tea powder" @@ -3376,7 +3391,7 @@ name = "Instant green tea" id = "instantteagreen" description = "Convenient green tea missing all the goodness of actual green tea." //It's not even hot. - taste_description = "bitter with a subtle chemical aftertaste" + taste_description = "bitterness with a subtle chemical aftertaste" color = "#cac162" glass_name = "green tea" @@ -3385,3 +3400,38 @@ cup_icon_state = "cup_tea" cup_name = "cup of tea" cup_desc = "Green tea. It smells a bit off." + +/datum/reagent/drink/matchapowder + name = "Matcha powder" + id = "matchapowder" + description = "Finely ground green tea. This is about the highest quality matcha you can prepare without traditional methods." + taste_description = "heavy bitterness" + color = "#86a443" + + glass_name = "matcha powder" + glass_desc = "Matcha powder, waiting for brewing." + +/datum/reagent/drink/matcha + name = "Matcha" + id = "matcha" + description = "A form of green tea where the leaf is ground and suspended in water rather than steeped. This is considered cooking grade." + taste_description = "floral, full-bodied bitterness with a subtle, earthy sweetness" + color = "#9bc265" + adj_dizzy = -4 + adj_drowsy = -1 + adj_sleepy = -3 + adj_temp = 20 + + glass_name = "matcha" + glass_desc = "Heavenly matcha. Good for body and spirit." + + cup_icon_state = "cup_tea" + cup_name = "cup of matcha" + cup_desc = "Heavenly matcha. Good for body and spirit." + +/datum/reagent/drink/matcha/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) + ..() + if(alien == IS_DIONA) + return + M.adjustToxLoss(-3 * removed) //Almost on par with dylovene despite being harder to obtain in bulk. Nerf if this causes problems. + diff --git a/code/modules/reagents/Chemistry-Recipes_ch.dm b/code/modules/reagents/Chemistry-Recipes_ch.dm index 6ff79e224c..e8c6bff15c 100644 --- a/code/modules/reagents/Chemistry-Recipes_ch.dm +++ b/code/modules/reagents/Chemistry-Recipes_ch.dm @@ -47,4 +47,16 @@ id = "instantteagreen" result = "instantteagreen" required_reagents = list ("instantteapowdergreen" = 1, "water" = 9) - result_amount = 10 \ No newline at end of file + result_amount = 10 + +/datum/chemical_reaction/matcha + id = "matcha" + result = "matcha" + required_reagents = list ("matchapowder" = 1, "hotwater" = 2) + result_amount = 2 + +/datum/chemical_reaction/tea/matcha_latte + id = "matcha_latte" + result = "matcha_latte" + required_reagents = list ("matchapowder" = 1, "milk" = 5) + result_amount = 5 \ No newline at end of file diff --git a/code/modules/reagents/dispenser/cartridge_presets.dm b/code/modules/reagents/dispenser/cartridge_presets.dm index a29d7ac9f8..925a2c2519 100644 --- a/code/modules/reagents/dispenser/cartridge_presets.dm +++ b/code/modules/reagents/dispenser/cartridge_presets.dm @@ -71,6 +71,7 @@ cream spawn_reagent = "cream" mint spawn_reagent = "mint" berry spawn_reagent = "berryjuice" + matcha_latte spawn_reagent = "matcha_latte" // ERT inaprov spawn_reagent = "inaprovaline" diff --git a/code/modules/reagents/dispenser/dispenser2_energy.dm b/code/modules/reagents/dispenser/dispenser2_energy.dm index 4465b0b769..1038a02325 100644 --- a/code/modules/reagents/dispenser/dispenser2_energy.dm +++ b/code/modules/reagents/dispenser/dispenser2_energy.dm @@ -58,5 +58,5 @@ /obj/machinery/chemical_dispenser/bar_coffee dispense_reagents = list( "coffee", "cafe_latte", "soy_latte", "hot_coco", "milk", "cream", "tea", "ice", - "orangejuice", "lemonjuice", "limejuice", "berryjuice", "mint" + "orangejuice", "lemonjuice", "limejuice", "berryjuice", "mint", "matcha_latte" ) \ No newline at end of file diff --git a/code/modules/reagents/dispenser/dispenser_presets.dm b/code/modules/reagents/dispenser/dispenser_presets.dm index 05477d9cdd..6505eb36ab 100644 --- a/code/modules/reagents/dispenser/dispenser_presets.dm +++ b/code/modules/reagents/dispenser/dispenser_presets.dm @@ -137,6 +137,5 @@ /obj/item/weapon/reagent_containers/chem_disp_cartridge/lemon, /obj/item/weapon/reagent_containers/chem_disp_cartridge/lime, /obj/item/weapon/reagent_containers/chem_disp_cartridge/berry, - - + /obj/item/weapon/reagent_containers/chem_disp_cartridge/matcha_latte ) \ No newline at end of file diff --git a/code/modules/reagents/dispenser/supply.dm b/code/modules/reagents/dispenser/supply.dm index e183da7f79..8f7423dc31 100644 --- a/code/modules/reagents/dispenser/supply.dm +++ b/code/modules/reagents/dispenser/supply.dm @@ -120,7 +120,8 @@ /obj/item/weapon/reagent_containers/chem_disp_cartridge/milk, /obj/item/weapon/reagent_containers/chem_disp_cartridge/cream, /obj/item/weapon/reagent_containers/chem_disp_cartridge/tea, - /obj/item/weapon/reagent_containers/chem_disp_cartridge/ice + /obj/item/weapon/reagent_containers/chem_disp_cartridge/ice, + /obj/item/weapon/reagent_containers/chem_disp_cartridge/matcha_latte ) cost = 50 containertype = /obj/structure/closet/crate diff --git a/code/modules/reagents/reagent_containers/food/snacks_vr.dm b/code/modules/reagents/reagent_containers/food/snacks_vr.dm index db27c59feb..6560f2a78a 100644 --- a/code/modules/reagents/reagent_containers/food/snacks_vr.dm +++ b/code/modules/reagents/reagent_containers/food/snacks_vr.dm @@ -378,7 +378,6 @@ /obj/item/weapon/reagent_containers/food/snacks/steamtealeaf/New() ..() - reagents.add_reagent("teamush", 3) bitesize = 1 /obj/item/weapon/reagent_containers/food/snacks/steamtealeaf/attackby(obj/item/weapon/W as obj, mob/user as mob) @@ -412,6 +411,34 @@ reagents.add_reagent("tealeavesgreen", 6) bitesize = 1 +/obj/item/weapon/reagent_containers/food/snacks/tencha + name = "Tencha" + desc = "A dried, crumbly green tea leaf. Needs deveined." + icon = 'icons/obj/food.dmi' + icon_state = "tencha" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/matchaleaf + slices_num = 1 + nutriment_amt = 0 + nutriment_desc = list("nothing" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/tencha/New() + ..() + bitesize = 1 + +/obj/item/weapon/reagent_containers/food/snacks/matchaleaf + name = "Matcha" + desc = "Low grade matcha. Ready for grinding." + icon = 'icons/obj/food.dmi' + icon_state = "matchaleaf" + nutriment_amt = 0 + nutriment_desc = list("nothing" = 0) + +/obj/item/weapon/reagent_containers/food/snacks/matchaleaf/New() + ..() + reagents.add_reagent("matchapowder", 5) + reagents.remove_reagent("teamush", 5) + bitesize = 1 + /obj/item/weapon/reagent_containers/food/snacks/monkeycube/sobakacube name = "sobaka cube" monkey_type = "Sobaka" diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index c19c0925b51a56965233a6ecbca4f6f944bfa0d2..2e995048237e45660e74ff23633e39647d0ab13a 100644 GIT binary patch delta 8598 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