diff --git a/code/modules/cooking/cooking_container.dm b/code/modules/cooking/cooking_container.dm
index 372d519d1ce..33d07d986c4 100644
--- a/code/modules/cooking/cooking_container.dm
+++ b/code/modules/cooking/cooking_container.dm
@@ -136,7 +136,15 @@
return
if(reaction_status == PCWJ_NO_STEPS && !tracker.recipe_started)
- to_chat(user, "You don't know what you'd begin to make with this.")
+ if(!ismob(user))
+ return
+
+ if(tracker.step_reaction_message)
+ to_chat(user, "[tracker.step_reaction_message]")
+ tracker.step_reaction_message = null
+ else
+ to_chat(user, "You don't know what you'd begin to make with this.")
+
return
switch(reaction_status)
diff --git a/code/modules/cooking/recipes/midway_recipes.dm b/code/modules/cooking/recipes/midway_recipes.dm
index ad124576c81..0d4d373c4a8 100644
--- a/code/modules/cooking/recipes/midway_recipes.dm
+++ b/code/modules/cooking/recipes/midway_recipes.dm
@@ -70,12 +70,16 @@
if(!istype(food_item))
return PCWJ_CHECK_INVALID
+ if("deep fried" in food_item.cooktype)
+ tracker.step_reaction_message = "That is already deep-fried!"
+ return PCWJ_CHECK_INVALID
+
// check to see if this is something that belongs to another deep fryer
// recipe with only one item
for(var/datum/cooking/recipe/recipe in GLOB.pcwj_recipe_dictionary[/obj/item/reagent_containers/cooking/deep_basket])
if(length(recipe.steps) == 2) // One add step and one deep fry step
var/datum/cooking/recipe_step/add_item/add_item_step = recipe.steps[1]
- if(istype(add_item_step) && add_item_step.check_conditions_met(added_item, tracker) == PCWJ_CHECK_VALID)
+ if(istype(add_item_step) && (src != add_item_step) && add_item_step.check_conditions_met(added_item, tracker) == PCWJ_CHECK_VALID)
return PCWJ_CHECK_INVALID
return PCWJ_CHECK_VALID
@@ -83,7 +87,7 @@
/datum/cooking/recipe/deep_fried_anything
container_type = /obj/item/reagent_containers/cooking/deep_basket
steps = list(
- PCWJ_ADD_ITEM(/obj/item/food),
+ new /datum/cooking/recipe_step/add_item/deep_fried_anything(),
PCWJ_USE_DEEP_FRYER(10 SECONDS),
)
appear_in_default_catalog = FALSE
@@ -100,6 +104,7 @@
result.color = "#FFAD33"
result.name = "deep-fried [food_item.name]"
result.desc = "It has been deep-fried."
+ result.cooktype["deep fried"] = TRUE
food_item.reagents.trans_to(result, food_item.reagents.total_volume)
qdel(food_item)
diff --git a/code/modules/cooking/steps/recipe_step.dm b/code/modules/cooking/steps/recipe_step.dm
index 79daf5ba2fa..3cde37ae34d 100644
--- a/code/modules/cooking/steps/recipe_step.dm
+++ b/code/modules/cooking/steps/recipe_step.dm
@@ -10,6 +10,8 @@ RESTRICT_TYPE(/datum/cooking/recipe_step)
/datum/cooking/recipe_step/proc/check_conditions_met(obj/used_item, datum/cooking/recipe_tracker/tracker)
SHOULD_CALL_PARENT(FALSE)
+ SHOULD_BE_PURE(TRUE)
+
return PCWJ_CHECK_VALID
/// Attempt to satisfy the requirements of this step with the object *used_item*