-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kitchen rework part 1: machines and recipes. #28277
base: master
Are you sure you want to change the base?
Kitchen rework part 1: machines and recipes. #28277
Conversation
Cakes don't seem to be able to be made. Might be something to do with reagents in cooking, or specifically milk? |
I think there might be an issue with some cutting board recipes? yesterday I tried making peanut butter banana sandwiches, and it will say "you are finished cooking with the cutting board" after only adding one bread slice and the peanut butter. won't take anything else to finish the recipe saying the cutting board is full. similar issue with the PB&J variant. |
It seems like it's recipes that partially or fully use reagents that don't properly work. Such as Wish Soup or the Superbite Burger. |
I love this PR and think all of these changes make playing around in the kitchen really, really fun, though putting reagents and items on/in cooking utensils seems a decent bit scuffed as you have to follow your recipe in the exact order specified in the recipe book in some cases. |
|
||
// Burn times for cooking things on a stove. | ||
// Anything put on a stove for this long becomes a burned mess. | ||
#define PCWJ_BURN_TIME_LOW 3 MINUTES |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that these times are overly forgiving.
Setting the cook time to exact is trivial, and there's no risk in setting something to cook for 59 seconds in this way.
I'd like to see the times adjusted so that there's some risk involved, otherwise no one is going to burn food ever again.
lip = "oven_dish_lip" | ||
materials = list(MAT_METAL = 10) | ||
|
||
/obj/item/reagent_containers/cooking/pan |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You've specified a hitsound, but this item can't actually strike someone, even on harm intent. I think you need to specify force. A comparable item would be the baseball bat, which has
force = 10
throwforce = 12
attack_verb = list("beat", "smacked")
AM.forceMove(get_turf(target)) | ||
|
||
if(ismob(user)) | ||
to_chat(user, "<span class='notice'>You remove all the solid items from [src].</span>") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If reagents are also removed, this message is very misleading. I'd like this message to just read "You remove everything from [src]" or change dynamically based on what is removed.
|
||
return calculated_quality - (total_volume - calculated_volume) | ||
|
||
/proc/initialize_cooking_recipes() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be nice if this initialize_cooking_recipes
checked for duplicates. I recall seeing an exact duplicate of a recipe in the cookbook at least once.
What Does This PR Do
This PR implements the first part of the kitchen rework, covering machines and recipes.
The new cooking system is based off of CWJ, a module which I believe was first implemented in Sojourn Station. This code has been extensively rewritten not only to improve the implementation and bring it in line with Para coding standards/idioms, but extended to include all of our existing machines and recipes.
More is coming but this is just getting the first phase in a TMable state to start getting player feedback, iron out bugs, and get eyes on the code.
Summary
Kitchens now have new and reworked machines: stovetops, grills, ovens, deep fryers, and ice cream mixers.
Recipes are made on/in a container, and optionally that container is placed on a cooking machine to finish/progress the recipe.
For example, to make a burger, a bun, lettuce, and patty must be put on a cutting board. To make a fried egg, an egg, salt, and pepper must be placed in a pan, and the pan must be placed on a stovetop and cooked for 10 seconds on medium.
Food now has a quality rating. The more closely a recipe is followed, the better the rating. The higher upgrade-tier the cooking machines, the better the rating. Quality rating currently has no mechanical benefits but will soon be expanded to include useful buffs.
This is just the foundation for the kitchen rework; all the stuff regarding food quality and mid-round mechanical improvements like autochefs are coming in later PRs; trying to do this all at once would be a nightmare and exhausting to test and review.
Why It's Good For The Game
See the project discussion thread for background and motivation.
Images of changes
Testing
So much.
Declaration
Changelog
🆑
add: Cooking machines and recipes have been reworked. Recipes now typically require a "container" for ingredients, such as a prep bowl for salads or a frying pan for using on the stove. Most recipe steps must be followed in order, and their cooking steps will specify a temperature and an amount of time.
add: Kitchens have new and reworked machines: stovetops, grills, ovens, deep fryers, and ice cream mixer.
add: Prepared food now has a quality rating. The more closely the recipe is followed, and the higher the cooking machine upgrades, the better the rating. This rating has no mechanical benefits currently.
add: The chef's PDA starts with a cartridge containing a searchable database of all food recipes.
add: Leaving food cooking on a machine for too long will cause it to become a burned mess. Leave it on longer than that and the machine will catch on fire!
wip: Currently the only purpose of microwaves is to reheat donk pockets. Microwaves have been added into some department break rooms.
wip: Expert chef knowledge temporarily disabled while it gets integrated into the new recipe system.
wip: Some cooking machine interactions such as special attacks and deep fryer ice explosions are temporarily disabled.
fix: Recipes meant to remove toxins on creation, such as boiled spider legs, work properly.
del: Mixing bowls have been removed as they are no longer necessary for available recipes.
/:cl: