Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PORT] Food and Drink Ports #1647

Merged
merged 43 commits into from
Jun 13, 2024
Merged
Show file tree
Hide file tree
Changes from 41 commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
0735578
Split drinks into different files (#75898)
dragomagol Jun 15, 2023
5cd7987
undoes removals of some bypass restrictions & metabolized_traits rela…
AlbertNanotracen Feb 27, 2024
8ec8875
Merge branch 'Monkestation:master' into Atomized-TG-Drink-Ports
AlbertNanotracen Mar 3, 2024
f1b613c
removed changes to on_hydroponics_apply()
AlbertNanotracen Mar 3, 2024
f225c9b
we had more arguments, missed that
AlbertNanotracen Mar 3, 2024
faf4fa6
sigh
AlbertNanotracen Mar 3, 2024
a778f40
Merge remote-tracking branch 'origin/master' into Atomized-TG-Drink-P…
AlbertNanotracen Mar 16, 2024
22ff035
Merge remote-tracking branch 'origin/master' into Atomized-TG-Drink-P…
AlbertNanotracen Mar 16, 2024
d49db17
Merge remote-tracking branch 'origin/master' into Atomized-TG-Drink-P…
AlbertNanotracen Mar 16, 2024
ea0cf92
Merge remote-tracking branch 'origin/master' into Atomized-TG-Drink-P…
AlbertNanotracen Mar 27, 2024
9601f72
Merge remote-tracking branch 'origin/master' into Atomized-TG-Drink-P…
AlbertNanotracen Mar 27, 2024
3044a71
Merge branch 'Monkestation:master' into Atomized-TG-Drink-Ports
AlbertNanotracen Mar 27, 2024
2dc9342
Merge branch 'Monkestation:master' into Atomized-TG-Drink-Ports
AlbertNanotracen Mar 28, 2024
43a50c3
Martian Food: A Taste of the Red Planet (#75988)
EOBGames Aug 10, 2023
833e773
updates martian can sprites, fixes misc text and bugs in wellcheers (…
CoiledLamb Aug 21, 2023
75c223b
Merge branch 'Monkestation:master' into Atomized-TG-Drink-Ports
AlbertNanotracen Mar 28, 2024
5dc59fe
Removing enriched liquid electricity references
AlbertNanotracen Mar 28, 2024
c6a53c0
look, icons are hard
AlbertNanotracen Mar 29, 2024
4890c80
boiled rice now needs to be boiled and recipe guide for boiled spaghe…
AlbertNanotracen Mar 29, 2024
9c23a68
martian hotfix (#77562)
EOBGames Aug 13, 2023
4b0455f
removed references to butter slices for now
AlbertNanotracen Apr 3, 2024
e538807
Change from improvised medicine
AlbertNanotracen Apr 7, 2024
2afca7a
better block comment formating
AlbertNanotracen Apr 12, 2024
3db10fa
T (#77442)
Wallemations Aug 11, 2023
a18e97e
Fixes silliness involving soup pots clearing ingredients list (#74882)
MrMelbert Apr 22, 2023
2c84b29
Adds the Death Sandwich to the game (#75013)
Wallemations May 3, 2023
6626695
Merge remote-tracking branch 'origin/master' into Atomized-TG-Drink-P…
AlbertNanotracen Apr 16, 2024
95b9c56
Merge branch 'Monkestation:master' into Atomized-TG-Drink-Ports
AlbertNanotracen Apr 16, 2024
3b949d8
Wedding Cakes (#75076)
Thlumyn May 5, 2023
ebe83b1
Adds a var to chemical reactions that allows them to take place in su…
Paxilmaniac May 21, 2023
9618d98
adds toast sandwich (#75545)
epochayur May 22, 2023
04a0867
Fixes a little inconsistency with the peanut butter banana sandwich a…
Ghommie May 31, 2023
79161ca
Map changes needed for sandwich refactor
AlbertNanotracen Apr 20, 2024
b4c0273
i really need to find a better way to do this
AlbertNanotracen Apr 20, 2024
a182550
Merge branch 'Monkestation:master' into Atomized-TG-Drink-Ports
AlbertNanotracen Apr 22, 2024
424b2ac
Merge remote-tracking branch 'origin/master' into Atomized-TG-Drink-P…
AlbertNanotracen May 6, 2024
4320f6a
Merge branch 'Atomized-TG-Drink-Ports' of https://github.com/AlbertNa…
AlbertNanotracen May 6, 2024
2066d25
Modify death sandwich disease to work with pathology
AlbertNanotracen May 10, 2024
5d4aad8
Blood brothers can now chose the death sandwich recipe as their gear
AlbertNanotracen May 11, 2024
6a55ea2
Merge branch 'master' into Atomized-TG-Drink-Ports
dwasint May 22, 2024
00e5dc0
the cure should be shown somewhere in game, that was dumb of me
AlbertNanotracen May 24, 2024
ff17254
changed our boiling recipes that output items to match 24-volt fist
AlbertNanotracen May 29, 2024
1942a15
wedding cake can feed a small wedding party
AlbertNanotracen May 30, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion _maps/map_files/Deltastation/DeltaStation2.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -94269,7 +94269,7 @@
normaldoorcontrol = 1;
specialfunctions = 4
},
/obj/item/food/grilled_cheese_sandwich,
/obj/item/food/sandwich/cheese/grilled,
/turf/open/floor/iron/cafeteria,
/area/station/medical/break_room)
"wWy" = (
Expand Down
2 changes: 1 addition & 1 deletion _maps/map_files/IceBoxStation/IceBoxStation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -58248,7 +58248,7 @@
/area/station/cargo/storage)
"sQc" = (
/obj/structure/table,
/obj/item/food/grilled_cheese_sandwich{
/obj/item/food/sandwich/cheese/grilled{
name = "idiot sandwich";
pixel_y = 8
},
Expand Down
4 changes: 2 additions & 2 deletions _maps/shuttles/emergency_luxury.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@
/turf/open/floor/holofloor/beach/water,
/area/shuttle/escape/luxury)
"nC" = (
/obj/item/food/grilled_cheese_sandwich{
/obj/item/food/sandwich/cheese/grilled{
pixel_y = 11
},
/obj/structure/table/wood/fancy/black,
Expand Down Expand Up @@ -961,7 +961,7 @@
/turf/open/floor/iron,
/area/shuttle/escape)
"Oe" = (
/obj/item/food/notasandwich{
/obj/item/food/sandwich/notasandwich{
pixel_y = 11
},
/obj/structure/table/wood/fancy/black,
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/~monkestation/virology.dm
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
#define DISEASE_ROBOT "robot"
#define DISEASE_COLD "cold"
#define DISEASE_HEART "heart"
#define DISEASE_SANDWICH "sandwich"
#define DISEASE_TRAUMA "trauma"
#define DISEASE_DECLONING "decloning"
#define DISEASE_ANXIETY "anxiety"
1 change: 1 addition & 0 deletions code/_globalvars/lists/maintenance_loot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items
/obj/item/stock_parts/cell/high = 1,
/obj/item/storage/box/clown = 1,
/obj/item/weaponcrafting/receiver = 1,
/obj/item/book/granter/crafting_recipe/death_sandwich = 1,
) = 8,

list(//medical and chemicals
Expand Down
60 changes: 60 additions & 0 deletions code/datums/diseases/death_sandwich_poisoning.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
/datum/disease/death_sandwich_poisoning
name = "Death Sandwich Poisoning"
desc = "If left untreated the subject will ultimately perish."
form = "Condition"
spread_text = "Unknown"
max_stages = 3
cure_text = "Anacea" // I ain't about to make a second sandwich to counteract the first one, so closest thing I'm going for is this.
cures = list(/datum/reagent/toxin/anacea)
cure_chance = 4
agent = "eating the Death Sandwich wrong"
viable_mobtypes = list(/mob/living/carbon/human)
severity = DISEASE_SEVERITY_DANGEROUS
disease_flags = CURABLE
spread_flags = DISEASE_SPREAD_SPECIAL
visibility_flags = HIDDEN_SCANNER
bypasses_immunity = TRUE


/datum/disease/death_sandwich_poisoning/stage_act(seconds_per_tick, times_fired)
. = ..()
if(!.)
return

switch(stage)
if(1)
if(SPT_PROB(1.5, seconds_per_tick))
affected_mob.emote("cough")
if(SPT_PROB(0.5, seconds_per_tick))
affected_mob.emote("gag")
if(SPT_PROB(0.5, seconds_per_tick))
affected_mob.adjustToxLoss(5)
if(2)
if(SPT_PROB(5, seconds_per_tick))
affected_mob.emote("cough")
if(SPT_PROB(2.5, seconds_per_tick))
affected_mob.emote("gag")
if(SPT_PROB(1, seconds_per_tick))
to_chat(affected_mob, span_danger("Your body feels hot!"))
if(prob(20))
affected_mob.take_bodypart_damage(burn = 1)
if(SPT_PROB(3, seconds_per_tick))
affected_mob.adjustToxLoss(10)

if(3)
if(SPT_PROB(5, seconds_per_tick))
affected_mob.emote("gag")
if(SPT_PROB(10, seconds_per_tick))
affected_mob.emote("gasp")
if(SPT_PROB(2.5, seconds_per_tick))
affected_mob.vomit(20, TRUE)
if(SPT_PROB(2.5, seconds_per_tick))
to_chat(affected_mob, span_danger("Your body feels hot!"))
if(prob(60))
affected_mob.take_bodypart_damage(burn = 2)
if(SPT_PROB(6, seconds_per_tick))
affected_mob.adjustToxLoss(15)
if(SPT_PROB(1.5, seconds_per_tick))
to_chat(affected_mob, span_danger("You try to scream, but nothing comes out!"))
affected_mob.set_silence_if_lower(5 SECONDS)

20 changes: 20 additions & 0 deletions code/game/objects/items/food/cake.dm
Original file line number Diff line number Diff line change
Expand Up @@ -619,3 +619,23 @@
icon_state = "plumcakeslice"
tastes = list("cake" = 5, "sweetness" = 1, "plum" = 2)
foodtypes = GRAIN | DAIRY | FRUIT | SUGAR

/obj/item/food/cake/wedding
name = "wedding cake"
desc = "An expensive, multi-tiered cake."
icon_state = "weddingcake"
food_reagents = list(
/datum/reagent/consumable/nutriment = 40,
/datum/reagent/consumable/sugar = 30,
/datum/reagent/consumable/nutriment/vitamin = 10,
)
tastes = list("cake" = 3, "frosting" = 1)
foodtypes = GRAIN | DAIRY | SUGAR
slice_type = /obj/item/food/cakeslice/wedding

/obj/item/food/cakeslice/wedding
name = "wedding cake slice"
desc = "Traditionally, those getting married feed each other a slice of cake."
icon_state = "weddingcake_slice"
tastes = list("cake" = 3, "frosting" = 1)
foodtypes = GRAIN | DAIRY | SUGAR
127 changes: 76 additions & 51 deletions code/game/objects/items/food/sandwichtoast.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,74 +13,62 @@
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL

/obj/item/food/grilled_cheese_sandwich
name = "grilled cheese sandwich"
desc = "A warm, melty sandwich that goes perfectly with tomato soup."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "toastedsandwich"
food_reagents = list(
/datum/reagent/consumable/nutriment = 6,
/datum/reagent/consumable/nutriment/protein = 5,
/datum/reagent/consumable/nutriment/vitamin = 1,
/datum/reagent/carbon = 4,
)
tastes = list("toast" = 2, "cheese" = 3, "butter" = 1)
foodtypes = GRAIN
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL
burns_on_grill = TRUE

/obj/item/food/cheese_sandwich
/obj/item/food/sandwich/cheese
name = "cheese sandwich"
desc = "A light snack for a warm day. ...but what if you grilled it?"
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "sandwich"
food_reagents = list(
/datum/reagent/consumable/nutriment = 7,
/datum/reagent/consumable/nutriment/protein = 3,
/datum/reagent/consumable/nutriment/vitamin = 1,
)
tastes = list("bread" = 1, "cheese" = 1)
foodtypes = GRAIN | DAIRY
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL
venue_value = FOOD_PRICE_NORMAL

/obj/item/food/cheese_sandwich/make_grillable()
AddComponent(/datum/component/grillable, /obj/item/food/grilled_cheese_sandwich, rand(30 SECONDS, 60 SECONDS), TRUE)
/obj/item/food/sandwich/cheese/make_grillable()
if(burns_on_grill)
return ..()
AddComponent(/datum/component/grillable, /obj/item/food/sandwich/cheese/grilled, rand(30 SECONDS, 60 SECONDS), TRUE)

/obj/item/food/sandwich/cheese/grilled
name = "grilled cheese sandwich"
desc = "A warm, melty sandwich that goes perfectly with tomato soup."
icon_state = "toastedsandwich"
food_reagents = list(
/datum/reagent/consumable/nutriment = 6,
/datum/reagent/consumable/nutriment/protein = 5,
/datum/reagent/consumable/nutriment/vitamin = 1,
/datum/reagent/carbon = 4,
)
foodtypes = GRAIN | DAIRY
burns_on_grill = TRUE

/obj/item/food/jellysandwich
/obj/item/food/sandwich/jelly
name = "jelly sandwich"
desc = "You wish you had some peanut butter to go with this..."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "jellysandwich"
bite_consumption = 3
tastes = list("bread" = 1, "jelly" = 1)
foodtypes = GRAIN
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL

/obj/item/food/jellysandwich/slime
/obj/item/food/sandwich/jelly/slime
food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/toxin/slimejelly = 10, /datum/reagent/consumable/nutriment/vitamin = 4)
foodtypes = GRAIN | TOXIC

/obj/item/food/jellysandwich/cherry
/obj/item/food/sandwich/jelly/cherry
food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/cherryjelly = 8, /datum/reagent/consumable/nutriment/vitamin = 4)
foodtypes = GRAIN | FRUIT | SUGAR

/obj/item/food/notasandwich
/obj/item/food/sandwich/notasandwich
name = "not-a-sandwich"
desc = "Something seems to be wrong with this, you can't quite figure what. Maybe it's his moustache."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "notasandwich"
food_reagents = list(
/datum/reagent/consumable/nutriment = 6,
/datum/reagent/consumable/nutriment/vitamin = 10,
)
tastes = list("nothing suspicious" = 1)
foodtypes = GRAIN | GROSS
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL

/obj/item/food/griddle_toast
name = "griddle toast"
Expand Down Expand Up @@ -180,10 +168,9 @@
w_class = WEIGHT_CLASS_SMALL
venue_value = FOOD_PRICE_NORMAL

/obj/item/food/blt
/obj/item/food/sandwich/blt
name = "\improper BLT"
desc = "A classic bacon, lettuce, and tomato sandwich."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "blt"
bite_consumption = 4
food_reagents = list(
Expand All @@ -193,13 +180,10 @@
)
tastes = list("bacon" = 3, "lettuce" = 2, "tomato" = 2, "bread" = 2)
foodtypes = GRAIN | MEAT | VEGETABLES | BREAKFAST
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL

/obj/item/food/peanut_butter_jelly_sandwich
/obj/item/food/sandwich/peanut_butter_jelly
name = "peanut butter and jelly sandwich"
desc = "A classic PB&J sandwich, just like your mom used to make."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "peanut_butter_jelly_sandwich"
food_reagents = list(
/datum/reagent/consumable/nutriment = 2,
Expand All @@ -208,13 +192,10 @@
)
tastes = list("peanut butter" = 1, "jelly" = 1, "bread" = 2)
foodtypes = GRAIN | FRUIT | NUTS
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL

/obj/item/food/peanut_butter_banana_sandwich
/obj/item/food/sandwich/peanut_butter_banana
name = "peanut butter and banana sandwich"
desc = "A grilled peanut butter sandwich with banana slices mixed in, a good high protein treat."
icon = 'icons/obj/food/burgerbread.dmi'
desc = "A peanut butter sandwich with banana slices mixed in, a good high protein treat."
icon_state = "peanut_butter_banana_sandwich"
food_reagents = list(
/datum/reagent/consumable/nutriment = 2,
Expand All @@ -224,13 +205,10 @@
)
tastes = list("peanut butter" = 1, "banana" = 1, "bread" = 2)
foodtypes = GRAIN | FRUIT | NUTS
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL

/obj/item/food/philly_cheesesteak
/obj/item/food/sandwich/philly_cheesesteak
name = "Philly cheesesteak"
desc = "A popular sandwich made of sliced meat, onions, melted cheese in a long hoagie roll. Mouthwatering doesn't even begin to describe it."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "philly_cheesesteak"
food_reagents = list(
/datum/reagent/consumable/nutriment = 10,
Expand All @@ -239,5 +217,52 @@
)
tastes = list("bread" = 1, "juicy meat" = 1, "melted cheese" = 1, "onions" = 1)
foodtypes = GRAIN | MEAT | DAIRY | VEGETABLES
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_SMALL

/obj/item/food/sandwich/toast_sandwich
name = "toast sandwich"
desc = "A piece of buttered toast between two slices of bread. Why would you make this?"
icon_state = "toast_sandwich"
bite_consumption = 3
food_reagents = list(
/datum/reagent/consumable/nutriment = 3,
/datum/reagent/consumable/nutriment/vitamin = 1,
)
tastes = list("bread" = 2, "Britain" = 1, "butter" = 1, "toast" = 1)
foodtypes = GRAIN

/obj/item/food/sandwich/death
name = "death sandwich"
desc = "Eat it right, or you die!"
icon_state = "death_sandwich"
food_reagents = list(
/datum/reagent/consumable/nutriment = 8,
/datum/reagent/consumable/nutriment/protein = 14,
/datum/reagent/consumable/nutriment/vitamin = 6,
)
tastes = list("bread" = 1, "meat" = 1, "tomato sauce" = 1, "death" = 1)
foodtypes = GRAIN | MEAT
eat_time = 4 SECONDS // Makes it harder to force-feed this to people as a weapon, as funny as that is.

/obj/item/food/sandwich/death/Initialize(mapload)
. = ..()
obj_flags &= ~UNIQUE_RENAME // You shouldn't be able to disguise this on account of how it kills you

///Override for checkliked callback
/obj/item/food/sandwich/death/make_edible()
. = ..()
AddComponent(/datum/component/edible, check_liked = CALLBACK(src, PROC_REF(check_liked)))

///Eat it right, or you die.
/obj/item/food/sandwich/death/proc/check_liked(fraction, mob/living/carbon/human/consumer)
/// Closest thing to a mullet we have
if(consumer.hairstyle == "Gelled Back" && istype(consumer.get_item_by_slot(ITEM_SLOT_ICLOTHING), /obj/item/clothing/under/rank/civilian/cookjorts))
return FOOD_LIKED
// I thought it didn't make sense for it to instantly kill you, so instead enjoy shitloads of toxin damage per bite.
balloon_alert(consumer, "ate it wrong!")
consumer.infect_disease_predefined(DISEASE_SANDWICH, TRUE) //Monkestation Edit: Pathology (drinking anacea is still the only cure)

/obj/item/food/sandwich/death/suicide_act(mob/living/user)
user.visible_message(span_suicide("[user] starts to shove [src] down [user.p_their()] throat the wrong way. It looks like [user.p_theyre()] trying to commit suicide!"))
qdel(src)
user.gib(TRUE, TRUE, TRUE)
return MANUAL_SUICIDE
17 changes: 17 additions & 0 deletions code/game/objects/items/granters/crafting/death_sandwich.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/obj/item/book/granter/crafting_recipe/death_sandwich
name = "\improper SANDWICH OF DEATH SECRET RECIPE"
desc = "An ancient composition notebook with the instructions for an ancient and ultimate sandwich scrawled upon its looseleaf pages. The title has been scrawled onto it with permanent marker."
crafting_recipe_types = list(
/datum/crafting_recipe/food/death_sandwich
)
icon_state = "cooking_learning_sandwich"
remarks = list(
"A meatball sub, but what makes it so special?",
"I just need to grease back my hair...?",
"What kind of ancient civilization wore jorts?",
"So it DOES matter what angle you fold the salami in...",
)

/obj/item/book/granter/crafting_recipe/death_sandwich/recoil(mob/living/user)
to_chat(user, span_warning("The book comically explodes in your hands, leaving no trace."))
qdel(src)
9 changes: 6 additions & 3 deletions code/modules/food_and_drinks/machinery/stove.dm
Original file line number Diff line number Diff line change
Expand Up @@ -132,11 +132,12 @@
balloon_alert(user, "can't add that!")
return TRUE

var/atom/balloon_loc = ismachinery(loc) ? loc : src
// Ensures that faceatom works correctly, since we can can often be in another atom's loc (a stove)
var/atom/movable/balloon_loc = ismovable(loc) ? loc : src
balloon_loc.balloon_alert(user, "ingredient added")
user.face_atom(balloon_loc)
LAZYADD(added_ingredients, attacking_item)

LAZYADD(added_ingredients, attacking_item)
update_appearance(UPDATE_OVERLAYS)
return TRUE

Expand All @@ -147,7 +148,9 @@
var/obj/item/removed = added_ingredients[1]
removed.forceMove(get_turf(src))
user.put_in_hands(removed)
var/atom/balloon_loc = ismachinery(loc) ? loc : src

// Ensures that faceatom works correctly, since we can can often be in another atom's loc (a stove)
var/atom/movable/balloon_loc = ismovable(loc) ? loc : src
balloon_loc.balloon_alert(user, "ingredient removed")
user.face_atom(balloon_loc)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,3 +178,6 @@
results = list(/datum/reagent/consumable/mississippi_queen = 50)
required_reagents = list(/datum/reagent/consumable/tomatojuice = 15, /datum/reagent/consumable/mayonnaise = 10, /datum/reagent/consumable/soysauce = 5, /datum/reagent/consumable/vinegar = 2, /datum/reagent/consumable/capsaicin = 10, /datum/reagent/consumable/coco = 2)

/datum/chemical_reaction/drink/t_letter
results = list(/datum/reagent/consumable/t_letter = 2)
required_reagents = list(/datum/reagent/consumable/nothing = 1, /datum/reagent/consumable/tea = 1)
Loading
Loading