diff --git a/code/game/objects/items/food/meatslab.dm b/code/game/objects/items/food/meatslab.dm index 026e4c1d90d21..eb93412d1bc47 100644 --- a/code/game/objects/items/food/meatslab.dm +++ b/code/game/objects/items/food/meatslab.dm @@ -21,12 +21,19 @@ ///Legacy code, handles the coloring of the overlay of the cutlets made from this. var/slab_color = "#FF0000" +/obj/item/food/meat/slab/Initialize(mapload) + . = ..() + make_dryable() + /obj/item/food/meat/slab/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe? /obj/item/food/meat/slab/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/plain, 3, 30) +/obj/item/food/meat/slab/proc/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy) + ///////////////////////////////////// HUMAN MEATS ////////////////////////////////////////////////////// /obj/item/food/meat/slab/human @@ -40,6 +47,9 @@ /obj/item/food/meat/slab/human/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/plain/human, 3, 30) +/obj/item/food/meat/slab/human/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/lean) + /obj/item/food/meat/slab/human/mutant/slime icon_state = "slimemeat" desc = "Because jello wasn't offensive enough to vegans." @@ -50,6 +60,9 @@ tastes = list("slime" = 1, "jelly" = 1) foodtypes = MEAT | RAW | TOXIC +/obj/item/food/meat/slab/human/mutant/slime/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/jelly) + /obj/item/food/meat/slab/human/mutant/golem icon_state = "golemmeat" desc = "Edible rocks, welcome to the future." @@ -60,6 +73,9 @@ tastes = list("rock" = 1) foodtypes = MEAT | RAW | GROSS +/obj/item/food/meat/slab/human/mutant/golem/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/rock_candy) + /obj/item/food/meat/slab/human/mutant/golem/adamantine icon_state = "agolemmeat" desc = "From the slime pen to the rune to the kitchen, science." @@ -74,6 +90,9 @@ /obj/item/food/meat/slab/human/mutant/lizard/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/human/lizard, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) +/obj/item/food/meat/slab/human/mutant/lizard/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/lizard) + /obj/item/food/meat/slab/human/mutant/diona name = "diona meat" icon_state = "plantmeat" @@ -81,6 +100,12 @@ tastes = list("salad" = 1, "wood" = 1, "bitterness" = 1) foodtypes = VEGETABLES +/obj/item/food/meat/slab/human/mutant/diona/make_grillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/human/diona, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) + +/obj/item/food/meat/slab/human/mutant/diona/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/diona) + /obj/item/food/meat/slab/human/mutant/shadow icon_state = "shadowmeat" desc = "Ow, the edge." @@ -97,12 +122,18 @@ tastes = list("maggots" = 1, "the inside of a reactor" = 1) foodtypes = MEAT | RAW | GROSS | GORE +/obj/item/food/meat/slab/human/mutant/fly/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/bugs) + /obj/item/food/meat/slab/human/mutant/moth icon_state = "mothmeat" desc = "Unpleasantly powdery and dry. Kind of pretty, though." tastes = list("dust" = 1, "powder" = 1, "meat" = 2) foodtypes = MEAT | RAW | GORE +/obj/item/food/meat/slab/human/mutant/moth/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/bugs) + /obj/item/food/meat/slab/human/mutant/skeleton name = "bone" icon_state = "skeletonmeat" @@ -113,6 +144,9 @@ /obj/item/food/meat/slab/human/mutant/skeleton/make_processable() return //skeletons dont have cutlets. Its a bone, Genius. +/obj/item/food/meat/slab/human/mutant/skeleton/make_dryable() + return //I agree. It's a bone, Genius. + /obj/item/food/meat/slab/human/mutant/zombie name = " meat (rotten)" icon_state = "rottenmeat" @@ -127,12 +161,18 @@ tastes = list("pure electricity" = 2, "meat" = 1) foodtypes = RAW | MEAT | TOXIC | GORE +/obj/item/food/meat/slab/human/mutant/ethereal/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/ethereal) + /obj/item/food/meat/slab/human/mutant/apid icon_state = "apidmeat" desc = "Smells like flowers, hopefully doesn't taste like one." tastes = list("honey" = 1, "flowers" = 1, "meat" = 2) foodtypes = MEAT | RAW | GORE +/obj/item/food/meat/slab/human/mutant/apid/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/bees) + /obj/item/food/meat/slab/human/mutant/psyphoza icon_state = "psyphoza_meat" desc = "Psychically awaiting consumption, spooky." @@ -141,6 +181,12 @@ foodtypes = VEGETABLES | RAW | GORE microwaved_type = /obj/item/food/meat/steak/plain/human/psyphoza +/obj/item/food/meat/slab/human/mutant/psyphoza/make_grillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/human/psyphoza, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) + +/obj/item/food/meat/slab/human/mutant/psyphoza/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/mushroom) + ////////////////////////////////////// OTHER MEATS //////////////////////////////////////////////////////// @@ -152,6 +198,9 @@ /obj/item/food/meat/slab/synthmeat/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/synth, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) +/obj/item/food/meat/slab/synthmeat/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/synthmeat) + /obj/item/food/meat/slab/meatproduct name = "meat product" //icon_state = "meatproduct" @@ -159,15 +208,24 @@ tastes = list("meat flavoring" = 2, "modified starches" = 2, "natural & artificial dyes" = 1, "butyric acid" = 1) // its supposed to be various processed chemicals seen in very processed food. Butyric acid is a reference to how a certain North American Candymaker puts a chemical commonly seen in vomit into chocolate foodtypes = RAW | MEAT +/obj/item/food/meat/slab/meatproduct/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/pemmican) + /obj/item/food/meat/slab/monkey name = "monkey meat" foodtypes = RAW | MEAT +/obj/item/food/meat/slab/monkey/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/monkey) + /obj/item/food/meat/slab/mouse name = "mouse meat" desc = "A slab of mouse meat. Best not eat it raw." foodtypes = RAW | MEAT | GORE +/obj/item/food/meat/slab/mouse/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/mouse) + /obj/item/food/meat/slab/corgi name = "corgi meat" desc = "Tastes like... well you know..." @@ -254,6 +312,9 @@ /obj/item/food/meat/slab/spider/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/spider, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE) +/obj/item/food/meat/slab/spider/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/bugs) + /obj/item/food/meat/slab/goliath name = "goliath meat" desc = "A slab of goliath meat. It's not very edible now, but it cooks great in lava." @@ -294,6 +355,9 @@ /datum/reagent/consumable/nutriment/fat = 5 //Plenty of fat! ) +/obj/item/food/meat/slab/gorilla/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/monkey) + /obj/item/food/meat/rawbacon name = "raw piece of bacon" desc = "A raw piece of bacon." @@ -395,6 +459,9 @@ ) //low fat tastes = list("chicken" = 1) +/obj/item/food/meat/slab/chicken/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/lean) + /obj/item/food/meat/slab/chicken/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/chicken, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe? (no this is chicken) @@ -408,6 +475,9 @@ tastes = list("gross" = 1) foodtypes = RAW | MEAT | GORE +/obj/item/food/meat/slab/mothroach/make_dryable() + AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy/bugs) + /obj/item/food/meat/slab/dolphinmeat name = "uncooked dolphin fillet" desc = "A fillet of spess dolphin meat." @@ -519,6 +589,11 @@ tastes = list("dirt" = 3, "wood" = 1) foodtypes = VEGETABLES +/obj/item/food/meat/steak/plain/human/diona + name = "diona steak" + tastes = list("salad" = 3, "plant fibre" = 1) + foodtypes = VEGETABLES + /obj/item/food/meat/steak/meatproduct name = "thermally processed meat product" //icon_state = "meatproductsteak" diff --git a/code/game/objects/items/food/snacks.dm b/code/game/objects/items/food/snacks.dm index 8c36b8649951a..7c98a610fb929 100644 --- a/code/game/objects/items/food/snacks.dm +++ b/code/game/objects/items/food/snacks.dm @@ -37,12 +37,133 @@ /obj/item/food/sosjerky/healthy name = "homemade beef jerky" desc = "Homemade beef jerky made from the finest space cows." + icon_state = "sosjerky_homemade" food_reagents = list( /datum/reagent/consumable/nutriment/protein = 6, /datum/reagent/consumable/nutriment/vitamin = 1 ) + crafting_complexity = FOOD_COMPLEXITY_2 junkiness = 0 +/obj/item/food/sosjerky/healthy/lean + name = "lean beef jerky" + desc = "Homemade beef jerky made from the finest space cows. Special lean cuts edition!" + icon_state = "sosjerky_lowfat" + tastes = list("dried meat" = 3, "chicken" = 1) //is it really chicken, or something else?.... + +/obj/item/food/sosjerky/healthy/lizard + name = "dinosaur jerky" + desc = "Homemade jerky made from the finest dinosaurs of Sauria. Natural dinosaur flavour!" + icon_state = "sosjerky_dinosaur" + tastes = list("dried meat" = 1, "scales" = 1) + +/obj/item/food/sosjerky/healthy/pig + name = "pork jerky" + desc = "Homemade jerky made from the cleanliest pigs in the sector." + icon_state = "sosjerky_pig" + tastes = list("dried meat" = 1, "acorns" = 1) + food_reagents = list( + /datum/reagent/consumable/nutriment/protein = 3, + /datum/reagent/consumable/nutriment/fat = 2, + /datum/reagent/consumable/nutriment/vitamin = 1 + ) + +/obj/item/food/sosjerky/healthy/mouse + name = "lizard treats" + desc = "Homemade jerky made from the locally-sourced space mice. \n20% of all proceeds go to pest control efforts of underfunded space stations. \n100% of meat goes to your pet lizard's happiness!" + icon_state = "sosjerky_lizard_treats" + tastes = list("dried meat" = 1, "pests" = 1) + foodtypes = JUNKFOOD | MEAT | GORE + +/obj/item/food/sosjerky/pemmican + name = "\improper Space Pemmican(tm) ration pack" + desc = "Meat product processed chemically, dehydrated, preserved.\nMay contain Azodicarbonamide, Propylparaben, Erythrosine.\nConsists of more than 35% connective tissue. \nSpace Pemmican(tm) is deemed unfit for human consumption in Jupiter II Europan Outer Solar System Economic Zone." + icon_state = "sosjerky_synth_pemmican" + tastes = list("meat flavoring" = 2, "bloodmeal" = 2, "natural & artificial dyes" = 1, "gastronomical anxiety" = 1) + foodtypes = JUNKFOOD | MEAT | GROSS + food_reagents = list( + /datum/reagent/consumable/nutriment = 3, + /datum/reagent/consumable/nutriment/fat = 2 + ) + junkiness = 45 //At least Scaredy's Private Reserve is made from real meat! What the hell is this?! Is this even food at this point?! + +/obj/item/food/sosjerky/healthy/bugs + name = "bug snacks" + desc = "Homemade high-protein snacks made from an assortment of insects. Thank you for supporting the path towards sustainable foods!" + icon_state = "sosjerky_bugs" + tastes = list("crispy tissue" = 4, "progressiveness" = 1) + +/obj/item/food/sosjerky/healthy/bees + name = "bee snacks" + desc = "Homemade high-protein snacks made from 100% bees." + icon_state = "sosjerky_bees" + tastes = list("crispy tenderness" = 4, "pollen" = 1) + +/obj/item/food/sosjerky/healthy/synthmeat + name = "cruelty-free jerky" + desc = "Homemade jerky made from synthetic meat. Not a single animal suffered during the creation of this product." + icon_state = "sosjerky_synth" + tastes = list("dried meat" = 3, "blue" = 1) + +/obj/item/food/sosjerky/healthy/monkey + name = "ape jerky" + desc = "Homemade jerky made from ape meat. \nNaturally contains banana flavour. \nHIV vaccine-free." + icon_state = "sosjerky_monkey" + tastes = list("dried meat" = 1, "bananas" = 1) + +/obj/item/food/sosjerky/healthy/diona + name = "vegetable jerky" + desc = "Homemade meat-imitating vegetable jerky. \nThis product has NOT been approved by the ethics commitee. \nMay be offensive to some plant-based crewmembers." + icon_state = "sosjerky_vegan" + tastes = list("dried beets" = 3, "fermented tomatoes" = 2, "lettuce" = 2, "vegetarian guilt" = 1) + foodtypes = JUNKFOOD | VEGETABLES + food_reagents = list( + /datum/reagent/consumable/nutriment/vitamin = 6 //very healthy! go butcher your diona coworker! + ) + +/obj/item/food/sosjerky/healthy/mushroom + name = "dried mushrooms" + desc = "An assortment of dried mushroom slices. Should not be poisonous." + icon_state = "sosjerky_mushroom" + tastes = list("dried mushrooms" = 3, "earth" = 1) + foodtypes = JUNKFOOD | VEGETABLES + food_reagents = list( + /datum/reagent/consumable/nutriment/protein = 3, //fungi are heterotrophs + /datum/reagent/consumable/nutriment/vitamin = 3, //still healthy + /datum/reagent/drug/mushroomhallucinogen = 3 + ) + +/obj/item/food/sosjerky/healthy/mushroom/Initialize(mapload) + . = ..() + if(rand(1, 100) == 1) + for(var/datum/reagent/R in reagents.reagent_list) + var/amount = R.volume + reagents.remove_reagent(R.type, amount) + reagents.add_reagent(/datum/reagent/toxin/amanitin, 10) //don't trust random mushrooms! (this is about 90 tox) + reagents.add_reagent(/datum/reagent/drug/mushroomhallucinogen, 3) + +/obj/item/food/sosjerky/healthy/jelly + name = "dried jelly strips" + desc = "Homemade dried jelly strips. \nMay be toxic to most lifeforms." + icon_state = "sosjerky_jelly" + tastes = list("jelly" = 2, "jello" = 2, "sourness" = 1) + foodtypes = JUNKFOOD | TOXIC | SUGAR + food_reagents = list( + /datum/reagent/toxin/slimejelly = 3, + /datum/reagent/consumable/sugar = 3, + /datum/reagent/consumable/nutriment = 3 + ) + +/obj/item/food/sosjerky/healthy/ethereal + name = "dried static charge" + desc = "This is what's left when you dry out electricity itself. \nMay cause static shocks." + icon_state = "sosjerky_electric" + tastes = list("static charge" = 2, "electrodynamics" = 2, "surging regret" = 1) + foodtypes = JUNKFOOD + food_reagents = list( + /datum/reagent/consumable/liquidelectricity = 6 + ) + /obj/item/food/chips name = "chips" desc = "Commander Riker's What-The-Crisps." diff --git a/code/game/objects/items/food/sweets.dm b/code/game/objects/items/food/sweets.dm index 1475e9712b6ae..0427682a6e05b 100644 --- a/code/game/objects/items/food/sweets.dm +++ b/code/game/objects/items/food/sweets.dm @@ -298,3 +298,18 @@ foodtypes = JUNKFOOD | SUGAR food_flags = FOOD_FINGER_FOOD crafting_complexity = FOOD_COMPLEXITY_1 + +/obj/item/food/rock_candy + name = "Rock candy" + desc = "A bunch of sweet crystals on a stick. Good for your blood!\n Warning for California residents: This product may contain lead, which is known to the State of California to cause cancer, birth defects, or other reproductive harm." + icon_state = "rock_candy" + food_reagents = list( + /datum/reagent/iron = 10, + /datum/reagent/mercury/lead_acetate = 5, //One couldn't hurt, am I right? + /datum/reagent/consumable/sugar = 5, + /datum/reagent/medicine/omnizine = 2 + ) + tastes = list("dreams of California beaches" = 1, "adamantine" = 2) + foodtypes = JUNKFOOD | SUGAR + food_flags = FOOD_FINGER_FOOD + crafting_complexity = FOOD_COMPLEXITY_1 diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index 5533b9029c4cf..6f1b084bff5a6 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -28,6 +28,7 @@ var/damage_delta = 0 var/list/datum/brain_trauma/traumas = list() + juice_results = null //the moment the brains become juicable, people will find a way to cheese round removal. So NO. investigate_flags = ADMIN_INVESTIGATE_TARGET diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index fe71fbc591037..16cd2d1933876 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -851,6 +851,14 @@ chem_flags = CHEMICAL_BASIC_ELEMENT | CHEMICAL_RNG_GENERAL | CHEMICAL_RNG_FUN // because brain damage is fun taste_mult = 0 // apparently tasteless. +/datum/reagent/mercury/lead_acetate + name = "Lead Acetate" + description = "A sweet neurotoxic chemical. The secret of Roman sweet wine." + color = "#AAAAAA" + chem_flags = CHEMICAL_RNG_GENERAL | CHEMICAL_RNG_FUN // because brain damage is fun + taste_description = "sweetness" + taste_mult = 3 + /datum/reagent/mercury/on_mob_life(mob/living/carbon/M) if(!HAS_TRAIT(src, TRAIT_IMMOBILIZED) && !isspaceturf(M.loc)) step(M, pick(GLOB.cardinals)) diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index ce4231bfe48b2..a7ae94f065aa9 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -121,8 +121,9 @@ /datum/chemical_reaction/meatification name = "Meatification" id = "meatification" - required_reagents = list(/datum/reagent/liquidgibs = 10, /datum/reagent/consumable/nutriment = 10, /datum/reagent/carbon = 10) + required_reagents = list(/datum/reagent/liquidgibs = 10, /datum/reagent/consumable/nutriment = 10) mob_react = FALSE + required_catalysts = list(/datum/reagent/consumable/enzyme = 5) /datum/chemical_reaction/meatification/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index c03abb503fd95..cd59faa32e32d 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -29,6 +29,7 @@ ///When you take a bite you cant jam it in for surgery anymore. var/useable = TRUE var/list/food_reagents = list(/datum/reagent/consumable/nutriment = 5) + juice_results = list(/datum/reagent/liquidgibs = 5) ///Do we effect the appearance of our mob. Used to save time in preference code var/visual = TRUE @@ -50,6 +51,8 @@ INITIALIZE_IMMEDIATE(/obj/item/organ) pre_eat = CALLBACK(src, PROC_REF(pre_eat)),\ on_compost = CALLBACK(src, PROC_REF(pre_compost)),\ after_eat = CALLBACK(src, PROC_REF(on_eat_from))) + if(organ_flags & ORGAN_SYNTHETIC) + juice_results = null /obj/item/organ/proc/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE, pref_load = FALSE) if(!iscarbon(M) || owner == M) diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index 9d7902b4d52bc..215af091d20e0 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ