Splitting some meat files (+ bonus fixes) (#69386)

* split up meat.dm

* minor coffeemaker fixes

* putting pig meat in its place

Co-authored-by: tattle <article.disaster@gmail.com>
This commit is contained in:
tattle
2022-08-24 14:45:22 -07:00
committed by GitHub
parent 41f5821e08
commit b83c7deee4
10 changed files with 775 additions and 742 deletions
+9 -3
View File
@@ -14,6 +14,7 @@
/obj/item/food/egg
name = "egg"
desc = "An egg!"
icon = 'icons/obj/food/egg.dmi'
icon_state = "egg"
food_reagents = list(/datum/reagent/consumable/eggyolk = 2, /datum/reagent/consumable/eggwhite = 4)
microwaved_type = /obj/item/food/boiledegg
@@ -106,9 +107,6 @@
qdel(src)
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
/obj/item/food/egg/blue
icon_state = "egg-blue"
@@ -136,6 +134,7 @@
/obj/item/food/friedegg
name = "fried egg"
desc = "A fried egg. Would go well with a touch of salt and pepper."
icon = 'icons/obj/food/egg.dmi'
icon_state = "friedegg"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 6, /datum/reagent/consumable/eggyolk = 2 , /datum/reagent/consumable/nutriment/vitamin = 2)
bite_consumption = 1
@@ -147,6 +146,7 @@
/obj/item/food/rawegg
name = "raw egg"
desc = "Supposedly good for you, if you can stomach it. Better fried."
icon = 'icons/obj/food/egg.dmi'
icon_state = "rawegg"
food_reagents = list() //Recieves all reagents from its whole egg counterpart
bite_consumption = 1
@@ -161,6 +161,7 @@
/obj/item/food/boiledegg
name = "boiled egg"
desc = "A hard boiled egg."
icon = 'icons/obj/food/egg.dmi'
icon_state = "egg"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 3, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("egg" = 1)
@@ -173,6 +174,7 @@
/obj/item/food/eggsausage
name = "egg with sausage"
desc = "A good egg with a side of sausages."
icon = 'icons/obj/food/egg.dmi'
icon_state = "eggsausage"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 8, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/nutriment = 4)
foodtypes = MEAT | FRIED | BREAKFAST
@@ -188,6 +190,7 @@
/obj/item/food/omelette //FUCK THIS
name = "omelette du fromage"
desc = "That's all you can say!"
icon = 'icons/obj/food/egg.dmi'
icon_state = "omelette"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 10, /datum/reagent/consumable/nutriment/vitamin = 3)
bite_consumption = 1
@@ -217,6 +220,7 @@
/obj/item/food/benedict
name = "eggs benedict"
desc = "There is only one egg on this, how rude."
icon = 'icons/obj/food/egg.dmi'
icon_state = "benedict"
food_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/consumable/nutriment/protein = 6, /datum/reagent/consumable/nutriment = 3)
w_class = WEIGHT_CLASS_SMALL
@@ -227,6 +231,7 @@
/obj/item/food/eggwrap
name = "egg wrap"
desc = "The precursor to Pigs in a Blanket."
icon = 'icons/obj/food/egg.dmi'
icon_state = "eggwrap"
food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/nutriment/vitamin = 3)
tastes = list("egg" = 1)
@@ -236,6 +241,7 @@
/obj/item/food/chawanmushi
name = "chawanmushi"
desc = "A legendary egg custard that makes friends out of enemies. Probably too hot for a cat to eat."
icon = 'icons/obj/food/egg.dmi'
icon_state = "chawanmushi"
food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/protein = 3, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("custard" = 1)
@@ -6,6 +6,7 @@
/obj/item/food/cubancarp
name = "\improper Cuban carp"
desc = "A grifftastic sandwich that burns your tongue and then leaves it numb!"
icon = 'icons/obj/food/meat.dmi'
icon_state = "cubancarp"
bite_consumption = 3
food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/protein = 6, /datum/reagent/consumable/capsaicin = 1, /datum/reagent/consumable/nutriment/vitamin = 4)
@@ -17,6 +18,7 @@
/obj/item/food/fishmeat
name = "fish fillet"
desc = "A fillet of some fish meat."
icon = 'icons/obj/food/meat.dmi'
icon_state = "fishfillet"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/consumable/nutriment/vitamin = 2)
bite_consumption = 6
@@ -74,6 +76,7 @@
/obj/item/food/fishfingers
name = "fish fingers"
desc = "A finger of fish."
icon = 'icons/obj/food/meat.dmi'
icon_state = "fishfingers"
food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
bite_consumption = 1
@@ -85,6 +88,7 @@
/obj/item/food/fishandchips
name = "fish and chips"
desc = "I do say so myself chap."
icon = 'icons/obj/food/meat.dmi'
icon_state = "fishandchips"
food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("fish" = 1, "chips" = 1)
@@ -94,6 +98,7 @@
/obj/item/food/fishfry
name = "fish fry"
desc = "All that and no bag of chips..."
icon = 'icons/obj/food/meat.dmi'
icon_state = "fishfry"
food_reagents = list (/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 3)
tastes = list("fish" = 1, "pan seared vegtables" = 1)
@@ -201,21 +206,6 @@
////////////////////////////////////////////MEATS AND ALIKE////////////////////////////////////////////
/obj/item/food/meat/slab/pig
name = "raw pork"
icon_state = "pig_meat"
tastes = list("pig" = 1)
foodtypes = MEAT | RAW | GROSS
/obj/item/food/meat/slab/pig/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/pig, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE)
/obj/item/food/meat/steak/plain/pig
name = "pork chops"
icon_state = "pigsteak"
tastes = list("pig" = 1)
foodtypes = MEAT | GROSS
/obj/item/food/tempeh
name = "raw tempeh block"
desc = "Fungus fermented soybean cake, warm to the touch."
@@ -270,6 +260,7 @@
/obj/item/food/spiderleg
name = "spider leg"
desc = "A still twitching leg of a giant spider... you don't really want to eat this, do you?"
icon = 'icons/obj/food/meat.dmi'
icon_state = "spiderleg"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 3, /datum/reagent/toxin = 2)
tastes = list("cobwebs" = 1)
@@ -282,6 +273,7 @@
/obj/item/food/cornedbeef
name = "corned beef and cabbage"
desc = "Now you can feel like a real tourist vacationing in Ireland."
icon = 'icons/obj/food/meat.dmi'
icon_state = "cornedbeef"
food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/protein = 6, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("meat" = 1, "cabbage" = 1)
@@ -291,6 +283,7 @@
/obj/item/food/bearsteak
name = "Filet migrawr"
desc = "Because eating bear wasn't manly enough."
icon = 'icons/obj/food/meat.dmi'
icon_state = "bearsteak"
food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 9, /datum/reagent/consumable/ethanol/manly_dorf = 5)
tastes = list("meat" = 1, "salmon" = 1)
@@ -301,6 +294,7 @@
/obj/item/food/raw_meatball
name = "raw meatball"
desc = "A great meal all round. Not a cord of wood. Kinda raw"
icon = 'icons/obj/food/meat.dmi'
icon_state = "raw_meatball"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2)
tastes = list("meat" = 1)
@@ -343,6 +337,7 @@
/obj/item/food/meatball
name = "meatball"
desc = "A great meal all round. Not a cord of wood."
icon = 'icons/obj/food/meat.dmi'
icon_state = "meatball"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2)
tastes = list("meat" = 1)
@@ -374,6 +369,7 @@
/obj/item/food/raw_patty
name = "raw patty"
desc = "I'm.....NOT REAAADDYY."
icon = 'icons/obj/food/meat.dmi'
icon_state = "raw_patty"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2)
tastes = list("meat" = 1)
@@ -410,6 +406,7 @@
/obj/item/food/patty
name = "patty"
desc = "The nanotrasen patty is the patty for you and me!"
icon = 'icons/obj/food/meat.dmi'
icon_state = "patty"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2)
tastes = list("meat" = 1)
@@ -441,7 +438,8 @@
/obj/item/food/raw_sausage
name = "raw sausage"
desc = "A piece of mixed, long meat, but then raw"
desc = "A piece of mixed, long meat, but then raw."
icon = 'icons/obj/food/meat.dmi'
icon_state = "raw_sausage"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("meat" = 1)
@@ -455,6 +453,7 @@
/obj/item/food/sausage
name = "sausage"
desc = "A piece of mixed, long meat."
icon = 'icons/obj/food/meat.dmi'
icon_state = "sausage"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("meat" = 1)
@@ -480,6 +479,7 @@
/obj/item/food/salami
name = "salami"
desc = "A slice of cured salami."
icon = 'icons/obj/food/meat.dmi'
icon_state = "salami"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 1)
tastes = list("meat" = 1, "smoke" = 1)
@@ -490,6 +490,7 @@
/obj/item/food/rawkhinkali
name = "raw khinkali"
desc = "One hundred khinkalis? Do I look like a pig?"
icon = 'icons/obj/food/meat.dmi'
icon_state = "khinkali"
food_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/protein = 1, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/garlic = 1)
tastes = list("meat" = 1, "onions" = 1, "garlic" = 1)
@@ -502,6 +503,7 @@
/obj/item/food/khinkali
name = "khinkali"
desc = "One hundred khinkalis? Do I look like a pig?"
icon = 'icons/obj/food/meat.dmi'
icon_state = "khinkali"
food_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/protein = 1, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/garlic = 1)
bite_consumption = 3
@@ -513,6 +515,7 @@
/obj/item/food/meatbun
name = "meat bun"
desc = "Has the potential to not be Dog."
icon = 'icons/obj/food/meat.dmi'
icon_state = "meatbun"
food_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("bun" = 3, "meat" = 2)
@@ -520,86 +523,6 @@
w_class = WEIGHT_CLASS_SMALL
venue_value = FOOD_PRICE_CHEAP
/obj/item/food/monkeycube
name = "monkey cube"
desc = "Just add water!"
icon_state = "monkeycube"
bite_consumption = 12
food_reagents = list(/datum/reagent/monkey_powder = 30)
tastes = list("the jungle" = 1, "bananas" = 1)
foodtypes = MEAT | SUGAR
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_TINY
var/faction
var/spawned_mob = /mob/living/carbon/human/species/monkey
/obj/item/food/monkeycube/proc/Expand()
var/mob/spammer = get_mob_by_key(fingerprintslast)
var/mob/living/bananas = new spawned_mob(drop_location(), TRUE, spammer)
if(faction)
bananas.faction = faction
if (!QDELETED(bananas))
visible_message(span_notice("[src] expands!"))
bananas.log_message("spawned via [src], Last attached mob: [key_name(spammer)].", LOG_ATTACK)
else if (!spammer) // Visible message in case there are no fingerprints
visible_message(span_notice("[src] fails to expand!"))
qdel(src)
/obj/item/food/monkeycube/suicide_act(mob/living/user)
user.visible_message(span_suicide("[user] is putting [src] in [user.p_their()] mouth! It looks like [user.p_theyre()] trying to commit suicide!"))
var/eating_success = do_after(user, 1 SECONDS, src)
if(QDELETED(user)) //qdeletion: the nuclear option of self-harm
return SHAME
if(!eating_success || QDELETED(src)) //checks if src is gone or if they failed to wait for a second
user.visible_message(span_suicide("[user] chickens out!"))
return SHAME
if(HAS_TRAIT(user, TRAIT_NOHUNGER)) //plasmamen don't have saliva/stomach acid
user.visible_message(span_suicide("[user] realizes [user.p_their()] body won't activate [src]!")
,span_warning("Your body won't activate [src]..."))
return SHAME
playsound(user, 'sound/items/eatfood.ogg', rand(10, 50), TRUE)
user.temporarilyRemoveItemFromInventory(src) //removes from hands, keeps in M
addtimer(CALLBACK(src, .proc/finish_suicide, user), 15) //you've eaten it, you can run now
return MANUAL_SUICIDE
/obj/item/food/monkeycube/proc/finish_suicide(mob/living/user) ///internal proc called by a monkeycube's suicide_act using a timer and callback. takes as argument the mob/living who activated the suicide
if(QDELETED(user) || QDELETED(src))
return
if(src.loc != user) //how the hell did you manage this
to_chat(user, span_warning("Something happened to [src]..."))
return
Expand()
user.visible_message(span_danger("[user]'s torso bursts open as a primate emerges!"))
user.gib(null, TRUE, null, TRUE)
/obj/item/food/monkeycube/syndicate
faction = list("neutral", ROLE_SYNDICATE)
/obj/item/food/monkeycube/gorilla
name = "gorilla cube"
desc = "A Waffle Co. brand gorilla cube. Now with extra molecules!"
bite_consumption = 20
food_reagents = list(/datum/reagent/monkey_powder = 30, /datum/reagent/medicine/strange_reagent = 5)
tastes = list("the jungle" = 1, "bananas" = 1, "jimmies" = 1)
spawned_mob = /mob/living/simple_animal/hostile/gorilla
/obj/item/food/monkeycube/chicken
name = "chicken cube"
desc = "A new Nanotrasen classic, the chicken cube. Tastes like everything!"
bite_consumption = 20
food_reagents = list(/datum/reagent/consumable/eggyolk = 30, /datum/reagent/medicine/strange_reagent = 1)
tastes = list("chicken" = 1, "the country" = 1, "chicken bouillon" = 1)
spawned_mob = /mob/living/simple_animal/chicken
/obj/item/food/monkeycube/bee
name = "bee cube"
desc = "We were sure it was a good idea. Just add water."
bite_consumption = 20
food_reagents = list(/datum/reagent/consumable/honey = 10, /datum/reagent/toxin = 5, /datum/reagent/medicine/strange_reagent = 1)
tastes = list("buzzing" = 1, "honey" = 1, "regret" = 1)
spawned_mob = /mob/living/simple_animal/hostile/bee
/obj/item/food/stewedsoymeat
name = "stewed soy meat"
desc = "Even non-vegetarians will LOVE this!"
@@ -613,6 +536,7 @@
/obj/item/food/boiledspiderleg
name = "boiled spider leg"
desc = "A giant spider's leg that's still twitching after being cooked. Gross!"
icon = 'icons/obj/food/meat.dmi'
icon_state = "spiderlegcooked"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/consumable/capsaicin = 4, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("hot peppers" = 1, "cobwebs" = 1)
@@ -623,6 +547,7 @@
/obj/item/food/spidereggsham
name = "green eggs and ham"
desc = "Would you eat them on a train? Would you eat them on a plane? Would you eat them on a state of the art corporate deathtrap floating through space?"
icon = 'icons/obj/food/meat.dmi'
icon_state = "spidereggsham"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 8, /datum/reagent/consumable/nutriment/vitamin = 3)
bite_consumption = 4
@@ -633,6 +558,7 @@
/obj/item/food/sashimi
name = "carp sashimi"
desc = "Celebrate surviving attack from hostile alien lifeforms by hospitalising yourself. You sure hope whoever made this is skilled."
icon = 'icons/obj/food/meat.dmi'
icon_state = "sashimi"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 10, /datum/reagent/consumable/capsaicin = 9, /datum/reagent/consumable/nutriment/vitamin = 4)
tastes = list("fish" = 1, "hot peppers" = 1)
@@ -648,6 +574,7 @@
/obj/item/food/nugget
name = "chicken nugget"
food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/nutriment/vitamin = 1)
icon = 'icons/obj/food/meat.dmi'
tastes = list("\"chicken\"" = 1)
foodtypes = MEAT
food_flags = FOOD_FINGER_FOOD
@@ -663,6 +590,7 @@
/obj/item/food/pigblanket
name = "pig in a blanket"
desc = "A tiny sausage wrapped in a flakey, buttery roll. Free this pig from its blanket prison by eating it."
icon = 'icons/obj/food/meat.dmi'
icon_state = "pigblanket"
food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/consumable/nutriment/vitamin = 2)
tastes = list("meat" = 1, "butter" = 1)
@@ -672,6 +600,7 @@
/obj/item/food/bbqribs
name = "bbq ribs"
desc = "BBQ ribs, slathered in a healthy coating of BBQ sauce. The least vegan thing to ever exist."
icon = 'icons/obj/food/meat.dmi'
icon_state = "ribs"
w_class = WEIGHT_CLASS_NORMAL
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 10, /datum/reagent/consumable/nutriment/vitamin = 3, /datum/reagent/consumable/bbqsauce = 10)
@@ -681,6 +610,7 @@
/obj/item/food/meatclown
name = "meat clown"
desc = "A delicious, round piece of meat clown. How horrifying."
icon = 'icons/obj/food/meat.dmi'
icon_state = "meatclown"
food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/banana = 2)
tastes = list("meat" = 5, "clowns" = 3, "sixteen teslas" = 1)
@@ -703,6 +633,7 @@
/obj/item/food/kebab
trash_type = /obj/item/stack/rods
icon = 'icons/obj/food/meat.dmi'
icon_state = "kebab"
w_class = WEIGHT_CLASS_NORMAL
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 14)
@@ -763,647 +694,6 @@
tastes = list("tex-mex" = 3, "cumin" = 2)
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 12, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/consumable/capsaicin = 3)
/obj/item/food/meat
custom_materials = list(/datum/material/meat = MINERAL_MATERIAL_AMOUNT * 4)
w_class = WEIGHT_CLASS_SMALL
var/subjectname = ""
var/subjectjob = null
/obj/item/food/meat/slab
name = "meat"
desc = "A slab of meat."
icon_state = "meat"
bite_consumption = 3
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 6, /datum/reagent/consumable/cooking_oil = 2) //Meat has fats that a food processor can process into cooking oil
tastes = list("meat" = 1)
foodtypes = MEAT | RAW
///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)
. = ..()
AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy)
/obj/item/food/meat/slab/MakeGrillable()
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/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/plain, 3, 3 SECONDS, table_required = TRUE)
///////////////////////////////////// HUMAN MEATS //////////////////////////////////////////////////////
/obj/item/food/meat/slab/human
name = "meat"
tastes = list("tender meat" = 1)
foodtypes = MEAT | RAW | GORE
venue_value = FOOD_MEAT_HUMAN
/obj/item/food/meat/slab/human/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/human, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe?
/obj/item/food/meat/slab/human/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/plain/human, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/human/mutant/slime
icon_state = "slimemeat"
desc = "Because jello wasn't offensive enough to vegans."
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/toxin/slimejelly = 3)
tastes = list("slime" = 1, "jelly" = 1)
foodtypes = MEAT | RAW | TOXIC
venue_value = FOOD_MEAT_MUTANT_RARE
/obj/item/food/meat/slab/human/mutant/golem
icon_state = "golemmeat"
desc = "Edible rocks, welcome to the future."
food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/iron = 3)
tastes = list("rock" = 1)
foodtypes = MEAT | RAW | GROSS
venue_value = FOOD_MEAT_MUTANT_RARE
/obj/item/food/meat/slab/human/mutant/golem/adamantine
icon_state = "agolemmeat"
desc = "From the slime pen to the rune to the kitchen, science."
foodtypes = MEAT | RAW | GROSS
/obj/item/food/meat/slab/human/mutant/lizard
icon_state = "lizardmeat"
desc = "Delicious dino damage."
tastes = list("meat" = 4, "scales" = 1)
foodtypes = MEAT | RAW | GORE
venue_value = FOOD_MEAT_MUTANT
/obj/item/food/meat/slab/human/mutant/lizard/MakeGrillable()
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/plant
icon_state = "plantmeat"
desc = "All the joys of healthy eating with all the fun of cannibalism."
tastes = list("salad" = 1, "wood" = 1)
foodtypes = VEGETABLES
venue_value = FOOD_MEAT_MUTANT_RARE
/obj/item/food/meat/slab/human/mutant/shadow
icon_state = "shadowmeat"
desc = "Ow, the edge."
tastes = list("darkness" = 1, "meat" = 1)
foodtypes = MEAT | RAW | GORE
venue_value = FOOD_MEAT_MUTANT_RARE
/obj/item/food/meat/slab/human/mutant/fly
icon_state = "flymeat"
desc = "Nothing says tasty like maggot filled radioactive mutant flesh."
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/uranium = 3)
tastes = list("maggots" = 1, "the inside of a reactor" = 1)
foodtypes = MEAT | RAW | GROSS | BUGS | GORE
venue_value = FOOD_MEAT_MUTANT
/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 | BUGS | GORE
venue_value = FOOD_MEAT_MUTANT
/obj/item/food/meat/slab/human/mutant/skeleton
name = "bone"
icon_state = "skeletonmeat"
desc = "There's a point where this needs to stop, and clearly we have passed it."
tastes = list("bone" = 1)
foodtypes = GROSS | GORE
venue_value = FOOD_MEAT_MUTANT_RARE
/obj/item/food/meat/slab/human/mutant/skeleton/MakeProcessable()
return //skeletons dont have cutlets
/obj/item/food/meat/slab/human/mutant/zombie
name = "meat (rotten)"
icon_state = "rottenmeat"
desc = "Halfway to becoming fertilizer for your garden."
tastes = list("brains" = 1, "meat" = 1)
foodtypes = RAW | MEAT | TOXIC | GORE | GROSS
/obj/item/food/meat/slab/human/mutant/ethereal
icon_state = "etherealmeat"
desc = "So shiny you feel like ingesting it might make you shine too"
food_reagents = list(/datum/reagent/consumable/liquidelectricity/enriched = 10)
tastes = list("pure electricity" = 2, "meat" = 1)
foodtypes = RAW | MEAT | TOXIC | GORE
venue_value = FOOD_MEAT_MUTANT
////////////////////////////////////// OTHER MEATS ////////////////////////////////////////////////////////
/obj/item/food/meat/slab/synthmeat
name = "synthmeat"
icon_state = "meat_old"
desc = "A synthetic slab of meat."
foodtypes = RAW | MEAT //hurr durr chemicals we're harmed in the production of this meat thus its non-vegan.
venue_value = FOOD_PRICE_WORTHLESS
/obj/item/food/meat/slab/synthmeat/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/synth, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE)
/obj/item/food/meat/slab/meatproduct
name = "meat product"
icon_state = "meatproduct"
desc = "A slab of station reclaimed and chemically processed meat product."
tastes = list("meat flavoring" = 2, "modified starches" = 2, "natural & artificial dyes" = 1, "butyric acid" = 1)
foodtypes = RAW | MEAT
/obj/item/food/meat/slab/meatproduct/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/meatproduct, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE)
/obj/item/food/meat/slab/monkey
name = "monkey meat"
foodtypes = RAW | MEAT
/obj/item/food/meat/slab/bugmeat
name = "bug meat"
icon_state = "spidermeat"
foodtypes = RAW | MEAT | BUGS
/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/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_LINE_TABLE_MOUSE, CELL_VIRUS_TABLE_GENERIC_MOB)
/obj/item/food/meat/slab/corgi
name = "corgi meat"
desc = "Tastes like... well you know..."
tastes = list("meat" = 4, "a fondness for wearing hats" = 1)
foodtypes = RAW | MEAT | GORE
/obj/item/food/meat/slab/corgi/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_LINE_TABLE_CORGI, CELL_VIRUS_TABLE_GENERIC_MOB)
/obj/item/food/meat/slab/mothroach
name = "mothroach meat"
desc = "A light slab of meat."
foodtypes = RAW | MEAT | GROSS
/obj/item/food/meat/slab/mothroach/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_VIRUS_TABLE_GENERIC_MOB)
/obj/item/food/meat/slab/pug
name = "pug meat"
desc = "Tastes like... well you know..."
foodtypes = RAW | MEAT | GORE
/obj/item/food/meat/slab/pug/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_LINE_TABLE_PUG, CELL_VIRUS_TABLE_GENERIC_MOB)
/obj/item/food/meat/slab/killertomato
name = "killer tomato meat"
desc = "A slice from a huge tomato."
icon_state = "tomatomeat"
food_reagents = list(/datum/reagent/consumable/nutriment = 2)
tastes = list("tomato" = 1)
foodtypes = FRUIT
/obj/item/food/meat/slab/killertomato/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/killertomato, rand(70 SECONDS, 85 SECONDS), TRUE, TRUE)
/obj/item/food/meat/slab/killertomato/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/killertomato, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/bear
name = "bear meat"
desc = "A very manly slab of meat."
icon_state = "bearmeat"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 16, /datum/reagent/medicine/morphine = 5, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/cooking_oil = 6)
tastes = list("meat" = 1, "salmon" = 1)
foodtypes = RAW | MEAT
/obj/item/food/meat/slab/bear/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/bear, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/bear/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/bear, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE)
/obj/item/food/meat/slab/bear/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_LINE_TABLE_BEAR, CELL_VIRUS_TABLE_GENERIC_MOB)
/obj/item/food/meat/slab/xeno
name = "xeno meat"
desc = "A slab of meat."
icon_state = "xenomeat"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 8, /datum/reagent/consumable/nutriment/vitamin = 3)
bite_consumption = 4
tastes = list("meat" = 1, "acid" = 1)
foodtypes = RAW | MEAT
/obj/item/food/meat/slab/xeno/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/xeno, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/xeno/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/xeno, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE)
/obj/item/food/meat/slab/spider
name = "spider meat"
desc = "A slab of spider meat. That is so Kafkaesque."
icon_state = "spidermeat"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/toxin = 3, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("cobwebs" = 1)
foodtypes = RAW | MEAT | TOXIC
/obj/item/food/meat/slab/spider/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/spider, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/spider/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/spider, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE)
/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."
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/toxin = 5, /datum/reagent/consumable/cooking_oil = 3)
icon_state = "goliathmeat"
tastes = list("meat" = 1)
foodtypes = RAW | MEAT | TOXIC
/obj/item/food/meat/slab/goliath/burn()
visible_message(span_notice("[src] finishes cooking!"))
new /obj/item/food/meat/steak/goliath(loc)
qdel(src)
/obj/item/food/meat/slab/meatwheat
name = "meatwheat clump"
desc = "This doesn't look like meat, but your standards aren't <i>that</i> high to begin with."
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/blood = 5, /datum/reagent/consumable/cooking_oil = 1)
icon_state = "meatwheat_clump"
bite_consumption = 4
tastes = list("meat" = 1, "wheat" = 1)
foodtypes = GRAIN
/obj/item/food/meat/slab/gorilla
name = "gorilla meat"
desc = "Much meatier than monkey meat."
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 7, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/cooking_oil = 5) //Plenty of fat!
/obj/item/food/meat/rawbacon
name = "raw piece of bacon"
desc = "A raw piece of bacon."
icon_state = "baconb"
bite_consumption = 2
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/cooking_oil = 3)
tastes = list("bacon" = 1)
foodtypes = RAW | MEAT
/obj/item/food/meat/rawbacon/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/bacon, rand(25 SECONDS, 45 SECONDS), TRUE, TRUE)
/obj/item/food/meat/bacon
name = "piece of bacon"
desc = "A delicious piece of bacon."
icon_state = "baconcookedb"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/cooking_oil = 2)
tastes = list("bacon" = 1)
foodtypes = MEAT | BREAKFAST
burns_on_grill = TRUE
/obj/item/food/meat/slab/gondola
name = "gondola meat"
desc = "According to legends of old, consuming raw gondola flesh grants one inner peace."
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/gondola_mutation_toxin = 5, /datum/reagent/consumable/cooking_oil = 3)
tastes = list("meat" = 4, "tranquility" = 1)
foodtypes = RAW | MEAT
/obj/item/food/meat/slab/gondola/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/gondola, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/gondola/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/gondola, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe?
/obj/item/food/meat/slab/penguin
name = "penguin meat"
icon_state = "birdmeat"
desc = "A slab of penguin meat."
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/consumable/cooking_oil = 3)
tastes = list("beef" = 1, "cod fish" = 1)
/obj/item/food/meat/slab/penguin/MakeProcessable()
. = ..()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/penguin, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/penguin/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/penguin, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe?
/obj/item/food/meat/slab/rawcrab
name = "raw crab meat"
desc = "A pile of raw crab meat."
icon_state = "crabmeatraw"
bite_consumption = 3
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 3, /datum/reagent/consumable/cooking_oil = 3)
tastes = list("raw crab" = 1)
foodtypes = RAW | MEAT
/obj/item/food/meat/slab/rawcrab/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/crab, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe?
/obj/item/food/meat/crab
name = "crab meat"
desc = "Some deliciously cooked crab meat."
icon_state = "crabmeat"
food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/cooking_oil = 2)
tastes = list("crab" = 1)
foodtypes = SEAFOOD
burns_on_grill = TRUE
/obj/item/food/meat/slab/chicken
name = "chicken meat"
icon_state = "birdmeat"
desc = "A slab of raw chicken. Remember to wash your hands!"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 6) //low fat
tastes = list("chicken" = 1)
/obj/item/food/meat/slab/chicken/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/chicken, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/chicken/MakeGrillable()
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)
/obj/item/food/meat/slab/chicken/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_LINE_TABLE_CHICKEN, CELL_VIRUS_TABLE_GENERIC_MOB)
////////////////////////////////////// MEAT STEAKS ///////////////////////////////////////////////////////////
/obj/item/food/meat/steak
name = "steak"
desc = "A piece of hot spicy meat."
icon_state = "meatsteak"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 8, /datum/reagent/consumable/nutriment/vitamin = 1)
foodtypes = MEAT
tastes = list("meat" = 1)
burns_on_grill = TRUE
/obj/item/food/meat/steak/Initialize(mapload)
. = ..()
RegisterSignal(src, COMSIG_ITEM_MICROWAVE_COOKED, .proc/OnMicrowaveCooked)
/obj/item/food/meat/steak/proc/OnMicrowaveCooked(datum/source, obj/item/source_item, cooking_efficiency = 1)
SIGNAL_HANDLER
name = "[source_item.name] steak"
/obj/item/food/meat/steak/plain
foodtypes = MEAT
/obj/item/food/meat/steak/plain/human
tastes = list("tender meat" = 1)
foodtypes = MEAT | GORE
///Make sure the steak has the correct name
/obj/item/food/meat/steak/plain/human/OnMicrowaveCooked(datum/source, obj/item/source_item, cooking_efficiency = 1)
. = ..()
if(istype(source_item, /obj/item/food/meat))
var/obj/item/food/meat/origin_meat = source_item
subjectname = origin_meat.subjectname
subjectjob = origin_meat.subjectjob
if(subjectname)
name = "[origin_meat.subjectname] meatsteak"
else if(subjectjob)
name = "[origin_meat.subjectjob] meatsteak"
/obj/item/food/meat/steak/killertomato
name = "killer tomato steak"
tastes = list("tomato" = 1)
foodtypes = FRUIT
/obj/item/food/meat/steak/bear
name = "bear steak"
tastes = list("meat" = 1, "salmon" = 1)
/obj/item/food/meat/steak/xeno
name = "xeno steak"
tastes = list("meat" = 1, "acid" = 1)
/obj/item/food/meat/steak/spider
name = "spider steak"
tastes = list("cobwebs" = 1)
/obj/item/food/meat/steak/goliath
name = "goliath steak"
desc = "A delicious, lava cooked steak."
resistance_flags = LAVA_PROOF | FIRE_PROOF
icon_state = "goliathsteak"
trash_type = null
tastes = list("meat" = 1, "rock" = 1)
foodtypes = MEAT
/obj/item/food/meat/steak/gondola
name = "gondola steak"
tastes = list("meat" = 1, "tranquility" = 1)
/obj/item/food/meat/steak/penguin
name = "penguin steak"
icon_state = "birdsteak"
tastes = list("beef" = 1, "cod fish" = 1)
/obj/item/food/meat/steak/chicken
name = "chicken steak" //Can you have chicken steaks? Maybe this should be renamed once it gets new sprites.
icon_state = "birdsteak"
tastes = list("chicken" = 1)
/obj/item/food/meat/steak/plain/human/lizard
name = "lizard steak"
icon_state = "birdsteak"
tastes = list("juicy chicken" = 3, "scales" = 1)
foodtypes = MEAT | GORE
/obj/item/food/meat/steak/meatproduct
name = "thermally processed meat product"
icon_state = "meatproductsteak"
tastes = list("enhanced char" = 2, "suspicious tenderness" = 2, "natural & artificial dyes" = 2, "emulsifying agents" = 1)
/obj/item/food/meat/steak/plain/synth
name = "synthsteak"
desc = "A synthetic meat steak. It doesn't look quite right, now does it?"
icon_state = "meatsteak_old"
tastes = list("meat" = 4, "cryoxandone" = 1)
//////////////////////////////// MEAT CUTLETS ///////////////////////////////////////////////////////
//Raw cutlets
/obj/item/food/meat/rawcutlet
name = "raw cutlet"
desc = "A raw meat cutlet."
icon_state = "rawcutlet"
bite_consumption = 2
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2)
tastes = list("meat" = 1)
foodtypes = MEAT | RAW
var/meat_type = "meat"
/obj/item/food/meat/rawcutlet/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/plain, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/OnCreatedFromProcessing(mob/living/user, obj/item/item, list/chosen_option, atom/original_atom)
..()
if(!istype(original_atom, /obj/item/food/meat/slab))
return
var/obj/item/food/meat/slab/original_slab = original_atom
var/mutable_appearance/filling = mutable_appearance(icon, "rawcutlet_coloration")
filling.color = original_slab.slab_color
add_overlay(filling)
name = "raw [original_atom.name] cutlet"
meat_type = original_atom.name
/obj/item/food/meat/rawcutlet/plain
foodtypes = MEAT
/obj/item/food/meat/rawcutlet/plain
/obj/item/food/meat/rawcutlet/plain/human
tastes = list("tender meat" = 1)
foodtypes = MEAT | RAW | GORE
/obj/item/food/meat/rawcutlet/plain/human/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/plain/human, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/plain/human/OnCreatedFromProcessing(mob/living/user, obj/item/item, list/chosen_option, atom/original_atom)
. = ..()
if(!istype(original_atom, /obj/item/food/meat))
return
var/obj/item/food/meat/origin_meat = original_atom
subjectname = origin_meat.subjectname
subjectjob = origin_meat.subjectjob
if(subjectname)
name = "raw [origin_meat.subjectname] cutlet"
else if(subjectjob)
name = "raw [origin_meat.subjectjob] cutlet"
/obj/item/food/meat/rawcutlet/killertomato
name = "raw killer tomato cutlet"
tastes = list("tomato" = 1)
foodtypes = FRUIT
/obj/item/food/meat/rawcutlet/killertomato/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/killertomato, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/bear
name = "raw bear cutlet"
tastes = list("meat" = 1, "salmon" = 1)
/obj/item/food/meat/rawcutlet/bear/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_LINE_TABLE_BEAR, CELL_VIRUS_TABLE_GENERIC_MOB)
/obj/item/food/meat/rawcutlet/bear/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/bear, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/xeno
name = "raw xeno cutlet"
tastes = list("meat" = 1, "acid" = 1)
/obj/item/food/meat/rawcutlet/xeno/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/xeno, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/spider
name = "raw spider cutlet"
tastes = list("cobwebs" = 1)
/obj/item/food/meat/rawcutlet/spider/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/spider, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/gondola
name = "raw gondola cutlet"
tastes = list("meat" = 1, "tranquility" = 1)
/obj/item/food/meat/rawcutlet/gondola/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/gondola, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/penguin
name = "raw penguin cutlet"
tastes = list("beef" = 1, "cod fish" = 1)
/obj/item/food/meat/rawcutlet/penguin/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/penguin, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/chicken
name = "raw chicken cutlet"
tastes = list("chicken" = 1)
/obj/item/food/meat/rawcutlet/chicken/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/chicken, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/chicken/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_LINE_TABLE_CHICKEN, CELL_VIRUS_TABLE_GENERIC_MOB)
//Cooked cutlets
/obj/item/food/meat/cutlet
name = "cutlet"
desc = "A cooked meat cutlet."
icon_state = "cutlet"
bite_consumption = 2
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2)
tastes = list("meat" = 1)
foodtypes = MEAT
burns_on_grill = TRUE
/obj/item/food/meat/cutlet/Initialize(mapload)
. = ..()
RegisterSignal(src, COMSIG_ITEM_MICROWAVE_COOKED, .proc/OnMicrowaveCooked)
///This proc handles setting up the correct meat name for the cutlet, this should definitely be changed with the food rework.
/obj/item/food/meat/cutlet/proc/OnMicrowaveCooked(datum/source, atom/source_item, cooking_efficiency)
SIGNAL_HANDLER
if(istype(source_item, /obj/item/food/meat/rawcutlet))
var/obj/item/food/meat/rawcutlet/original_cutlet = source_item
name = "[original_cutlet.meat_type] cutlet"
/obj/item/food/meat/cutlet/plain
/obj/item/food/meat/cutlet/plain/human
tastes = list("tender meat" = 1)
foodtypes = MEAT | GORE
/obj/item/food/meat/cutlet/plain/human/OnMicrowaveCooked(datum/source, atom/source_item, cooking_efficiency)
. = ..()
if(istype(source_item, /obj/item/food/meat))
var/obj/item/food/meat/origin_meat = source_item
if(subjectname)
name = "[origin_meat.subjectname] [initial(name)]"
else if(subjectjob)
name = "[origin_meat.subjectjob] [initial(name)]"
/obj/item/food/meat/cutlet/killertomato
name = "killer tomato cutlet"
tastes = list("tomato" = 1)
foodtypes = FRUIT
/obj/item/food/meat/cutlet/bear
name = "bear cutlet"
tastes = list("meat" = 1, "salmon" = 1)
/obj/item/food/meat/cutlet/xeno
name = "xeno cutlet"
tastes = list("meat" = 1, "acid" = 1)
/obj/item/food/meat/cutlet/spider
name = "spider cutlet"
tastes = list("cobwebs" = 1)
/obj/item/food/meat/cutlet/gondola
name = "gondola cutlet"
tastes = list("meat" = 1, "tranquility" = 1)
/obj/item/food/meat/cutlet/penguin
name = "penguin cutlet"
tastes = list("beef" = 1, "cod fish" = 1)
/obj/item/food/meat/cutlet/chicken
name = "chicken cutlet"
tastes = list("chicken" = 1)
/obj/item/food/fried_chicken
name = "fried chicken"
desc = "A juicy hunk of chicken meat, fried to perfection."
+656
View File
@@ -0,0 +1,656 @@
/obj/item/food/meat
custom_materials = list(/datum/material/meat = MINERAL_MATERIAL_AMOUNT * 4)
w_class = WEIGHT_CLASS_SMALL
icon = 'icons/obj/food/meat.dmi'
var/subjectname = ""
var/subjectjob = null
/obj/item/food/meat/slab
name = "meat"
desc = "A slab of meat."
icon_state = "meat"
bite_consumption = 3
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 6, /datum/reagent/consumable/cooking_oil = 2) //Meat has fats that a food processor can process into cooking oil
tastes = list("meat" = 1)
foodtypes = MEAT | RAW
///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)
. = ..()
AddElement(/datum/element/dryable, /obj/item/food/sosjerky/healthy)
/obj/item/food/meat/slab/MakeGrillable()
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/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/plain, 3, 3 SECONDS, table_required = TRUE)
///////////////////////////////////// HUMAN MEATS //////////////////////////////////////////////////////
/obj/item/food/meat/slab/human
name = "meat"
tastes = list("tender meat" = 1)
foodtypes = MEAT | RAW | GORE
venue_value = FOOD_MEAT_HUMAN
/obj/item/food/meat/slab/human/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/human, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe?
/obj/item/food/meat/slab/human/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/plain/human, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/human/mutant/slime
icon_state = "slimemeat"
desc = "Because jello wasn't offensive enough to vegans."
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/toxin/slimejelly = 3)
tastes = list("slime" = 1, "jelly" = 1)
foodtypes = MEAT | RAW | TOXIC
venue_value = FOOD_MEAT_MUTANT_RARE
/obj/item/food/meat/slab/human/mutant/golem
icon_state = "golemmeat"
desc = "Edible rocks, welcome to the future."
food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/iron = 3)
tastes = list("rock" = 1)
foodtypes = MEAT | RAW | GROSS
venue_value = FOOD_MEAT_MUTANT_RARE
/obj/item/food/meat/slab/human/mutant/golem/adamantine
icon_state = "agolemmeat"
desc = "From the slime pen to the rune to the kitchen, science."
foodtypes = MEAT | RAW | GROSS
/obj/item/food/meat/slab/human/mutant/lizard
icon_state = "lizardmeat"
desc = "Delicious dino damage."
tastes = list("meat" = 4, "scales" = 1)
foodtypes = MEAT | RAW | GORE
venue_value = FOOD_MEAT_MUTANT
/obj/item/food/meat/slab/human/mutant/lizard/MakeGrillable()
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/plant
icon_state = "plantmeat"
desc = "All the joys of healthy eating with all the fun of cannibalism."
tastes = list("salad" = 1, "wood" = 1)
foodtypes = VEGETABLES
venue_value = FOOD_MEAT_MUTANT_RARE
/obj/item/food/meat/slab/human/mutant/shadow
icon_state = "shadowmeat"
desc = "Ow, the edge."
tastes = list("darkness" = 1, "meat" = 1)
foodtypes = MEAT | RAW | GORE
venue_value = FOOD_MEAT_MUTANT_RARE
/obj/item/food/meat/slab/human/mutant/fly
icon_state = "flymeat"
desc = "Nothing says tasty like maggot filled radioactive mutant flesh."
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/uranium = 3)
tastes = list("maggots" = 1, "the inside of a reactor" = 1)
foodtypes = MEAT | RAW | GROSS | BUGS | GORE
venue_value = FOOD_MEAT_MUTANT
/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 | BUGS | GORE
venue_value = FOOD_MEAT_MUTANT
/obj/item/food/meat/slab/human/mutant/skeleton
name = "bone"
icon_state = "skeletonmeat"
desc = "There's a point where this needs to stop, and clearly we have passed it."
tastes = list("bone" = 1)
foodtypes = GROSS | GORE
venue_value = FOOD_MEAT_MUTANT_RARE
/obj/item/food/meat/slab/human/mutant/skeleton/MakeProcessable()
return //skeletons dont have cutlets
/obj/item/food/meat/slab/human/mutant/zombie
name = "meat (rotten)"
icon_state = "rottenmeat"
desc = "Halfway to becoming fertilizer for your garden."
tastes = list("brains" = 1, "meat" = 1)
foodtypes = RAW | MEAT | TOXIC | GORE | GROSS
/obj/item/food/meat/slab/human/mutant/ethereal
icon_state = "etherealmeat"
desc = "So shiny you feel like ingesting it might make you shine too"
food_reagents = list(/datum/reagent/consumable/liquidelectricity/enriched = 10)
tastes = list("pure electricity" = 2, "meat" = 1)
foodtypes = RAW | MEAT | TOXIC | GORE
venue_value = FOOD_MEAT_MUTANT
////////////////////////////////////// OTHER MEATS ////////////////////////////////////////////////////////
/obj/item/food/meat/slab/synthmeat
name = "synthmeat"
icon_state = "meat_old"
desc = "A synthetic slab of meat."
foodtypes = RAW | MEAT //hurr durr chemicals we're harmed in the production of this meat thus its non-vegan.
venue_value = FOOD_PRICE_WORTHLESS
/obj/item/food/meat/slab/synthmeat/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/synth, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE)
/obj/item/food/meat/slab/meatproduct
name = "meat product"
icon_state = "meatproduct"
desc = "A slab of station reclaimed and chemically processed meat product."
tastes = list("meat flavoring" = 2, "modified starches" = 2, "natural & artificial dyes" = 1, "butyric acid" = 1)
foodtypes = RAW | MEAT
/obj/item/food/meat/slab/meatproduct/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/meatproduct, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE)
/obj/item/food/meat/slab/monkey
name = "monkey meat"
foodtypes = RAW | MEAT
/obj/item/food/meat/slab/bugmeat
name = "bug meat"
icon_state = "spidermeat"
foodtypes = RAW | MEAT | BUGS
/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/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_LINE_TABLE_MOUSE, CELL_VIRUS_TABLE_GENERIC_MOB)
/obj/item/food/meat/slab/corgi
name = "corgi meat"
desc = "Tastes like... well you know..."
tastes = list("meat" = 4, "a fondness for wearing hats" = 1)
foodtypes = RAW | MEAT | GORE
/obj/item/food/meat/slab/corgi/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_LINE_TABLE_CORGI, CELL_VIRUS_TABLE_GENERIC_MOB)
/obj/item/food/meat/slab/mothroach
name = "mothroach meat"
desc = "A light slab of meat."
foodtypes = RAW | MEAT | GROSS
/obj/item/food/meat/slab/mothroach/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_VIRUS_TABLE_GENERIC_MOB)
/obj/item/food/meat/slab/pug
name = "pug meat"
desc = "Tastes like... well you know..."
foodtypes = RAW | MEAT | GORE
/obj/item/food/meat/slab/pug/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_LINE_TABLE_PUG, CELL_VIRUS_TABLE_GENERIC_MOB)
/obj/item/food/meat/slab/killertomato
name = "killer tomato meat"
desc = "A slice from a huge tomato."
icon_state = "tomatomeat"
food_reagents = list(/datum/reagent/consumable/nutriment = 2)
tastes = list("tomato" = 1)
foodtypes = FRUIT
/obj/item/food/meat/slab/killertomato/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/killertomato, rand(70 SECONDS, 85 SECONDS), TRUE, TRUE)
/obj/item/food/meat/slab/killertomato/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/killertomato, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/bear
name = "bear meat"
desc = "A very manly slab of meat."
icon_state = "bearmeat"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 16, /datum/reagent/medicine/morphine = 5, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/cooking_oil = 6)
tastes = list("meat" = 1, "salmon" = 1)
foodtypes = RAW | MEAT
/obj/item/food/meat/slab/bear/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/bear, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/bear/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/bear, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE)
/obj/item/food/meat/slab/bear/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_LINE_TABLE_BEAR, CELL_VIRUS_TABLE_GENERIC_MOB)
/obj/item/food/meat/slab/xeno
name = "xeno meat"
desc = "A slab of meat."
icon_state = "xenomeat"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 8, /datum/reagent/consumable/nutriment/vitamin = 3)
bite_consumption = 4
tastes = list("meat" = 1, "acid" = 1)
foodtypes = RAW | MEAT
/obj/item/food/meat/slab/xeno/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/xeno, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/xeno/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/xeno, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE)
/obj/item/food/meat/slab/spider
name = "spider meat"
desc = "A slab of spider meat. That is so Kafkaesque."
icon_state = "spidermeat"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/toxin = 3, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("cobwebs" = 1)
foodtypes = RAW | MEAT | TOXIC
/obj/item/food/meat/slab/spider/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/spider, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/spider/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/spider, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE)
/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."
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/toxin = 5, /datum/reagent/consumable/cooking_oil = 3)
icon_state = "goliathmeat"
tastes = list("meat" = 1)
foodtypes = RAW | MEAT | TOXIC
/obj/item/food/meat/slab/goliath/burn()
visible_message(span_notice("[src] finishes cooking!"))
new /obj/item/food/meat/steak/goliath(loc)
qdel(src)
/obj/item/food/meat/slab/meatwheat
name = "meatwheat clump"
desc = "This doesn't look like meat, but your standards aren't <i>that</i> high to begin with."
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/blood = 5, /datum/reagent/consumable/cooking_oil = 1)
icon_state = "meatwheat_clump"
bite_consumption = 4
tastes = list("meat" = 1, "wheat" = 1)
foodtypes = GRAIN
/obj/item/food/meat/slab/gorilla
name = "gorilla meat"
desc = "Much meatier than monkey meat."
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 7, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/cooking_oil = 5) //Plenty of fat!
/obj/item/food/meat/rawbacon
name = "raw piece of bacon"
desc = "A raw piece of bacon."
icon_state = "baconb"
bite_consumption = 2
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/cooking_oil = 3)
tastes = list("bacon" = 1)
foodtypes = RAW | MEAT
/obj/item/food/meat/rawbacon/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/bacon, rand(25 SECONDS, 45 SECONDS), TRUE, TRUE)
/obj/item/food/meat/bacon
name = "piece of bacon"
desc = "A delicious piece of bacon."
icon_state = "baconcookedb"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/cooking_oil = 2)
tastes = list("bacon" = 1)
foodtypes = MEAT | BREAKFAST
burns_on_grill = TRUE
/obj/item/food/meat/slab/gondola
name = "gondola meat"
desc = "According to legends of old, consuming raw gondola flesh grants one inner peace."
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/gondola_mutation_toxin = 5, /datum/reagent/consumable/cooking_oil = 3)
tastes = list("meat" = 4, "tranquility" = 1)
foodtypes = RAW | MEAT
/obj/item/food/meat/slab/gondola/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/gondola, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/gondola/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/gondola, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe?
/obj/item/food/meat/slab/penguin
name = "penguin meat"
icon_state = "birdmeat"
desc = "A slab of penguin meat."
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/consumable/cooking_oil = 3)
tastes = list("beef" = 1, "cod fish" = 1)
/obj/item/food/meat/slab/penguin/MakeProcessable()
. = ..()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/penguin, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/penguin/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/penguin, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe?
/obj/item/food/meat/slab/rawcrab
name = "raw crab meat"
desc = "A pile of raw crab meat."
icon_state = "crabmeatraw"
bite_consumption = 3
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 3, /datum/reagent/consumable/cooking_oil = 3)
tastes = list("raw crab" = 1)
foodtypes = RAW | MEAT
/obj/item/food/meat/slab/rawcrab/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/crab, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe?
/obj/item/food/meat/crab
name = "crab meat"
desc = "Some deliciously cooked crab meat."
icon_state = "crabmeat"
food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/cooking_oil = 2)
tastes = list("crab" = 1)
foodtypes = SEAFOOD
burns_on_grill = TRUE
/obj/item/food/meat/slab/chicken
name = "chicken meat"
icon_state = "birdmeat"
desc = "A slab of raw chicken. Remember to wash your hands!"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 6) //low fat
tastes = list("chicken" = 1)
/obj/item/food/meat/slab/chicken/MakeProcessable()
AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/chicken, 3, 3 SECONDS, table_required = TRUE)
/obj/item/food/meat/slab/chicken/MakeGrillable()
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)
/obj/item/food/meat/slab/chicken/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_LINE_TABLE_CHICKEN, CELL_VIRUS_TABLE_GENERIC_MOB)
/obj/item/food/meat/slab/pig
name = "raw pork"
icon_state = "pig_meat"
tastes = list("pig" = 1)
foodtypes = RAW | MEAT | GORE
/obj/item/food/meat/slab/pig/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/pig, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE)
////////////////////////////////////// MEAT STEAKS ///////////////////////////////////////////////////////////
/obj/item/food/meat/steak
name = "steak"
desc = "A piece of hot spicy meat."
icon_state = "meatsteak"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 8, /datum/reagent/consumable/nutriment/vitamin = 1)
foodtypes = MEAT
tastes = list("meat" = 1)
burns_on_grill = TRUE
/obj/item/food/meat/steak/Initialize(mapload)
. = ..()
RegisterSignal(src, COMSIG_ITEM_MICROWAVE_COOKED, .proc/OnMicrowaveCooked)
/obj/item/food/meat/steak/proc/OnMicrowaveCooked(datum/source, obj/item/source_item, cooking_efficiency = 1)
SIGNAL_HANDLER
name = "[source_item.name] steak"
/obj/item/food/meat/steak/plain
foodtypes = MEAT
/obj/item/food/meat/steak/plain/human
tastes = list("tender meat" = 1)
foodtypes = MEAT | GORE
///Make sure the steak has the correct name
/obj/item/food/meat/steak/plain/human/OnMicrowaveCooked(datum/source, obj/item/source_item, cooking_efficiency = 1)
. = ..()
if(istype(source_item, /obj/item/food/meat))
var/obj/item/food/meat/origin_meat = source_item
subjectname = origin_meat.subjectname
subjectjob = origin_meat.subjectjob
if(subjectname)
name = "[origin_meat.subjectname] meatsteak"
else if(subjectjob)
name = "[origin_meat.subjectjob] meatsteak"
/obj/item/food/meat/steak/killertomato
name = "killer tomato steak"
tastes = list("tomato" = 1)
foodtypes = FRUIT
/obj/item/food/meat/steak/bear
name = "bear steak"
tastes = list("meat" = 1, "salmon" = 1)
/obj/item/food/meat/steak/xeno
name = "xeno steak"
tastes = list("meat" = 1, "acid" = 1)
/obj/item/food/meat/steak/spider
name = "spider steak"
tastes = list("cobwebs" = 1)
/obj/item/food/meat/steak/goliath
name = "goliath steak"
desc = "A delicious, lava cooked steak."
resistance_flags = LAVA_PROOF | FIRE_PROOF
icon_state = "goliathsteak"
trash_type = null
tastes = list("meat" = 1, "rock" = 1)
foodtypes = MEAT
/obj/item/food/meat/steak/gondola
name = "gondola steak"
tastes = list("meat" = 1, "tranquility" = 1)
/obj/item/food/meat/steak/penguin
name = "penguin steak"
icon_state = "birdsteak"
tastes = list("beef" = 1, "cod fish" = 1)
/obj/item/food/meat/steak/chicken
name = "chicken steak" //Can you have chicken steaks? Maybe this should be renamed once it gets new sprites.
icon_state = "birdsteak"
tastes = list("chicken" = 1)
/obj/item/food/meat/steak/plain/human/lizard
name = "lizard steak"
icon_state = "birdsteak"
tastes = list("juicy chicken" = 3, "scales" = 1)
foodtypes = MEAT | GORE
/obj/item/food/meat/steak/meatproduct
name = "thermally processed meat product"
icon_state = "meatproductsteak"
tastes = list("enhanced char" = 2, "suspicious tenderness" = 2, "natural & artificial dyes" = 2, "emulsifying agents" = 1)
/obj/item/food/meat/steak/plain/synth
name = "synthsteak"
desc = "A synthetic meat steak. It doesn't look quite right, now does it?"
icon_state = "meatsteak_old"
tastes = list("meat" = 4, "cryoxandone" = 1)
/obj/item/food/meat/steak/plain/pig
name = "pork chops"
icon_state = "pigsteak"
tastes = list("pig" = 1)
foodtypes = MEAT
//////////////////////////////// MEAT CUTLETS ///////////////////////////////////////////////////////
//Raw cutlets
/obj/item/food/meat/rawcutlet
name = "raw cutlet"
desc = "A raw meat cutlet."
icon_state = "rawcutlet"
bite_consumption = 2
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2)
tastes = list("meat" = 1)
foodtypes = MEAT | RAW
var/meat_type = "meat"
/obj/item/food/meat/rawcutlet/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/plain, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/OnCreatedFromProcessing(mob/living/user, obj/item/item, list/chosen_option, atom/original_atom)
..()
if(!istype(original_atom, /obj/item/food/meat/slab))
return
var/obj/item/food/meat/slab/original_slab = original_atom
var/mutable_appearance/filling = mutable_appearance(icon, "rawcutlet_coloration")
filling.color = original_slab.slab_color
add_overlay(filling)
name = "raw [original_atom.name] cutlet"
meat_type = original_atom.name
/obj/item/food/meat/rawcutlet/plain
foodtypes = MEAT
/obj/item/food/meat/rawcutlet/plain
/obj/item/food/meat/rawcutlet/plain/human
tastes = list("tender meat" = 1)
foodtypes = MEAT | RAW | GORE
/obj/item/food/meat/rawcutlet/plain/human/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/plain/human, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/plain/human/OnCreatedFromProcessing(mob/living/user, obj/item/item, list/chosen_option, atom/original_atom)
. = ..()
if(!istype(original_atom, /obj/item/food/meat))
return
var/obj/item/food/meat/origin_meat = original_atom
subjectname = origin_meat.subjectname
subjectjob = origin_meat.subjectjob
if(subjectname)
name = "raw [origin_meat.subjectname] cutlet"
else if(subjectjob)
name = "raw [origin_meat.subjectjob] cutlet"
/obj/item/food/meat/rawcutlet/killertomato
name = "raw killer tomato cutlet"
tastes = list("tomato" = 1)
foodtypes = FRUIT
/obj/item/food/meat/rawcutlet/killertomato/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/killertomato, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/bear
name = "raw bear cutlet"
tastes = list("meat" = 1, "salmon" = 1)
/obj/item/food/meat/rawcutlet/bear/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_LINE_TABLE_BEAR, CELL_VIRUS_TABLE_GENERIC_MOB)
/obj/item/food/meat/rawcutlet/bear/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/bear, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/xeno
name = "raw xeno cutlet"
tastes = list("meat" = 1, "acid" = 1)
/obj/item/food/meat/rawcutlet/xeno/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/xeno, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/spider
name = "raw spider cutlet"
tastes = list("cobwebs" = 1)
/obj/item/food/meat/rawcutlet/spider/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/spider, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/gondola
name = "raw gondola cutlet"
tastes = list("meat" = 1, "tranquility" = 1)
/obj/item/food/meat/rawcutlet/gondola/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/gondola, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/penguin
name = "raw penguin cutlet"
tastes = list("beef" = 1, "cod fish" = 1)
/obj/item/food/meat/rawcutlet/penguin/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/penguin, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/chicken
name = "raw chicken cutlet"
tastes = list("chicken" = 1)
/obj/item/food/meat/rawcutlet/chicken/MakeGrillable()
AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/chicken, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE)
/obj/item/food/meat/rawcutlet/chicken/Initialize(mapload)
. = ..()
AddElement(/datum/element/swabable, CELL_LINE_TABLE_CHICKEN, CELL_VIRUS_TABLE_GENERIC_MOB)
//Cooked cutlets
/obj/item/food/meat/cutlet
name = "cutlet"
desc = "A cooked meat cutlet."
icon_state = "cutlet"
bite_consumption = 2
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2)
tastes = list("meat" = 1)
foodtypes = MEAT
burns_on_grill = TRUE
/obj/item/food/meat/cutlet/Initialize(mapload)
. = ..()
RegisterSignal(src, COMSIG_ITEM_MICROWAVE_COOKED, .proc/OnMicrowaveCooked)
///This proc handles setting up the correct meat name for the cutlet, this should definitely be changed with the food rework.
/obj/item/food/meat/cutlet/proc/OnMicrowaveCooked(datum/source, atom/source_item, cooking_efficiency)
SIGNAL_HANDLER
if(istype(source_item, /obj/item/food/meat/rawcutlet))
var/obj/item/food/meat/rawcutlet/original_cutlet = source_item
name = "[original_cutlet.meat_type] cutlet"
/obj/item/food/meat/cutlet/plain
/obj/item/food/meat/cutlet/plain/human
tastes = list("tender meat" = 1)
foodtypes = MEAT | GORE
/obj/item/food/meat/cutlet/plain/human/OnMicrowaveCooked(datum/source, atom/source_item, cooking_efficiency)
. = ..()
if(istype(source_item, /obj/item/food/meat))
var/obj/item/food/meat/origin_meat = source_item
if(subjectname)
name = "[origin_meat.subjectname] [initial(name)]"
else if(subjectjob)
name = "[origin_meat.subjectjob] [initial(name)]"
/obj/item/food/meat/cutlet/killertomato
name = "killer tomato cutlet"
tastes = list("tomato" = 1)
foodtypes = FRUIT
/obj/item/food/meat/cutlet/bear
name = "bear cutlet"
tastes = list("meat" = 1, "salmon" = 1)
/obj/item/food/meat/cutlet/xeno
name = "xeno cutlet"
tastes = list("meat" = 1, "acid" = 1)
/obj/item/food/meat/cutlet/spider
name = "spider cutlet"
tastes = list("cobwebs" = 1)
/obj/item/food/meat/cutlet/gondola
name = "gondola cutlet"
tastes = list("meat" = 1, "tranquility" = 1)
/obj/item/food/meat/cutlet/penguin
name = "penguin cutlet"
tastes = list("beef" = 1, "cod fish" = 1)
/obj/item/food/meat/cutlet/chicken
name = "chicken cutlet"
tastes = list("chicken" = 1)
@@ -0,0 +1,79 @@
/obj/item/food/monkeycube
name = "monkey cube"
desc = "Just add water!"
icon_state = "monkeycube"
bite_consumption = 12
food_reagents = list(/datum/reagent/monkey_powder = 30)
tastes = list("the jungle" = 1, "bananas" = 1)
foodtypes = MEAT | SUGAR
food_flags = FOOD_FINGER_FOOD
w_class = WEIGHT_CLASS_TINY
var/faction
var/spawned_mob = /mob/living/carbon/human/species/monkey
/obj/item/food/monkeycube/proc/Expand()
var/mob/spammer = get_mob_by_key(fingerprintslast)
var/mob/living/bananas = new spawned_mob(drop_location(), TRUE, spammer)
if(faction)
bananas.faction = faction
if (!QDELETED(bananas))
visible_message(span_notice("[src] expands!"))
bananas.log_message("spawned via [src], Last attached mob: [key_name(spammer)].", LOG_ATTACK)
else if (!spammer) // Visible message in case there are no fingerprints
visible_message(span_notice("[src] fails to expand!"))
qdel(src)
/obj/item/food/monkeycube/suicide_act(mob/living/user)
user.visible_message(span_suicide("[user] is putting [src] in [user.p_their()] mouth! It looks like [user.p_theyre()] trying to commit suicide!"))
var/eating_success = do_after(user, 1 SECONDS, src)
if(QDELETED(user)) //qdeletion: the nuclear option of self-harm
return SHAME
if(!eating_success || QDELETED(src)) //checks if src is gone or if they failed to wait for a second
user.visible_message(span_suicide("[user] chickens out!"))
return SHAME
if(HAS_TRAIT(user, TRAIT_NOHUNGER)) //plasmamen don't have saliva/stomach acid
user.visible_message(span_suicide("[user] realizes [user.p_their()] body won't activate [src]!")
,span_warning("Your body won't activate [src]..."))
return SHAME
playsound(user, 'sound/items/eatfood.ogg', rand(10, 50), TRUE)
user.temporarilyRemoveItemFromInventory(src) //removes from hands, keeps in M
addtimer(CALLBACK(src, .proc/finish_suicide, user), 15) //you've eaten it, you can run now
return MANUAL_SUICIDE
/obj/item/food/monkeycube/proc/finish_suicide(mob/living/user) ///internal proc called by a monkeycube's suicide_act using a timer and callback. takes as argument the mob/living who activated the suicide
if(QDELETED(user) || QDELETED(src))
return
if(src.loc != user) //how the hell did you manage this
to_chat(user, span_warning("Something happened to [src]..."))
return
Expand()
user.visible_message(span_danger("[user]'s torso bursts open as a primate emerges!"))
user.gib(null, TRUE, null, TRUE)
/obj/item/food/monkeycube/syndicate
faction = list("neutral", ROLE_SYNDICATE)
/obj/item/food/monkeycube/gorilla
name = "gorilla cube"
desc = "A Waffle Co. brand gorilla cube. Now with extra molecules!"
bite_consumption = 20
food_reagents = list(/datum/reagent/monkey_powder = 30, /datum/reagent/medicine/strange_reagent = 5)
tastes = list("the jungle" = 1, "bananas" = 1, "jimmies" = 1)
spawned_mob = /mob/living/simple_animal/hostile/gorilla
/obj/item/food/monkeycube/chicken
name = "chicken cube"
desc = "A new Nanotrasen classic, the chicken cube. Tastes like everything!"
bite_consumption = 20
food_reagents = list(/datum/reagent/consumable/eggyolk = 30, /datum/reagent/medicine/strange_reagent = 1)
tastes = list("chicken" = 1, "the country" = 1, "chicken bouillon" = 1)
spawned_mob = /mob/living/simple_animal/chicken
/obj/item/food/monkeycube/bee
name = "bee cube"
desc = "We were sure it was a good idea. Just add water."
bite_consumption = 20
food_reagents = list(/datum/reagent/consumable/honey = 10, /datum/reagent/toxin = 5, /datum/reagent/medicine/strange_reagent = 1)
tastes = list("buzzing" = 1, "honey" = 1, "regret" = 1)
spawned_mob = /mob/living/simple_animal/hostile/bee
@@ -141,7 +141,7 @@
update_appearance()
/obj/machinery/coffeemaker/update_icon_state()
icon_state = "[base_icon_state][!!coffeepot][!!cartridge]"
icon_state = "[base_icon_state][coffeepot ? "_pot" : "_nopot"][cartridge ? "_cart": "_nocart"]"
return ..()
/obj/machinery/coffeemaker/proc/replace_pot(mob/living/user, obj/item/reagent_containers/cup/coffeepot/new_coffeepot)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

+3 -1
View File
@@ -1678,9 +1678,11 @@
#include "code\game\objects\items\food\egg.dm"
#include "code\game\objects\items\food\frozen.dm"
#include "code\game\objects\items\food\lizard.dm"
#include "code\game\objects\items\food\meat.dm"
#include "code\game\objects\items\food\meatdish.dm"
#include "code\game\objects\items\food\meatslab.dm"
#include "code\game\objects\items\food\mexican.dm"
#include "code\game\objects\items\food\misc.dm"
#include "code\game\objects\items\food\monkeycube.dm"
#include "code\game\objects\items\food\moth.dm"
#include "code\game\objects\items\food\pancakes.dm"
#include "code\game\objects\items\food\pastries.dm"