diff --git a/code/game/objects/items/food/egg.dm b/code/game/objects/items/food/egg.dm index c2ac962be02..25335709afb 100644 --- a/code/game/objects/items/food/egg.dm +++ b/code/game/objects/items/food/egg.dm @@ -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) diff --git a/code/game/objects/items/food/meat.dm b/code/game/objects/items/food/meatdish.dm similarity index 50% rename from code/game/objects/items/food/meat.dm rename to code/game/objects/items/food/meatdish.dm index 8e64d7736ed..04accb0688d 100644 --- a/code/game/objects/items/food/meat.dm +++ b/code/game/objects/items/food/meatdish.dm @@ -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 that 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." diff --git a/code/game/objects/items/food/meatslab.dm b/code/game/objects/items/food/meatslab.dm new file mode 100644 index 00000000000..b90f07e4523 --- /dev/null +++ b/code/game/objects/items/food/meatslab.dm @@ -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 that 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) diff --git a/code/game/objects/items/food/monkeycube.dm b/code/game/objects/items/food/monkeycube.dm new file mode 100644 index 00000000000..908723a1c4e --- /dev/null +++ b/code/game/objects/items/food/monkeycube.dm @@ -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 diff --git a/code/modules/reagents/chemistry/machinery/coffeemaker.dm b/code/modules/reagents/chemistry/machinery/coffeemaker.dm index de33c53e752..7cfd20f41ab 100644 --- a/code/modules/reagents/chemistry/machinery/coffeemaker.dm +++ b/code/modules/reagents/chemistry/machinery/coffeemaker.dm @@ -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) diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index 81960c75025..bbe1122ac3f 100644 Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ diff --git a/icons/obj/food/egg.dmi b/icons/obj/food/egg.dmi new file mode 100644 index 00000000000..c7661fca918 Binary files /dev/null and b/icons/obj/food/egg.dmi differ diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index 5610489a313..f47ec89312a 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ diff --git a/icons/obj/food/meat.dmi b/icons/obj/food/meat.dmi new file mode 100644 index 00000000000..6a01903caed Binary files /dev/null and b/icons/obj/food/meat.dmi differ diff --git a/tgstation.dme b/tgstation.dme index c8a99afcf95..416f106cfb2 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -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"