diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm
index 775b27cc08..c8c8d376c8 100644
--- a/code/game/objects/items/trash.dm
+++ b/code/game/objects/items/trash.dm
@@ -249,6 +249,12 @@
drop_sound = 'sound/items/drop/soda.ogg'
pickup_sound = 'sound/items/pickup/soda.ogg'
+/obj/item/trash/tomato
+ name = "empty tomato soup can"
+ icon_state = "tomato"
+ drop_sound = 'sound/items/drop/soda.ogg'
+ pickup_sound = 'sound/items/pickup/soda.ogg'
+
/obj/item/trash/spinach
name = "empty spinach can"
icon_state = "spinach"
@@ -410,3 +416,14 @@
name = "burrito packaging"
icon_state = "smolburrito"
+/obj/item/trash/brainzsnax
+ name = "\improper BrainzSnax can"
+ icon_state = "brainzsnax"
+ drop_sound = 'sound/items/drop/soda.ogg'
+ pickup_sound = 'sound/items/pickup/soda.ogg'
+
+/obj/item/trash/brainzsnaxred
+ name = "\improper BrainzSnax RED can"
+ icon_state = "brainzsnaxred"
+ drop_sound = 'sound/items/drop/soda.ogg'
+ pickup_sound = 'sound/items/pickup/soda.ogg'
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/storage/boxes_vr.dm b/code/game/objects/items/weapons/storage/boxes_vr.dm
index 1f2bc91404..e234f22d4a 100644
--- a/code/game/objects/items/weapons/storage/boxes_vr.dm
+++ b/code/game/objects/items/weapons/storage/boxes_vr.dm
@@ -25,3 +25,14 @@
/obj/item/weapon/storage/secure/briefcase/trashmoney
starts_with = list(/obj/item/weapon/spacecash/c200 = 10)
+
+/obj/item/weapon/storage/box/brainzsnax
+ name = "\improper BrainzSnax box"
+ icon_state = "brainzsnax_box"
+ desc = "A box designed to hold canned food. This one has BrainzSnax branding printed on it."
+ can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/canned)
+ max_storage_space = ITEMSIZE_COST_NORMAL * 6
+ starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/canned/brainzsnax = 6)
+
+/obj/item/weapon/storage/box/brainzsnax/red
+ starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/canned/brainzsnax/red = 6)
\ No newline at end of file
diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm
index de1fa2dc85..61b5921157 100644
--- a/code/modules/food/food/snacks.dm
+++ b/code/modules/food/food/snacks.dm
@@ -34,6 +34,11 @@
/// Packaged meals switch to this state when opened, if set
var/package_open_state
+ /// If this is canned. If true, it will print a message and ask you to open it
+ var/canned = FALSE
+ /// Canned food switch to this state when opened, if set
+ var/canned_open_state
+
/obj/item/weapon/reagent_containers/food/snacks/Initialize()
. = ..()
if(nutriment_amt)
@@ -63,6 +68,9 @@
if(package && !user.incapacitated())
unpackage(user)
+ if(canned && !user.incapacitated())
+ uncan(user)
+
/obj/item/weapon/reagent_containers/food/snacks/attack(mob/living/M as mob, mob/user as mob, def_zone)
if(reagents && !reagents.total_volume)
to_chat(user, "None of [src] left!")
@@ -74,6 +82,10 @@
to_chat(M, "How do you expect to eat this with the package still on?")
return FALSE
+ if(canned)
+ to_chat(M, "How do you expect to eat this without opening it?")
+ return FALSE
+
if(istype(M, /mob/living/carbon))
//TODO: replace with standard_feed_mob() call.
@@ -257,6 +269,13 @@
if(package_open_state)
icon_state = package_open_state
+/obj/item/weapon/reagent_containers/food/snacks/proc/uncan(mob/user)
+ canned = FALSE
+ to_chat(user, "You unseal \the [src] with a crack of metal.")
+ playsound(loc,'sound/effects/tincanopen.ogg', rand(10,50), 1)
+ if(canned_open_state)
+ icon_state = canned_open_state
+
////////////////////////////////////////////////////////////////////////////////
/// FOOD END
////////////////////////////////////////////////////////////////////////////////
@@ -4224,10 +4243,12 @@
desc = "Musical fruit in a slightly less musical container."
filling_color = "#FC6F28"
icon_state = "bakedbeans"
- nutriment_amt = 4
- nutriment_desc = list("beans" = 4)
bitesize = 2
+/obj/item/weapon/reagent_containers/food/snacks/berrymuffin/berry/Initialize()
+ . = ..()
+ reagents.add_reagent("bean_protein", 6)
+
/obj/item/weapon/reagent_containers/food/snacks/sugarcookie
name = "sugar cookie"
desc = "Just like your little sister used to make."
@@ -6745,34 +6766,8 @@
//////////////////////Canned Foods - crack open and eat (ADDED 04/11/2021)//////////////////////
/obj/item/weapon/reagent_containers/food/snacks/canned
- name = "void can"
icon = 'icons/obj/food_canned.dmi'
- flags = 0
- var/sealed = TRUE
-
-/obj/item/weapon/reagent_containers/food/snacks/canned/Initialize()
- . = ..()
- if(!sealed)
- unseal()
-
-/obj/item/weapon/reagent_containers/food/snacks/canned/examine(mob/user)
- . = ..()
- to_chat(user, "It is [sealed ? "" : "un"]sealed.")
-
-/obj/item/weapon/reagent_containers/food/snacks/canned/proc/unseal()
- flags |= OPENCONTAINER
- sealed = FALSE
- update_icon()
-
-/obj/item/weapon/reagent_containers/food/snacks/canned/attack_self(var/mob/user)
- if(sealed)
- playsound(loc,'sound/effects/tincanopen.ogg', rand(10,50), 1)
- to_chat(user, "You unseal \the [src] with a crack of metal.")
- unseal()
-
-/obj/item/weapon/reagent_containers/food/snacks/canned/update_icon()
- if(!sealed)
- icon_state = "[initial(icon_state)]-open"
+ canned = TRUE
//////////Just a short line of Canned Consumables, great for treasure in faraway abandoned outposts//////////
@@ -6781,6 +6776,7 @@
icon_state = "beef"
desc = "A can of premium preserved vat-grown holstein beef. Now 99.9% bone free!"
trash = /obj/item/trash/beef
+ canned_open_state = "beef-open"
filling_color = "#663300"
center_of_mass = list("x"=15, "y"=9)
nutriment_desc = list("beef" = 1)
@@ -6789,54 +6785,54 @@
/obj/item/weapon/reagent_containers/food/snacks/canned/beef/Initialize()
.=..()
reagents.add_reagent("protein", 4)
- reagents.add_reagent("sodiumchloride", 1)
+ reagents.add_reagent("sodiumchloride", 2)
/obj/item/weapon/reagent_containers/food/snacks/canned/beans
name = "baked beans"
icon_state = "beans"
desc = "Luna Colony beans. Carefully synthethized from soy."
trash = /obj/item/trash/beans
+ canned_open_state = "beans-open"
filling_color = "#ff6633"
center_of_mass = list("x"=15, "y"=9)
nutriment_desc = list("beans" = 1, "tomato sauce" = 1)
- nutriment_amt = 15
bitesize = 2
-///obj/item/weapon/reagent_containers/food/snacks/canned/tomato (NEED TO SEE HOW TO CHANGE EATING SOUND)
-// name = "tomato soup"
-// icon_state = "tomato"
-// desc = "Plain old unseasoned tomato soup. This can has no use-by date."
-// trash = "/obj/item/trash/tomato"
-// filling_color = "#ae0000"
-// center_of_mass = list("x"=15, "y"=9)
-// nutriment_desc = list("tomato" = 1)
-// bitesize = 3
-// eat_sound = 'sound/items/drink.ogg'
-//
-///obj/item/weapon/reagent_containers/food/snacks/canned/tomato/Initialize()
-// .=..()
-// reagents.add_reagent(/datum/reagent/drink/juice/tomato, 12)
-//
-//
-///obj/item/weapon/reagent_containers/food/snacks/canned/tomato/feed_sound(var/mob/user)
-// playsound(user.loc, 'sound/items/drink.ogg', rand(10, 50), 1)
+/obj/item/weapon/reagent_containers/food/snacks/canned/beans/Initialize()
+ .=..()
+ reagents.add_reagent("bean_protein", 5)
+ reagents.add_reagent("tomatojuice", 5)
+
+/obj/item/weapon/reagent_containers/food/snacks/canned/tomato
+ name = "tomato soup"
+ icon_state = "tomato"
+ desc = "Plain old unseasoned tomato soup. This can has no use-by date."
+ trash = /obj/item/trash/tomato
+ package_open_state = "tomato-open"
+ filling_color = "#ae0000"
+ center_of_mass = list("x"=15, "y"=9)
+ bitesize = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/canned/tomato/Initialize()
+ .=..()
+ reagents.add_reagent("tomatojuice", 12)
/obj/item/weapon/reagent_containers/food/snacks/canned/spinach
name = "spinach"
icon_state = "spinach"
desc = "Wup-Az! Brand canned spinach. Notably has less iron in it than a watermelon."
trash = /obj/item/trash/spinach
+ canned_open_state = "spinach-open"
filling_color = "#003300"
center_of_mass = list("x"=15, "y"=9)
- nutriment_amt = 5
nutriment_desc = list("soggy" = 1, "vegetable" = 1)
- bitesize = 5
+ bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/canned/spinach/Initialize()
.=..()
- reagents.add_reagent("adrenaline", 5)
- reagents.add_reagent("hyperzine", 5)
- reagents.add_reagent("iron", 5)
+ reagents.add_reagent("adrenaline", 4)
+ reagents.add_reagent("hyperzine", 4)
+ reagents.add_reagent("iron", 4)
//////////////////////////////Advanced Canned Food//////////////////////////////
@@ -6845,30 +6841,30 @@
icon_state = "fisheggs"
desc = "Terran caviar, or space carp eggs. Carefully faked using alginate, artificial flavoring and salt. Skrell approved!"
trash = /obj/item/trash/fishegg
+ canned_open_state = "fisheggs-open"
filling_color = "#000000"
center_of_mass = list("x"=15, "y"=9)
- nutriment_desc = list("fish" = 1, "salt" = 1)
- nutriment_amt = 6
+ nutriment_desc = list("salt" = 1)
bitesize = 1
-/obj/item/weapon/reagent_containers/food/snacks/caviar/Initialize()
+/obj/item/weapon/reagent_containers/food/snacks/canned/caviar/Initialize()
. = ..()
- reagents.add_reagent("protein", 5)
+ reagents.add_reagent("seafood", 5)
/obj/item/weapon/reagent_containers/food/snacks/canned/caviar/true
name = "\improper Classic Terran Caviar"
icon_state = "carpeggs"
desc = "Terran caviar, or space carp eggs. Banned by the Vir Food Health Administration for exceeding the legally set amount of carpotoxins in food stuffs."
trash = /obj/item/trash/carpegg
+ canned_open_state = "carpeggs-open"
filling_color = "#330066"
center_of_mass = list("x"=15, "y"=9)
- nutriment_desc = list("fish" = 1, "salt" = 1, "a numbing sensation" = 1)
- nutriment_amt = 6
+ nutriment_desc = list("salt" = 1, "a numbing sensation" = 1)
bitesize = 1
-/obj/item/weapon/reagent_containers/food/snacks/caviar/true/Initialize()
+/obj/item/weapon/reagent_containers/food/snacks/canned/caviar/true/Initialize()
. = ..()
- reagents.add_reagent("protein", 4)
+ reagents.add_reagent("seafood", 4)
reagents.add_reagent("carpotoxin", 1)
/obj/item/weapon/reagent_containers/food/snacks/canned/maps
@@ -6876,13 +6872,12 @@
icon_state = "maps"
desc = "A re-branding of a classic Terran snack! Contains mostly edible ingredients."
trash = /obj/item/trash/maps
+ canned_open_state = "maps-open"
filling_color = "#330066"
center_of_mass = list("x"=15, "y"=9)
- nutriment_desc = list("meat" = 1, "salt" = 1)
- nutriment_amt = 8
bitesize = 2
-/obj/item/weapon/reagent_containers/food/snacks/maps/Initialize()
+/obj/item/weapon/reagent_containers/food/snacks/canned/maps/Initialize()
. = ..()
reagents.add_reagent("protein", 6)
reagents.add_reagent("sodiumchloride", 2)
@@ -6892,10 +6887,10 @@
icon_state = "appleberry"
desc = "A classic snack favored by Sol astronauts. Made from dried apple-hybidized berries grown on the lunar colonies."
trash = /obj/item/trash/appleberry
+ canned_open_state = "appleberry-open"
filling_color = "#FFFFFF"
center_of_mass = list("x"=15, "y"=9)
nutriment_desc = list("apple" = 1, "sweetness" = 1)
- nutriment_amt = 8
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/appleberry/Initialize()
@@ -6907,16 +6902,50 @@
icon_state = "ntbeans"
desc = "Musical fruit in a slightly less musical container. Now with bacon!"
trash = /obj/item/trash/ntbeans
+ canned_open_state = "ntbeans-open"
filling_color = "#FC6F28"
center_of_mass = list("x"=15, "y"=9)
- nutriment_desc = list("beans" = 4)
- nutriment_amt = 6
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/canned/ntbeans/Initialize()
. = ..()
+ reagents.add_reagent("bean_protein", 6)
reagents.add_reagent("protein", 2)
+/obj/item/weapon/reagent_containers/food/snacks/canned/brainzsnax
+ name = "\improper BrainzSnax"
+ icon_state = "brainzsnax"
+ desc = "A can of grey matter marketed for xenochimeras."
+ description_fluff = "As the cartoon brain with limbs proudly proclaims, \"It's meat. Eat it!\" On the can is printed \"Rich in limbic system\" and \
+ under that in infinitely small letters, \"Warning, product must be eaten within two hours of opening. May contain prion disease. \
+ GrubCo LTD is not liable for any brain damage occuring after consumption of product.\""
+ trash = /obj/item/trash/brainzsnax
+ canned_open_state = "brainzsnax-open"
+ filling_color = "#caa3c9"
+ center_of_mass = list("x"=15, "y"=9)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/canned/brainzsnax/Initialize()
+ . = ..()
+ reagents.add_reagent("brain_protein", 10)
+
+/obj/item/weapon/reagent_containers/food/snacks/canned/brainzsnax/red
+ name = "\improper BrainzSnax RED"
+ icon_state = "brainzsnaxred"
+ desc = "A can of grey matter marketed for xenochimeras. This one has added tomato sauce."
+ description_fluff = "As the cartoonish brain with limbs proudly proclaims, \"It's meat. Eat it!\" On the can is printed \"Yummy red stuff!\" and \
+ under that in infinitely small letters, \"Warning, product must be eaten within two hours of opening. May contain prion disease. \
+ GrubCo LTD is not liable for any brain damage occuring after consumption of product.\""
+ trash = /obj/item/trash/brainzsnaxred
+ canned_open_state = "brainzsnaxred-open"
+ filling_color = "#a6898d"
+ center_of_mass = list("x"=15, "y"=9)
+ bitesize = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/canned/brainzsnax/red/Initialize()
+ . = ..()
+ reagents.add_reagent("red_brain_protein", 10)
+
//////////////Packaged Food - break open and eat//////////////
/obj/item/weapon/reagent_containers/food/snacks/packaged
@@ -7008,7 +7037,7 @@
/obj/item/weapon/reagent_containers/food/snacks/packaged/meatration/Initialize()
. = ..()
- reagents.add_reagent("protein", 3)
+ reagents.add_reagent("protein", 4)
/obj/item/weapon/reagent_containers/food/snacks/packaged/vegration
name = "veggie ration"
diff --git a/code/modules/reagents/reagents/food_drinks.dm b/code/modules/reagents/reagents/food_drinks.dm
index 06e11c6800..100e4ea60a 100644
--- a/code/modules/reagents/reagents/food_drinks.dm
+++ b/code/modules/reagents/reagents/food_drinks.dm
@@ -316,6 +316,13 @@
color = "#664330"
allergen_type = ALLERGEN_FISH //Murkfin is fish
+/datum/reagent/nutriment/protein/bean
+ name = "beans"
+ id = "bean_protein"
+ taste_description = "beans"
+ color = "#562e0b"
+ allergen_type = ALLERGEN_BEANS //Made from soy beans
+
/datum/reagent/nutriment/honey
name = "Honey"
id = "honey"
diff --git a/code/modules/reagents/reagents/food_drinks_vr.dm b/code/modules/reagents/reagents/food_drinks_vr.dm
index 715e0fa735..0a6638a1d5 100644
--- a/code/modules/reagents/reagents/food_drinks_vr.dm
+++ b/code/modules/reagents/reagents/food_drinks_vr.dm
@@ -155,15 +155,19 @@
if(alien == IS_SLIME || alien == IS_CHIMERA) //slimes and chimera can get nutrition from injected nutriment and protein
M.adjust_nutrition(alt_nutriment_factor * removed)
+<<<<<<< HEAD
+||||||| parent of 72a0e86484... Merge pull request #11705 from GhostActual/brainfood
+
+
+=======
+>>>>>>> 72a0e86484... Merge pull request #11705 from GhostActual/brainfood
/datum/reagent/nutriment/magicdust/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
playsound(M, 'sound/items/hooh.ogg', 50, 1, -1)
if(prob(5))
to_chat(M, "You feel like you've been gnomed...")
-
-
/datum/reagent/ethanol/galacticpanic
name = "Galactic Panic Attack"
id = "galacticpanic"
@@ -515,4 +519,34 @@
glass_name = "Shambler's Juice"
glass_desc = "A glass of something shambly"
- glass_special = list(DRINK_FIZZ)
\ No newline at end of file
+ glass_special = list(DRINK_FIZZ)
+
+////////////////START BrainzSnax Reagents////////////////
+
+/datum/reagent/nutriment/protein/brainzsnax
+ name = "grey matter"
+ id = "brain_protein"
+ taste_description = "fatty, mushy meat and allspice"
+ color = "#caa3c9"
+
+/datum/reagent/nutriment/protein/brainzsnax/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
+ if(prob(5) && !(alien == IS_CHIMERA || alien == IS_SLIME || alien == IS_PLANT || alien == IS_DIONA || alien == IS_SHADEKIN && !M.isSynthetic()))
+ M.adjustBrainLoss(removed) //Any other species risks prion disease.
+ M.Confuse(5)
+ M.hallucination = max(M.hallucination, 25)
+
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ if(H.feral > 0 && H.nutrition > 100 && H.traumatic_shock < min(60, H.nutrition/10) && H.jitteriness < 100) //Same check as feral triggers to stop them immediately re-feralling
+ H.feral -= removed * 3 //Should calm them down quick, provided they're actually in a state to STAY calm.
+ if(H.feral <=0) //Check if they're unferalled
+ H.feral = 0
+ to_chat(H, "Your mind starts to clear, soothed into a state of clarity as your senses return.")
+ log_and_message_admins("is no longer feral.", H)
+
+/datum/reagent/nutriment/protein/brainzsnax/red
+ id = "red_brain_protein"
+ taste_description = "fatty, mushy meat and cheap tomato sauce"
+ color = "#a6898d"
+
+////////////////END BrainzSnax Reagents////////////////
\ No newline at end of file
diff --git a/icons/obj/boxes.dmi b/icons/obj/boxes.dmi
index 1f7e82c960..dad29a40a2 100644
Binary files a/icons/obj/boxes.dmi and b/icons/obj/boxes.dmi differ
diff --git a/icons/obj/food_canned.dmi b/icons/obj/food_canned.dmi
index 606ca9f6e4..1a4be5b506 100644
Binary files a/icons/obj/food_canned.dmi and b/icons/obj/food_canned.dmi differ
diff --git a/icons/obj/trash.dmi b/icons/obj/trash.dmi
index 98b6c9b60f..f9c1ce7400 100644
Binary files a/icons/obj/trash.dmi and b/icons/obj/trash.dmi differ