Skip to content

Commit

Permalink
Food processor can be used to remove carpotoxin and acidic blood with…
Browse files Browse the repository at this point in the history
… master domestic skill (#5577)

# About the pull request

This PR makes it so that characters with master level domestic skill are
able to remove carpotoxin and acidic blood from carp fillets and
xenomeat. Xenomeat, carp fillets and recipes including those have had
their levels adjusted to avoid adding additional carpotoxin/xenoblood
when creating a recipe so a processed ingredient won't result in a
dangerous recipe.

I've tested this using characters with and without the skill with flour,
potatoes, xenomeat and carp fillets to ensure that only the affected
processor uses are changed, that processing works correctly and that the
skill is required.

# Explain why it's good for the game

This would open more opportunities for the mess technician to serve the
crew with recipes that rarely see the light of day due to being
dangerous (while leaving some risk if an MST forgets to process the
ingredients). Some marine players might also enjoy the roleplay
opportunities around getting the chef to turn their fallen enemies into
burgers.

# Testing Photographs and Procedure
<details>

<summary>Screenshots & Videos</summary>

Here is shown a character with insufficient skill unable to modify the
food, before putting it in the soda fountain to show its reagents:

https://github.com/cmss13-devs/cmss13/assets/32908370/8138d1c5-77a2-4f7d-92e9-9d7059fa3f05

Here is shown a character with sufficient the skill able to modify the
food, before putting it in the soda fountain to show its reagents:

https://github.com/cmss13-devs/cmss13/assets/32908370/93bb0c99-fccf-46ca-a786-579be203629b

</details>


# Changelog
:cl:
add: Increased levels of acidic blood and carpotoxin in xenomeat and
carp fillets.
del: Xenomeat and carp fillet-based recipes no longer add additional
acidic blood or carpotoxin.
qol: Master level domestic skill allows the use of the food processor to
remove acidic blood and carpotoxin from xenomeat and carp fillets.
fix: Turning named pieces of human meat into meatballs will retain the
human's name.
/:cl:

---------

Co-authored-by: SabreML <[email protected]>
  • Loading branch information
LaylaMcC and SabreML authored Feb 21, 2024
1 parent 27ddbc5 commit 81e95e1
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 11 deletions.
33 changes: 32 additions & 1 deletion code/game/machinery/kitchen/processor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,44 @@

/datum/food_processor_process/process(loc, what)
if (src.output && loc)
new src.output(loc)
var/obj/item/reagent_container/food/snacks/created_food = new src.output(loc)
var/obj/item/reagent_container/food/snacks/original_food = what
if(original_food.made_from_player)
created_food.made_from_player = original_food.made_from_player
created_food.name = (created_food.made_from_player + created_food.name)
if (what)
qdel(what)

/datum/food_processor_process/proc/can_use(mob/user)
// By default, anyone can do it.
return TRUE

/* objs */

/datum/food_processor_process/xenomeat
input = /obj/item/reagent_container/food/snacks/meat/xenomeat
output = /obj/item/reagent_container/food/snacks/meat/xenomeat/processed

/datum/food_processor_process/xenomeat/can_use(mob/user)
if(!skillcheck(user, SKILL_DOMESTIC, SKILL_DOMESTIC_MASTER))
to_chat(user, SPAN_DANGER("You aren't trained to remove dangerous substances from food!"))
return FALSE
return TRUE

/datum/food_processor_process/meat
input = /obj/item/reagent_container/food/snacks/meat
output = /obj/item/reagent_container/food/snacks/rawmeatball

/datum/food_processor_process/carpmeat
input = /obj/item/reagent_container/food/snacks/carpmeat
output = /obj/item/reagent_container/food/snacks/carpmeat/processed

/datum/food_processor_process/carpmeat/can_use(mob/user)
if(!skillcheck(user, SKILL_DOMESTIC, SKILL_DOMESTIC_MASTER))
to_chat(user, SPAN_DANGER("You aren't trained to remove dangerous substances from food!"))
return FALSE
return TRUE

/datum/food_processor_process/potato
input = /obj/item/reagent_container/food/snacks/grown/potato
output = /obj/item/reagent_container/food/snacks/rawsticks
Expand Down Expand Up @@ -88,6 +117,8 @@
if (!P)
to_chat(user, SPAN_DANGER("That probably won't blend."))
return 1
if(!P.can_use(user))
return 1
user.visible_message("[user] put [what] into [src].", \
"You put [what] into [src].")
user.drop_held_item()
Expand Down
18 changes: 9 additions & 9 deletions code/game/objects/items/reagent_containers/food/snacks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -641,9 +641,17 @@
/obj/item/reagent_container/food/snacks/carpmeat/Initialize()
. = ..()
reagents.add_reagent("fish", 3)
reagents.add_reagent("carpotoxin", 3)
reagents.add_reagent("carpotoxin", 6)
src.bitesize = 6

/obj/item/reagent_container/food/snacks/carpmeat/processed
name = "processed carp fillet"
desc = "A fillet of spess carp meat. This one has been processed to remove carpotoxin."

/obj/item/reagent_container/food/snacks/carpmeat/processed/Initialize()
. = ..()
reagents.remove_reagent("carpotoxin", 6)

/obj/item/reagent_container/food/snacks/fishfingers
name = "Fish Fingers"
desc = "A finger of fish."
Expand All @@ -653,7 +661,6 @@
/obj/item/reagent_container/food/snacks/fishfingers/Initialize()
. = ..()
reagents.add_reagent("fish", 4)
reagents.add_reagent("carpotoxin", 3)
bitesize = 3

/obj/item/reagent_container/food/snacks/hugemushroomslice
Expand Down Expand Up @@ -802,7 +809,6 @@
. = ..()
reagents.add_reagent("bread", 3)
reagents.add_reagent("fish", 3)
reagents.add_reagent("carpotoxin", 3)
bitesize = 3

/obj/item/reagent_container/food/snacks/tofuburger
Expand Down Expand Up @@ -850,7 +856,6 @@
. = ..()
reagents.add_reagent("bread", 3)
reagents.add_reagent("meatprotein", 3)
reagents.add_reagent("xenoblood", 3)
bitesize = 3

/obj/item/reagent_container/food/snacks/clownburger
Expand Down Expand Up @@ -1070,7 +1075,6 @@
. = ..()
reagents.add_reagent("bread", 4)
reagents.add_reagent("meatprotein", 2)
reagents.add_reagent("xenoblood", 4)
bitesize = 2

/obj/item/reagent_container/food/snacks/wingfangchu
Expand All @@ -1084,7 +1088,6 @@
. = ..()
reagents.add_reagent("soysauce", 4)
reagents.add_reagent("meatprotein", 4)
reagents.add_reagent("xenoblood", 4)
bitesize = 2

/obj/item/reagent_container/food/snacks/human/kabob
Expand Down Expand Up @@ -1133,7 +1136,6 @@
/obj/item/reagent_container/food/snacks/cubancarp/Initialize()
. = ..()
reagents.add_reagent("fish", 6)
reagents.add_reagent("carpotoxin", 3)
reagents.add_reagent("hotsauce", 3)
bitesize = 3

Expand Down Expand Up @@ -1690,7 +1692,6 @@
/obj/item/reagent_container/food/snacks/fishandchips/Initialize()
. = ..()
reagents.add_reagent("fish", 6)
reagents.add_reagent("carpotoxin", 3)
bitesize = 3

/obj/item/reagent_container/food/snacks/sandwich
Expand Down Expand Up @@ -2172,7 +2173,6 @@
reagents.add_reagent("bread", 10)
reagents.add_reagent("meatprotein", 10)
reagents.add_reagent("cheese", 10)
reagents.add_reagent("xenoblood", 10)
bitesize = 2

/obj/item/reagent_container/food/snacks/xenomeatbreadslice
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,16 @@

/obj/item/reagent_container/food/snacks/meat/xenomeat/Initialize()
. = ..()
reagents.add_reagent("xenoblood", 3)
reagents.add_reagent("xenoblood", 6)
src.bitesize = 6

/obj/item/reagent_container/food/snacks/meat/xenomeat/processed
desc = "A slab of acrid smelling meat. This one has been processed to remove acid."

/obj/item/reagent_container/food/snacks/meat/xenomeat/processed/Initialize()
. = ..()
reagents.remove_reagent("xenoblood", 6)

//fishable atoms meat
// todo: rewrite this into a procgen'ed item when gutting fish? May be incompatible with recipe code if done that way and not hardcoded.
/obj/item/reagent_container/food/snacks/meat/fish
Expand Down

0 comments on commit 81e95e1

Please sign in to comment.