Cannibalism Update™️ (#31142)

* dmi time

* .dmi stuff done, maybe

* Created cannibalism.dm and moved KFV's obj stuff.

* Update cannibalism.dm

* Wild Wings and Bug Bar

* A few more.

* Meow Mein

* Lead and Plasma-Bone Broth

* Multiple possible sprites.

* Last food item. Next recipes and the Bone Rod.

* Adding bone rod sprites and sprites for bone rod variants of food with metal rods in them

* Fix complaining of the compiler.

* Bone Rods

* Almost everything done.

* Bone Rods ticked.

* dme updated on compile.

* Forgor the BBQ variant of Moffolo Wings needed a unique path.

* Probably make Plasma-Bone Broth flammable like plasma sheets.

* Should light now, will test later.

* Some recipes, and processor.

* Processor was complaining, also changed a parameter to be readable.

* More bone rod.

* The rest of them.

* No more errors on compile.

* Recipes tested and things fixed.

* Lead works.

* Kidneys dead? Toxin.

* Soy Sauce in the Meow Mein.

* Working sprite RNG.

* Make Linters happy

* Apply suggestions from CRUNCH's code review to fix Plasma-Bone Broth's flame.

Co-authored-by: CRUNCH <143041327+CRUNCH-Borg@users.noreply.github.com>
Signed-off-by: Wenlock_The_British_Hobo <168675688+WenlockTheBritishHobo@users.noreply.github.com>

* Make linters happy

* Updated bone rod description to be less vague.

Co-authored-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
Signed-off-by: Wenlock_The_British_Hobo <168675688+WenlockTheBritishHobo@users.noreply.github.com>

* More descriptive recipe names in code

* Replace Meow Mein sprites with Feline Mignon

I'll see about using the Meow Mein sprite for chef craftable Chow Mein, as the issue is with Meow Mein not the sprite.

* Change code from Meow Mein to Feline Mignon

* Don't need the blank recipe list in this PR.

* Update code/game/objects/items/stacks/bone_rods.dm

Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* Update code/game/objects/items/stacks/bone_rods.dm

Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

---------

Signed-off-by: Wenlock_The_British_Hobo <168675688+WenlockTheBritishHobo@users.noreply.github.com>
Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Co-authored-by: CRUNCH <143041327+CRUNCH-Borg@users.noreply.github.com>
Co-authored-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
This commit is contained in:
Wenlock_The_British_Hobo
2025-12-24 20:21:36 +00:00
committed by GitHub
co-authored by CRUNCH PollardTheDragon DGamerL
parent e7dc0c3cf5
commit a3bb94b905
31 changed files with 668 additions and 22 deletions
@@ -67,6 +67,33 @@
PCWJ_ADD_ITEM(/obj/item/organ/internal/brain),
)
/datum/cooking/recipe_step/add_item/kidan/check_conditions_met(obj/added_item, datum/cooking/recipe_tracker/tracker)
var/obj/item/organ/external/external = added_item
if(!istype(external))
return PCWJ_CHECK_INVALID
if(istype(external.dna.species, /datum/species/kidan))
return PCWJ_CHECK_VALID
return PCWJ_CHECK_INVALID
/datum/cooking/recipe/bug_bar
container_type = /obj/item/reagent_containers/cooking/board
product_type = /obj/item/food/bug_bar
steps = list(
new /datum/cooking/recipe_step/add_item/kidan(),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe/bug_burger
container_type = /obj/item/reagent_containers/cooking/board
product_type = /obj/item/food/bug_burger
steps = list(
PCWJ_ADD_ITEM(/obj/item/food/bun),
PCWJ_ADD_ITEM(/obj/item/food/bug_bar),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe/cheeseburger
container_type = /obj/item/reagent_containers/cooking/board
product_type = /obj/item/food/burger/cheese
@@ -354,6 +381,42 @@
PCWJ_ADD_ITEM(/obj/item/food/tofu),
)
/datum/cooking/recipe_step/add_item/slime/check_conditions_met(obj/added_item, datum/cooking/recipe_tracker/tracker)
var/obj/item/organ/external/external = added_item
if(!istype(external))
return PCWJ_CHECK_INVALID
if(istype(external.dna.species, /datum/species/slime))
return PCWJ_CHECK_VALID
return PCWJ_CHECK_INVALID
/datum/cooking/recipe/turkish_delight
container_type = /obj/item/reagent_containers/cooking/board
product_type = /obj/item/food/turkish_delight
steps = list(
new /datum/cooking/recipe_step/add_item/slime(),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe_step/add_item/machine/check_conditions_met(obj/added_item, datum/cooking/recipe_tracker/tracker)
var/obj/item/organ/external/external = added_item
if(!istype(external))
return PCWJ_CHECK_INVALID
if(istype(external.dna.species, /datum/species/machine))
return PCWJ_CHECK_VALID
return PCWJ_CHECK_INVALID
/datum/cooking/recipe/wafers
container_type = /obj/item/reagent_containers/cooking/board
product_type = /obj/item/food/wafers
steps = list(
new /datum/cooking/recipe_step/add_item/machine(),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe/xenoburger
container_type = /obj/item/reagent_containers/cooking/board
product_type = /obj/item/food/burger/xeno
@@ -50,6 +50,18 @@
PCWJ_USE_GRILL(J_MED, 10 SECONDS),
)
/datum/cooking/recipe/fish_skewer_bone
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/fish_skewer/bone
catalog_category = COOKBOOK_CATEGORY_SEAFOOD
steps = list(
PCWJ_ADD_ITEM(/obj/item/food/salmonmeat),
PCWJ_ADD_ITEM(/obj/item/food/salmonmeat),
PCWJ_ADD_ITEM(/obj/item/stack/bone_rods),
PCWJ_ADD_REAGENT("flour", 10),
PCWJ_USE_GRILL(J_MED, 10 SECONDS),
)
/datum/cooking/recipe/fishfingers
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/fishfingers
@@ -61,6 +73,25 @@
PCWJ_USE_GRILL(J_MED, 10 SECONDS),
)
/datum/cooking/recipe_step/add_item/fried_vulp/check_conditions_met(obj/added_item, datum/cooking/recipe_tracker/tracker)
var/obj/item/organ/external/external = added_item
if(!istype(external))
return PCWJ_CHECK_INVALID
if(istype(external.dna.species, /datum/species/vulpkanin))
return PCWJ_CHECK_VALID
return PCWJ_CHECK_INVALID
/datum/cooking/recipe/frankfurrter
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/frankfurrter
steps = list(
new /datum/cooking/recipe_step/add_item/fried_vulp(),
PCWJ_USE_GRILL(J_MED, 10 SECONDS),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe/goliath
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/goliath_steak
@@ -81,6 +112,25 @@
PCWJ_USE_GRILL(J_MED, 10 SECONDS),
)
/datum/cooking/recipe_step/add_item/fried_unathi/check_conditions_met(obj/added_item, datum/cooking/recipe_tracker/tracker)
var/obj/item/organ/external/external = added_item
if(!istype(external))
return PCWJ_CHECK_INVALID
if(istype(external.dna.species, /datum/species/unathi))
return PCWJ_CHECK_VALID
return PCWJ_CHECK_INVALID
/datum/cooking/recipe/hiss_kebab
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/hiss_kebab
steps = list(
new /datum/cooking/recipe_step/add_item/fried_unathi(),
PCWJ_USE_GRILL(J_MED, 10 SECONDS),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe/human_kebab
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/human/kebab
@@ -92,6 +142,17 @@
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe/human_kebab_bone
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/human/kebab/bone
steps = list(
PCWJ_ADD_ITEM(/obj/item/stack/bone_rods),
PCWJ_ADD_ITEM(/obj/item/food/meat/human),
PCWJ_ADD_ITEM(/obj/item/food/meat/human),
PCWJ_USE_GRILL(J_MED, 10 SECONDS),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe/meatkeb
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/meatkebab
@@ -103,6 +164,17 @@
PCWJ_USE_GRILL(J_MED, 10 SECONDS),
)
/datum/cooking/recipe/meatkeb_bone
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/meatkebab/bone
catalog_category = COOKBOOK_CATEGORY_MEAT
steps = list(
PCWJ_ADD_ITEM(/obj/item/stack/bone_rods),
PCWJ_ADD_MEATHUNK(),
PCWJ_ADD_MEATHUNK(),
PCWJ_USE_GRILL(J_MED, 10 SECONDS),
)
/datum/cooking/recipe/meatsteak
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/meatsteak
@@ -140,6 +212,20 @@
PCWJ_USE_GRILL(J_MED, 20 SECONDS),
)
/datum/cooking/recipe/picoss_kebab_bone
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/picoss_kebab/bone
catalog_category = COOKBOOK_CATEGORY_SEAFOOD
steps = list(
PCWJ_ADD_ITEM(/obj/item/food/carpmeat),
PCWJ_ADD_ITEM(/obj/item/food/carpmeat),
PCWJ_ADD_ITEM(/obj/item/stack/bone_rods),
PCWJ_ADD_PRODUCE(/obj/item/food/grown/onion),
PCWJ_ADD_PRODUCE(/obj/item/food/grown/chili),
PCWJ_ADD_REAGENT("vinegar", 5),
PCWJ_USE_GRILL(J_MED, 20 SECONDS),
)
/datum/cooking/recipe/rofflewaffles
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/rofflewaffles
@@ -186,6 +272,19 @@
PCWJ_USE_GRILL(J_MED, 20 SECONDS),
)
/datum/cooking/recipe/shrimp_skewer_bone
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/shrimp_skewer/bone
catalog_category = COOKBOOK_CATEGORY_SEAFOOD
steps = list(
PCWJ_ADD_ITEM(/obj/item/food/shrimp),
PCWJ_ADD_ITEM(/obj/item/food/shrimp),
PCWJ_ADD_ITEM(/obj/item/food/shrimp),
PCWJ_ADD_ITEM(/obj/item/food/shrimp),
PCWJ_ADD_ITEM(/obj/item/stack/bone_rods),
PCWJ_USE_GRILL(J_MED, 20 SECONDS),
)
/datum/cooking/recipe/sushi_tamago
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/sliced/sushi_tamago
@@ -221,6 +320,17 @@
PCWJ_USE_GRILL(J_MED, 10 SECONDS),
)
/datum/cooking/recipe/syntikebab_bone
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/syntikebab/bone
catalog_category = COOKBOOK_CATEGORY_MEAT
steps = list(
PCWJ_ADD_ITEM(/obj/item/stack/bone_rods),
PCWJ_ADD_ITEM(/obj/item/food/meat/syntiflesh),
PCWJ_ADD_ITEM(/obj/item/food/meat/syntiflesh),
PCWJ_USE_GRILL(J_MED, 10 SECONDS),
)
/datum/cooking/recipe/telebacon
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/telebacon
@@ -242,6 +352,17 @@
PCWJ_USE_GRILL(J_MED, 10 SECONDS),
)
/datum/cooking/recipe/tofukebab_bone
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/tofukebab/bone
catalog_category = COOKBOOK_CATEGORY_VEGE
steps = list(
PCWJ_ADD_ITEM(/obj/item/stack/bone_rods),
PCWJ_ADD_ITEM(/obj/item/food/tofu),
PCWJ_ADD_ITEM(/obj/item/food/tofu),
PCWJ_USE_GRILL(J_MED, 10 SECONDS),
)
/datum/cooking/recipe/waffles
container_type = /obj/item/reagent_containers/cooking/grill_grate
product_type = /obj/item/food/waffles
@@ -63,6 +63,77 @@
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe_step/add_item/fried_nian
/datum/cooking/recipe_step/add_item/fried_nian/check_conditions_met(obj/added_item, datum/cooking/recipe_tracker/tracker)
var/obj/item/organ/external/external = added_item
if(!istype(external))
return PCWJ_CHECK_INVALID
if(istype(external.dna.species, /datum/species/moth))
return PCWJ_CHECK_VALID
return PCWJ_CHECK_INVALID
/datum/cooking/recipe/moffolo_wings
container_type = /obj/item/reagent_containers/cooking/deep_basket
product_type = /obj/item/food/fried_nian
steps = list(
new /datum/cooking/recipe_step/add_item/fried_nian(),
PCWJ_USE_DEEP_FRYER(10 SECONDS),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe/moffolo_wild_wings
container_type = /obj/item/reagent_containers/cooking/deep_basket
product_type = /obj/item/food/fried_nian_bbq
steps = list(
new /datum/cooking/recipe_step/add_item/fried_nian(),
PCWJ_ADD_REAGENT("bbqsauce", 5),
PCWJ_USE_DEEP_FRYER(10 SECONDS),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe_step/add_item/fried_drask/check_conditions_met(obj/added_item, datum/cooking/recipe_tracker/tracker)
var/obj/item/organ/external/external = added_item
if(!istype(external))
return PCWJ_CHECK_INVALID
if(istype(external.dna.species, /datum/species/drask))
return PCWJ_CHECK_VALID
return PCWJ_CHECK_INVALID
/datum/cooking/recipe/calamari
container_type = /obj/item/reagent_containers/cooking/deep_basket
product_type = /obj/item/food/calamari
product_count = 3
steps = list(
new /datum/cooking/recipe_step/add_item/fried_drask(),
PCWJ_USE_DEEP_FRYER(10 SECONDS),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe_step/add_item/fried_human/check_conditions_met(obj/added_item, datum/cooking/recipe_tracker/tracker)
var/obj/item/organ/external/external = added_item
if(!istype(external))
return PCWJ_CHECK_INVALID
if(istype(external.dna.species, /datum/species/human))
return PCWJ_CHECK_VALID
return PCWJ_CHECK_INVALID
/datum/cooking/recipe/pork_rind
container_type = /obj/item/reagent_containers/cooking/deep_basket
product_type = /obj/item/food/pork_rind
product_count = 3
steps = list(
new /datum/cooking/recipe_step/add_item/fried_human(),
PCWJ_USE_DEEP_FRYER(10 SECONDS),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe_step/add_item/deep_fried_anything
/datum/cooking/recipe_step/add_item/deep_fried_anything/check_conditions_met(obj/added_item, datum/cooking/recipe_tracker/tracker)
@@ -515,6 +515,15 @@
PCWJ_USE_OVEN(J_MED, 10 SECONDS),
)
/datum/cooking/recipe/ham_leg
container_type = /obj/item/reagent_containers/cooking/oven
product_type = /obj/item/food/ham_leg
steps = list(
new /datum/cooking/recipe_step/add_item/fried_human(),
PCWJ_USE_OVEN(J_MED, 10 SECONDS),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe/hardware_cake
container_type = /obj/item/reagent_containers/cooking/oven
product_type = /obj/item/food/sliceable/hardware_cake
@@ -138,6 +138,24 @@
PCWJ_ADD_PRODUCE(/obj/item/food/grown/lettuce),
)
/datum/cooking/recipe_step/add_item/diona/check_conditions_met(obj/added_item, datum/cooking/recipe_tracker/tracker)
var/obj/item/organ/external/external = added_item
if(!istype(external))
return PCWJ_CHECK_INVALID
if(istype(external.dna.species, /datum/species/diona))
return PCWJ_CHECK_VALID
return PCWJ_CHECK_INVALID
/datum/cooking/recipe/tree_salad
container_type = /obj/item/reagent_containers/cooking/bowl
product_type = /obj/item/food/tree_salad
steps = list(
new /datum/cooking/recipe_step/add_item/diona(),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe/validsalad
container_type = /obj/item/reagent_containers/cooking/bowl
product_type = /obj/item/food/salad/valid
@@ -145,6 +145,44 @@
PCWJ_USE_STOVE(J_MED, 20 SECONDS),
)
/datum/cooking/recipe_step/add_item/fried_skrell/check_conditions_met(obj/added_item, datum/cooking/recipe_tracker/tracker)
var/obj/item/organ/external/external = added_item
if(!istype(external))
return PCWJ_CHECK_INVALID
if(istype(external.dna.species, /datum/species/skrell))
return PCWJ_CHECK_VALID
return PCWJ_CHECK_INVALID
/datum/cooking/recipe/frog_leg
container_type = /obj/item/reagent_containers/cooking/pan
product_type = /obj/item/food/frog_leg
steps = list(
new /datum/cooking/recipe_step/add_item/fried_skrell(),
PCWJ_USE_STOVE(J_MED, 10 SECONDS),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe_step/add_item/grey/check_conditions_met(obj/added_item, datum/cooking/recipe_tracker/tracker)
var/obj/item/organ/external/external = added_item
if(!istype(external))
return PCWJ_CHECK_INVALID
if(istype(external.dna.species, /datum/species/grey))
return PCWJ_CHECK_VALID
return PCWJ_CHECK_INVALID
/datum/cooking/recipe/grey_gruel
container_type = /obj/item/reagent_containers/cooking/pot
product_type = /obj/item/food/grey_gruel
steps = list(
new /datum/cooking/recipe_step/add_item/grey(),
PCWJ_USE_STOVE(J_MED, 20 SECONDS),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe/hong_kong_borscht
container_type = /obj/item/reagent_containers/cooking/pot
product_type = /obj/item/food/soup/hong_kong_borscht
@@ -212,6 +250,26 @@
PCWJ_USE_STOVE(J_MED, 20 SECONDS),
)
/datum/cooking/recipe_step/add_item/fried_taj/check_conditions_met(obj/added_item, datum/cooking/recipe_tracker/tracker)
var/obj/item/organ/external/external = added_item
if(!istype(external))
return PCWJ_CHECK_INVALID
if(istype(external.dna.species, /datum/species/tajaran))
return PCWJ_CHECK_VALID
return PCWJ_CHECK_INVALID
/datum/cooking/recipe/feline_mignon
container_type = /obj/item/reagent_containers/cooking/pan
product_type = /obj/item/food/feline_mignon
steps = list(
new /datum/cooking/recipe_step/add_item/fried_taj(),
PCWJ_ADD_REAGENT("wine", 5, optional = TRUE),
PCWJ_USE_STOVE(J_MED, 20 SECONDS),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe/misosoup
container_type = /obj/item/reagent_containers/cooking/pot
product_type = /obj/item/food/soup/misosoup
@@ -274,6 +332,25 @@
PCWJ_USE_STOVE(J_MED, 20 SECONDS),
)
/datum/cooking/recipe_step/add_item/plasmaman/check_conditions_met(obj/added_item, datum/cooking/recipe_tracker/tracker)
var/obj/item/organ/external/external = added_item
if(!istype(external))
return PCWJ_CHECK_INVALID
if(istype(external.dna.species, /datum/species/plasmaman))
return PCWJ_CHECK_VALID
return PCWJ_CHECK_INVALID
/datum/cooking/recipe/plasmabone_broth
container_type = /obj/item/reagent_containers/cooking/pot
product_type = /obj/item/food/plasmabone_broth
steps = list(
new /datum/cooking/recipe_step/add_item/plasmaman(),
PCWJ_USE_STOVE(J_MED, 20 SECONDS),
)
appear_in_default_catalog = FALSE
/datum/cooking/recipe/red_porridge
container_type = /obj/item/reagent_containers/cooking/pot
product_type = /obj/item/food/soup/red_porridge
@@ -0,0 +1,195 @@
/obj/item/food/fried_vox
name = "Kentucky Fried Vox"
desc = "Bucket of voxxy, yaya!"
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "fried_vox"
trash = /obj/item/trash/fried_vox
list_reagents = list("nutriment" = 3, "protein" = 5)
tastes = list("quills" = 1, "the shoal" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/fried_nian
name = "Moffolo Wings"
desc = "A bucket of Moffolo Wings. The 'B' on the bucket is crossed out in blue pen, and the letter 'M' has been crudely written above."
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "fried_nian"
trash = /obj/item/trash/fried_nian
list_reagents = list("nutriment" = 3, "protein" = 5)
tastes = list("fluff" = 1, "debt" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/fried_nian_bbq
name = "Moffolo Wild Wings"
desc = "A bucket of Moffolo Wild Wings. The 'B' on the bucket is crossed out in blue pen, and the letter 'M' has been crudely written above."
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "fried_nian_bbq"
trash = /obj/item/trash/fried_nian
list_reagents = list("nutriment" = 3, "protein" = 5)
tastes = list("fluff" = 1, "debt" = 1, "bbq sauce" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/bug_bar
name = "Bug Bar"
desc = "A bar made of what seems to be made of ground exoskeleton and meat. The wrapper is already open and crinkled, with a mealworm depicted on the wrapper."
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "bug_bar"
list_reagents = list("nutriment" = 3, "protein" = 5)
tastes = list("ink" = 1, "formic acid" = 1, "bitter" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/bug_burger
name = "Bug Burger"
desc = "A burger made of what seems to be made of ground exoskeleton and meat for its patty."
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "bug_burger"
list_reagents = list("nutriment" = 4, "protein" = 5)
tastes = list("lemongrass" = 1, "pork" = 1, "peanuts" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/calamari
name = "Calamari"
desc = "A fried ring of seafood meat covered in batter."
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "calamari_1"
var/list/possible_iconstates = list("calamri_1", "calamari_2", "calamari_3", "calamari_4")
list_reagents = list("nutriment" = 1, "protein" = 1)
tastes = list("squid" = 1, "batter" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/calamari/Initialize(mapload)
icon_state = pick(possible_iconstates)
update_icon()
. = ..()
/obj/item/food/feline_mignon
name = "Feline Mignon"
desc = "A plate of rare steak. Is that fur?"
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "feline_mignon"
list_reagents = list("nutriment" = 3, "protein" = 5)
tastes = list("rare steak" = 1, "fur" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/frankfurrter
name = "Frankfurrter"
desc = "A piece of mixed and cased meat. Is that fur?"
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "frankfurrter"
list_reagents = list("nutriment" = 3, "protein" = 5)
tastes = list("meat" = 1, "fur" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/frog_leg
name = "Frog Leg"
desc = "A fried leg of a frog. Are frogs normally that color?"
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "frog_leg"
list_reagents = list("nutriment" = 3, "protein" = 5)
tastes = list("chicken" = 1, "fish" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/grey_gruel
name = "Grey Gruel"
desc = "A grey-looking gruel, with some purple streaks running through it."
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "grey_gruel"
trash = /obj/item/trash/snack_bowl
list_reagents = list("nutriment" = 3, "protein" = 5)
tastes = list("synthetic meat" = 1, "blood" = 1, "acidic" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/hiss_kebab
name = "Hiss Kebab"
desc = "A bone rod with grilled meat. Are those scales?"
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "hiss_kebab"
trash = /obj/item/stack/bone_rods
list_reagents = list("nutriment" = 3, "protein" = 5)
tastes = list("meat" = 1, "scales" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/ham_leg
name = "Leg of Ham"
desc = "A leg of ham."
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "ham_leg"
list_reagents = list("nutriment" = 3, "protein" = 5)
tastes = list("long pork" = 1, "burnt hair" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/plasmabone_broth
name = "Plasma-Bone Broth"
desc = "A bowl of liquid plasma ."
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "plasmabone_broth"
trash = /obj/item/trash/snack_bowl
list_reagents = list("nutriment" = 3, "protein" = 5, "plasma" = 3)
tastes = list("bitter" = 1, "corporate assets going to waste" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/plasmabone_broth/welder_act(mob/user, obj/item/I)
if(I.use_tool(src, user, volume = I.tool_volume))
log_and_set_aflame(user, I)
return TRUE
/obj/item/food/plasmabone_broth/item_interaction(mob/living/user, obj/item/used, list/modifiers)
if(!used.get_heat())
return ..()
log_and_set_aflame(user, used)
return ITEM_INTERACT_COMPLETE
/obj/item/food/plasmabone_broth/proc/log_and_set_aflame(mob/user, obj/item/I)
var/turf/T = get_turf(src)
message_admins("Plasma-Bone Broth ignited by [key_name_admin(user)]([ADMIN_QUE(user, "?")]) ([ADMIN_FLW(user, "FLW")]) in ([COORD(T)] - [ADMIN_JMP(T)]")
log_game("Plasma-Bone Broth ignited by [key_name(user)] in [COORD(T)]")
investigate_log("was <font color='red'><b>ignited</b></font> by [key_name(user)]", INVESTIGATE_ATMOS)
user.create_log(MISC_LOG, "Plasma-Bone Broth ignited using [I]", src)
fire_act()
/obj/item/food/plasmabone_broth/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
..()
atmos_spawn_air(LINDA_SPAWN_HEAT | LINDA_SPAWN_TOXINS, 30) // Borrowing from plasma sheets, 3 sheets' worth * the 10
qdel(src)
/obj/item/food/pork_rind
name = "Pork Rind"
desc = "A piece of pork rind."
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "pork_rind_1" // Just in case
var/list/possible_iconstates = list("pork_rind_1", "pork_rind_2", "pork_rind_3", "pork_rind_4")
list_reagents = list("nutriment" = 1, "protein" = 1)
tastes = list("long pork" = 1, "salty" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/pork_rind/Initialize(mapload)
icon_state = pick(possible_iconstates)
update_icon()
. = ..()
/obj/item/food/tree_salad
name = "Tree Salad"
desc = "A salad composed of bark and leaves. Is that a Nymph eye?"
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "tree_salad"
trash = /obj/item/trash/snack_bowl
list_reagents = list("nutriment" = 3, "plantmatter" = 5)
tastes = list("tree bark" = 1, "leaves" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/turkish_delight
name = "Turkish Delight"
desc = "Cubes of flavoured gelatin with sugar covering them."
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "turkish_delight"
list_reagents = list("nutriment" = 3, "protein" = 5)
tastes = list("jelly" = 1, "sugar" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/wafers
name = "Wafers"
desc = "A section of metal with exposed circuit wafers."
icon = 'icons/obj/food/cannibalism.dmi'
icon_state = "wafers"
list_reagents = list("lead" = 3, "iron" = 5, "gold" = 1)
tastes = list("sweet" = 1, "metallic" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
@@ -154,6 +154,10 @@
list_reagents = list("nutriment" = 8)
goal_difficulty = FOOD_GOAL_NORMAL
/obj/item/food/meatkebab/bone
icon_state = "kebab_bone"
trash = /obj/item/stack/bone_rods
/obj/item/food/syntikebab
name = "synthimeat-kebab"
desc = "Delicious synthetic meat, on a stick."
@@ -162,6 +166,10 @@
filling_color = "#A85340"
list_reagents = list("nutriment" = 8)
/obj/item/food/syntikebab/bone
icon_state = "kebab_bone"
trash = /obj/item/stack/bone_rods
/obj/item/food/human/kebab
name = "-kebab"
desc = "Human meat, on a stick."
@@ -170,6 +178,10 @@
filling_color = "#A85340"
list_reagents = list("nutriment" = 8)
/obj/item/food/human/kebab/bone
icon_state = "kebab_bone"
trash = /obj/item/stack/bone_rods
/obj/item/food/tofukebab
name = "tofu-kebab"
desc = "Vegan meat, on a stick."
@@ -179,6 +191,10 @@
list_reagents = list("nutriment" = 8)
goal_difficulty = FOOD_GOAL_NORMAL
/obj/item/food/tofukebab/bone
icon_state = "kebab_bone"
trash = /obj/item/stack/bone_rods
/obj/item/food/picoss_kebab
name = "picoss-kebab"
desc = "A popular Moghes street food consisting of vinegar-marinated space carp on a skewer with onion and chillis."
@@ -188,3 +204,7 @@
filling_color = "#A85340"
tastes = list("fish" = 4, "acid" = 1, "onion" = 1, "heat" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
/obj/item/food/picoss_kebab/bone
icon_state = "picoss_skewer_bone"
trash = /obj/item/stack/bone_rods
@@ -421,16 +421,6 @@
tastes = list("meat" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
/obj/item/food/fried_vox
name = "Kentucky Fried Vox"
desc = "Bucket of voxxy, yaya!"
icon = 'icons/obj/food/meat.dmi'
icon_state = "fried_vox"
trash = /obj/item/trash/fried_vox
list_reagents = list("nutriment" = 3, "protein" = 5)
tastes = list("quills" = 1, "the shoal" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
//////////////////////
// Cubes //
//////////////////////
@@ -128,6 +128,10 @@
tastes = list("shrimp" = 4)
goal_difficulty = FOOD_GOAL_NORMAL
/obj/item/food/shrimp_skewer/bone
trash = /obj/item/stack/bone_rods
icon_state = "shrimpskewer_bone"
/obj/item/food/fish_skewer
name = "fish skewer"
desc = "A whole fish battered and grilled on a skewer. Hope you're hungry!"
@@ -139,6 +143,10 @@
tastes = list("shrimp" = 1, "batter" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
/obj/item/food/fish_skewer/bone
trash = /obj/item/stack/bone_rods
icon_state = "fishskewer_bone"
/obj/item/food/sliceable/ebi_maki
name = "ebi maki roll"
desc = "A large unsliced roll of Ebi Sushi."
@@ -76,16 +76,15 @@
var/output
var/time = 40
/// WHO NAME A PARAMETER FOR A PROC "what" holy hell
/datum/food_processor_process/proc/process_food(loc, what, obj/machinery/processor/processor)
/datum/food_processor_process/proc/process_food(loc, process_in, obj/machinery/processor/processor)
if(output && loc && processor)
for(var/i = 0, i < processor.rating_amount, i++)
new output(loc)
if(what)
qdel(what)
if(process_in)
qdel(process_in)
/////////////////////////
/////OBJECT RECIPIES/////
/////OBJECT RECIPES//////
/////////////////////////
/datum/food_processor_process/meat
input = /obj/item/food/meat
@@ -124,14 +123,14 @@
output = /obj/item/popsicle_stick
/////////////////////////
///END OBJECT RECIPIES///
///END OBJECT RECIPES////
/////////////////////////
/datum/food_processor_process/mob/process_food(loc, what, processor)
..()
//////////////////////
/////MOB RECIPIES/////
/////MOB RECIPES//////
//////////////////////
/datum/food_processor_process/mob/slime
input = /mob/living/simple_animal/slime
@@ -174,7 +173,7 @@
//bucket_of_blood.reagents.handle_reactions() //blood doesn't react
..()
////////////////////////
////END MOB RECIPIES////
////END MOB RECIPES/////
////////////////////////
//END RECIPE DATUMS
@@ -129,6 +129,28 @@
M.adjustBrainLoss(1)
return ..() | update_flags
/datum/reagent/lead
name = "Lead"
id = "lead"
description = "A heavy metal that causes brain damage and kidney failure, used by some ancient civilisations as a sweetener."
reagent_state = LIQUID
color = "#484848" // rgb: 72, 72, 72
taste_description = "sweet"
/datum/reagent/lead/on_mob_life(mob/living/M)
var/update_flags = STATUS_UPDATE_NONE
if(prob(70))
M.adjustBrainLoss(1)
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/obj/item/organ/internal/kidneys/our_kidneys = H.get_int_organ(/obj/item/organ/internal/kidneys)
if(prob(70))
if(our_kidneys && our_kidneys.damage < 60)
our_kidneys.receive_damage(1, TRUE)
else
M.adjustToxLoss(1)
return ..() | update_flags
/datum/reagent/chlorine
name = "Chlorine"
id = "chlorine"