---
# System prepended metadata

title: ECO food

---

# ECO food

## Idea

The basic ingredients for drinks and food are easily acquired in certain machines like booze dispenser and bio generator.

However there are alternative ways to acquire them in a more natural way in the game. These ways require more effort, so there is no point to:

- Grow wheat or sugarcane when you get flour and sugar from biogen
- Ferment drinks when you get all basic drinks from booze dispenser
- Juice plants when you get many variants of juice from soda dispenser
- Milk animals when you get milk from biogen
- Grow livestock when you get monkey cubes

The goal is to implement a solution that would reward these ways of acquiring reagents without punishing the dispenser/biogen only workflows.

This will also provide an additional layer of depth to the cook/barman/botanist professions for more experienced players.

## Solution

- Make food and drinks that use natural ingredients better (or just special) than ones made of machine ingredients

### Consumable purity

- Consumable reagents could use purity stat to determine the quality of the reagent.
	- Machine reagents have the default purity: 0.5, and natural ones span from 0 to 1
		- You could make an ingredient that is worse than a machine one in some way
	- Natural reagents have variable purity that is determined by external factors:
		- Grown ingredients get purity from their seed stats - e.g. lifespan and endurance
			- This also makes botany care more about these two, usually neglected, stats if the aim is to get the best food ingredient
		- Milk, meat and eggs can use a more simple logic:
			- The synthetic biogen milk has 0.5 purity, and milk from animal has 1 purity
			- Meat from synthetic monkey has 0.5 purity, and all other types of meat have 1 purity
	- Purity should be preserved when reagents undergo reactions or used in cooking/drink recipes
	- Similar to medicines, purity will determine the effect of the food reagents on player:
		- Dish nutriment amount scales with purity
		- Dish mood buff strength/duration scale with purity (only when the food type matches player species diet)
		- Drink mood buff strength/duration scales with purity
	- Apply purity to the resulting food/drink, making natural variant (when all reagents are 100% pure) twice better compared to the 0.5 purity variant (the current, default values)

### Instability effects

Consumables from grown food may also gain some random effects if the seed instability was high. So even a pure reagent may lead to harm or something interesting.

## Actual Implementation

### Consumables purity

- Effects
    - Adjusts duration of the mood buff from food consumption
    - Adjusts nutrition values of consumed reagents
- Base values
    - Synthetic food from biogen has 0.3 purity (including monkey meat)
        - Note: Can be purified to 0.5 using mass spectrometer machine
    - Map spawn and default consumables have 0.5 purity
    - Domestic animals yield organic eggs and meats with 1 purity
    - Grown food consumables get purity from the seed stats (at the moment of harvest, specific for every harvested fruit) - usually around 0.65 purity by default:
        - 50% - base purity of grown food
        - Lifespan adds up to 25% at 100 Lifespan
        - Endurance adds up to 25% at 100 Endurance
        - Instability adds/reduces up to 25% at 100 Instability
        - Also applicable to sub-products of grown food like meatwheat and egg-plants

### Recipe complexity

- Effects
    - Increases the strength of mood buff from crafted food consumption. Simulates **exquisitness** of the meal - the more effort is put into your food - the more happy you are when you eat it.
    - Applied to crafted food only. The mood buff ignores map-/admin-spawned food, regardless of its complexity. They're factory-made donk pokets and donuts. Soulless.
- Values
    - Spans from 0 to ~5
    - Reflects the number of steps/ingredients/rare ingredients needed to make the meal
    - Hard-coded for every food object or their parent types:
        - Complexity 1:
            - Fried/Boiled egg
            - Cheese
            - Onion rings
            - Tator tot
            - Steak
            - ... other things that require one step of ingredient or reagent processing
        - Complexity 2:
            - Pastry base
            - Plain cake/pie
            - Bread
            - Raw pizza
            - Simple pasta
            - Simple salads
            - Simple soups
            - ... other things that require a couple steps of processing or a couple of grown ingredients
        - Complexity 3:
            - Burgers
            - Sandwitches
            - Pizza
            - Cakes/Pies
            - Stuffed breads
            - Pastas
            - Average salads
            - Average soups 
            - ... other things that require Complexity 2 item plus something simple
        - Complexity 4+:
            - Other things that are harder to make

### Mood buff from food consumption

- The previous positive mood buff system is replaced with a procedural one
- New buff
    - Buff duration (ingredient quality):
        - 0-100% according to the average purity of reagents. 
        - Synthetic food gives shorter buffs, organic - longer.
    - Buff strength (food quality/exquisiteness):
        - Affects buff mood change value (and maybe some extra buffs later)
        - Base value is determined by the complexity of the recipe, only when the food is hand crafted
            - Spans from 0 (grown fruits, map-spawn food) to ~5 (most time-consuming recipes)
        - Preferrences of the eater adjust the base value as follows:
            - -4 when the food is toxic for the species
            - -2 when species dislike the food type
            - +2 when species like the food type
            - Accumulative, you can get +4 if the food has 2 food types that you like

### Procedural nutrition values

- The food reagents will **STOP** being applied to hand-crafted food and will be used only for map-spawned food
- Crafted food will get reagents only from its ingredients without getting any extra out of nowhere
    - So crafting, most of the times, affects only the effect of the mood buff, but not the nutrition values
    - Nutrition value may change, hovewer, if the crafting recipe has reagent conversion logic (see below)

### Reagent conversion logic

- Some recipes may cause consumable reagents to change into other reagents
- This will be defined like:
    - This recipe can turn all milk into nutriments, or all nutriments into sulfuric acid
- Will be applied only to selected recipes, where this is required

# TODO for later or someone else

- [ ]  Complexity for slap-crafted food (custom burgers, sushi, pizza, etc.)
- [ ]  Add reagent conversion method (convert nutriments to misc. reagents instead of custom amount)
- [ ]  Consider rare clothes (e.g. durathread) as an exquisite meal for moths
- [ ]  Biogen should consider `nutriment_factor` and purity
- [ ]  Lock Mothic and Lizard recipes behind species
- [ ]  More custom and interesting food buffs tied to certain dishes
    - [ ]  Lavaland cooking makes you storm or fire proof, etc.
- [ ]  Make progressive learning system for cooking recipes
    - [ ]  You start with only 1 and 2 complexity food in every category and have to cook them to unlock 3-5 complexity within the category
- [ ]  Eco food for Bar stuff
- [ ]  Make juices get`nutriment_factor` from `/datum/reagents/proc/get_average_nutriment_factor()` - blocked by issue with reagent manipulation resetting consumable data on transferring
- [ ]  Make all this shit work for soups

