diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/interdynefob.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/interdynefob.dmm index dcc29862a51..58d2b1b0804 100644 --- a/_maps/RandomRuins/SpaceRuins/skyrat/interdynefob.dmm +++ b/_maps/RandomRuins/SpaceRuins/skyrat/interdynefob.dmm @@ -1994,7 +1994,7 @@ pixel_x = 10; pixel_y = -9 }, -/obj/item/reagent_containers/condiment/quality_oil{ +/obj/item/reagent_containers/condiment/olive_oil{ pixel_x = 3; pixel_y = -2 }, diff --git a/_maps/RandomRuins/SpaceRuins/skyrat/piratefort.dmm b/_maps/RandomRuins/SpaceRuins/skyrat/piratefort.dmm index ef9ab04ab16..8a0bb4b3eec 100644 --- a/_maps/RandomRuins/SpaceRuins/skyrat/piratefort.dmm +++ b/_maps/RandomRuins/SpaceRuins/skyrat/piratefort.dmm @@ -501,8 +501,8 @@ /area/ruin/space/has_grav/powered) "ru" = ( /obj/structure/closet/secure_closet/freezer/fridge/all_access, -/obj/item/reagent_containers/condiment/quality_oil, -/obj/item/reagent_containers/condiment/quality_oil, +/obj/item/reagent_containers/condiment/olive_oil, +/obj/item/reagent_containers/condiment/olive_oil, /turf/open/floor/iron/kitchen, /area/ruin/space/has_grav/powered) "rA" = ( diff --git a/_maps/map_files/generic/CentCom_skyrat_z2.dmm b/_maps/map_files/generic/CentCom_skyrat_z2.dmm index 4ee78940736..70b2de9965b 100644 --- a/_maps/map_files/generic/CentCom_skyrat_z2.dmm +++ b/_maps/map_files/generic/CentCom_skyrat_z2.dmm @@ -2682,11 +2682,11 @@ /obj/item/reagent_containers/condiment/yoghurt, /obj/item/reagent_containers/condiment/yoghurt, /obj/item/reagent_containers/condiment/yoghurt, -/obj/item/reagent_containers/condiment/quality_oil, -/obj/item/reagent_containers/condiment/quality_oil, -/obj/item/reagent_containers/condiment/quality_oil, -/obj/item/reagent_containers/condiment/quality_oil, -/obj/item/reagent_containers/condiment/quality_oil, +/obj/item/reagent_containers/condiment/olive_oil, +/obj/item/reagent_containers/condiment/olive_oil, +/obj/item/reagent_containers/condiment/olive_oil, +/obj/item/reagent_containers/condiment/olive_oil, +/obj/item/reagent_containers/condiment/olive_oil, /obj/item/food/canned/larvae, /obj/item/food/canned/larvae, /obj/item/food/canned/larvae, diff --git a/code/__DEFINES/food.dm b/code/__DEFINES/food.dm index 7c6a10644ad..73e8e31fe09 100644 --- a/code/__DEFINES/food.dm +++ b/code/__DEFINES/food.dm @@ -106,6 +106,69 @@ DEFINE_BITFIELD(foodtypes, list( #define FOOD_AMAZING 6 #define RACE_DRINK 7 // SKYRAT ADDITION +#define FOOD_QUALITY_NORMAL 1 +#define FOOD_QUALITY_NICE 2 +#define FOOD_QUALITY_GOOD 3 +#define FOOD_QUALITY_VERYGOOD 4 +#define FOOD_QUALITY_FANTASTIC 5 +#define FOOD_QUALITY_AMAZING 6 +#define FOOD_QUALITY_TOP 7 + +#define FOOD_COMPLEXITY_0 0 +#define FOOD_COMPLEXITY_1 1 +#define FOOD_COMPLEXITY_2 2 +#define FOOD_COMPLEXITY_3 3 +#define FOOD_COMPLEXITY_4 4 +#define FOOD_COMPLEXITY_5 5 + +/// Labels for food quality +GLOBAL_LIST_INIT(food_quality_description, list( + FOOD_QUALITY_NORMAL = "okay", + FOOD_QUALITY_NICE = "nice", + FOOD_QUALITY_GOOD = "good", + FOOD_QUALITY_VERYGOOD = "very good", + FOOD_QUALITY_FANTASTIC = "fantastic", + FOOD_QUALITY_AMAZING = "amazing", + FOOD_QUALITY_TOP = "godlike", +)) + +/// Mood events for food quality +GLOBAL_LIST_INIT(food_quality_events, list( + FOOD_QUALITY_NORMAL = /datum/mood_event/food, + FOOD_QUALITY_NICE = /datum/mood_event/food/nice, + FOOD_QUALITY_GOOD = /datum/mood_event/food/good, + FOOD_QUALITY_VERYGOOD = /datum/mood_event/food/verygood, + FOOD_QUALITY_FANTASTIC = /datum/mood_event/food/fantastic, + FOOD_QUALITY_AMAZING = /datum/mood_event/food/amazing, + FOOD_QUALITY_TOP = /datum/mood_event/food/top, +)) + +/// Crafted food buffs grouped by crafting_complexity +GLOBAL_LIST_INIT(food_buffs, list( + FOOD_COMPLEXITY_1 = list( + /datum/status_effect/food/haste = 1, + ), + FOOD_COMPLEXITY_2 = list( + /datum/status_effect/food/haste = 1, + ), + FOOD_COMPLEXITY_3 = list( + /datum/status_effect/food/haste = 1, + ), + FOOD_COMPLEXITY_4 = list( + /datum/status_effect/food/haste = 1, + /datum/status_effect/food/trait/shockimmune = 1, + ), + FOOD_COMPLEXITY_5 = list( + /datum/status_effect/food/haste = 1, + /datum/status_effect/food/trait/shockimmune = 2, + ), +)) + +/// Food quality change according to species diet +#define TOXIC_FOOD_QUALITY_CHANGE -4 +#define DISLIKED_FOOD_QUALITY_CHANGE -2 +#define LIKED_FOOD_QUALITY_CHANGE 2 + /// Food is "in a container", not in a code sense, but in a literal sense (canned foods) #define FOOD_IN_CONTAINER (1<<0) /// Finger food can be eaten while walking / running around @@ -123,11 +186,6 @@ DEFINE_BITFIELD(food_flags, list( #define FOOD_MEAT_MUTANT 100 #define FOOD_MEAT_MUTANT_RARE 200 -///Amount of reagents you start with on crafted food excluding the used parts -#define CRAFTED_FOOD_BASE_REAGENT_MODIFIER 0.7 -///Modifier of reagents you get when crafting food from the parts used -#define CRAFTED_FOOD_INGREDIENT_REAGENT_MODIFIER 0.5 - #define IS_EDIBLE(O) (O.GetComponent(/datum/component/edible)) diff --git a/code/datums/components/bakeable.dm b/code/datums/components/bakeable.dm index a5367769f68..8b4964abf45 100644 --- a/code/datums/components/bakeable.dm +++ b/code/datums/components/bakeable.dm @@ -66,7 +66,8 @@ /datum/component/bakeable/proc/finish_baking(atom/used_oven) var/atom/original_object = parent var/obj/item/plate/oven_tray/used_tray = original_object.loc - var/atom/baked_result = new bake_result(used_tray) + var/atom/baked_result = new bake_result(used_tray, no_base_reagents = TRUE) + original_object.reagents?.trans_to(baked_result, original_object.reagents.total_volume) if(who_baked_us) ADD_TRAIT(baked_result, TRAIT_FOOD_CHEF_MADE, who_baked_us) diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm index 9a2ad6973f8..f436d168476 100644 --- a/code/datums/components/food/edible.dm +++ b/code/datums/components/food/edible.dm @@ -54,6 +54,7 @@ Behavior that's still missing from this component that original food items had t datum/callback/after_eat, datum/callback/on_consume, datum/callback/check_liked, + reagent_purity = 0.5, ) if(!isatom(parent)) return COMPONENT_INCOMPATIBLE @@ -70,7 +71,7 @@ Behavior that's still missing from this component that original food items had t src.tastes = string_assoc_list(tastes) src.check_liked = check_liked - setup_initial_reagents(initial_reagents) + setup_initial_reagents(initial_reagents, reagent_purity) /datum/component/edible/RegisterWithParent() RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(examine)) @@ -193,7 +194,7 @@ Behavior that's still missing from this component that original food items had t return ..() /// Sets up the initial reagents of the food. -/datum/component/edible/proc/setup_initial_reagents(list/reagents) +/datum/component/edible/proc/setup_initial_reagents(list/reagents, reagent_purity) var/atom/owner = parent if(owner.reagents) owner.reagents.maximum_volume = volume @@ -203,31 +204,61 @@ Behavior that's still missing from this component that original food items had t for(var/rid in reagents) var/amount = reagents[rid] if(length(tastes) && (rid == /datum/reagent/consumable/nutriment || rid == /datum/reagent/consumable/nutriment/vitamin)) - owner.reagents.add_reagent(rid, amount, tastes.Copy()) + owner.reagents.add_reagent(rid, amount, tastes.Copy(), added_purity = reagent_purity) else - owner.reagents.add_reagent(rid, amount) + owner.reagents.add_reagent(rid, amount, added_purity = reagent_purity) /datum/component/edible/proc/examine(datum/source, mob/user, list/examine_list) SIGNAL_HANDLER + var/atom/owner = parent + if(foodtypes) var/list/types = bitfield_to_list(foodtypes, FOOD_FLAGS) examine_list += span_notice("It is [lowertext(english_list(types))].") + var/quality = get_perceived_food_quality(user) + if(quality > 0) + var/quality_label = GLOB.food_quality_description[quality] + examine_list += span_green("You find this meal [quality_label].") + else if (quality == 0) + examine_list += span_notice("You find this meal edible.") + else + examine_list += span_warning("You find this meal inedible.") + + if(owner.reagents.total_volume > 0) + var/purity = owner.reagents.get_average_purity(/datum/reagent/consumable) + switch(purity) + if(0 to 0.2) + examine_list += span_warning("It is made of terrible ingredients shortening the effect...") + if(0.2 to 0.4) + examine_list += span_warning("It is made of synthetic ingredients shortening the effect.") + if(0.4 to 0.6) + examine_list += span_notice("It is made of average quality ingredients.") + if(0.6 to 0.8) + examine_list += span_green("It is made of organic ingredients prolonging the effect.") + if(0.8 to 1) + examine_list += span_green("It is made of finest ingredients prolonging the effect!") + var/datum/mind/mind = user.mind - if(mind && HAS_TRAIT_FROM(parent, TRAIT_FOOD_CHEF_MADE, REF(mind))) - examine_list += span_green("[parent] was made by you!") + if(mind && HAS_TRAIT_FROM(owner, TRAIT_FOOD_CHEF_MADE, REF(mind))) + examine_list += span_green("[owner] was made by you!") if(!(food_flags & FOOD_IN_CONTAINER)) switch(bitecount) if(0) // pass if(1) - examine_list += span_notice("[parent] was bitten by someone!") + examine_list += span_notice("[owner] was bitten by someone!") if(2, 3) - examine_list += span_notice("[parent] was bitten [bitecount] times!") + examine_list += span_notice("[owner] was bitten [bitecount] times!") else - examine_list += span_notice("[parent] was bitten multiple times!") + examine_list += span_notice("[owner] was bitten multiple times!") + + if(GLOB.Debug2) + examine_list += span_notice("Reagent purities:") + for(var/datum/reagent/reagent as anything in owner.reagents.reagent_list) + examine_list += span_notice("- [reagent.name] [reagent.volume]u: [round(reagent.purity * 100)]% pure") /datum/component/edible/proc/UseFromHand(obj/item/source, mob/living/M, mob/living/user) SIGNAL_HANDLER @@ -267,15 +298,11 @@ Behavior that's still missing from this component that original food items had t var/atom/this_food = parent - this_food.reagents.multiply_reagents(CRAFTED_FOOD_BASE_REAGENT_MODIFIER) - this_food.reagents.maximum_volume *= CRAFTED_FOOD_BASE_REAGENT_MODIFIER - for(var/obj/item/food/crafted_part in parts_list) if(!crafted_part.reagents) continue - - this_food.reagents.maximum_volume += crafted_part.reagents.maximum_volume * CRAFTED_FOOD_INGREDIENT_REAGENT_MODIFIER - crafted_part.reagents.trans_to(this_food.reagents, crafted_part.reagents.maximum_volume, CRAFTED_FOOD_INGREDIENT_REAGENT_MODIFIER) + this_food.reagents.maximum_volume += crafted_part.reagents.maximum_volume + crafted_part.reagents.trans_to(this_food.reagents, crafted_part.reagents.maximum_volume) this_food.reagents.maximum_volume = ROUND_UP(this_food.reagents.maximum_volume) // Just because I like whole numbers for this. @@ -428,10 +455,17 @@ Behavior that's still missing from this component that original food items had t if(sig_return & DESTROY_FOOD) qdel(owner) return + + //Give a buff when the dish is hand-crafted and unbitten + if(bitecount == 0) + apply_buff(eater) + var/fraction = min(bite_consumption / owner.reagents.total_volume, 1) owner.reagents.trans_to(eater, bite_consumption, transfered_by = feeder, methods = INGEST) bitecount++ + checkLiked(fraction, eater) + if(!owner.reagents.total_volume) On_Consume(eater, feeder) @@ -465,6 +499,24 @@ Behavior that's still missing from this component that original food items had t return return TRUE +///Applies food buffs according to the crafting complexity +/datum/component/edible/proc/apply_buff(mob/eater) + var/buff + var/recipe_complexity = get_recipe_complexity() + if(recipe_complexity == 0) + return + var/obj/item/food/food = parent + if(!isnull(food.crafted_food_buff)) + buff = food.crafted_food_buff + else + buff = pick_weight(GLOB.food_buffs[recipe_complexity]) + if(!isnull(buff)) + var/mob/living/living_eater = eater + var/atom/owner = parent + var/timeout_mod = owner.reagents.get_average_purity(/datum/reagent/consumable) * 2 // buff duration is 100% at average purity of 50% + var/strength = recipe_complexity + living_eater.apply_status_effect(buff, timeout_mod, strength) + ///Check foodtypes to see if we should send a moodlet /datum/component/edible/proc/checkLiked(fraction, mob/eater) if(last_check_time + 50 > world.time) @@ -478,25 +530,71 @@ Behavior that's still missing from this component that original food items had t last_check_time = world.time var/food_taste_reaction + + if(HAS_TRAIT(parent, TRAIT_FOOD_SILVER) && !isjellyperson(gourmand)) // it's not real food + food_taste_reaction = FOOD_TOXIC + if(check_liked) //Callback handling; use this as an override for special food like donuts food_taste_reaction = check_liked.Invoke(fraction, gourmand) if(!food_taste_reaction) food_taste_reaction = gourmand.get_food_taste_reaction(parent, foodtypes) - switch(food_taste_reaction) - if(FOOD_TOXIC) - to_chat(gourmand,span_warning("What the hell was that thing?!")) - gourmand.adjust_disgust(25 + 30 * fraction) - gourmand.add_mood_event("toxic_food", /datum/mood_event/disgusting_food) - if(FOOD_DISLIKED) - to_chat(gourmand,span_notice("That didn't taste very good...")) - gourmand.adjust_disgust(11 + 15 * fraction) - gourmand.add_mood_event("gross_food", /datum/mood_event/gross_food) - if(FOOD_LIKED) - to_chat(gourmand,span_notice("I love this taste!")) - gourmand.adjust_disgust(-5 + -2.5 * fraction) - gourmand.add_mood_event("fav_food", /datum/mood_event/favorite_food) + if(food_taste_reaction == FOOD_TOXIC) + to_chat(gourmand,span_warning("What the hell was that thing?!")) + gourmand.adjust_disgust(25 + 30 * fraction) + gourmand.add_mood_event("toxic_food", /datum/mood_event/disgusting_food) + return + + var/food_quality = get_perceived_food_quality(gourmand, parent) + if(food_quality < 0) + to_chat(gourmand,span_notice("That didn't taste very good...")) + gourmand.adjust_disgust(11 + 15 * fraction) + gourmand.add_mood_event("gross_food", /datum/mood_event/gross_food) + else if(food_quality > 0) + food_quality = min(food_quality, FOOD_QUALITY_TOP) + var/atom/owner = parent + var/timeout_mod = owner.reagents.get_average_purity(/datum/reagent/consumable) * 2 // mood event duration is 100% at average purity of 50% + var/event = GLOB.food_quality_events[food_quality] + gourmand.add_mood_event("quality_food", event, timeout_mod) + gourmand.adjust_disgust(-5 + -2 * food_quality * fraction) + var/quality_label = GLOB.food_quality_description[food_quality] + to_chat(gourmand, span_notice("That's \an [quality_label] meal.")) + + if(istype(parent, /obj/item/food)) + var/obj/item/food/food = parent + if(food.venue_value >= FOOD_PRICE_EXOTIC) + gourmand.add_mob_memory(/datum/memory/good_food, food = parent) + +/// Get the complexity of the crafted food +/datum/component/edible/proc/get_recipe_complexity() + if(!HAS_TRAIT(parent, TRAIT_FOOD_CHEF_MADE) || !istype(parent, /obj/item/food)) + return 0 // It is factory made. Soulless. + var/obj/item/food/food = parent + return food.crafting_complexity + +/// Get food quality adjusted according to eater's preferences +/datum/component/edible/proc/get_perceived_food_quality(mob/living/carbon/human/eater) + var/food_quality = get_recipe_complexity() + + if(HAS_TRAIT(parent, TRAIT_FOOD_SILVER)) // it's not real food + food_quality += isjellyperson(eater) ? 2 : -4 + + food_quality += TOXIC_FOOD_QUALITY_CHANGE * count_matching_foodtypes(foodtypes, eater.get_toxic_foodtypes()) + food_quality += DISLIKED_FOOD_QUALITY_CHANGE * count_matching_foodtypes(foodtypes, eater.get_disliked_foodtypes()) + food_quality += LIKED_FOOD_QUALITY_CHANGE * count_matching_foodtypes(foodtypes, eater.get_liked_foodtypes()) + + return food_quality + +/// Get the number of matching food types in provided bitfields +/datum/component/edible/proc/count_matching_foodtypes(bitfield_one, bitfield_two) + var/count = 0 + var/matching_bits = bitfield_one & bitfield_two + while (matching_bits > 0) + if (matching_bits & 1) + count++ + matching_bits >>= 1 + return count ///Delete the item when it is fully eaten /datum/component/edible/proc/On_Consume(mob/living/eater, mob/living/feeder) diff --git a/code/datums/components/grillable.dm b/code/datums/components/grillable.dm index bd9ab66fb31..0c73e349523 100644 --- a/code/datums/components/grillable.dm +++ b/code/datums/components/grillable.dm @@ -104,12 +104,13 @@ grilled_result = new cook_result(original_object.loc, stack_parent.amount) else - grilled_result = new cook_result(original_object.loc) + grilled_result = new cook_result(original_object.loc, no_base_reagents = TRUE) if(original_object.custom_materials) grilled_result.set_custom_materials(original_object.custom_materials) if(IS_EDIBLE(grilled_result)) BLACKBOX_LOG_FOOD_MADE(grilled_result.type) + original_object.reagents?.trans_to(grilled_result, original_object.reagents.total_volume) SEND_SIGNAL(parent, COMSIG_ITEM_GRILLED, grilled_result) if(who_placed_us) diff --git a/code/datums/components/udder.dm b/code/datums/components/udder.dm index bd622a944d7..66732aac333 100644 --- a/code/datums/components/udder.dm +++ b/code/datums/components/udder.dm @@ -94,7 +94,7 @@ * also useful for changing initial amounts in reagent holder (cows start with milk, gutlunches start empty) */ /obj/item/udder/proc/initial_conditions() - reagents.add_reagent(reagent_produced_typepath, 20) + reagents.add_reagent(reagent_produced_typepath, 20, added_purity = 1) START_PROCESSING(SSobj, src) /** @@ -102,7 +102,7 @@ */ /obj/item/udder/proc/generate() if(prob(5)) - reagents.add_reagent(reagent_produced_typepath, rand(5, 10)) + reagents.add_reagent(reagent_produced_typepath, rand(5, 10), added_purity = 1) if(on_generate_callback) on_generate_callback.Invoke(reagents.total_volume, reagents.maximum_volume) @@ -163,7 +163,7 @@ /obj/item/udder/gutlunch/generate() var/made_something = FALSE if(prob(60)) - reagents.add_reagent(/datum/reagent/consumable/cream, rand(2, 5)) + reagents.add_reagent(/datum/reagent/consumable/cream, rand(2, 5), added_purity = 1) made_something = TRUE if(prob(45)) reagents.add_reagent(/datum/reagent/medicine/salglu_solution, rand(2,5)) diff --git a/code/datums/elements/dryable.dm b/code/datums/elements/dryable.dm index 2985f4b7f1e..2be70556b84 100644 --- a/code/datums/elements/dryable.dm +++ b/code/datums/elements/dryable.dm @@ -29,7 +29,6 @@ ADD_TRAIT(resulting_atom, TRAIT_DRIED, ELEMENT_TRAIT(type)) resulting_atom.forceMove(source.drop_location()) return - else if(isstack(source)) //Check if its a sheet var/obj/item/stack/itemstack = dried_atom for(var/i in 1 to itemstack.amount) @@ -37,6 +36,13 @@ ADD_TRAIT(resulting_atom, TRAIT_DRIED, ELEMENT_TRAIT(type)) qdel(source) return + else if(istype(source, /obj/item/food) && ispath(dry_result, /obj/item/food)) + var/obj/item/food/source_food = source + var/obj/item/food/resulting_food = new dry_result(source.drop_location(), no_base_reagents = TRUE) + source_food.reagents.trans_to(resulting_food, source_food.reagents.total_volume) + ADD_TRAIT(resulting_food, TRAIT_DRIED, ELEMENT_TRAIT(type)) + qdel(source) + return else var/atom/movable/resulting_atom = new dry_result(source.drop_location()) ADD_TRAIT(resulting_atom, TRAIT_DRIED, ELEMENT_TRAIT(type)) diff --git a/code/datums/elements/food/food_trash.dm b/code/datums/elements/food/food_trash.dm index 6d2b21a400d..bae5e399405 100644 --- a/code/datums/elements/food/food_trash.dm +++ b/code/datums/elements/food/food_trash.dm @@ -48,8 +48,14 @@ /datum/element/food_trash/proc/async_generate_trash(datum/source) var/atom/edible_object = source + var/obj/item/trash_item - var/obj/item/trash_item = generate_trash_procpath ? call(source, generate_trash_procpath)() : new trash(edible_object.drop_location()) + if(istype(source, /obj/item/food/grown) && ispath(trash, /obj/item/food)) + var/obj/item/food/grown/plant = source + var/reagent_purity = plant.seed.get_reagent_purity() + trash_item = new trash(edible_object.drop_location(), starting_reagent_purity = reagent_purity) + else + trash_item = generate_trash_procpath ? call(source, generate_trash_procpath)() : new trash(edible_object.drop_location()) if(isliving(edible_object.loc)) var/mob/living/food_holding_mob = edible_object.loc diff --git a/code/datums/elements/food/microwavable.dm b/code/datums/elements/food/microwavable.dm index 86a43c0603c..daf9518a8b3 100644 --- a/code/datums/elements/food/microwavable.dm +++ b/code/datums/elements/food/microwavable.dm @@ -35,9 +35,8 @@ if(isstack(source)) var/obj/item/stack/stack_source = source result = new result_typepath(result_loc, stack_source.amount) - else - result = new result_typepath(result_loc) + result = new result_typepath(result_loc, no_base_reagents = TRUE) var/efficiency = istype(used_microwave) ? used_microwave.efficiency : 1 SEND_SIGNAL(result, COMSIG_ITEM_MICROWAVE_COOKED, source, efficiency) @@ -46,7 +45,6 @@ if(microwaver && microwaver.mind) ADD_TRAIT(result, TRAIT_FOOD_CHEF_MADE, REF(microwaver.mind)) - result.reagents?.multiply_reagents(efficiency * CRAFTED_FOOD_BASE_REAGENT_MODIFIER) source.reagents?.trans_to(result, source.reagents.total_volume) BLACKBOX_LOG_FOOD_MADE(result.type) diff --git a/code/datums/materials/meat.dm b/code/datums/materials/meat.dm index 07b477b39d8..eebf3abe29a 100644 --- a/code/datums/materials/meat.dm +++ b/code/datums/materials/meat.dm @@ -31,7 +31,7 @@ var/nutriment_count = 3 * (amount / SHEET_MATERIAL_AMOUNT) var/oil_count = 2 * (amount / SHEET_MATERIAL_AMOUNT) source.AddComponent(/datum/component/edible, \ - initial_reagents = list(/datum/reagent/consumable/nutriment = nutriment_count, /datum/reagent/consumable/cooking_oil = oil_count), \ + initial_reagents = list(/datum/reagent/consumable/nutriment = nutriment_count, /datum/reagent/consumable/nutriment/fat/oil = oil_count), \ foodtypes = RAW | MEAT | GROSS, \ eat_time = 3 SECONDS, \ tastes = list("Fleshy")) diff --git a/code/datums/materials/pizza.dm b/code/datums/materials/pizza.dm index 6a7c4a6922a..588018576be 100644 --- a/code/datums/materials/pizza.dm +++ b/code/datums/materials/pizza.dm @@ -29,7 +29,7 @@ var/nutriment_count = 3 * (amount / SHEET_MATERIAL_AMOUNT) var/oil_count = 2 * (amount / SHEET_MATERIAL_AMOUNT) source.AddComponent(/datum/component/edible, \ - initial_reagents = list(/datum/reagent/consumable/nutriment = nutriment_count, /datum/reagent/consumable/cooking_oil = oil_count), \ + initial_reagents = list(/datum/reagent/consumable/nutriment = nutriment_count, /datum/reagent/consumable/nutriment/fat/oil = oil_count), \ foodtypes = GRAIN | MEAT | DAIRY | VEGETABLES, \ eat_time = 3 SECONDS, \ tastes = list("crust", "tomato", "cheese", "meat")) diff --git a/code/datums/mood.dm b/code/datums/mood.dm index fa5fe5563ff..76f08641ecb 100644 --- a/code/datums/mood.dm +++ b/code/datums/mood.dm @@ -139,8 +139,9 @@ * Arguments: * * category - (text) category of the mood event - see /datum/mood_event for category explanation * * type - (path) any /datum/mood_event + * * timeout_mod - (number) /datum/mood_event timeout modifier */ -/datum/mood/proc/add_mood_event(category, type, ...) +/datum/mood/proc/add_mood_event(category, type, timeout_mod = 1, ...) if (!ispath(type, /datum/mood_event)) CRASH("A non path ([type]), was used to add a mood event. This shouldn't be happening.") if (!istext(category)) @@ -153,6 +154,7 @@ clear_mood_event(category) else if (the_event.timeout) + the_event.timeout = initial(the_event.timeout) * timeout_mod addtimer(CALLBACK(src, PROC_REF(clear_mood_event), category), the_event.timeout, (TIMER_UNIQUE|TIMER_OVERRIDE)) return // Don't need to update the event. var/list/params = args.Copy(3) @@ -162,8 +164,9 @@ if (QDELETED(the_event)) // the mood event has been deleted for whatever reason (requires a job, etc) return - mood_events[category] = the_event + the_event.timeout *= timeout_mod the_event.category = category + mood_events[category] = the_event update_mood() if (the_event.timeout) diff --git a/code/datums/mood_events/food_events.dm b/code/datums/mood_events/food_events.dm new file mode 100644 index 00000000000..7d2dcc439de --- /dev/null +++ b/code/datums/mood_events/food_events.dm @@ -0,0 +1,46 @@ +/datum/mood_event/favorite_food + description = "I really enjoyed eating that." + mood_change = 5 + timeout = 4 MINUTES + +/datum/mood_event/gross_food + description = "I really didn't like that food." + mood_change = -2 + timeout = 4 MINUTES + +/datum/mood_event/disgusting_food + description = "That food was disgusting!" + mood_change = -6 + timeout = 4 MINUTES + +/datum/mood_event/breakfast + description = "Nothing like a hearty breakfast to start the shift." + mood_change = 2 + timeout = 10 MINUTES + +/datum/mood_event/food + timeout = 5 MINUTES + var/quality = FOOD_QUALITY_NORMAL + +/datum/mood_event/food/New(mob/M, ...) + . = ..() + mood_change = 2 + 2 * quality + description = "That food was [GLOB.food_quality_description[quality]]." + +/datum/mood_event/food/nice + quality = FOOD_QUALITY_NICE + +/datum/mood_event/food/good + quality = FOOD_QUALITY_GOOD + +/datum/mood_event/food/verygood + quality = FOOD_QUALITY_VERYGOOD + +/datum/mood_event/food/fantastic + quality = FOOD_QUALITY_FANTASTIC + +/datum/mood_event/food/amazing + quality = FOOD_QUALITY_AMAZING + +/datum/mood_event/food/top + quality = FOOD_QUALITY_TOP diff --git a/code/datums/mood_events/needs_events.dm b/code/datums/mood_events/needs_events.dm index 01281963cc1..ceee687918e 100644 --- a/code/datums/mood_events/needs_events.dm +++ b/code/datums/mood_events/needs_events.dm @@ -67,26 +67,6 @@ timeout = 4 MINUTES //Generic needs events -/datum/mood_event/favorite_food - description = "I really enjoyed eating that." - mood_change = 5 - timeout = 4 MINUTES - -/datum/mood_event/gross_food - description = "I really didn't like that food." - mood_change = -2 - timeout = 4 MINUTES - -/datum/mood_event/disgusting_food - description = "That food was disgusting!" - mood_change = -6 - timeout = 4 MINUTES - -/datum/mood_event/breakfast - description = "Nothing like a hearty breakfast to start the shift." - mood_change = 2 - timeout = 10 MINUTES - /datum/mood_event/nice_shower description = "I have recently had a nice shower." mood_change = 4 diff --git a/code/datums/status_effects/buffs/food_haste.dm b/code/datums/status_effects/buffs/food_haste.dm new file mode 100644 index 00000000000..9daf859fb19 --- /dev/null +++ b/code/datums/status_effects/buffs/food_haste.dm @@ -0,0 +1,20 @@ +/// Haste makes the eater move faster +/datum/status_effect/food/haste + var/datum/movespeed_modifier/food_haste/modifier + +/datum/status_effect/food/haste/on_apply() + modifier = new() + modifier.multiplicative_slowdown = -0.04 * strength + owner.add_movespeed_modifier(modifier, update = TRUE) + return ..() + +/datum/status_effect/food/haste/be_replaced() + owner.remove_movespeed_modifier(modifier, update = TRUE) + return ..() + +/datum/status_effect/food/haste/on_remove() + owner.remove_movespeed_modifier(modifier, update = TRUE) + return ..() + +/datum/movespeed_modifier/food_haste + multiplicative_slowdown = -0.1 diff --git a/code/datums/status_effects/buffs/food_traits.dm b/code/datums/status_effects/buffs/food_traits.dm new file mode 100644 index 00000000000..ebe22116dd0 --- /dev/null +++ b/code/datums/status_effects/buffs/food_traits.dm @@ -0,0 +1,8 @@ +/datum/status_effect/food/trait/shockimmune + alert_type = /atom/movable/screen/alert/status_effect/food_trait_shockimmune + trait = TRAIT_SHOCKIMMUNE + +/atom/movable/screen/alert/status_effect/food_trait_shockimmune + name = "Grounded" + desc = "That meal made me feel like a superconductor..." + icon_state = "food_buff_4" diff --git a/code/datums/status_effects/food_effects.dm b/code/datums/status_effects/food_effects.dm new file mode 100644 index 00000000000..e41ef67ad10 --- /dev/null +++ b/code/datums/status_effects/food_effects.dm @@ -0,0 +1,52 @@ +/// Buffs given by eating hand-crafted food. The duration scales with consumable reagents purity. +/datum/status_effect/food + id = "food_buff" + duration = 5 MINUTES // Same as food mood buffs + status_type = STATUS_EFFECT_REPLACE // Only one food buff allowed + /// Buff power + var/strength + +/datum/status_effect/food/on_creation(mob/living/new_owner, timeout_mod = 1, strength = 1) + src.strength = strength + //Generate alert when not specified + if(alert_type == /atom/movable/screen/alert/status_effect) + alert_type = "/atom/movable/screen/alert/status_effect/food/buff_[strength]" + if(isnum(timeout_mod)) + duration *= timeout_mod + . = ..() + +/atom/movable/screen/alert/status_effect/food + name = "Hand-crafted meal" + desc = "Eating it made me feel better." + icon_state = "food_buff_1" + +/atom/movable/screen/alert/status_effect/food/buff_1 + icon_state = "food_buff_1" + +/atom/movable/screen/alert/status_effect/food/buff_2 + icon_state = "food_buff_2" + +/atom/movable/screen/alert/status_effect/food/buff_3 + icon_state = "food_buff_3" + +/atom/movable/screen/alert/status_effect/food/buff_4 + icon_state = "food_buff_4" + +/atom/movable/screen/alert/status_effect/food/buff_5 + icon_state = "food_buff_5" + +/// Makes you gain a trait +/datum/status_effect/food/trait + var/trait = TRAIT_DUMB // You need to override this + +/datum/status_effect/food/trait/on_apply() + ADD_TRAIT(owner, trait, type) + return ..() + +/datum/status_effect/food/trait/be_replaced() + REMOVE_TRAIT(owner, trait, type) + return ..() + +/datum/status_effect/food/trait/on_remove() + REMOVE_TRAIT(owner, trait, type) + return ..() diff --git a/code/game/machinery/computer/orders/order_items/cook/order_reagents.dm b/code/game/machinery/computer/orders/order_items/cook/order_reagents.dm index 584403a1195..d6b4728d104 100644 --- a/code/game/machinery/computer/orders/order_items/cook/order_reagents.dm +++ b/code/game/machinery/computer/orders/order_items/cook/order_reagents.dm @@ -51,9 +51,9 @@ item_path = /obj/item/reagent_containers/condiment/vinegar cost_per_order = 30 -/datum/orderable_item/reagents/quality_oil - name = "Quality Oil" - item_path = /obj/item/reagent_containers/condiment/quality_oil +/datum/orderable_item/reagents/olive_oil + name = "Olive Oil" + item_path = /obj/item/reagent_containers/condiment/olive_oil cost_per_order = 50 //Extra Virgin, just like you, the reader /datum/orderable_item/reagents/peanut_butter diff --git a/code/game/objects/effects/spawners/random/food_or_drink.dm b/code/game/objects/effects/spawners/random/food_or_drink.dm index b9d01e8081a..5338eb52897 100644 --- a/code/game/objects/effects/spawners/random/food_or_drink.dm +++ b/code/game/objects/effects/spawners/random/food_or_drink.dm @@ -243,7 +243,7 @@ /obj/item/reagent_containers/condiment/soysauce = 1, /obj/item/reagent_containers/condiment/vinegar = 1, /obj/item/reagent_containers/condiment/peanut_butter = 1, - /obj/item/reagent_containers/condiment/quality_oil = 1, + /obj/item/reagent_containers/condiment/olive_oil = 1, /obj/item/reagent_containers/condiment/cherryjelly = 1, ) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 4cc3a963b5f..0724d990f26 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -207,8 +207,8 @@ ///Grinder var:A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only var/list/grind_results - //Grinder var:A reagent list containing blah blah... but when JUICED in a grinder! - var/list/juice_results + ///A reagent the nutriments are converted into when the item is juiced. + var/datum/reagent/consumable/juice_typepath var/canMouseDown = FALSE @@ -971,13 +971,36 @@ /obj/item/proc/grind_requirements(obj/machinery/reagentgrinder/R) //Used to check for extra requirements for grinding an object return TRUE -///Called BEFORE the object is ground up - use this to change grind results based on conditions. Use "return -1" to prevent the grinding from occurring +///Called BEFORE the object is ground up - use this to change grind results based on conditions. Return "-1" to prevent the grinding from occurring /obj/item/proc/on_grind() return SEND_SIGNAL(src, COMSIG_ITEM_ON_GRIND) +///Grind item, adding grind_results to item's reagents and transfering to target_holder if specified +/obj/item/proc/grind(datum/reagents/target_holder, mob/user) + if(on_grind() == -1) + return FALSE + if(!reagents) + reagents = new() + reagents.add_reagent_list(grind_results) + if(reagents && target_holder) + reagents.trans_to(target_holder, reagents.total_volume, transfered_by = user) + return TRUE + +///Called BEFORE the object is ground up - use this to change grind results based on conditions. Return "-1" to prevent the grinding from occurring /obj/item/proc/on_juice() + if(!juice_typepath) + return -1 return SEND_SIGNAL(src, COMSIG_ITEM_ON_JUICE) +///Juice item, converting nutriments into juice_typepath and transfering to target_holder if specified +/obj/item/proc/juice(datum/reagents/target_holder, mob/user) + if(on_juice() == -1) + return FALSE + reagents.convert_reagent(/datum/reagent/consumable, juice_typepath, include_source_subtypes = TRUE) + if(reagents && target_holder) + reagents.trans_to(target_holder, reagents.total_volume, transfered_by = user) + return TRUE + /obj/item/proc/set_force_string() switch(force) if(0 to 4) diff --git a/code/game/objects/items/food/_food.dm b/code/game/objects/items/food/_food.dm index 1df4a78b9fe..6d4362cb67f 100644 --- a/code/game/objects/items/food/_food.dm +++ b/code/game/objects/items/food/_food.dm @@ -10,7 +10,7 @@ righthand_file = 'icons/mob/inhands/items/food_righthand.dmi' obj_flags = UNIQUE_RENAME grind_results = list() - ///List of reagents this food gets on creation + ///List of reagents this food gets on creation during reaction or map spawn var/list/food_reagents ///Extra flags for things such as if the food is in a container or not var/food_flags @@ -48,6 +48,18 @@ var/decomposition_time = 0 ///Used to set decomposition stink particles for food, will have no particles if null var/decomposition_particles = /particles/stink + ///Used to set custom starting reagent purity for synthetic and natural food. Ignored when set to null. + var/starting_reagent_purity = null + ///How exquisite the meal is. Applicable to crafted food, increasing its quality. Spans from 0 to 5. + var/crafting_complexity = 0 + ///Buff given when a hand-crafted version of this item is consumed. Randomized according to crafting_complexity if not assigned. + var/datum/status_effect/food/crafted_food_buff = null + +/obj/item/food/New(loc, starting_reagent_purity, no_base_reagents = FALSE, ...) + src.starting_reagent_purity = starting_reagent_purity + if(no_base_reagents) + food_reagents = null + return ..() /obj/item/food/Initialize(mapload) . = ..() @@ -80,9 +92,9 @@ eatverbs = eatverbs,\ bite_consumption = bite_consumption,\ junkiness = junkiness,\ + reagent_purity = starting_reagent_purity,\ ) - ///This proc handles processable elements, overwrite this if you want to add behavior such as slicing, forking, spooning, whatever, to turn the item into something else /obj/item/food/proc/make_processable() return diff --git a/code/game/objects/items/food/bread.dm b/code/game/objects/items/food/bread.dm index 7608657f580..f4f935f032a 100644 --- a/code/game/objects/items/food/bread.dm +++ b/code/game/objects/items/food/bread.dm @@ -8,6 +8,7 @@ tastes = list("bread" = 10) foodtypes = GRAIN eat_time = 3 SECONDS + crafting_complexity = FOOD_COMPLEXITY_2 /// type is spawned 5 at a time and replaces this bread loaf when processed by cutting tool var/obj/item/food/breadslice/slice_type /// so that the yield can change if it isnt 5 @@ -32,6 +33,7 @@ food_flags = FOOD_FINGER_FOOD eat_time = 0.5 SECONDS w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/breadslice/Initialize(mapload) . = ..() @@ -48,6 +50,7 @@ venue_value = FOOD_PRICE_CHEAP burns_in_oven = TRUE slice_type = /obj/item/food/breadslice/plain + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/bread/plain/Initialize(mapload) . = ..() @@ -65,6 +68,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 2) venue_value = FOOD_PRICE_TRASH decomp_type = /obj/item/food/breadslice/moldy + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/breadslice/plain/Initialize(mapload) . = ..() @@ -84,6 +88,7 @@ tastes = list("decaying fungus" = 1) foodtypes = GROSS preserved_food = TRUE + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/breadslice/moldy/bacteria name = "bacteria-rich moldy 'bread' slice" @@ -107,6 +112,7 @@ foodtypes = GRAIN | MEAT venue_value = FOOD_PRICE_CHEAP slice_type = /obj/item/food/breadslice/meat + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/breadslice/meat name = "meatbread slice" @@ -119,6 +125,7 @@ ) tastes = list("bread" = 1, "meat" = 1) foodtypes = GRAIN | MEAT + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/bread/sausage name = "sausagebread loaf" @@ -132,6 +139,7 @@ tastes = list("bread" = 10, "meat" = 10) foodtypes = GRAIN | MEAT slice_type = /obj/item/food/breadslice/sausage + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/breadslice/sausage name = "sausagebread slice" @@ -144,6 +152,7 @@ ) tastes = list("bread" = 10, "meat" = 10) foodtypes = GRAIN | MEAT + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/bread/xenomeat name = "xenomeatbread loaf" @@ -157,6 +166,7 @@ tastes = list("bread" = 10, "acid" = 10) foodtypes = GRAIN | MEAT slice_type = /obj/item/food/breadslice/xenomeat + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/breadslice/xenomeat name = "xenomeatbread slice" @@ -169,6 +179,7 @@ ) tastes = list("bread" = 10, "acid" = 10) foodtypes = GRAIN | MEAT + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/bread/spidermeat name = "spider meat loaf" @@ -183,6 +194,7 @@ tastes = list("bread" = 10, "cobwebs" = 5) foodtypes = GRAIN | MEAT | TOXIC slice_type = /obj/item/food/breadslice/spidermeat + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/breadslice/spidermeat name = "spider meat bread slice" @@ -196,6 +208,7 @@ ) tastes = list("bread" = 10, "cobwebs" = 5) foodtypes = GRAIN | MEAT | TOXIC + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/bread/banana name = "banana-nut bread" @@ -208,6 +221,7 @@ tastes = list("bread" = 10) // bananjuice will also flavour foodtypes = GRAIN | FRUIT slice_type = /obj/item/food/breadslice/banana + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/breadslice/banana name = "banana-nut bread slice" @@ -219,6 +233,7 @@ ) tastes = list("bread" = 10) foodtypes = GRAIN | FRUIT + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/bread/tofu name = "Tofubread" @@ -233,6 +248,7 @@ foodtypes = GRAIN | VEGETABLES venue_value = FOOD_PRICE_TRASH slice_type = /obj/item/food/breadslice/tofu + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/breadslice/tofu name = "tofubread slice" @@ -245,6 +261,7 @@ ) tastes = list("bread" = 10, "tofu" = 10) foodtypes = GRAIN | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/bread/creamcheese name = "cream cheese bread" @@ -284,6 +301,7 @@ tastes = list("bread" = 10, "silence" = 10) foodtypes = GRAIN | FRUIT slice_type = /obj/item/food/breadslice/mimana + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/breadslice/mimana name = "mimana bread slice" @@ -297,6 +315,7 @@ ) tastes = list("bread" = 10, "silence" = 10) foodtypes = GRAIN | FRUIT + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/bread/empty name = "bread" @@ -334,6 +353,7 @@ tastes = list("bread" = 1) foodtypes = GRAIN venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_2 /// whether this is in fake swordplay mode or not var/fake_swordplay = FALSE @@ -435,6 +455,7 @@ tastes = list("bread" = 1, "garlic" = 1, "butter" = 1) foodtypes = GRAIN venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/butterbiscuit name = "butter biscuit" @@ -449,6 +470,7 @@ foodtypes = GRAIN | BREAKFAST w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/butterdog name = "butterdog" @@ -463,6 +485,7 @@ tastes = list("butter" = 1, "exotic butter" = 1) foodtypes = GRAIN | DAIRY w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/butterdog/Initialize(mapload) . = ..() @@ -480,6 +503,7 @@ tastes = list("raw egg" = 2, "soaked bread" = 1) foodtypes = GRAIN | RAW | BREAKFAST w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/raw_frenchtoast/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/frenchtoast, rand(20 SECONDS, 30 SECONDS), TRUE) @@ -497,6 +521,7 @@ foodtypes = GRAIN | BREAKFAST w_class = WEIGHT_CLASS_SMALL burns_on_grill = TRUE + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/raw_breadstick name = "raw breadstick" @@ -510,6 +535,7 @@ tastes = list("raw dough" = 1) foodtypes = GRAIN | DAIRY w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/raw_breadstick/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/breadstick, rand(15 SECONDS, 20 SECONDS), TRUE, TRUE) @@ -527,6 +553,7 @@ foodtypes = GRAIN | DAIRY w_class = WEIGHT_CLASS_SMALL burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/raw_croissant name = "raw croissant" @@ -537,6 +564,7 @@ tastes = list("raw dough" = 1) foodtypes = GRAIN | DAIRY w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/raw_croissant/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/croissant, rand(15 SECONDS, 20 SECONDS), TRUE, TRUE) @@ -551,6 +579,7 @@ foodtypes = GRAIN | DAIRY | BREAKFAST w_class = WEIGHT_CLASS_SMALL burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_2 // Enhanced weaponised bread /obj/item/food/croissant/throwing diff --git a/code/game/objects/items/food/burgers.dm b/code/game/objects/items/food/burgers.dm index 3878980e78a..311d87b3192 100644 --- a/code/game/objects/items/food/burgers.dm +++ b/code/game/objects/items/food/burgers.dm @@ -12,6 +12,7 @@ foodtypes = GRAIN | MEAT //lettuce doesn't make burger a vegetable. eat_time = 15 //Quick snack w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/plain name = "plain burger" @@ -24,6 +25,7 @@ foodtypes = GRAIN | MEAT custom_price = PAYCHECK_CREW * 0.8 venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/plain/Initialize(mapload) . = ..() @@ -48,6 +50,7 @@ tastes = list("bun" = 2, "long pig" = 4) foodtypes = MEAT | GRAIN | GORE venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/human/CheckParts(list/parts_list) ..() @@ -69,6 +72,7 @@ tastes = list("bun" = 4, "corgi meat" = 2) foodtypes = GRAIN | MEAT | GORE venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/appendix name = "appendix burger" @@ -82,6 +86,7 @@ tastes = list("bun" = 4, "grass" = 2) foodtypes = GRAIN | MEAT | GORE venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/fish name = "fillet -o- carp sandwich" @@ -95,6 +100,7 @@ tastes = list("bun" = 4, "fish" = 4) foodtypes = GRAIN | SEAFOOD venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/tofu name = "tofu burger" @@ -108,6 +114,7 @@ tastes = list("bun" = 4, "tofu" = 4) foodtypes = GRAIN | VEGETABLES venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/roburger name = "roburger" @@ -143,6 +150,7 @@ tastes = list("bun" = 4, "acid" = 4) foodtypes = GRAIN | MEAT venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/bearger name = "bearger" @@ -156,6 +164,7 @@ tastes = list("bun" = 2, "meat" = 2, "salmon" = 2) foodtypes = GRAIN | MEAT venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/clown name = "clown burger" @@ -169,6 +178,7 @@ tastes = list("bun" = 2, "a bad joke" = 4) foodtypes = GRAIN | FRUIT venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/mime name = "mime burger" @@ -182,6 +192,7 @@ ) foodtypes = GRAIN venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/brain name = "brainburger" @@ -196,6 +207,7 @@ tastes = list("bun" = 4, "brains" = 2) foodtypes = GRAIN | MEAT | GORE venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/ghost name = "ghost burger" @@ -213,6 +225,7 @@ verb_say = "moans" verb_yell = "wails" venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/ghost/Initialize(mapload) . = ..() @@ -262,6 +275,7 @@ ) tastes = list("bun" = 2, "red" = 2) foodtypes = GRAIN | MEAT + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/orange name = "orange burger" @@ -276,6 +290,7 @@ ) tastes = list("bun" = 2, "orange" = 2) foodtypes = GRAIN | MEAT + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/yellow name = "yellow burger" @@ -290,6 +305,7 @@ ) tastes = list("bun" = 2, "yellow" = 2) foodtypes = GRAIN | MEAT + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/green name = "green burger" @@ -304,6 +320,7 @@ ) tastes = list("bun" = 2, "green" = 2) foodtypes = GRAIN | MEAT + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/blue name = "blue burger" @@ -318,6 +335,7 @@ ) tastes = list("bun" = 2, "blue" = 2) foodtypes = GRAIN | MEAT + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/purple name = "purple burger" @@ -332,6 +350,7 @@ ) tastes = list("bun" = 2, "purple" = 2) foodtypes = GRAIN | MEAT + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/black name = "black burger" @@ -346,6 +365,7 @@ ) tastes = list("bun" = 2, "black" = 2) foodtypes = GRAIN | MEAT + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/white name = "white burger" @@ -360,6 +380,7 @@ ) tastes = list("bun" = 2, "white" = 2) foodtypes = GRAIN | MEAT + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/spell name = "spell burger" @@ -373,6 +394,7 @@ tastes = list("bun" = 4, "magic" = 2) foodtypes = GRAIN | MEAT venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/bigbite name = "big bite burger" @@ -387,6 +409,7 @@ w_class = WEIGHT_CLASS_NORMAL foodtypes = GRAIN | MEAT | DAIRY venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/jelly name = "jelly burger" @@ -395,6 +418,7 @@ tastes = list("bun" = 4, "jelly" = 2) foodtypes = GRAIN | MEAT venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/jelly/slime food_reagents = list( @@ -427,6 +451,7 @@ tastes = list("bun" = 4, "type two diabetes" = 10) foodtypes = GRAIN | MEAT | DAIRY venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/burger/superbite/suicide_act(mob/living/user) user.visible_message(span_suicide("[user] starts to eat [src] in one bite, it looks like [user.p_theyre()] trying to commit suicide!")) @@ -448,6 +473,7 @@ tastes = list("extreme heat" = 4, "bun" = 2) foodtypes = GRAIN | MEAT venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/rat name = "rat burger" @@ -461,6 +487,7 @@ tastes = list("dead rat" = 4, "bun" = 2) foodtypes = GRAIN | MEAT | GORE venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/baseball name = "home run baseball burger" @@ -475,6 +502,7 @@ foodtypes = GRAIN | GROSS custom_price = PAYCHECK_CREW * 0.8 venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/baconburger name = "bacon burger" @@ -489,6 +517,7 @@ foodtypes = GRAIN | MEAT custom_premium_price = PAYCHECK_CREW * 1.6 venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/empoweredburger name = "empowered burger" @@ -503,6 +532,7 @@ tastes = list("bun" = 2, "pure electricity" = 4) foodtypes = GRAIN | TOXIC venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/burger/catburger name = "catburger" @@ -515,6 +545,7 @@ ) tastes = list("bun" = 4, "meat" = 2, "cat" = 2) foodtypes = GRAIN | MEAT | GORE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/crab name = "crab burger" @@ -528,6 +559,7 @@ tastes = list("bun" = 2, "crab meat" = 4) foodtypes = GRAIN | SEAFOOD venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/soylent name = "soylent burger" @@ -541,6 +573,7 @@ tastes = list("bun" = 2, "assistant" = 4) foodtypes = GRAIN | MEAT | DAIRY venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/burger/rib name = "mcrib" @@ -555,6 +588,7 @@ tastes = list("bun" = 2, "pork patty" = 4) foodtypes = GRAIN | MEAT venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/mcguffin name = "mcguffin" @@ -569,6 +603,7 @@ tastes = list("muffin" = 2, "bacon" = 3) foodtypes = GRAIN | MEAT | BREAKFAST venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/chicken name = "chicken sandwich" //Apparently the proud people of Americlapstan object to this thing being called a burger. Apparently McDonald's just calls it a burger in Europe as to not scare and confuse us. @@ -579,11 +614,12 @@ /datum/reagent/consumable/mayonnaise = 3, /datum/reagent/consumable/nutriment/protein = 7, /datum/reagent/consumable/nutriment/vitamin = 1, - /datum/reagent/consumable/cooking_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil = 2, ) tastes = list("bun" = 2, "chicken" = 4, "God's covenant" = 1) foodtypes = GRAIN | MEAT | FRIED venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/cheese name = "cheese burger" @@ -597,6 +633,7 @@ tastes = list("bun" = 2, "beef patty" = 4, "cheese" = 3) foodtypes = GRAIN | MEAT | DAIRY venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/cheese/Initialize(mapload) . = ..() @@ -616,6 +653,7 @@ ) tastes = list("bun" = 2, "beef patty" = 4, "cheese" = 2, "beef soaked in chili" = 3, "a smoking flare" = 2) foodtypes = GRAIN | MEAT | DAIRY + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/burger/crazy/Initialize(mapload) . = ..() diff --git a/code/game/objects/items/food/cake.dm b/code/game/objects/items/food/cake.dm index 76ab73b970c..1a93ab96df2 100644 --- a/code/game/objects/items/food/cake.dm +++ b/code/game/objects/items/food/cake.dm @@ -8,6 +8,7 @@ ) tastes = list("cake" = 1) foodtypes = GRAIN | DAIRY + crafting_complexity = FOOD_COMPLEXITY_2 /// type is spawned 5 at a time and replaces this cake when processed by cutting tool var/obj/item/food/cakeslice/slice_type /// changes yield of sliced cake, default for cake is 5 @@ -30,6 +31,7 @@ tastes = list("cake" = 1) foodtypes = GRAIN | DAIRY w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cake/plain name = "plain cake" @@ -59,6 +61,7 @@ foodtypes = GRAIN | DAIRY | VEGETABLES | SUGAR venue_value = FOOD_PRICE_CHEAP slice_type = /obj/item/food/cakeslice/carrot + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/carrot name = "carrot cake slice" @@ -66,6 +69,7 @@ icon_state = "carrotcake_slice" tastes = list("cake" = 5, "sweetness" = 2, "carrot" = 1) foodtypes = GRAIN | DAIRY | VEGETABLES | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/brain name = "brain cake" @@ -80,6 +84,7 @@ tastes = list("cake" = 5, "sweetness" = 2, "brains" = 1) foodtypes = GRAIN | DAIRY | MEAT | GORE | SUGAR slice_type = /obj/item/food/cakeslice/brain + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/brain name = "brain cake slice" @@ -93,6 +98,7 @@ ) tastes = list("cake" = 5, "sweetness" = 2, "brains" = 1) foodtypes = GRAIN | DAIRY | MEAT | GORE | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/cheese name = "cheese cake" @@ -107,6 +113,7 @@ foodtypes = GRAIN | DAIRY venue_value = FOOD_PRICE_CHEAP slice_type = /obj/item/food/cakeslice/cheese + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/cheese name = "cheese cake slice" @@ -119,6 +126,7 @@ ) tastes = list("cake" = 4, "cream cheese" = 3) foodtypes = GRAIN | DAIRY + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/orange name = "orange cake" @@ -128,6 +136,7 @@ foodtypes = GRAIN | DAIRY | FRUIT | SUGAR | ORANGES venue_value = FOOD_PRICE_CHEAP slice_type = /obj/item/food/cakeslice/orange + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/orange name = "orange cake slice" @@ -135,6 +144,7 @@ icon_state = "orangecake_slice" tastes = list("cake" = 5, "sweetness" = 2, "oranges" = 2) foodtypes = GRAIN | DAIRY | FRUIT | SUGAR | ORANGES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/lime name = "lime cake" @@ -148,6 +158,7 @@ foodtypes = GRAIN | DAIRY | FRUIT | SUGAR venue_value = FOOD_PRICE_CHEAP slice_type = /obj/item/food/cakeslice/lime + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/lime name = "lime cake slice" @@ -155,6 +166,7 @@ icon_state = "limecake_slice" tastes = list("cake" = 5, "sweetness" = 2, "unbearable sourness" = 2) foodtypes = GRAIN | DAIRY | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/lemon name = "lemon cake" @@ -168,6 +180,7 @@ foodtypes = GRAIN | DAIRY | FRUIT | SUGAR venue_value = FOOD_PRICE_CHEAP slice_type = /obj/item/food/cakeslice/lemon + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/lemon name = "lemon cake slice" @@ -175,6 +188,7 @@ icon_state = "lemoncake_slice" tastes = list("cake" = 5, "sweetness" = 2, "sourness" = 2) foodtypes = GRAIN | DAIRY | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/chocolate name = "chocolate cake" @@ -188,6 +202,7 @@ foodtypes = GRAIN | DAIRY | JUNKFOOD | SUGAR venue_value = FOOD_PRICE_CHEAP slice_type = /obj/item/food/cakeslice/chocolate + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/chocolate name = "chocolate cake slice" @@ -195,6 +210,7 @@ icon_state = "chocolatecake_slice" tastes = list("cake" = 5, "sweetness" = 1, "chocolate" = 4) foodtypes = GRAIN | DAIRY | JUNKFOOD | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/birthday name = "birthday cake" @@ -208,6 +224,7 @@ tastes = list("cake" = 5, "sweetness" = 1) foodtypes = GRAIN | DAIRY | JUNKFOOD | SUGAR slice_type = /obj/item/food/cakeslice/birthday + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/birthday/make_microwaveable() // super sekrit club AddElement(/datum/element/microwavable, /obj/item/clothing/head/utility/hardhat/cakehat) @@ -223,6 +240,7 @@ ) tastes = list("cake" = 5, "sweetness" = 1) foodtypes = GRAIN | DAIRY | JUNKFOOD | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/birthday/energy name = "energy cake" @@ -239,6 +257,7 @@ ) tastes = list("cake" = 3, "a Vlad's Salad" = 1) slice_type = /obj/item/food/cakeslice/birthday/energy + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/cake/birthday/energy/make_microwaveable() //super sekriter club AddElement(/datum/element/microwavable, /obj/item/clothing/head/utility/hardhat/cakehat/energycake) @@ -268,6 +287,7 @@ /datum/reagent/consumable/liquidelectricity/enriched = 2, ) tastes = list("cake" = 3, "a Vlad's Salad" = 1) + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/cakeslice/birthday/energy/proc/energy_bite(mob/living/user) to_chat(user, "As you eat the cake slice, you accidentally hurt yourself on the embedded energy dagger!") @@ -292,6 +312,7 @@ foodtypes = GRAIN | DAIRY | FRUIT | SUGAR venue_value = FOOD_PRICE_CHEAP slice_type = /obj/item/food/cakeslice/apple + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/apple name = "apple cake slice" @@ -299,6 +320,7 @@ icon_state = "applecakeslice" tastes = list("cake" = 5, "sweetness" = 1, "apple" = 1) foodtypes = GRAIN | DAIRY | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/slimecake name = "Slime cake" @@ -307,6 +329,7 @@ tastes = list("cake" = 5, "sweetness" = 1, "slime" = 1) foodtypes = GRAIN | DAIRY | SUGAR slice_type = /obj/item/food/cakeslice/slimecake + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/slimecake name = "slime cake slice" @@ -314,6 +337,7 @@ icon_state = "slimecake_slice" tastes = list("cake" = 5, "sweetness" = 1, "slime" = 1) foodtypes = GRAIN | DAIRY | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/pumpkinspice name = "pumpkin spice cake" @@ -323,6 +347,7 @@ foodtypes = GRAIN | DAIRY | VEGETABLES | SUGAR venue_value = FOOD_PRICE_CHEAP slice_type = /obj/item/food/cakeslice/pumpkinspice + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/pumpkinspice name = "pumpkin spice cake slice" @@ -330,23 +355,26 @@ icon_state = "pumpkinspicecakeslice" tastes = list("cake" = 5, "sweetness" = 1, "pumpkin" = 1) foodtypes = GRAIN | DAIRY | VEGETABLES | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 -/obj/item/food/cake/bsvc // blackberry strawberries vanilla cake +/obj/item/food/cake/berry_vanilla_cake // blackberry strawberries vanilla cake name = "blackberry and strawberry vanilla cake" desc = "A plain cake, filled with assortment of blackberries and strawberries!" icon_state = "blackbarry_strawberries_cake_vanilla_cake" tastes = list("blackberry" = 2, "strawberries" = 2, "vanilla" = 2, "sweetness" = 2, "cake" = 3) foodtypes = GRAIN | DAIRY | FRUIT | SUGAR - slice_type = /obj/item/food/cakeslice/bsvc + slice_type = /obj/item/food/cakeslice/berry_vanilla_cake + crafting_complexity = FOOD_COMPLEXITY_3 -/obj/item/food/cakeslice/bsvc +/obj/item/food/cakeslice/berry_vanilla_cake name = "blackberry and strawberry vanilla cake slice" desc = "Just a slice of cake filled with assortment of blackberries and strawberries!" icon_state = "blackbarry_strawberries_cake_vanilla_slice" tastes = list("blackberry" = 2, "strawberries" = 2, "vanilla" = 2, "sweetness" = 2, "cake" = 3) foodtypes = GRAIN | DAIRY | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 -/obj/item/food/cake/bscc // blackbarry strawberries chocolate cake <- this is a relic from before resprite +/obj/item/food/cake/berry_chocolate_cake // blackbarry strawberries chocolate cake <- this is a relic from before resprite name = "strawberry chocolate cake" desc = "A chocolate cake with five strawberries on top. For some reason, this configuration of cake is particularly aesthetically pleasing to AIs in SELF." icon_state = "liars_cake" @@ -357,15 +385,17 @@ ) tastes = list("blackberry" = 2, "strawberries" = 2, "chocolate" = 2, "sweetness" = 2, "cake" = 3) foodtypes = GRAIN | DAIRY | FRUIT | SUGAR - slice_type = /obj/item/food/cakeslice/bscc + slice_type = /obj/item/food/cakeslice/berry_chocolate_cake + crafting_complexity = FOOD_COMPLEXITY_4 -/obj/item/food/cakeslice/bscc +/obj/item/food/cakeslice/berry_chocolate_cake name = "strawberry chocolate cake slice" desc = "Just a slice of cake with five strawberries on top. \ For some reason, this configuration of cake is particularly aesthetically pleasing to AIs in SELF." icon_state = "liars_slice" tastes = list("strawberries" = 2, "chocolate" = 2, "sweetness" = 2, "cake" = 3) foodtypes = GRAIN | DAIRY | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/cake/holy_cake name = "angel food cake" @@ -400,6 +430,7 @@ venue_value = FOOD_PRICE_CHEAP slice_type = /obj/item/food/cakeslice/pound_cake_slice yield = 7 + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cakeslice/pound_cake_slice name = "pound cake slice" @@ -411,6 +442,7 @@ ) tastes = list("cake" = 5, "sweetness" = 5, "batter" = 1) foodtypes = GRAIN | DAIRY | SUGAR | JUNKFOOD + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cake/hardware_cake name = "hardware cake" @@ -425,6 +457,7 @@ tastes = list("acid" = 3, "metal" = 4, "glass" = 5) foodtypes = GRAIN | GROSS slice_type = /obj/item/food/cakeslice/hardware_cake_slice + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/hardware_cake_slice name = "hardware cake slice" @@ -438,6 +471,7 @@ ) tastes = list("acid" = 3, "metal" = 4, "glass" = 5) foodtypes = GRAIN | GROSS + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/vanilla_cake name = "vanilla cake" @@ -452,6 +486,7 @@ tastes = list("cake" = 1, "sugar" = 1, "vanilla" = 10) foodtypes = GRAIN | SUGAR | DAIRY slice_type = /obj/item/food/cakeslice/vanilla_slice + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/vanilla_slice name = "vanilla cake slice" @@ -465,6 +500,7 @@ ) tastes = list("cake" = 1, "sugar" = 1, "vanilla" = 10) foodtypes = GRAIN | SUGAR | DAIRY + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/clown_cake name = "clown cake" @@ -478,6 +514,7 @@ tastes = list("cake" = 1, "sugar" = 1, "joy" = 10) foodtypes = GRAIN | SUGAR | DAIRY slice_type = /obj/item/food/cakeslice/clown_slice + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/cakeslice/clown_slice name = "clown cake slice" @@ -490,6 +527,7 @@ ) tastes = list("cake" = 1, "sugar" = 1, "joy" = 10) foodtypes = GRAIN | SUGAR | DAIRY + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/cake/trumpet name = "spaceman's cake" @@ -505,6 +543,7 @@ tastes = list("cake" = 4, "violets" = 2, "jam" = 2) foodtypes = GRAIN | DAIRY | FRUIT | SUGAR slice_type = /obj/item/food/cakeslice/trumpet + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/cakeslice/trumpet name = "spaceman's cake slice" @@ -519,6 +558,7 @@ ) tastes = list("cake" = 4, "violets" = 2, "jam" = 2) foodtypes = GRAIN | DAIRY | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/cake/brioche name = "brioche cake" @@ -528,6 +568,7 @@ foodtypes = GRAIN | DAIRY | SUGAR slice_type = /obj/item/food/cakeslice/brioche yield = 6 + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cakeslice/brioche name = "brioche cake slice" @@ -535,6 +576,7 @@ icon_state = "briochecake_slice" tastes = list("cake" = 4, "butter" = 2, "cream" = 1) foodtypes = GRAIN | DAIRY | SUGAR + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cake/pavlova name = "pavlova" @@ -543,6 +585,7 @@ tastes = list("meringue" = 5, "creaminess" = 1, "berries" = 1) foodtypes = DAIRY | FRUIT | SUGAR slice_type = /obj/item/food/cakeslice/pavlova + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/pavlova/nuts name = "pavlova with nuts" @@ -556,6 +599,7 @@ icon_state = "pavlova_slice" tastes = list("meringue" = 5, "creaminess" = 1, "berries" = 1) foodtypes = DAIRY | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/pavlova/nuts foodtypes = NUTS | FRUIT | SUGAR @@ -574,6 +618,7 @@ throwforce = 7 foodtypes = GRAIN | DAIRY | FRUIT | SUGAR slice_type = /obj/item/food/cakeslice/fruit + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/cakeslice/fruit name = "english fruitcake slice" @@ -584,6 +629,7 @@ force = 2 throwforce = 2 foodtypes = GRAIN | DAIRY | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/cakeslice/fruit/Initialize(mapload) . = ..() @@ -602,6 +648,7 @@ foodtypes = GRAIN | DAIRY | FRUIT | SUGAR venue_value = FOOD_PRICE_CHEAP slice_type = /obj/item/food/cakeslice/plum + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/plum name = "plum cake slice" @@ -609,6 +656,7 @@ icon_state = "plumcakeslice" tastes = list("cake" = 5, "sweetness" = 1, "plum" = 2) foodtypes = GRAIN | DAIRY | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/wedding name = "wedding cake" @@ -622,6 +670,7 @@ tastes = list("cake" = 3, "frosting" = 1) foodtypes = GRAIN | DAIRY | SUGAR slice_type = /obj/item/food/cakeslice/wedding + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/wedding name = "wedding cake slice" diff --git a/code/game/objects/items/food/cheese.dm b/code/game/objects/items/food/cheese.dm index ed980bd2a57..1081ecb2ef1 100644 --- a/code/game/objects/items/food/cheese.dm +++ b/code/game/objects/items/food/cheese.dm @@ -7,8 +7,9 @@ name = "the concept of cheese" desc = "This probably shouldn't exist." tastes = list("cheese" = 1) - food_reagents = list(/datum/reagent/consumable/nutriment/protein = 3) + food_reagents = list(/datum/reagent/consumable/nutriment/fat = 3) foodtypes = DAIRY + crafting_complexity = FOOD_COMPLEXITY_1 /// used to determine how much health rats/regal rats recover when they eat it. var/rat_heal = 0 @@ -27,24 +28,26 @@ desc = "A wedge of delicious Cheddar. The cheese wheel it was cut from can't have gone far." icon_state = "cheesewedge" food_reagents = list( - /datum/reagent/consumable/nutriment = 2, + /datum/reagent/consumable/nutriment/fat = 2, /datum/reagent/consumable/nutriment/protein = 1, /datum/reagent/consumable/nutriment/vitamin = 1, ) w_class = WEIGHT_CLASS_SMALL rat_heal = 10 + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/cheese/wheel name = "cheese wheel" desc = "A big wheel of delcious Cheddar." icon_state = "cheesewheel" food_reagents = list( - /datum/reagent/consumable/nutriment = 10, + /datum/reagent/consumable/nutriment/fat = 10, /datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/consumable/nutriment/vitamin = 5, ) //Hard cheeses contain about 25% protein w_class = WEIGHT_CLASS_NORMAL rat_heal = 35 + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/cheese/wheel/Initialize(mapload) . = ..() @@ -70,7 +73,7 @@ desc = "Ascend the throne. Consume the wheel. Feel the POWER." icon_state = "royalcheese" food_reagents = list( - /datum/reagent/consumable/nutriment = 15, + /datum/reagent/consumable/nutriment/fat = 15, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/gold = 20, /datum/reagent/toxin/mutagen = 5, @@ -78,6 +81,7 @@ w_class = WEIGHT_CLASS_BULKY tastes = list("cheese" = 4, "royalty" = 1) rat_heal = 70 + crafting_complexity = FOOD_COMPLEXITY_3 //Curd cheese, a general term which I will now proceed to stretch as thin as the toppings on a supermarket sandwich: //I'll use it as a substitute for ricotta, cottage cheese and quark, as well as any other non-aged, soft grainy cheese @@ -93,6 +97,7 @@ foodtypes = DAIRY w_class = WEIGHT_CLASS_SMALL rat_heal = 35 + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cheese/curd_cheese/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/cheese/cheese_curds, rand(15 SECONDS, 20 SECONDS), TRUE, TRUE) @@ -107,6 +112,7 @@ foodtypes = DAIRY w_class = WEIGHT_CLASS_SMALL rat_heal = 35 + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cheese/cheese_curds/Initialize(mapload) . = ..() @@ -120,6 +126,7 @@ foodtypes = DAIRY | VEGETABLES w_class = WEIGHT_CLASS_SMALL rat_heal = 35 + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cheese/firm_cheese/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/cheese/firm_cheese_slice, 3, 3 SECONDS, screentip_verb = "Slice") @@ -133,6 +140,7 @@ w_class = WEIGHT_CLASS_SMALL burns_on_grill = TRUE rat_heal = 10 + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cheese/firm_cheese_slice/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/grilled_cheese, rand(25 SECONDS, 35 SECONDS), TRUE, TRUE) @@ -145,3 +153,4 @@ foodtypes = DAIRY w_class = WEIGHT_CLASS_SMALL rat_heal = 10 + crafting_complexity = FOOD_COMPLEXITY_2 diff --git a/code/game/objects/items/food/donkpocket.dm b/code/game/objects/items/food/donkpocket.dm index 24622fccf99..f2495e0ee52 100644 --- a/code/game/objects/items/food/donkpocket.dm +++ b/code/game/objects/items/food/donkpocket.dm @@ -12,6 +12,7 @@ foodtypes = GRAIN food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /// What type of donk pocket we're warmed into via baking or microwaving. var/warm_type = /obj/item/food/donkpocket/warm @@ -53,6 +54,7 @@ ) tastes = list("meat" = 2, "dough" = 2) foodtypes = GRAIN | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/donkpocket/spicy name = "\improper Spicy-pocket" @@ -142,8 +144,8 @@ ) tastes = list("banana" = 2, "dough" = 2, "children's antibiotics" = 1) foodtypes = GRAIN - warm_type = /obj/item/food/donkpocket/warm/honk + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/donkpocket/warm/honk name = "warm Honk-pocket" @@ -157,6 +159,7 @@ ) tastes = list("banana" = 2, "dough" = 2, "children's antibiotics" = 1) foodtypes = GRAIN + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/donkpocket/berry name = "\improper Berry-pocket" @@ -168,7 +171,6 @@ ) tastes = list("dough" = 2, "jam" = 2) foodtypes = GRAIN - warm_type = /obj/item/food/donkpocket/warm/berry /obj/item/food/donkpocket/warm/berry diff --git a/code/game/objects/items/food/donuts.dm b/code/game/objects/items/food/donuts.dm index e9fc37a6d36..a9491b87edb 100644 --- a/code/game/objects/items/food/donuts.dm +++ b/code/game/objects/items/food/donuts.dm @@ -8,13 +8,15 @@ bite_consumption = 5 food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3) tastes = list("donut" = 1) - foodtypes = JUNKFOOD | GRAIN | FRIED | SUGAR | BREAKFAST + foodtypes = JUNKFOOD | GRAIN | SUGAR | BREAKFAST food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 var/decorated_icon = "donut_homer" var/is_decorated = FALSE var/extra_reagent = null var/decorated_adjective = "sprinkled" + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/donut/Initialize(mapload) . = ..() @@ -58,6 +60,7 @@ bite_consumption = 10 tastes = list("donut" = 3, "chaos" = 1) is_decorated = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/donut/chaos/Initialize(mapload) . = ..() @@ -87,6 +90,7 @@ tastes = list("meat" = 1) foodtypes = JUNKFOOD | MEAT | GORE | FRIED | BREAKFAST is_decorated = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/donut/berry name = "pink donut" @@ -111,6 +115,7 @@ ) tastes = list("donut" = 3, "violets" = 1) is_decorated = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/donut/apple name = "apple donut" @@ -150,6 +155,7 @@ ) //the coco reagent is just bitter. tastes = list("donut" = 4, "bitterness" = 1) decorated_icon = "donut_choc_sprinkles" + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/donut/blumpkin name = "blumpkin donut" @@ -163,6 +169,7 @@ ) tastes = list("donut" = 2, "blumpkin" = 1) is_decorated = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/donut/bungo name = "bungo donut" @@ -201,6 +208,7 @@ ) tastes = list("donut" = 3, "fizzy tutti frutti" = 1,) is_decorated = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 //////////////////////JELLY DONUTS///////////////////////// @@ -249,6 +257,7 @@ ) tastes = list("jelly" = 1, "donut" = 3, "violets" = 1) is_decorated = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/donut/jelly/apple name = "apple jelly donut" @@ -291,6 +300,7 @@ ) tastes = list("jelly" = 1, "donut" = 4, "bitterness" = 1) decorated_icon = "jelly_choc_sprinkles" + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/donut/jelly/blumpkin name = "blumpkin jelly donut" @@ -305,6 +315,7 @@ ) tastes = list("jelly" = 1, "donut" = 2, "blumpkin" = 1) is_decorated = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/donut/jelly/bungo name = "bungo jelly donut" @@ -345,6 +356,7 @@ ) tastes = list("jelly" = 3, "donut" = 1, "fizzy tutti frutti" = 1) is_decorated = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 //////////////////////////SLIME DONUTS///////////////////////// @@ -381,6 +393,7 @@ ) tastes = list("jelly" = 1, "donut" = 3, "violets" = 1) is_decorated = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/donut/jelly/slimejelly/apple name = "apple jelly donut" @@ -423,6 +436,7 @@ ) tastes = list("jelly" = 1, "donut" = 4, "bitterness" = 1) decorated_icon = "jelly_choc_sprinkles" + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/donut/jelly/slimejelly/blumpkin name = "blumpkin jelly donut" @@ -437,6 +451,7 @@ ) tastes = list("jelly" = 1, "donut" = 2, "blumpkin" = 1) is_decorated = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/donut/jelly/slimejelly/bungo name = "bungo jelly donut" @@ -477,5 +492,6 @@ ) tastes = list("jelly" = 3, "donut" = 1, "fizzy tutti frutti" = 1) is_decorated = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 #undef DONUT_SPRINKLE_CHANCE diff --git a/code/game/objects/items/food/dough.dm b/code/game/objects/items/food/dough.dm index 28363b3f9f9..2bd80f06b7e 100644 --- a/code/game/objects/items/food/dough.dm +++ b/code/game/objects/items/food/dough.dm @@ -8,6 +8,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 6) tastes = list("dough" = 1) foodtypes = GRAIN + crafting_complexity = FOOD_COMPLEXITY_0 /obj/item/food/dough/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/bread/plain, rand(30 SECONDS, 45 SECONDS), TRUE, TRUE) @@ -24,6 +25,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 6) tastes = list("dough" = 1) foodtypes = GRAIN + crafting_complexity = FOOD_COMPLEXITY_0 /obj/item/food/flatdough/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/pizzabread, rand(30 SECONDS, 45 SECONDS), TRUE, TRUE) @@ -41,6 +43,7 @@ tastes = list("bread" = 1) foodtypes = GRAIN burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/pizzabread/Initialize(mapload) . = ..() @@ -55,6 +58,7 @@ w_class = WEIGHT_CLASS_SMALL tastes = list("dough" = 1) foodtypes = GRAIN + crafting_complexity = FOOD_COMPLEXITY_0 /obj/item/food/doughslice/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/bun, rand(20 SECONDS, 25 SECONDS), TRUE, TRUE) @@ -72,6 +76,7 @@ tastes = list("bun" = 1) // the bun tastes of bun. foodtypes = GRAIN burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/bun/Initialize(mapload) . = ..() @@ -85,6 +90,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 9) tastes = list("batter" = 1) foodtypes = GRAIN | DAIRY + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/cakebatter/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/cake/plain, rand(70 SECONDS, 90 SECONDS), TRUE, TRUE) @@ -100,6 +106,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 9) tastes = list("dough" = 1) foodtypes = GRAIN | DAIRY + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/piedough/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/pie/plain, rand(30 SECONDS, 45 SECONDS), TRUE, TRUE) @@ -116,6 +123,7 @@ w_class = WEIGHT_CLASS_SMALL tastes = list("raw pastry" = 1) foodtypes = GRAIN | DAIRY + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/rawpastrybase/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/pastrybase, rand(20 SECONDS, 25 SECONDS), TRUE, TRUE) @@ -130,3 +138,4 @@ tastes = list("pastry" = 1) foodtypes = GRAIN | DAIRY burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_2 diff --git a/code/game/objects/items/food/egg.dm b/code/game/objects/items/food/egg.dm index fe4cb1fd8dd..d71fe0670d1 100644 --- a/code/game/objects/items/food/egg.dm +++ b/code/game/objects/items/food/egg.dm @@ -11,6 +11,7 @@ foodtypes = JUNKFOOD | SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_TINY + crafting_complexity = FOOD_COMPLEXITY_2 /// Counter for number of chicks hatched by throwing eggs, minecraft style. Chicks will not emerge from thrown eggs if this value exceeds the MAX_CHICKENS define. GLOBAL_VAR_INIT(chicks_from_eggs, 0) @@ -35,6 +36,11 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) /obj/item/food/egg/make_microwaveable() AddElement(/datum/element/microwavable, /obj/item/food/boiledegg) +/obj/item/food/egg/organic + name = "organic egg" + desc = "A 100% natural egg from the best hens." + starting_reagent_purity = 1 + /obj/item/food/egg/rotten food_reagents = list(/datum/reagent/consumable/eggrot = 10, /datum/reagent/consumable/mold = 10) foodtypes = GROSS @@ -199,6 +205,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) foodtypes = MEAT | FRIED | BREAKFAST w_class = WEIGHT_CLASS_SMALL burns_on_grill = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/rawegg name = "raw egg" @@ -231,6 +238,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) w_class = WEIGHT_CLASS_SMALL ant_attracting = FALSE decomp_type = /obj/item/food/boiledegg/rotten + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/eggsausage name = "egg with sausage" @@ -241,6 +249,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) foodtypes = MEAT | FRIED | BREAKFAST tastes = list("egg" = 4, "meat" = 4) venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/boiledegg/rotten food_reagents = list(/datum/reagent/consumable/eggrot = 10) @@ -262,6 +271,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) tastes = list("egg" = 1, "cheese" = 1) foodtypes = MEAT | BREAKFAST | DAIRY venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/omelette/attackby(obj/item/item, mob/user, params) if(istype(item, /obj/item/kitchen/fork)) @@ -295,6 +305,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) tastes = list("egg" = 1, "bacon" = 1, "bun" = 1) foodtypes = MEAT | BREAKFAST | GRAIN venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/eggwrap name = "egg wrap" @@ -309,6 +320,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) tastes = list("egg" = 1) foodtypes = MEAT | VEGETABLES w_class = WEIGHT_CLASS_TINY + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/chawanmushi name = "chawanmushi" @@ -322,3 +334,4 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) ) tastes = list("custard" = 1) foodtypes = MEAT | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_3 diff --git a/code/game/objects/items/food/frozen.dm b/code/game/objects/items/food/frozen.dm index 3c0c27a2695..8951165aa80 100644 --- a/code/game/objects/items/food/frozen.dm +++ b/code/game/objects/items/food/frozen.dm @@ -11,6 +11,7 @@ tastes = list("ice cream" = 1) foodtypes = GRAIN | DAIRY | SUGAR food_flags = FOOD_FINGER_FOOD + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/strawberryicecreamsandwich name = "strawberry ice cream sandwich" @@ -25,6 +26,7 @@ tastes = list("ice cream" = 2, "berry" = 2) foodtypes = FRUIT | DAIRY | SUGAR food_flags = FOOD_FINGER_FOOD + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/spacefreezy @@ -40,6 +42,7 @@ ) tastes = list("blue cherries" = 2, "ice cream" = 2) foodtypes = FRUIT | DAIRY | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/spacefreezy/make_edible() . = ..() @@ -58,6 +61,7 @@ ) tastes = list("ice cream" = 1, "banana" = 1) foodtypes = FRUIT | DAIRY | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/sundae/make_edible() . = ..() @@ -76,6 +80,7 @@ ) tastes = list("ice cream" = 1, "banana" = 1, "a bad joke" = 1) foodtypes = FRUIT | DAIRY | SUGAR + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/honkdae/make_edible() . = ..() @@ -98,6 +103,7 @@ tastes = list("ice" = 1, "water" = 1) foodtypes = SUGAR //We use SUGAR as a base line to act in as junkfood, other wise we use fruit food_flags = FOOD_FINGER_FOOD + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/snowcones/lime name = "lime snowcone" @@ -293,6 +299,7 @@ ) tastes = list("ice" = 1, "water" = 1, "flowers" = 5, "sweetness" = 5, "wax" = 1) foodtypes = SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/snowcones/rainbow name = "rainbow snowcone" @@ -322,6 +329,7 @@ w_class = WEIGHT_CLASS_SMALL foodtypes = DAIRY | SUGAR food_flags = FOOD_FINGER_FOOD + crafting_complexity = FOOD_COMPLEXITY_3 var/overlay_state = "creamsicle_o" //This is the edible part of the popsicle. var/bite_states = 4 //This value value is used for correctly setting the bite_consumption to ensure every bite changes the sprite. Do not set to zero. @@ -368,6 +376,7 @@ /datum/reagent/consumable/sugar = 4, ) foodtypes = FRUIT | DAIRY | SUGAR | ORANGES + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/popsicle/creamsicle_berry name = "berry creamsicle" @@ -380,6 +389,7 @@ ) overlay_state = "creamsicle_m" foodtypes = FRUIT | DAIRY | SUGAR + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/popsicle/jumbo name = "jumbo ice cream" @@ -391,6 +401,7 @@ /datum/reagent/consumable/sugar = 2, ) overlay_state = "jumbo" + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/popsicle/licorice_creamsicle name = "Void Bar™" @@ -404,6 +415,7 @@ ) tastes = list("salty liquorice") overlay_state = "licorice_creamsicle" + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/cornuto name = "cornuto" @@ -421,3 +433,4 @@ tastes = list("chopped hazelnuts", "waffle") foodtypes = DAIRY | SUGAR venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 diff --git a/code/game/objects/items/food/lizard.dm b/code/game/objects/items/food/lizard.dm index 6975991ea24..970df893802 100644 --- a/code/game/objects/items/food/lizard.dm +++ b/code/game/objects/items/food/lizard.dm @@ -15,6 +15,7 @@ tastes = list("meat" = 1, "black pudding" = 1) foodtypes = MEAT w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/raw_tiziran_sausage/Initialize(mapload) . = ..() @@ -32,6 +33,7 @@ tastes = list("meat" = 1, "black pudding" = 1) foodtypes = MEAT w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/raw_headcheese name = "raw headcheese block" @@ -45,6 +47,7 @@ tastes = list("meat" = 1, "salt" = 1) foodtypes = MEAT | GORE w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/raw_headcheese/Initialize(mapload) . = ..() @@ -62,6 +65,7 @@ tastes = list("cheese" = 1, "salt" = 1) foodtypes = MEAT | GORE w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/headcheese/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/headcheese_slice, 5, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") @@ -78,6 +82,7 @@ tastes = list("cheese" = 1, "salt" = 1) foodtypes = MEAT | GORE w_class = WEIGHT_CLASS_TINY + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/shredded_lungs name = "crispy shredded lung stirfry" @@ -93,6 +98,7 @@ foodtypes = MEAT | VEGETABLES | GORE trash_type = /obj/item/reagent_containers/cup/bowl w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/tsatsikh name = "tsatsikh" @@ -103,6 +109,7 @@ tastes = list("assorted minced organs" = 1) foodtypes = MEAT | GORE w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/liver_pate name = "liver pate" @@ -113,6 +120,7 @@ tastes = list("liver" = 1) foodtypes = MEAT w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/moonfish_eggs name = "moonfish eggs" @@ -126,6 +134,7 @@ tastes = list("caviar" = 1) foodtypes = SEAFOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/moonfish_caviar name = "moonfish caviar paste" @@ -139,6 +148,7 @@ tastes = list("caviar" = 1) foodtypes = SEAFOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/lizard_escargot name = "desert snail cocleas" @@ -153,6 +163,7 @@ tastes = list("snails" = 1, "garlic" = 1, "oil" = 1) foodtypes = MEAT | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/fried_blood_sausage name = "fried blood sausage" @@ -163,11 +174,12 @@ /datum/reagent/consumable/nutriment/protein = 6, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/salt = 1, - /datum/reagent/consumable/cooking_oil = 1, + /datum/reagent/consumable/nutriment/fat/oil = 1, ) tastes = list("black pudding" = 1, "batter" = 1, "oil" = 1) foodtypes = MEAT | FRIED w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 //Why does like, every language on the planet besides English call them pommes? Who knows, who cares- the lizards call them it too, because funny. /obj/item/food/lizard_fries @@ -184,6 +196,7 @@ tastes = list("fries" = 2, "bbq sauce" = 1, "barbecued meat" = 1) foodtypes = MEAT | VEGETABLES | FRIED w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/brain_pate name = "eyeball-and-brain pate" @@ -197,6 +210,7 @@ tastes = list("brains" = 2) foodtypes = MEAT | VEGETABLES | GORE w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/crispy_headcheese name = "crispy breaded headcheese" @@ -206,11 +220,12 @@ food_reagents = list( /datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/consumable/nutriment = 3, - /datum/reagent/consumable/cooking_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil = 2, ) tastes = list("cheese" = 1, "oil" = 1) foodtypes = MEAT | VEGETABLES | NUTS | GORE w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/kebab/picoss_skewers name = "picoss skewer" @@ -226,6 +241,7 @@ tastes = list("fish" = 1, "acid" = 1, "onion" = 1, "heat" = 1) foodtypes = SEAFOOD | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/nectar_larvae name = "nectar larvae" @@ -240,6 +256,7 @@ tastes = list("meat" = 1, "sweet" = 1, "heat" = 1) foodtypes = GORE | MEAT | BUGS w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/mushroomy_stirfry name = "mushroomy stirfry" @@ -253,6 +270,7 @@ tastes = list("marvelous mushrooms" = 1, "sublime shrooms" = 1) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 //Fish Dishes /obj/item/food/grilled_moonfish @@ -268,6 +286,7 @@ foodtypes = SEAFOOD burns_on_grill = TRUE w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/moonfish_demiglace name = "moonfish demiglace" @@ -282,6 +301,7 @@ tastes = list("fish" = 2, "potatoes" = 1, "carrots" = 1) foodtypes = SEAFOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/lizard_surf_n_turf name = "\improper Zagosk surf 'n' turf smorgasbord" @@ -296,6 +316,7 @@ tastes = list("surf" = 1, "turf" = 1) foodtypes = MEAT | SEAFOOD | VEGETABLES w_class = WEIGHT_CLASS_BULKY + crafting_complexity = FOOD_COMPLEXITY_5 //Spaghetti Dishes @@ -310,6 +331,7 @@ ) tastes = list("gnocchi" = 1) foodtypes = VEGETABLES | NUTS + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/spaghetti/snail_nizaya name = "desert snail nizaya" @@ -323,6 +345,7 @@ ) tastes = list("snails" = 1, "wine" = 1, "gnocchi" = 1) foodtypes = VEGETABLES | MEAT | NUTS + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/spaghetti/garlic_nizaya name = "garlic-and-oil nizaya" @@ -335,6 +358,7 @@ ) tastes = list("garlic" = 1, "oil" = 1, "gnocchi" = 1) foodtypes = VEGETABLES | NUTS + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/spaghetti/demit_nizaya name = "demit nizaya" @@ -348,6 +372,7 @@ ) tastes = list("peppery sweet" = 1, "veggies" = 1, "gnocchi" = 1) foodtypes = VEGETABLES | SUGAR | NUTS + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/spaghetti/mushroom_nizaya name = "mushroom nizaya" @@ -360,6 +385,7 @@ ) tastes = list("savouriness" = 1, "nuttiness" = 1, "gnocchi" = 1) foodtypes = VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_4 //Dough Dishes @@ -372,6 +398,7 @@ w_class = WEIGHT_CLASS_SMALL tastes = list("potato" = 1, "earthy heat" = 1) foodtypes = VEGETABLES | NUTS + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/rootdough/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/bread/root, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) @@ -387,6 +414,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 6) tastes = list("potato" = 1, "earthy heat" = 1) foodtypes = VEGETABLES | NUTS + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/flatrootdough/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/rootdoughslice, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") @@ -403,6 +431,7 @@ w_class = WEIGHT_CLASS_SMALL tastes = list("potato" = 1, "earthy heat" = 1) foodtypes = VEGETABLES | NUTS + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/rootdoughslice/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/spaghetti/nizaya, 1, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") @@ -419,6 +448,7 @@ tastes = list("bread" = 1, "earthy heat" = 1) foodtypes = VEGETABLES | NUTS burns_on_grill = TRUE + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/rootroll name = "rootroll" @@ -430,6 +460,7 @@ tastes = list("roll" = 1) // the roll tastes of roll. foodtypes = VEGETABLES | NUTS burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_2 //Bread Dishes @@ -481,6 +512,7 @@ tastes = list("bread" = 1, "herb" = 1, "oil" = 1, "garlic" = 1) foodtypes = VEGETABLES | NUTS boxtag = "Tiziran Flatbread" + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/flatbread/italic name = "\improper Italic flatbread" @@ -494,6 +526,7 @@ tastes = list("bread" = 1, "herb" = 1, "oil" = 1, "garlic" = 1, "tomato" = 1, "meat" = 1) foodtypes = VEGETABLES | NUTS | MEAT boxtag = "Italic Flatbread" + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pizza/flatbread/imperial name = "\improper Imperial flatbread" @@ -507,6 +540,7 @@ tastes = list("bread" = 1, "herb" = 1, "oil" = 1, "garlic" = 1, "tomato" = 1, "meat" = 1) foodtypes = VEGETABLES | MEAT | NUTS | GORE boxtag = "Imperial Victory Flatbread" + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pizza/flatbread/rawmeat name = "meatlovers flatbread" @@ -518,6 +552,7 @@ ) tastes = list("bread" = 1, "meat" = 1) foodtypes = MEAT | NUTS | RAW | GORE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/flatbread/stinging name = "\improper Stinging flatbread" @@ -530,6 +565,7 @@ ) tastes = list("bread" = 1, "sweetness" = 1, "stinging" = 1, "slime" = 1) foodtypes = BUGS | NUTS | SEAFOOD | GORE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/flatbread/zmorgast // Name is based off of the Swedish dish Smörgåstårta name = "\improper Zmorgast flatbread" @@ -542,6 +578,7 @@ ) tastes = list("bread" = 1, "liver" = 1, "family" = 1) foodtypes = VEGETABLES | NUTS | MEAT + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/flatbread/fish name = "\improper BBQ fish flatbread" @@ -554,6 +591,7 @@ ) tastes = list("bread" = 1, "fish" = 1) foodtypes = SEAFOOD | NUTS + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pizza/flatbread/mushroom name = "mushroom and tomato flatbread" @@ -565,6 +603,7 @@ ) tastes = list("bread" = 1, "mushroom" = 1, "tomatoes" = 1) foodtypes = VEGETABLES | NUTS + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pizza/flatbread/nutty name = "nut paste flatbread" @@ -573,6 +612,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 20) tastes = list("bread" = 1, "nuts" = 2) foodtypes = NUTS + crafting_complexity = FOOD_COMPLEXITY_3 //Sandwiches/Toast Dishes /obj/item/food/emperor_roll @@ -589,6 +629,7 @@ foodtypes = VEGETABLES | NUTS | MEAT | GORE | SEAFOOD food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/honey_roll name = "honey sweetroll" @@ -604,6 +645,7 @@ foodtypes = VEGETABLES | NUTS | FRUIT food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 //Egg Dishes /obj/item/food/black_eggs @@ -618,6 +660,7 @@ tastes = list("eggs" = 1, "greens" = 1, "blood" = 1) foodtypes = MEAT | BREAKFAST | GORE w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/patzikula name = "patzikula" @@ -633,6 +676,7 @@ tastes = list("eggs" = 1, "tomato" = 1, "heat" = 1) foodtypes = VEGETABLES | MEAT | BREAKFAST w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 //Cakes/Sweets @@ -649,6 +693,7 @@ tastes = list("peppery heat" = 1, "sweetness" = 1) foodtypes = NUTS | SUGAR slice_type = /obj/item/food/cakeslice/korta_brittle + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cakeslice/korta_brittle name = "korta brittle slice" @@ -688,6 +733,7 @@ ) tastes = list("savouriness" = 1, "sweetness" = 1) foodtypes = SUGAR | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_2 //Misc Dishes /obj/item/food/sauerkraut @@ -699,6 +745,7 @@ tastes = list("cabbage" = 1, "acid" = 1) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/lizard_dumplings name = "\improper Tiziran dumplings" @@ -712,6 +759,7 @@ tastes = list("potato" = 1, "earthy heat" = 1) foodtypes = VEGETABLES | NUTS w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/steeped_mushrooms name = "steeped seraka mushrooms" @@ -725,6 +773,7 @@ tastes = list("savouriness" = 1, "nuttiness" = 1) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/canned/jellyfish name = "canned gunner jellyfish" diff --git a/code/game/objects/items/food/martian.dm b/code/game/objects/items/food/martian.dm index ec6768bd244..8e2c1fcd291 100644 --- a/code/game/objects/items/food/martian.dm +++ b/code/game/objects/items/food/martian.dm @@ -480,7 +480,7 @@ food_reagents = list( /datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/protein = 4, - /datum/reagent/consumable/cooking_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil = 2, ) tastes = list("octopus" = 1, "batter" = 1, "onion" = 1, "worcestershire sauce" = 1) foodtypes = MEAT | GRAIN | FRIED | VEGETABLES @@ -508,7 +508,7 @@ food_reagents = list( /datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/protein = 4, - /datum/reagent/consumable/cooking_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil = 2, ) tastes = list("taco meat" = 1, "batter" = 1, "corn" = 1, "cheese" = 1) foodtypes = MEAT | GRAIN | FRIED | VEGETABLES | DAIRY @@ -1142,7 +1142,7 @@ icon_state = "frickles" food_reagents = list( /datum/reagent/consumable/nutriment = 6, - /datum/reagent/consumable/cooking_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil = 2, /datum/reagent/consumable/capsaicin = 1, ) tastes = list("frickles" = 1) diff --git a/code/game/objects/items/food/meatdish.dm b/code/game/objects/items/food/meatdish.dm index c120b675571..48902153361 100644 --- a/code/game/objects/items/food/meatdish.dm +++ b/code/game/objects/items/food/meatdish.dm @@ -18,6 +18,7 @@ tastes = list("fish" = 4, "batter" = 1, "hot peppers" = 1) foodtypes = SEAFOOD | FRIED w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/fishmeat name = "fish fillet" @@ -112,6 +113,7 @@ foodtypes = SEAFOOD | FRIED w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/fishandchips name = "fish and chips" @@ -126,6 +128,7 @@ tastes = list("fish" = 1, "chips" = 1) foodtypes = SEAFOOD | VEGETABLES | FRIED venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/fishfry name = "fish fry" @@ -139,6 +142,7 @@ tastes = list("fish" = 1, "pan seared vegtables" = 1) foodtypes = SEAFOOD | VEGETABLES | FRIED w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/vegetariansushiroll name = "vegetarian sushi roll" @@ -151,6 +155,7 @@ tastes = list("boiled rice" = 4, "carrots" = 2, "potato" = 2) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/vegetariansushiroll/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/vegetariansushislice, 4, screentip_verb = "Chop") @@ -166,6 +171,7 @@ tastes = list("boiled rice" = 4, "carrots" = 2, "potato" = 2) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/spicyfiletsushiroll name = "spicy filet sushi roll" @@ -180,6 +186,7 @@ tastes = list("boiled rice" = 4, "fish" = 2, "spicyness" = 2) foodtypes = VEGETABLES | SEAFOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/spicyfiletsushiroll/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/spicyfiletsushislice, 4, screentip_verb = "Chop") @@ -197,6 +204,7 @@ tastes = list("boiled rice" = 4, "fish" = 2, "spicyness" = 2) foodtypes = VEGETABLES | SEAFOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 // empty sushi for custom sushi /obj/item/food/sushi/empty @@ -205,6 +213,7 @@ tastes = list() icon_state = "vegetariansushiroll" desc = "A roll of customized sushi." + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/sushi/empty/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/sushislice/empty, 4, screentip_verb = "Chop") @@ -215,6 +224,7 @@ tastes = list() icon_state = "vegetariansushislice" desc = "A slice of customized sushi." + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/nigiri_sushi name = "nigiri sushi" @@ -225,6 +235,7 @@ tastes = list("boiled rice" = 4, "fish filet" = 2, "soy sauce" = 2) foodtypes = SEAFOOD | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/meat_poke name = "meat poke" @@ -240,6 +251,7 @@ tastes = list("rice and meat" = 4, "lettuce" = 2, "soy sauce" = 2) trash_type = /obj/item/reagent_containers/cup/bowl w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/fish_poke name = "fish poke" @@ -255,6 +267,7 @@ tastes = list("rice and fish" = 4, "lettuce" = 2, "soy sauce" = 2) trash_type = /obj/item/reagent_containers/cup/bowl w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 ////////////////////////////////////////////MEATS AND ALIKE//////////////////////////////////////////// @@ -268,6 +281,7 @@ foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_2 // sliceable into 4xtempehslices /obj/item/food/tempeh/make_processable() @@ -282,6 +296,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2) tastes = list("earthy" = 3, "nutty" = 2, "bland" = 1) foodtypes = VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_2 //add an icon for blends /obj/item/food/tempehstarter @@ -292,6 +307,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2) tastes = list("nutty" = 2, "bland" = 2) foodtypes = VEGETABLES | GROSS + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/tofu name = "tofu" @@ -302,6 +318,7 @@ foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/tofu/prison name = "soggy tofu" @@ -338,6 +355,7 @@ tastes = list("meat" = 1, "cabbage" = 1) foodtypes = MEAT | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/bearsteak name = "Filet migrawr" @@ -353,6 +371,7 @@ foodtypes = MEAT | ALCOHOL w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/raw_meatball name = "raw meatball" @@ -410,6 +429,7 @@ w_class = WEIGHT_CLASS_SMALL burns_on_grill = TRUE venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/meatball/human name = "strange meatball" @@ -477,6 +497,7 @@ foodtypes = MEAT w_class = WEIGHT_CLASS_SMALL burns_on_grill = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 ///Exists purely for the crafting recipe (because itll take subtypes) /obj/item/food/patty/plain @@ -513,6 +534,7 @@ foodtypes = MEAT | RAW eatverbs = list("bite", "chew", "nibble", "deep throat", "gobble", "chomp") w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/raw_sausage/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/sausage, rand(60 SECONDS, 75 SECONDS), TRUE) @@ -533,6 +555,7 @@ w_class = WEIGHT_CLASS_SMALL burns_on_grill = TRUE venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/sausage/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/salami, 6, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") @@ -556,6 +579,7 @@ foodtypes = MEAT food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/rawkhinkali name = "raw khinkali" @@ -571,6 +595,7 @@ tastes = list("meat" = 1, "onions" = 1, "garlic" = 1) foodtypes = MEAT w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/rawkhinkali/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/khinkali, rand(50 SECONDS, 60 SECONDS), TRUE) @@ -591,6 +616,7 @@ foodtypes = MEAT w_class = WEIGHT_CLASS_SMALL burns_on_grill = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/meatbun name = "meat bun" @@ -605,6 +631,7 @@ foodtypes = GRAIN | MEAT | VEGETABLES w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/stewedsoymeat name = "stewed soy meat" @@ -619,6 +646,7 @@ eatverbs = list("slurp", "sip", "inhale", "drink") foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/boiledspiderleg name = "boiled spider leg" @@ -634,6 +662,7 @@ foodtypes = MEAT w_class = WEIGHT_CLASS_SMALL burns_on_grill = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/spidereggsham name = "green eggs and ham" @@ -648,6 +677,7 @@ tastes = list("meat" = 1, "the colour green" = 1) foodtypes = MEAT w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/sashimi name = "carp sashimi" @@ -664,6 +694,7 @@ w_class = WEIGHT_CLASS_TINY //total price of this dish is 20 and a small amount more for soy sauce, all of which are available at the orders console venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/sashimi/Initialize(mapload) . = ..() @@ -685,6 +716,7 @@ food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_TINY venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/nugget/Initialize(mapload) . = ..() @@ -705,6 +737,7 @@ tastes = list("meat" = 1, "butter" = 1) foodtypes = MEAT | DAIRY | GRAIN w_class = WEIGHT_CLASS_TINY + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/bbqribs name = "bbq ribs" @@ -719,6 +752,7 @@ ) tastes = list("meat" = 3, "smokey sauce" = 1) foodtypes = MEAT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/meatclown name = "meat clown" @@ -733,6 +767,7 @@ tastes = list("meat" = 5, "clowns" = 3, "sixteen teslas" = 1) w_class = WEIGHT_CLASS_SMALL foodtypes = MEAT | FRUIT + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/meatclown/Initialize(mapload) . = ..() @@ -750,6 +785,7 @@ tastes = list("meat" = 3, "pasta" = 3, "tomato" = 2, "cheese" = 2) foodtypes = MEAT | DAIRY | GRAIN venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 //////////////////////////////////////////// KEBABS AND OTHER SKEWERS //////////////////////////////////////////// @@ -761,6 +797,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment/protein = 14) tastes = list("meat" = 3, "metal" = 1) w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/kebab/human name = "human-kebab" @@ -837,6 +874,7 @@ ) tastes = list("tex-mex" = 3, "cumin" = 2) foodtypes = MEAT | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/fried_chicken name = "fried chicken" @@ -848,6 +886,7 @@ foodtypes = MEAT | FRIED junkiness = 25 w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/fried_chicken/Initialize(mapload) . = ..() @@ -869,6 +908,7 @@ w_class = WEIGHT_CLASS_SMALL //basic ingredients, but a lot of them. just covering costs here venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/beef_wellington name = "beef wellington" @@ -883,6 +923,7 @@ foodtypes = MEAT | VEGETABLES | GRAIN w_class = WEIGHT_CLASS_NORMAL venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/beef_wellington/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/beef_wellington_slice, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut") @@ -900,6 +941,7 @@ foodtypes = MEAT | VEGETABLES | GRAIN w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/full_english name = "full english breakfast" @@ -914,6 +956,7 @@ foodtypes = MEAT | VEGETABLES | GRAIN | BREAKFAST w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/raw_meatloaf name = "raw meatloaf" @@ -928,6 +971,7 @@ tastes = list("raw meat" = 3, "onions" = 1) foodtypes = MEAT | RAW | VEGETABLES w_class = WEIGHT_CLASS_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/raw_meatloaf/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/meatloaf, rand(30 SECONDS, 40 SECONDS), TRUE, TRUE) @@ -946,6 +990,7 @@ foodtypes = MEAT | VEGETABLES w_class = WEIGHT_CLASS_NORMAL burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/meatloaf/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meatloaf_slice, 4, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut") @@ -963,6 +1008,7 @@ tastes = list("juicy meat" = 3, "onions" = 1, "garlic" = 1, "ketchup" = 1) foodtypes = MEAT | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/sweet_and_sour_meatballs name = "sweet and sour meatballs" diff --git a/code/game/objects/items/food/meatslab.dm b/code/game/objects/items/food/meatslab.dm index 07638067d29..fa249234e1b 100644 --- a/code/game/objects/items/food/meatslab.dm +++ b/code/game/objects/items/food/meatslab.dm @@ -11,8 +11,9 @@ icon_state = "meat" bite_consumption = 3 food_reagents = list( - /datum/reagent/consumable/nutriment/protein = 6, - /datum/reagent/consumable/cooking_oil = 2, + /datum/reagent/consumable/nutriment/protein = 5, + /datum/reagent/consumable/nutriment/fat = 2, + /datum/reagent/consumable/nutriment/vitamin = 1, ) //Meat has fats that a food processor can process into cooking oil tastes = list("meat" = 1) foodtypes = MEAT | RAW @@ -77,6 +78,7 @@ tastes = list("meat" = 4, "scales" = 1) foodtypes = MEAT | RAW | GORE venue_value = FOOD_MEAT_MUTANT + starting_reagent_purity = 0.4 // Take a look at their diet /obj/item/food/meat/slab/human/mutant/lizard/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/human/lizard, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) @@ -147,6 +149,7 @@ desc = "A synthetic slab of meat." foodtypes = RAW | MEAT //hurr durr chemicals were harmed in the production of this meat thus its non-vegan. venue_value = FOOD_PRICE_WORTHLESS + starting_reagent_purity = 0.3 /obj/item/food/meat/slab/synthmeat/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/synth, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) @@ -164,6 +167,7 @@ /obj/item/food/meat/slab/monkey name = "monkey meat" foodtypes = RAW | MEAT + starting_reagent_purity = 0.3 // Monkeys are considered synthetic life /obj/item/food/meat/slab/bugmeat name = "bug meat" @@ -229,7 +233,7 @@ /datum/reagent/consumable/nutriment/protein = 16, /datum/reagent/medicine/morphine = 5, /datum/reagent/consumable/nutriment/vitamin = 2, - /datum/reagent/consumable/cooking_oil = 6, + /datum/reagent/consumable/nutriment/fat = 6, ) tastes = list("meat" = 1, "salmon" = 1) foodtypes = RAW | MEAT @@ -286,7 +290,7 @@ food_reagents = list( /datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/toxin = 5, - /datum/reagent/consumable/cooking_oil = 3, + /datum/reagent/consumable/nutriment/fat = 3, ) icon_state = "goliathmeat" tastes = list("meat" = 1) @@ -300,7 +304,7 @@ /obj/item/food/meat/slab/meatwheat name = "meatwheat clump" desc = "This doesn't look like meat, but your standards aren't that high to begin with." - food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/blood = 5, /datum/reagent/consumable/cooking_oil = 1) + food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/blood = 5, /datum/reagent/consumable/nutriment/fat = 1) icon_state = "meatwheat_clump" bite_consumption = 4 tastes = list("meat" = 1, "wheat" = 1) @@ -312,7 +316,7 @@ food_reagents = list( /datum/reagent/consumable/nutriment/protein = 7, /datum/reagent/consumable/nutriment/vitamin = 1, - /datum/reagent/consumable/cooking_oil = 5, //Plenty of fat! + /datum/reagent/consumable/nutriment/fat = 5, //Plenty of fat! ) /obj/item/food/meat/rawbacon @@ -322,10 +326,11 @@ bite_consumption = 2 food_reagents = list( /datum/reagent/consumable/nutriment/protein = 2, - /datum/reagent/consumable/cooking_oil = 3, + /datum/reagent/consumable/nutriment/fat = 3, ) tastes = list("bacon" = 1) foodtypes = RAW | MEAT + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/meat/rawbacon/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/bacon, rand(25 SECONDS, 45 SECONDS), TRUE, TRUE) @@ -337,11 +342,12 @@ food_reagents = list( /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/nutriment/vitamin = 1, - /datum/reagent/consumable/cooking_oil = 2, + /datum/reagent/consumable/nutriment/fat = 2, ) tastes = list("bacon" = 1) foodtypes = MEAT | BREAKFAST burns_on_grill = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/meat/slab/gondola name = "gondola meat" @@ -349,7 +355,7 @@ food_reagents = list( /datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/gondola_mutation_toxin = 5, - /datum/reagent/consumable/cooking_oil = 3, + /datum/reagent/consumable/nutriment/fat = 3, ) tastes = list("meat" = 4, "tranquility" = 1) foodtypes = RAW | MEAT | GORE @@ -366,7 +372,7 @@ desc = "A slab of penguin meat." food_reagents = list( /datum/reagent/consumable/nutriment/protein = 4, - /datum/reagent/consumable/cooking_oil = 3, + /datum/reagent/consumable/nutriment/fat = 3, ) tastes = list("beef" = 1, "cod fish" = 1) @@ -384,7 +390,7 @@ bite_consumption = 3 food_reagents = list( /datum/reagent/consumable/nutriment/protein = 3, - /datum/reagent/consumable/cooking_oil = 3, + /datum/reagent/consumable/nutriment/fat = 3, ) tastes = list("raw crab" = 1) foodtypes = RAW | MEAT @@ -399,11 +405,12 @@ food_reagents = list( /datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 2, - /datum/reagent/consumable/cooking_oil = 2, + /datum/reagent/consumable/nutriment/fat = 2, ) tastes = list("crab" = 1) foodtypes = SEAFOOD burns_on_grill = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/meat/slab/chicken name = "chicken meat" @@ -411,6 +418,7 @@ desc = "A slab of raw chicken. Remember to wash your hands!" food_reagents = list(/datum/reagent/consumable/nutriment/protein = 6) //low fat tastes = list("chicken" = 1) + starting_reagent_purity = 1 /obj/item/food/meat/slab/chicken/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/chicken, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut") @@ -428,10 +436,25 @@ icon_state = "pig_meat" tastes = list("pig" = 1) foodtypes = RAW | MEAT | GORE + food_reagents = list( + /datum/reagent/consumable/nutriment/protein = 2, + /datum/reagent/consumable/nutriment/fat = 5, + /datum/reagent/consumable/nutriment/vitamin = 1, + ) // Fatty piece + starting_reagent_purity = 1 /obj/item/food/meat/slab/pig/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/pig, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) +/obj/item/food/meat/slab/grassfed + name = "eco meat" + desc = "A slab of 100% grass fed award-winning farm meat." + food_reagents = list( + /datum/reagent/consumable/nutriment/protein = 3, + /datum/reagent/consumable/nutriment/fat = 4, + /datum/reagent/consumable/nutriment/vitamin = 1, + ) // Marble + starting_reagent_purity = 1 ////////////////////////////////////// MEAT STEAKS /////////////////////////////////////////////////////////// /obj/item/food/meat/steak @@ -439,12 +462,14 @@ desc = "A piece of hot spicy meat." icon_state = "meatsteak" food_reagents = list( - /datum/reagent/consumable/nutriment/protein = 8, + /datum/reagent/consumable/nutriment/protein = 5, + /datum/reagent/consumable/nutriment/fat = 2, /datum/reagent/consumable/nutriment/vitamin = 1, ) foodtypes = MEAT tastes = list("meat" = 1) burns_on_grill = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/meat/steak/Initialize(mapload) . = ..() @@ -660,6 +685,7 @@ tastes = list("meat" = 1) foodtypes = MEAT burns_on_grill = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/meat/cutlet/Initialize(mapload) . = ..() diff --git a/code/game/objects/items/food/mexican.dm b/code/game/objects/items/food/mexican.dm index a0883129576..e2f2d0a6056 100644 --- a/code/game/objects/items/food/mexican.dm +++ b/code/game/objects/items/food/mexican.dm @@ -10,6 +10,7 @@ tastes = list("tortilla" = 1) foodtypes = GRAIN w_class = WEIGHT_CLASS_TINY + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/tortilla/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/hard_taco_shell, rand(15 SECONDS, 30 SECONDS), TRUE, TRUE) @@ -28,6 +29,7 @@ foodtypes = GRAIN w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cheesyburrito name = "cheesy burrito" @@ -43,6 +45,7 @@ foodtypes = GRAIN | DAIRY w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/carneburrito name = "carne asada burrito" @@ -58,6 +61,7 @@ foodtypes = GRAIN | MEAT w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/fuegoburrito name = "fuego plasma burrito" @@ -74,6 +78,7 @@ foodtypes = GRAIN w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_LEGENDARY + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/nachos name = "nachos" @@ -88,6 +93,7 @@ foodtypes = GRAIN | FRIED w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/cheesynachos name = "cheesy nachos" @@ -103,6 +109,7 @@ foodtypes = GRAIN | FRIED | DAIRY w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cubannachos name = "Cuban nachos" @@ -117,6 +124,7 @@ tastes = list("nachos" = 2, "hot pepper" = 1) foodtypes = VEGETABLES | FRIED | DAIRY w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/taco name = "classic taco" @@ -132,6 +140,7 @@ foodtypes = MEAT | DAIRY | GRAIN | VEGETABLES w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/taco/plain name = "plain taco" @@ -145,6 +154,7 @@ tastes = list("taco" = 4, "meat" = 2, "cheese" = 2) foodtypes = MEAT | DAIRY | GRAIN venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/taco/fish name = "fish taco" @@ -152,6 +162,7 @@ icon_state = "fishtaco" tastes = list("taco" = 4, "fish" = 2, "cheese" = 2, "cabbage" = 1) foodtypes = SEAFOOD | DAIRY | GRAIN | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/enchiladas name = "enchiladas" @@ -168,6 +179,7 @@ tastes = list("hot peppers" = 1, "meat" = 3, "cheese" = 1, "sour cream" = 1) foodtypes = MEAT | GRAIN w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/stuffedlegion name = "stuffed legion" @@ -183,6 +195,7 @@ foodtypes = MEAT w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_LEGENDARY + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/chipsandsalsa name = "chips and salsa" @@ -197,6 +210,7 @@ tastes = list("peppers" = 1, "salsa" = 3, "tortilla chips" = 1, "onion" = 1) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/classic_chimichanga name = "classic chimichanga" @@ -211,6 +225,7 @@ tastes = list("deep-fried tortilla" = 1, "meat" = 3, "cheese" = 1, "onions" = 1) foodtypes = MEAT | GRAIN | VEGETABLES | DAIRY | FRIED w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/vegetarian_chimichanga name = "vegetarian chimichanga" @@ -224,6 +239,7 @@ tastes = list("deep-fried tortilla" = 1, "cabbage" = 3, "onions" = 1, "peppers" = 1) foodtypes = GRAIN | VEGETABLES | FRIED w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/hard_taco_shell name = "hard taco shell" @@ -235,6 +251,7 @@ foodtypes = GRAIN | FRIED w_class = WEIGHT_CLASS_SMALL burns_on_grill = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/hard_taco_shell/Initialize(mapload) . = ..() @@ -247,6 +264,7 @@ tastes = list() icon_state = "hard_taco_shell" desc = "A customized hard-shell taco." + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/classic_hard_shell_taco name = "classic hard-shell taco" @@ -261,6 +279,7 @@ tastes = list("crunchy taco shell" = 1, "cabbage" = 3, "tomatoes" = 1, "ground meat" = 1, "cheese" = 1) foodtypes = GRAIN | VEGETABLES | MEAT | DAIRY w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/plain_hard_shell_taco name = "plain hard-shell taco" @@ -275,6 +294,7 @@ tastes = list("crunchy taco shell" = 1, "ground meat" = 1) foodtypes = GRAIN | MEAT w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/refried_beans name = "refried beans" @@ -289,6 +309,7 @@ tastes = list("mashed beans" = 1, "onion" = 3,) foodtypes = VEGETABLES | FRIED w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/spanish_rice name = "spanish rice" @@ -302,6 +323,7 @@ tastes = list("zesty rice" = 1, "tomato sauce" = 3,) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/pineapple_salsa name = "pineapple salsa" diff --git a/code/game/objects/items/food/misc.dm b/code/game/objects/items/food/misc.dm index 04d05e230eb..01f2c13a2b2 100644 --- a/code/game/objects/items/food/misc.dm +++ b/code/game/objects/items/food/misc.dm @@ -12,7 +12,7 @@ tastes = list("watermelon" = 1) foodtypes = FRUIT food_flags = FOOD_FINGER_FOOD - juice_results = list(/datum/reagent/consumable/watermelonjuice = 5) + juice_typepath = /datum/reagent/consumable/watermelonjuice w_class = WEIGHT_CLASS_SMALL /obj/item/food/hugemushroomslice @@ -54,6 +54,7 @@ ) tastes = list("salt" = 2, "popcorn" = 1) trash_type = /obj/item/trash/popcorn/salty + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/popcorn/caramel name = "caramel popcorn" @@ -65,7 +66,8 @@ ) tastes = list("caramel" = 2, "popcorn" = 1) foodtypes = JUNKFOOD | SUGAR - trash_type = /obj/item/trash/popcorn/caramel + trash_type = /obj/item/trash/popcorn/ + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/soydope name = "soy dope" @@ -78,6 +80,7 @@ tastes = list("soy" = 1) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/badrecipe name = "burned mess" @@ -134,13 +137,14 @@ w_class = WEIGHT_CLASS_TINY /obj/item/food/spidereggs/processed - name = "spider eggs" + name = "processed spider eggs" desc = "A cluster of juicy spider eggs. Pops in your mouth without making you sick." icon_state = "spidereggs" food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4) tastes = list("cobwebs" = 1) foodtypes = MEAT | BUGS w_class = WEIGHT_CLASS_TINY + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/spiderling name = "spiderling" @@ -167,6 +171,7 @@ tastes = list("melon" = 1) foodtypes = FRUIT w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/melonkeg name = "melon keg" @@ -181,6 +186,7 @@ bite_consumption = 5 tastes = list("grain alcohol" = 1, "fruit" = 1) foodtypes = FRUIT | ALCOHOL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/honeybar name = "honey nut bar" @@ -194,6 +200,7 @@ foodtypes = GRAIN | SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/powercrepe name = "Powercrepe" @@ -216,6 +223,7 @@ w_class = WEIGHT_CLASS_BULKY tastes = list("cherry" = 1, "crepe" = 1) foodtypes = GRAIN | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/branrequests name = "Bran Requests Cereal" @@ -229,12 +237,13 @@ tastes = list("bran" = 4, "raisins" = 3, "salt" = 1) foodtypes = GRAIN | FRUIT | BREAKFAST w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/butter name = "stick of butter" desc = "A stick of delicious, golden, fatty goodness." icon_state = "butter" - food_reagents = list(/datum/reagent/consumable/nutriment = 15) + food_reagents = list(/datum/reagent/consumable/nutriment/fat = 6) tastes = list("butter" = 1) foodtypes = DAIRY w_class = WEIGHT_CLASS_SMALL @@ -288,12 +297,13 @@ tastes = list("batter" = 3, "onion" = 1) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/pineappleslice name = "pineapple slice" desc = "A sliced piece of juicy pineapple." icon_state = "pineapple_slice" - juice_results = list(/datum/reagent/consumable/pineapplejuice = 3) + juice_typepath = /datum/reagent/consumable/pineapplejuice tastes = list("pineapple" = 1) foodtypes = FRUIT | PINEAPPLE w_class = WEIGHT_CLASS_TINY @@ -312,6 +322,7 @@ tastes = list("cream cheese" = 4, "crab" = 3, "crispiness" = 2) foodtypes = MEAT | DAIRY | GRAIN venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pesto name = "pesto" @@ -321,6 +332,7 @@ tastes = list("pesto" = 1) foodtypes = VEGETABLES | DAIRY | NUTS w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/tomato_sauce name = "tomato sauce" @@ -330,6 +342,7 @@ tastes = list("tomato" = 1, "herbs" = 1) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/bechamel_sauce name = "béchamel sauce" @@ -339,6 +352,7 @@ tastes = list("cream" = 1) foodtypes = DAIRY | GRAIN w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/roasted_bell_pepper name = "roasted bell pepper" @@ -352,6 +366,7 @@ tastes = list("bell pepper" = 1, "char" = 1) foodtypes = VEGETABLES burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/pierogi name = "pierogi" @@ -364,6 +379,7 @@ tastes = list("potato" = 1, "onions" = 1) foodtypes = GRAIN | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/stuffed_cabbage name = "stuffed cabbage" @@ -376,6 +392,7 @@ tastes = list("juicy meat" = 1, "rice" = 1, "cabbage" = 1) foodtypes = MEAT | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/seaweedsheet name = "seaweed sheet" @@ -406,6 +423,7 @@ tastes = list("granola" = 1, "nuts" = 1, "chocolate" = 1, "raisin" = 1) foodtypes = GRAIN | NUTS | FRUIT | SUGAR | DAIRY w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/onigiri name = "onigiri" @@ -419,6 +437,7 @@ tastes = list("rice" = 1, "dried seaweed" = 1) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/onigiri/Initialize(mapload) . = ..() @@ -445,6 +464,7 @@ tastes = list("peanuts" = 1, "sweetness" = 1) foodtypes = NUTS | SUGAR w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/pickle name = "pickle" @@ -458,7 +478,7 @@ /datum/reagent/medicine/antihol = 2, ) tastes = list("pickle" = 1, "spices" = 1, "salt water" = 2) - juice_results = list(/datum/reagent/consumable/pickle = 5) + juice_typepath = /datum/reagent/consumable/pickle foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL @@ -484,6 +504,7 @@ tastes = list("rice wrappers" = 1, "spice" = 1, "crunchy veggies" = 1) foodtypes = GRAIN | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cheese_pierogi name = "cheese pierogi" @@ -496,6 +517,7 @@ tastes = list("potato" = 1, "cheese" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/meat_pierogi name = "meat pierogi" @@ -509,6 +531,7 @@ tastes = list("potato" = 1, "cheese" = 1) foodtypes = GRAIN | VEGETABLES | MEAT w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/stuffed_eggplant name = "stuffed eggplant" diff --git a/code/game/objects/items/food/moth.dm b/code/game/objects/items/food/moth.dm index 7644c488b20..ff10e8da511 100644 --- a/code/game/objects/items/food/moth.dm +++ b/code/game/objects/items/food/moth.dm @@ -13,6 +13,7 @@ tastes = list("cheese" = 1, "herbs" = 1) foodtypes = DAIRY | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/grilled_cheese name = "grilled cheese" @@ -28,6 +29,7 @@ foodtypes = DAIRY w_class = WEIGHT_CLASS_SMALL burns_on_grill = TRUE + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/mothic_salad name = "mothic salad" @@ -38,6 +40,7 @@ tastes = list("salad" = 1) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/toasted_seeds name = "toasted seeds" @@ -49,6 +52,7 @@ tastes = list("seeds" = 1) foodtypes = GRAIN w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/engine_fodder name = "engine fodder" @@ -65,6 +69,7 @@ tastes = list("seeds" = 1, "nuts" = 1, "chocolate" = 1, "salt" = 1, "popcorn" = 1, "potato" = 1) foodtypes = GRAIN | NUTS | VEGETABLES | SUGAR w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/mothic_pizza_dough name = "mothic pizza dough" @@ -75,6 +80,7 @@ tastes = list("raw flour" = 1) foodtypes = GRAIN w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 //Entrees: categorising food that is 90% cheese and salad is not easy /obj/item/food/squeaking_stir_fry @@ -90,6 +96,7 @@ tastes = list("cheese" = 1, "tofu" = 1, "veggies" = 1) foodtypes = DAIRY | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/sweet_chili_cabbage_wrap name = "sweet chili cabbage wrap" @@ -104,6 +111,7 @@ tastes = list("cheese" = 1, "salad" = 1, "sweet chili" = 1) foodtypes = DAIRY | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/loaded_curds name = "ozlsettitæloskekllön ede pommes" //ozlsettit = overflowing (ozl = over, sett = flow, it = ing), ælo = cheese, skekllön = curds (skeklit = squeaking, llön = pieces/bits), ede = and, pommes = fries (hey, France!) @@ -120,6 +128,7 @@ tastes = list("cheese" = 1, "oil" = 1, "chili" = 1, "fries" = 1) foodtypes = DAIRY | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/baked_cheese name = "baked cheese wheel" @@ -135,6 +144,7 @@ foodtypes = DAIRY w_class = WEIGHT_CLASS_SMALL burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/baked_cheese_platter name = "stanntkraktælo" //stannt = oven, krakt = baked, ælo = cheese @@ -150,6 +160,7 @@ tastes = list("cheese" = 1, "bread" = 1) foodtypes = DAIRY | GRAIN w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 //Baked Green Lasagna at the Whistlestop Cafe /obj/item/food/raw_green_lasagne @@ -164,6 +175,7 @@ tastes = list("cheese" = 1, "pesto" = 1, "pasta" = 1) foodtypes = VEGETABLES | GRAIN | NUTS | RAW w_class = WEIGHT_CLASS_NORMAL + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/raw_green_lasagne/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/green_lasagne, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) @@ -181,6 +193,7 @@ foodtypes = VEGETABLES | GRAIN | NUTS w_class = WEIGHT_CLASS_NORMAL burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/green_lasagne/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/green_lasagne_slice, 6, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") @@ -197,6 +210,7 @@ tastes = list("cheese" = 1, "pesto" = 1, "pasta" = 1) foodtypes = VEGETABLES | GRAIN | NUTS w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/raw_baked_rice name = "big rice pan" @@ -210,6 +224,7 @@ tastes = list("rice" = 1, "potato" = 1, "veggies" = 1) foodtypes = VEGETABLES | GRAIN | RAW w_class = WEIGHT_CLASS_NORMAL + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/raw_baked_rice/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/big_baked_rice, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) @@ -228,6 +243,7 @@ foodtypes = VEGETABLES | GRAIN w_class = WEIGHT_CLASS_NORMAL burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/big_baked_rice/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/lil_baked_rice, 6, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut") @@ -244,6 +260,7 @@ tastes = list("rice" = 1, "potato" = 1, "veggies" = 1) foodtypes = VEGETABLES | GRAIN w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/oven_baked_corn name = "oven-baked corn" @@ -259,6 +276,7 @@ foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/buttered_baked_corn name = "buttered baked corn" @@ -273,6 +291,7 @@ tastes = list("corn" = 1, "char" = 1) foodtypes = VEGETABLES | DAIRY w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/fiesta_corn_skillet name = "fiesta corn skillet" @@ -287,6 +306,7 @@ tastes = list("corn" = 1, "chili" = 1, "char" = 1) foodtypes = VEGETABLES | DAIRY w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/raw_ratatouille name = "raw ratatouille" //rawtatouille? @@ -301,6 +321,7 @@ tastes = list("veggies" = 1, "roasted peppers" = 1) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/raw_ratatouille/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/ratatouille, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) @@ -319,6 +340,7 @@ foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/mozzarella_sticks name = "mozzarella sticks" @@ -332,6 +354,7 @@ tastes = list("creamy cheese" = 1, "breading" = 1, "oil" = 1) foodtypes = DAIRY | GRAIN | FRIED w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/raw_stuffed_peppers name = "raw voltölpaprik" //voltöl = stuffed (vol = full, töl = push), paprik (from German paprika) = bell pepper @@ -345,6 +368,7 @@ tastes = list("creamy cheese" = 1, "herbs" = 1, "onion" = 1, "bell pepper" = 1) foodtypes = DAIRY | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/raw_stuffed_peppers/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/stuffed_peppers, rand(10 SECONDS, 20 SECONDS), TRUE, TRUE) @@ -362,6 +386,7 @@ foodtypes = DAIRY | VEGETABLES w_class = WEIGHT_CLASS_SMALL burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/fueljacks_lunch name = "\improper Fueljack's lunch" @@ -377,6 +402,7 @@ tastes = list("cabbage" = 1, "potato" = 1, "onion" = 1, "chili" = 1, "cheese" = 1) foodtypes = DAIRY | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/mac_balls name = "macheronirölen" @@ -391,6 +417,7 @@ tastes = list("pasta" = 1, "cornbread" = 1, "cheese" = 1) foodtypes = DAIRY | VEGETABLES | FRIED | GRAIN w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/sustenance_bar name = "surplus fleet PSB" @@ -448,6 +475,7 @@ tastes = list("bacon" = 1, "eggs" = 1) foodtypes = MEAT | GRAIN w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/bowled/fried_eggplant_polenta name = "fried eggplant and polenta" @@ -462,6 +490,7 @@ tastes = list("cornmeal" = 1, "cheese" = 1, "eggplant" = 1, "tomato sauce" = 1) foodtypes = DAIRY | GRAIN w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_5 //Salads: the bread and butter of mothic cuisine /obj/item/food/caprese_salad @@ -478,6 +507,7 @@ tastes = list("mozzarella" = 1, "tomato" = 1, "balsamic" = 1) foodtypes = DAIRY | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/salad/fleet_salad name = "lörtonknusksolt" //lörton = fleet, knusksolt = salad (knusk = crisp, solt = bowl) @@ -492,6 +522,7 @@ tastes = list("cheese" = 1, "salad" = 1, "bread" = 1) foodtypes = DAIRY | VEGETABLES | GRAIN w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/salad/cotton_salad name = "flöfrölenknusksolt" @@ -505,6 +536,7 @@ tastes = list("cheese" = 1, "salad" = 1, "bread" = 1) foodtypes = VEGETABLES | CLOTH w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/salad/moth_kachumbari name = "\improper Kæniatknusksolt" //Kæniat = Kenyan, knusksolt = salad @@ -519,6 +551,7 @@ tastes = list("onion" = 1, "tomato" = 1, "corn" = 1, "chili" = 1, "cilantro" = 1) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 //Pizza /obj/item/food/raw_mothic_margherita @@ -535,6 +568,7 @@ ) tastes = list("dough" = 1, "tomato" = 1, "cheese" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY | RAW + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/raw_mothic_margherita/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/pizza/mothic_margherita, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) @@ -554,6 +588,7 @@ foodtypes = GRAIN | VEGETABLES | DAIRY slice_type = /obj/item/food/pizzaslice/mothic_margherita boxtag = "Margherita alla Moffuchi" + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/pizzaslice/mothic_margherita name = "mothic margherita slice" @@ -562,6 +597,7 @@ icon_state = "margherita_slice" tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/raw_mothic_firecracker name = "raw mothic firecracker pizza" @@ -577,6 +613,7 @@ ) tastes = list("dough" = 1, "chili" = 1, "corn" = 1, "cheese" = 1, "bbq sauce" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY | RAW + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/raw_mothic_firecracker/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/pizza/mothic_firecracker, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) @@ -597,6 +634,7 @@ foodtypes = GRAIN | VEGETABLES | DAIRY slice_type = /obj/item/food/pizzaslice/mothic_firecracker boxtag = "Vesuvian Firecracker" + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/pizzaslice/mothic_firecracker name = "mothic firecracker slice" @@ -605,6 +643,7 @@ icon_state = "firecracker_slice" tastes = list("crust" = 1, "chili" = 1, "corn" = 1, "cheese" = 1, "bbq sauce" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/raw_mothic_five_cheese name = "raw mothic five-cheese pizza" @@ -619,6 +658,7 @@ ) tastes = list("dough" = 1, "cheese" = 1, "more cheese" = 1, "excessive amounts of cheese" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY | RAW + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/raw_mothic_five_cheese/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/pizza/mothic_five_cheese, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) @@ -638,6 +678,7 @@ foodtypes = GRAIN | VEGETABLES | DAIRY slice_type = /obj/item/food/pizzaslice/mothic_five_cheese boxtag = "Cheeseplosion" + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/pizzaslice/mothic_five_cheese name = "mothic five-cheese slice" @@ -646,6 +687,7 @@ icon_state = "five_cheese_slice" tastes = list("crust" = 1, "cheese" = 1, "more cheese" = 1, "excessive amounts of cheese" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/raw_mothic_white_pie name = "raw mothic white-pie pizza" @@ -660,6 +702,7 @@ ) tastes = list("dough" = 1, "cheese" = 1, "herbs" = 1, "garlic" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY | RAW + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/raw_mothic_white_pie/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/pizza/mothic_white_pie, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) @@ -679,6 +722,7 @@ foodtypes = GRAIN | VEGETABLES | DAIRY slice_type = /obj/item/food/pizzaslice/mothic_white_pie boxtag = "Pane Bianco" + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/pizzaslice/mothic_white_pie name = "mothic white-pie slice" @@ -687,6 +731,7 @@ icon_state = "white_pie_slice" tastes = list("crust" = 1, "cheese" = 1, "more cheese" = 1, "excessive amounts of cheese" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/raw_mothic_pesto name = "raw mothic pesto pizza" @@ -701,6 +746,7 @@ ) tastes = list("dough" = 1, "pesto" = 1, "cheese" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY | NUTS | RAW + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/raw_mothic_pesto/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/pizza/mothic_pesto, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) @@ -720,6 +766,7 @@ foodtypes = GRAIN | VEGETABLES | DAIRY | NUTS | RAW slice_type = /obj/item/food/pizzaslice/mothic_pesto boxtag = "Presto Pesto" + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/pizzaslice/mothic_pesto name = "mothic pesto slice" @@ -728,6 +775,7 @@ icon_state = "pesto_slice" tastes = list("crust" = 1, "pesto" = 1, "cheese" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY | NUTS + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/raw_mothic_garlic name = "raw mothic garlic pizzabread" @@ -742,6 +790,7 @@ ) tastes = list("dough" = 1, "garlic" = 1, "butter" = 1) foodtypes = GRAIN | VEGETABLES | RAW + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/raw_mothic_garlic/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/pizza/mothic_garlic, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) @@ -761,6 +810,7 @@ foodtypes = GRAIN | VEGETABLES | DAIRY | NUTS slice_type = /obj/item/food/pizzaslice/mothic_garlic boxtag = "Garlic Bread alla Moffuchi" + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pizzaslice/mothic_garlic name = "mothic garlic pizzabread slice" @@ -769,6 +819,7 @@ icon_state = "garlic_slice" tastes = list("dough" = 1, "garlic" = 1, "butter" = 1) foodtypes = GRAIN | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_4 //Bread /obj/item/food/bread/corn @@ -782,6 +833,7 @@ w_class = WEIGHT_CLASS_SMALL slice_type = /obj/item/food/breadslice/corn yield = 6 + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/breadslice/corn name = "cornbread slice" @@ -790,6 +842,7 @@ icon_state = "cornbread_slice" foodtypes = GRAIN food_reagents = list(/datum/reagent/consumable/nutriment = 3) + crafting_complexity = FOOD_COMPLEXITY_2 //Sweets /obj/item/food/moth_cheese_cakes @@ -804,6 +857,7 @@ tastes = list("cheesecake" = 1, "chocolate" = 1, "honey" = 1) foodtypes = SUGAR | FRIED | DAIRY | GRAIN w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/cake/mothmallow name = "mothmallow tray" @@ -818,6 +872,7 @@ foodtypes = VEGETABLES | SUGAR slice_type = /obj/item/food/cakeslice/mothmallow yield = 6 + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cakeslice/mothmallow name = "mothmallow" @@ -830,6 +885,7 @@ ) tastes = list("vanilla" = 1, "clouds" = 1, "chocolate" = 1) foodtypes = VEGETABLES | SUGAR + crafting_complexity = FOOD_COMPLEXITY_2 //misc food /obj/item/food/bubblegum/wake_up diff --git a/code/game/objects/items/food/packaged.dm b/code/game/objects/items/food/packaged.dm index 4935f9bdd55..bf1a56e4b25 100644 --- a/code/game/objects/items/food/packaged.dm +++ b/code/game/objects/items/food/packaged.dm @@ -46,6 +46,7 @@ ) tastes = list("beans" = 1) foodtypes = VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/canned/peaches name = "canned peaches" @@ -101,6 +102,7 @@ ) tastes = list("dog food" = 5, "狗肉" = 3) foodtypes = MEAT | GROSS + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/canned/envirochow/attack_animal(mob/living/simple_animal/user, list/modifiers) if(!check_buffability(user)) diff --git a/code/game/objects/items/food/pancakes.dm b/code/game/objects/items/food/pancakes.dm index cb505c5b62a..c1428c5fb9c 100644 --- a/code/game/objects/items/food/pancakes.dm +++ b/code/game/objects/items/food/pancakes.dm @@ -13,6 +13,7 @@ venue_value = FOOD_PRICE_CHEAP ///Used as a base name while generating the icon states when stacked var/stack_name = "pancakes" + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/pancakes/raw name = "goopy pancake" @@ -22,6 +23,7 @@ tastes = list("milky batter" = 1) burns_on_grill = FALSE stack_name = "rawpancakes" + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/pancakes/raw/make_grillable() AddComponent(/datum/component/grillable,\ @@ -64,6 +66,7 @@ ) tastes = list("pancakes" = 1, "blueberries" = 1) stack_name = "bbpancakes" + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pancakes/chocolatechip name = "chocolate chip pancake" @@ -75,6 +78,7 @@ ) tastes = list("pancakes" = 1, "chocolate" = 1) stack_name = "ccpancakes" + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pancakes/Initialize(mapload) . = ..() diff --git a/code/game/objects/items/food/pastries.dm b/code/game/objects/items/food/pastries.dm index 74d71377144..21930def909 100644 --- a/code/game/objects/items/food/pastries.dm +++ b/code/game/objects/items/food/pastries.dm @@ -14,6 +14,7 @@ foodtypes = GRAIN | SUGAR | BREAKFAST food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/muffin/berry name = "berry muffin" @@ -22,6 +23,7 @@ tastes = list("muffin" = 3, "berry" = 1) foodtypes = GRAIN | FRUIT | SUGAR | BREAKFAST venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/muffin/booberry name = "booberry muffin" @@ -30,6 +32,7 @@ desc = "My stomach is a graveyard! No living being can quench my bloodthirst!" tastes = list("muffin" = 3, "spookiness" = 1) foodtypes = GRAIN | FRUIT | SUGAR | BREAKFAST + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/muffin/moffin name = "moffin" @@ -38,6 +41,7 @@ desc = "A delicious and spongy little cake." tastes = list("muffin" = 3, "dust" = 1, "lint" = 1) foodtypes = CLOTH | GRAIN | SUGAR | BREAKFAST + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/muffin/moffin/Initialize(mapload) . = ..() @@ -67,6 +71,7 @@ tastes = list("waffles" = 1) foodtypes = GRAIN | SUGAR | BREAKFAST w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/soylentgreen name = "\improper Soylent Green" @@ -81,6 +86,7 @@ tastes = list("waffles" = 7, "people" = 1) foodtypes = GRAIN | MEAT w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/soylenviridians name = "\improper Soylent Virdians" @@ -95,6 +101,7 @@ tastes = list("waffles" = 7, "the colour green" = 1) foodtypes = GRAIN w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/rofflewaffles name = "roffle waffles" @@ -110,6 +117,7 @@ tastes = list("waffles" = 1, "mushrooms" = 1) foodtypes = GRAIN | VEGETABLES | SUGAR | BREAKFAST w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 ////////////////////////////////////////////OTHER//////////////////////////////////////////// @@ -123,6 +131,7 @@ foodtypes = GRAIN | SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cookie/Initialize(mapload) . = ..() @@ -141,6 +150,7 @@ foodtypes = GRAIN | SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/fortunecookie/proc/get_fortune() var/atom/drop_location = drop_location() @@ -170,6 +180,7 @@ ) tastes = list("sweetness" = 1) foodtypes = GRAIN | JUNKFOOD | SUGAR + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cookie/sugar/Initialize(mapload) . = ..() @@ -189,6 +200,7 @@ tastes = list("biscuit" = 3, "chocolate" = 1) foodtypes = GRAIN | JUNKFOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cookie/oatmeal name = "oatmeal cookie" @@ -200,6 +212,7 @@ ) tastes = list("cookie" = 2, "oat" = 1) foodtypes = GRAIN + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cookie/raisin name = "raisin cookie" @@ -211,6 +224,7 @@ ) tastes = list("cookie" = 1, "raisins" = 1) foodtypes = GRAIN | FRUIT + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/poppypretzel name = "poppy pretzel" @@ -224,6 +238,7 @@ foodtypes = GRAIN | SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/plumphelmetbiscuit name = "plump helmet biscuit" @@ -237,6 +252,7 @@ foodtypes = GRAIN | VEGETABLES food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/plumphelmetbiscuit/Initialize(mapload) var/fey = prob(10) @@ -262,6 +278,7 @@ foodtypes = GRAIN food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_TINY + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/khachapuri name = "khachapuri" @@ -275,6 +292,7 @@ tastes = list("bread" = 1, "egg" = 1, "cheese" = 1) foodtypes = GRAIN | MEAT | DAIRY w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cherrycupcake name = "cherry cupcake" @@ -288,12 +306,14 @@ foodtypes = GRAIN | FRUIT | SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cherrycupcake/blue name = "blue cherry cupcake" desc = "Blue cherries inside a delicious cupcake." icon_state = "bluecherrycupcake" tastes = list("cake" = 3, "blue cherry" = 1) + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/honeybun name = "honey bun" @@ -306,6 +326,7 @@ tastes = list("pastry" = 1, "sweetness" = 1) foodtypes = GRAIN | SUGAR w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cannoli name = "cannoli" @@ -319,6 +340,7 @@ foodtypes = GRAIN | DAIRY | SUGAR w_class = WEIGHT_CLASS_TINY venue_value = FOOD_PRICE_CHEAP // Pastry base, 3u of sugar and a single. fucking. unit. of. milk. really? + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/icecream name = "waffle cone" @@ -330,6 +352,7 @@ bite_consumption = 4 foodtypes = DAIRY | SUGAR food_flags = FOOD_FINGER_FOOD + crafting_complexity = FOOD_COMPLEXITY_3 max_volume = 10 //The max volumes scales up with the number of scoops of ice cream served. /// These two variables are used by the ice cream vat. Latter is the one that shows on the UI. var/list/ingredients = list( @@ -366,6 +389,7 @@ /datum/reagent/consumable/sugar, /datum/reagent/consumable/coco, ) + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/icecream/korta name = "korta cone" @@ -386,6 +410,7 @@ ) tastes = list("peanut butter" = 2, "cookie" = 1) foodtypes = GRAIN | JUNKFOOD | NUTS + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/raw_brownie_batter name = "raw brownie batter" @@ -398,6 +423,7 @@ ) tastes = list("raw brownie batter" = 1) foodtypes = GRAIN | JUNKFOOD | SUGAR | BREAKFAST + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/raw_brownie_batter/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/brownie_sheet, rand(20 SECONDS, 30 SECONDS), TRUE, TRUE) @@ -415,6 +441,7 @@ foodtypes = GRAIN | JUNKFOOD | SUGAR w_class = WEIGHT_CLASS_SMALL burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/brownie_sheet/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/brownie, 4, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") @@ -431,6 +458,7 @@ tastes = list("brownie" = 1, "chocolatey goodness" = 1) foodtypes = GRAIN | JUNKFOOD | SUGAR w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/peanut_butter_brownie_batter name = "raw peanut butter brownie batter" @@ -444,6 +472,7 @@ ) tastes = list("raw brownie batter" = 1) foodtypes = GRAIN | JUNKFOOD | SUGAR | NUTS + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/peanut_butter_brownie_batter/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/peanut_butter_brownie_sheet, rand(20 SECONDS, 30 SECONDS), TRUE, TRUE) @@ -462,6 +491,7 @@ foodtypes = GRAIN | JUNKFOOD | SUGAR | NUTS w_class = WEIGHT_CLASS_SMALL burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/peanut_butter_brownie_sheet/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/peanut_butter_brownie, 4, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") @@ -479,6 +509,7 @@ tastes = list("brownie" = 1, "chocolatey goodness" = 1) foodtypes = GRAIN | JUNKFOOD | SUGAR w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/crunchy_peanut_butter_tart name = "crunchy peanut butter tart" @@ -493,6 +524,7 @@ tastes = list("peanut butter" = 1, "peanuts" = 1, "cream" = 1) foodtypes = GRAIN | JUNKFOOD | SUGAR | NUTS w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cookie/chocolate_chip_cookie name = "chocolate chip cookie" diff --git a/code/game/objects/items/food/pie.dm b/code/game/objects/items/food/pie.dm index 73688742bc5..10d24c2f782 100644 --- a/code/game/objects/items/food/pie.dm +++ b/code/game/objects/items/food/pie.dm @@ -8,6 +8,7 @@ tastes = list("pie" = 1) foodtypes = GRAIN venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_2 /// type is spawned 5 at a time and replaces this pie when processed by cutting tool var/obj/item/food/pieslice/slice_type /// so that the yield can change if it isnt 5 @@ -24,6 +25,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 2) tastes = list("pie" = 1, "uncertainty" = 1) foodtypes = GRAIN | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/pie/plain name = "plain pie" @@ -36,6 +38,7 @@ tastes = list("pie" = 1) foodtypes = GRAIN burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/pie/cream name = "banana cream pie" @@ -49,6 +52,7 @@ tastes = list("pie" = 1) foodtypes = GRAIN | DAIRY | SUGAR var/stunning = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/cream/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) . = ..() @@ -92,6 +96,7 @@ tastes = list("pie" = 1, "blackberries" = 1) foodtypes = GRAIN | FRUIT | SUGAR venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/bearypie name = "beary pie" @@ -104,6 +109,7 @@ ) tastes = list("pie" = 1, "meat" = 1, "salmon" = 1) foodtypes = GRAIN | SUGAR | MEAT | FRUIT + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pie/meatpie name = "meat-pie" @@ -117,6 +123,7 @@ tastes = list("pie" = 1, "meat" = 1) foodtypes = GRAIN | MEAT venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/tofupie name = "tofu-pie" @@ -129,6 +136,7 @@ ) tastes = list("pie" = 1, "tofu" = 1) foodtypes = GRAIN | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/amanita_pie name = "amanita pie" @@ -143,6 +151,7 @@ ) tastes = list("pie" = 1, "mushroom" = 1) foodtypes = GRAIN | VEGETABLES | TOXIC | GROSS + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/plump_pie name = "plump pie" @@ -154,6 +163,7 @@ ) tastes = list("pie" = 1, "mushroom" = 1) foodtypes = GRAIN | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/plump_pie/Initialize(mapload) var/fey = prob(10) @@ -200,6 +210,7 @@ ) tastes = list("pie" = 7, "Nicole Paige Brooks" = 2) foodtypes = GRAIN | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/pumpkinpie name = "pumpkin pie" @@ -212,6 +223,7 @@ tastes = list("pie" = 1, "pumpkin" = 1) foodtypes = GRAIN | VEGETABLES | SUGAR slice_type = /obj/item/food/pieslice/pumpkin + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pieslice/pumpkin name = "pumpkin pie slice" @@ -219,6 +231,7 @@ icon_state = "pumpkinpieslice" tastes = list("pie" = 1, "pumpkin" = 1) foodtypes = GRAIN | VEGETABLES | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/appletart name = "golden apple streusel tart" @@ -231,6 +244,7 @@ ) tastes = list("pie" = 1, "apple" = 1, "expensive metal" = 1) foodtypes = GRAIN | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pie/grapetart name = "grape tart" @@ -242,6 +256,7 @@ ) tastes = list("pie" = 1, "grape" = 1) foodtypes = GRAIN | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pie/mimetart name = "mime tart" @@ -288,6 +303,7 @@ tastes = list("pie" = 1, "a mouthful of pool water" = 1) foodtypes = GRAIN | VEGETABLES slice_type = /obj/item/food/pieslice/blumpkin + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pieslice/blumpkin name = "blumpkin pie slice" @@ -295,6 +311,7 @@ icon_state = "blumpkinpieslice" tastes = list("pie" = 1, "a mouthful of pool water" = 1) foodtypes = GRAIN | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/dulcedebatata name = "dulce de batata" @@ -308,6 +325,7 @@ foodtypes = VEGETABLES | SUGAR venue_value = FOOD_PRICE_EXOTIC slice_type = /obj/item/food/pieslice/dulcedebatata + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pieslice/dulcedebatata name = "dulce de batata slice" @@ -315,6 +333,7 @@ icon_state = "dulcedebatataslice" tastes = list("jelly" = 1, "sweet potato" = 1) foodtypes = VEGETABLES | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/frostypie name = "frosty pie" @@ -326,6 +345,7 @@ ) tastes = list("mint" = 1, "pie" = 1) foodtypes = GRAIN | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/baklava name = "baklava" @@ -339,6 +359,7 @@ foodtypes = NUTS | SUGAR slice_type = /obj/item/food/pieslice/baklava yield = 6 + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pieslice/baklava name = "baklava dish" @@ -358,6 +379,7 @@ tastes = list("pie" = 1, "smooth chocolate" = 1, "whipped cream" = 1) foodtypes = GRAIN | DAIRY | SUGAR slice_type = /obj/item/food/pieslice/frenchsilk + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pieslice/frenchsilk name = "french silk pie slice" @@ -365,6 +387,7 @@ icon_state = "frenchsilkpieslice" tastes = list("pie" = 1, "smooth chocolate" = 1, "whipped cream" = 1) foodtypes = GRAIN | DAIRY | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/shepherds_pie name = "shepherds pie" @@ -379,6 +402,7 @@ foodtypes = MEAT | DAIRY | VEGETABLES slice_type = /obj/item/food/pieslice/shepherds_pie yield = 4 + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/pieslice/shepherds_pie name = "shepherds pie slice" @@ -391,6 +415,7 @@ ) tastes = list("juicy meat" = 1, "mashed potatoes" = 1, "baked veggies" = 1) foodtypes = MEAT | DAIRY | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/pie/asdfpie name = "pie-flavored pie" @@ -403,3 +428,4 @@ tastes = list("pie" = 1, "the far off year of 2010" = 1) foodtypes = GRAIN burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_2 diff --git a/code/game/objects/items/food/pizza.dm b/code/game/objects/items/food/pizza.dm index d2311e75c68..345971b5a79 100644 --- a/code/game/objects/items/food/pizza.dm +++ b/code/game/objects/items/food/pizza.dm @@ -13,6 +13,7 @@ foodtypes = GRAIN | DAIRY | VEGETABLES venue_value = FOOD_PRICE_CHEAP burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_2 /// type is spawned 6 at a time and replaces this pizza when processed by cutting tool var/obj/item/food/pizzaslice/slice_type ///What label pizza boxes use if this pizza spawns in them. @@ -22,6 +23,7 @@ foodtypes = GRAIN | DAIRY | VEGETABLES | RAW burns_in_oven = FALSE slice_type = null + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/pizza/raw/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/pizza, rand(70 SECONDS, 80 SECONDS), TRUE, TRUE) @@ -39,6 +41,7 @@ foodtypes = GRAIN | DAIRY | VEGETABLES w_class = WEIGHT_CLASS_SMALL decomp_type = /obj/item/food/pizzaslice/moldy + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/pizzaslice/make_processable() AddElement(/datum/element/processable, TOOL_ROLLINGPIN, /obj/item/stack/sheet/pizza, 1, 1 SECONDS, table_required = TRUE, screentip_verb = "Flatten") @@ -57,7 +60,7 @@ foodtypes = GRAIN | VEGETABLES | DAIRY slice_type = /obj/item/food/pizzaslice/margherita boxtag = "Margherita Deluxe" - + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/margherita/raw name = "raw pizza margherita" @@ -84,6 +87,7 @@ icon_state = "pizzamargheritaslice" tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizzaslice/margherita/Initialize(mapload) . = ..() @@ -102,6 +106,7 @@ foodtypes = GRAIN | VEGETABLES| DAIRY | MEAT slice_type = /obj/item/food/pizzaslice/meat boxtag = "Meatlovers' Supreme" + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/meat/raw name = "raw meatpizza" @@ -119,6 +124,7 @@ icon_state = "meatpizzaslice" tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY | MEAT + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/mushroom name = "mushroom pizza" @@ -133,6 +139,7 @@ foodtypes = GRAIN | VEGETABLES | DAIRY slice_type = /obj/item/food/pizzaslice/mushroom boxtag = "Mushroom Special" + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/pizza/mushroom/raw name = "raw mushroom pizza" @@ -150,6 +157,7 @@ icon_state = "mushroompizzaslice" tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "mushroom" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/pizza/vegetable @@ -173,6 +181,7 @@ foodtypes = GRAIN | VEGETABLES | DAIRY | RAW burns_in_oven = FALSE slice_type = null + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/vegetable/raw/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/pizza/vegetable, rand(70 SECONDS, 80 SECONDS), TRUE, TRUE) @@ -183,6 +192,7 @@ icon_state = "vegetablepizzaslice" tastes = list("crust" = 1, "tomato" = 2, "cheese" = 1, "carrot" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/donkpocket name = "donkpocket pizza" @@ -199,6 +209,7 @@ foodtypes = GRAIN | VEGETABLES | DAIRY | MEAT | JUNKFOOD slice_type = /obj/item/food/pizzaslice/donkpocket boxtag = "Bangin' Donk" + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/donkpocket/raw name = "raw donkpocket pizza" @@ -231,6 +242,7 @@ foodtypes = GRAIN | VEGETABLES | DAIRY slice_type = /obj/item/food/pizzaslice/dank boxtag = "Fresh Herb" + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/dank/raw name = "raw dank pizza" @@ -263,6 +275,7 @@ foodtypes = GRAIN | VEGETABLES | DAIRY | MEAT slice_type = /obj/item/food/pizzaslice/sassysage boxtag = "Sausage Lovers" + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/sassysage/raw name = "raw sassysage pizza" @@ -280,6 +293,7 @@ icon_state = "sassysagepizzaslice" tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1) foodtypes = GRAIN | VEGETABLES | DAIRY | MEAT + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/pineapple name = "\improper Hawaiian pizza" @@ -296,6 +310,7 @@ foodtypes = GRAIN | VEGETABLES | DAIRY | MEAT | FRUIT | PINEAPPLE slice_type = /obj/item/food/pizzaslice/pineapple boxtag = "Honolulu Chew" + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pizza/pineapple/raw name = "raw Hawaiian pizza" @@ -356,6 +371,7 @@ tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pepperoni" = 2, "9 millimeter bullets" = 2) slice_type = /obj/item/food/pizzaslice/arnold boxtag = "9mm Pepperoni" + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pizza/arnold/raw name = "raw Arnold pizza" @@ -404,6 +420,7 @@ icon_state = "arnoldpizzaslice" tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pepperoni" = 2, "9 millimeter bullets" = 2) foodtypes = GRAIN | VEGETABLES | DAIRY | MEAT + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pizzaslice/arnold/attack(mob/living/target, mob/living/user) . =..() @@ -438,6 +455,7 @@ slice_type = /obj/item/food/pizzaslice/energy foodtypes = TOXIC boxtag = "24 Hour Energy" + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/pizza/energy/raw name = "raw energy pizza" @@ -455,6 +473,7 @@ icon_state ="energypizzaslice" tastes = list("pure electricity" = 4, "pizza" = 2) foodtypes = TOXIC + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/raw_meat_calzone name = "raw meat calzone" @@ -468,6 +487,7 @@ tastes = list("raw dough" = 1, "raw meat" = 1, "cheese" = 1, "tomato sauce" = 1) foodtypes = GRAIN | RAW | DAIRY | MEAT w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/raw_meat_calzone/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/meat_calzone, rand(20 SECONDS, 40 SECONDS), TRUE, TRUE) @@ -485,6 +505,7 @@ foodtypes = GRAIN | DAIRY | MEAT w_class = WEIGHT_CLASS_SMALL burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/raw_vegetarian_calzone name = "raw vegetarian calzone" @@ -497,6 +518,7 @@ tastes = list("raw dough" = 1, "vegetables" = 1, "tomato sauce" = 1) foodtypes = GRAIN | VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/raw_vegetarian_calzone/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/vegetarian_calzone, rand(20 SECONDS, 40 SECONDS), TRUE, TRUE) @@ -513,3 +535,4 @@ foodtypes = GRAIN | VEGETABLES w_class = WEIGHT_CLASS_SMALL burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 diff --git a/code/game/objects/items/food/salad.dm b/code/game/objects/items/food/salad.dm index ebbccd53af1..703db3a12a4 100644 --- a/code/game/objects/items/food/salad.dm +++ b/code/game/objects/items/food/salad.dm @@ -10,6 +10,7 @@ foodtypes = VEGETABLES eatverbs = list("devour", "nibble", "gnaw", "gobble", "chomp") //who the fuck gnaws and devours on a salad venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/salad/aesirsalad name = "\improper Aesir salad" @@ -18,6 +19,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 12) tastes = list("leaves" = 1) foodtypes = VEGETABLES | FRUIT + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/salad/herbsalad name = "herb salad" @@ -26,6 +28,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("leaves" = 1, "apple" = 1) foodtypes = VEGETABLES | FRUIT + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/salad/validsalad name = "valid salad" @@ -42,6 +45,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 9, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("fruit" = 1) foodtypes = FRUIT + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/salad/jungle name = "jungle salad" @@ -50,6 +54,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 11, /datum/reagent/consumable/banana = 5, /datum/reagent/consumable/nutriment/vitamin = 7) tastes = list("fruit" = 1, "the jungle" = 1) foodtypes = FRUIT + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/salad/citrusdelight name = "citrus delight" @@ -61,6 +66,7 @@ ) tastes = list("sourness" = 1, "leaves" = 1) foodtypes = FRUIT | ORANGES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/uncooked_rice name = "uncooked rice" @@ -86,6 +92,7 @@ ) tastes = list("rice" = 1) foodtypes = GRAIN | BREAKFAST + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/salad/ricepudding name = "rice pudding" @@ -111,6 +118,7 @@ ) tastes = list("rice" = 1, "meat" = 1) foodtypes = GRAIN | MEAT + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/salad/risotto name = "risotto" @@ -123,6 +131,7 @@ tastes = list("rice" = 1, "cheese" = 1) foodtypes = GRAIN | DAIRY venue_value = FOOD_PRICE_EXOTIC + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/salad/eggbowl name = "egg bowl" @@ -135,6 +144,7 @@ ) tastes = list("rice" = 1, "egg" = 1) foodtypes = GRAIN | MEAT //EGG = MEAT -NinjaNomNom 2017 + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/salad/edensalad name = "\improper Salad of Eden" @@ -146,6 +156,7 @@ ) tastes = list("extreme bitterness" = 3, "hope" = 1) foodtypes = VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/salad/gumbo name = "black eyed gumbo" @@ -158,6 +169,7 @@ ) tastes = list("building heat" = 2, "savory meat and vegtables" = 1) foodtypes = GRAIN | MEAT | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/reagent_containers/cup/bowl name = "bowl" @@ -243,6 +255,7 @@ ) tastes = list("healthy greens" = 2, "olive dressing" = 1) foodtypes = VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/salad/greek_salad name = "Greek salad" @@ -254,6 +267,7 @@ ) tastes = list("healthy greens" = 2, "olive dressing" = 1, "feta cheese" = 1) foodtypes = VEGETABLES | DAIRY + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/salad/caesar_salad name = "Caesar salad" @@ -265,6 +279,7 @@ ) tastes = list("healthy greens" = 2, "olive dressing" = 2, "feta cheese" = 2, "pita bread" = 1) foodtypes = VEGETABLES | DAIRY | GRAIN + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/salad/spring_salad name = "spring salad" @@ -276,6 +291,7 @@ ) tastes = list("crisp greens" = 2, "olive dressing" = 2, "salt" = 1) foodtypes = VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/salad/potato_salad name = "potato salad" @@ -288,6 +304,7 @@ ) tastes = list("creamy potatoes" = 2, "eggs" = 2, "mayonnaise" = 1, "onions" = 1) foodtypes = VEGETABLES | BREAKFAST + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/salad/spinach_fruit_salad name = "spinach fruit salad" @@ -299,6 +316,7 @@ ) tastes = list("spinach" = 2, "berries" = 2, "pineapple" = 2, "dressing" = 1) foodtypes = VEGETABLES | FRUIT + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/salad/antipasto_salad name = "antipasto salad" @@ -311,3 +329,4 @@ ) tastes = list("lettuce" = 2, "salami" = 2, "mozzarella cheese" = 2, "tomatoes" = 2, "dressing" = 1) foodtypes = VEGETABLES | DAIRY | MEAT + crafting_complexity = FOOD_COMPLEXITY_4 diff --git a/code/game/objects/items/food/sandwichtoast.dm b/code/game/objects/items/food/sandwichtoast.dm index 210a02c4c98..ffb3b4be3af 100644 --- a/code/game/objects/items/food/sandwichtoast.dm +++ b/code/game/objects/items/food/sandwichtoast.dm @@ -12,6 +12,7 @@ foodtypes = GRAIN | VEGETABLES food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/sandwich/cheese name = "cheese sandwich" @@ -24,6 +25,7 @@ tastes = list("bread" = 1, "cheese" = 1) foodtypes = GRAIN | DAIRY venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/sandwich/cheese/make_grillable() if(burns_on_grill) @@ -42,6 +44,7 @@ ) foodtypes = GRAIN | DAIRY burns_on_grill = TRUE + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/sandwich/jelly name = "jelly sandwich" @@ -50,6 +53,7 @@ bite_consumption = 3 tastes = list("bread" = 1, "jelly" = 1) foodtypes = GRAIN + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/sandwich/jelly/slime food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/toxin/slimejelly = 10, /datum/reagent/consumable/nutriment/vitamin = 4) @@ -69,6 +73,7 @@ ) tastes = list("nothing suspicious" = 1) foodtypes = GRAIN | GROSS + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/griddle_toast name = "griddle toast" @@ -81,6 +86,7 @@ w_class = WEIGHT_CLASS_SMALL burns_on_grill = TRUE slot_flags = ITEM_SLOT_MASK + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/butteredtoast name = "buttered toast" @@ -96,6 +102,7 @@ foodtypes = GRAIN | BREAKFAST food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/jelliedtoast name = "jellied toast" @@ -107,6 +114,7 @@ foodtypes = GRAIN | BREAKFAST food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/jelliedtoast/cherry food_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/cherryjelly = 8, /datum/reagent/consumable/nutriment/vitamin = 4) @@ -129,6 +137,7 @@ foodtypes = GRAIN food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/hotdog name = "hotdog" @@ -146,6 +155,7 @@ foodtypes = GRAIN | MEAT //Ketchup is not a vegetable w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_3 // Used for unit tests, do not delete /obj/item/food/hotdog/debug @@ -167,6 +177,7 @@ foodtypes = GRAIN | MEAT | VEGETABLES w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/sandwich/blt name = "\improper BLT" @@ -180,6 +191,7 @@ ) tastes = list("bacon" = 3, "lettuce" = 2, "tomato" = 2, "bread" = 2) foodtypes = GRAIN | MEAT | VEGETABLES | BREAKFAST + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/sandwich/peanut_butter_jelly name = "peanut butter and jelly sandwich" @@ -192,6 +204,7 @@ ) tastes = list("peanut butter" = 1, "jelly" = 1, "bread" = 2) foodtypes = GRAIN | FRUIT | NUTS + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/sandwich/peanut_butter_banana name = "peanut butter and banana sandwich" @@ -205,6 +218,7 @@ ) tastes = list("peanut butter" = 1, "banana" = 1, "bread" = 2) foodtypes = GRAIN | FRUIT | NUTS + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/sandwich/philly_cheesesteak name = "Philly cheesesteak" @@ -217,6 +231,7 @@ ) tastes = list("bread" = 1, "juicy meat" = 1, "melted cheese" = 1, "onions" = 1) foodtypes = GRAIN | MEAT | DAIRY | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/sandwich/toast_sandwich name = "toast sandwich" @@ -229,6 +244,7 @@ ) tastes = list("bread" = 2, "Britain" = 1, "butter" = 1, "toast" = 1) foodtypes = GRAIN + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/sandwich/death name = "death sandwich" diff --git a/code/game/objects/items/food/snacks.dm b/code/game/objects/items/food/snacks.dm index 8f06352b71e..541c36b1150 100644 --- a/code/game/objects/items/food/snacks.dm +++ b/code/game/objects/items/food/snacks.dm @@ -16,6 +16,7 @@ foodtypes = JUNKFOOD | SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_TINY + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/candy/bronx name = "\improper South Bronx Paradise bar" @@ -69,6 +70,7 @@ tastes = list("dried meat" = 1) w_class = WEIGHT_CLASS_SMALL foodtypes = JUNKFOOD | MEAT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/sosjerky/healthy name = "homemade beef jerky" @@ -107,7 +109,7 @@ food_reagents = list( /datum/reagent/consumable/nutriment/protein = 1, /datum/reagent/consumable/nutriment = 1, - /datum/reagent/consumable/cooking_oil = 3, + /datum/reagent/consumable/nutriment/fat/oil = 3, /datum/reagent/consumable/salt = 1, ) tastes = list("salt" = 1, "shrimp" = 1) @@ -129,6 +131,7 @@ food_flags = FOOD_FINGER_FOOD custom_price = PAYCHECK_CREW * 0.7 w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/no_raisin/healthy name = "homemade raisins" @@ -226,7 +229,7 @@ custom_price = PAYCHECK_CREW * 0.8 //nuts are expensive in real life, and this is the best food in the vendor. junkiness = 10 //less junky than other options, since peanuts are a decently healthy snack option w_class = WEIGHT_CLASS_SMALL - grind_results = list(/datum/reagent/consumable/peanut_butter = 5, /datum/reagent/consumable/cooking_oil = 2) + grind_results = list(/datum/reagent/consumable/peanut_butter = 5, /datum/reagent/consumable/nutriment/fat/oil = 2) var/safe_for_consumption = TRUE /obj/item/food/peanuts/salted @@ -393,7 +396,7 @@ GLOBAL_LIST_INIT(safe_peanut_types, populate_safe_peanut_types()) custom_price = PAYCHECK_CREW//pistachios are even more expensive. junkiness = 10 //on par with peanuts w_class = WEIGHT_CLASS_SMALL - grind_results = list(/datum/reagent/consumable/peanut_butter = 5, /datum/reagent/consumable/cooking_oil = 2) + grind_results = list(/datum/reagent/consumable/peanut_butter = 5, /datum/reagent/consumable/nutriment/fat/oil = 2) /obj/item/food/semki name = "\improper Semki Sunflower Seeds" @@ -401,7 +404,7 @@ GLOBAL_LIST_INIT(safe_peanut_types, populate_safe_peanut_types()) icon_state = "semki" trash_type = /obj/item/trash/semki food_reagents = list( - /datum/reagent/consumable/cornoil = 1, + /datum/reagent/consumable/nutriment/fat/oil = 1, /datum/reagent/consumable/salt = 6, ) //1 cornoil is equal to 1.33 nutriment tastes = list("sunflowers" = 5) @@ -423,6 +426,7 @@ GLOBAL_LIST_INIT(safe_peanut_types, populate_safe_peanut_types()) junkiness = 5 //Homemade or not, sunflower seets are always kinda junky foodtypes = JUNKFOOD | NUTS trash_type = /obj/item/trash/semki/healthy + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/cornchips name = "\improper Boritos corn chips" @@ -432,7 +436,7 @@ GLOBAL_LIST_INIT(safe_peanut_types, populate_safe_peanut_types()) bite_consumption = 2 food_reagents = list( /datum/reagent/consumable/nutriment = 3, - /datum/reagent/consumable/cooking_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil = 2, /datum/reagent/consumable/salt = 3, ) junkiness = 20 @@ -451,7 +455,7 @@ GLOBAL_LIST_INIT(safe_peanut_types, populate_safe_peanut_types()) trash_type = /obj/item/trash/boritos food_reagents = list( /datum/reagent/consumable/nutriment = 3, - /datum/reagent/consumable/cooking_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil = 2, /datum/reagent/consumable/salt = 3, /datum/reagent/consumable/yoghurt = 1, /datum/reagent/consumable/garlic = 1, @@ -465,7 +469,7 @@ GLOBAL_LIST_INIT(safe_peanut_types, populate_safe_peanut_types()) trash_type = /obj/item/trash/boritos/green food_reagents = list( /datum/reagent/consumable/nutriment = 3, - /datum/reagent/consumable/cooking_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil = 2, /datum/reagent/consumable/salt = 3, /datum/reagent/consumable/astrotame = 1, /datum/reagent/consumable/blackpepper = 1, @@ -479,7 +483,7 @@ GLOBAL_LIST_INIT(safe_peanut_types, populate_safe_peanut_types()) trash_type = /obj/item/trash/boritos/red food_reagents = list( /datum/reagent/consumable/nutriment = 3, - /datum/reagent/consumable/cooking_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil = 2, /datum/reagent/consumable/salt = 3, /datum/reagent/consumable/astrotame = 1, /datum/reagent/consumable/cornmeal = 1, @@ -493,7 +497,7 @@ GLOBAL_LIST_INIT(safe_peanut_types, populate_safe_peanut_types()) trash_type = /obj/item/trash/boritos/purple food_reagents = list( /datum/reagent/consumable/nutriment = 3, - /datum/reagent/consumable/cooking_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil = 2, /datum/reagent/consumable/salt = 3, /datum/reagent/consumable/capsaicin = 1, /datum/reagent/consumable/sugar = 1, @@ -533,7 +537,7 @@ GLOBAL_LIST_INIT(safe_peanut_types, populate_safe_peanut_types()) foodtypes = JUNKFOOD | SUGAR | NUTS junkiness = 25 w_class = WEIGHT_CLASS_SMALL - grind_results = list(/datum/reagent/consumable/cornoil = 3, /datum/reagent/consumable/caramel = 2) + grind_results = list(/datum/reagent/consumable/nutriment/fat/oil = 3, /datum/reagent/consumable/caramel = 2) /obj/item/food/sticko name = "\improper Sticko Classic" diff --git a/code/game/objects/items/food/soup.dm b/code/game/objects/items/food/soup.dm index 7e84cea5f87..08eb86ebaa0 100644 --- a/code/game/objects/items/food/soup.dm +++ b/code/game/objects/items/food/soup.dm @@ -30,6 +30,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) foodtypes = SUGAR | DAIRY + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/bowled/spacylibertyduff name = "spacy liberty duff" @@ -43,6 +44,7 @@ ) tastes = list("jelly" = 1, "mushroom" = 1) foodtypes = VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/bowled/amanitajelly name = "amanita jelly" @@ -57,3 +59,4 @@ ) tastes = list("jelly" = 1, "mushroom" = 1) foodtypes = VEGETABLES | TOXIC + crafting_complexity = FOOD_COMPLEXITY_2 diff --git a/code/game/objects/items/food/spaghetti.dm b/code/game/objects/items/food/spaghetti.dm index fa6bca4a351..a631cfe5e05 100644 --- a/code/game/objects/items/food/spaghetti.dm +++ b/code/game/objects/items/food/spaghetti.dm @@ -7,6 +7,7 @@ ) foodtypes = GRAIN venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_2 // Why are you putting cooked spaghetti in your pockets? /obj/item/food/spaghetti/make_microwaveable() @@ -22,6 +23,7 @@ desc = "Now that's a nic'e pasta!" icon_state = "spaghetti" tastes = list("pasta" = 1) + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/spaghetti/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/spaghetti/boiledspaghetti, rand(15 SECONDS, 20 SECONDS), TRUE, TRUE) @@ -37,6 +39,7 @@ /datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1, ) + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/spaghetti/boiledspaghetti/Initialize(mapload) . = ..() @@ -54,6 +57,7 @@ ) tastes = list("pasta" = 1, "tomato" = 1) foodtypes = GRAIN | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/spaghetti/pastatomato/soulful name = "soul food" @@ -82,6 +86,7 @@ ) tastes = list("pasta" = 1, "tomato" = 1) foodtypes = GRAIN | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/spaghetti/meatballspaghetti name = "spaghetti and meatballs" @@ -94,6 +99,7 @@ ) tastes = list("pasta" = 1, "meat" = 1) foodtypes = GRAIN | MEAT + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/spaghetti/spesslaw name = "spesslaw" @@ -106,6 +112,7 @@ ) tastes = list("pasta" = 1, "meat" = 1) foodtypes = GRAIN | MEAT + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/spaghetti/chowmein name = "chow mein" @@ -118,6 +125,7 @@ ) tastes = list("noodle" = 1, "meat" = 1, "fried vegetables" = 1) foodtypes = GRAIN | MEAT | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/spaghetti/beefnoodle name = "beef noodle" @@ -132,6 +140,7 @@ ) tastes = list("noodles" = 1, "meat" = 1) foodtypes = GRAIN | MEAT | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/spaghetti/butternoodles name = "butter noodles" @@ -143,6 +152,7 @@ ) tastes = list("noodles" = 1, "butter" = 1) foodtypes = GRAIN | DAIRY + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/spaghetti/mac_n_cheese name = "mac n' cheese" @@ -154,6 +164,7 @@ ) tastes = list("cheese" = 1, "breadcrumbs" = 1, "pasta" = 1) foodtypes = GRAIN | DAIRY + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/spaghetti/shoyu_tonkotsu_ramen name = "shoyu tonkotsu ramen" diff --git a/code/game/objects/items/food/sweets.dm b/code/game/objects/items/food/sweets.dm index 83fd9905e11..6805af35db6 100644 --- a/code/game/objects/items/food/sweets.dm +++ b/code/game/objects/items/food/sweets.dm @@ -12,6 +12,7 @@ foodtypes = JUNKFOOD | SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_TINY + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/candy_corn/prison name = "desiccated candy corn" @@ -34,6 +35,7 @@ tastes = list("apple" = 2, "caramel" = 3) foodtypes = JUNKFOOD | FRUIT | SUGAR w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/mint name = "mint" @@ -59,7 +61,7 @@ foodtypes = JUNKFOOD | SUGAR | BUGS food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_TINY - + crafting_complexity = FOOD_COMPLEXITY_1 // Chocolates /obj/item/food/chocolatebar @@ -75,6 +77,7 @@ foodtypes = JUNKFOOD | SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_TINY + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/chococoin name = "chocolate coin" @@ -89,6 +92,7 @@ foodtypes = JUNKFOOD | SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/fudgedice name = "fudge dice" @@ -104,6 +108,7 @@ foodtypes = JUNKFOOD | SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/chocoorange name = "chocolate orange" @@ -117,6 +122,7 @@ foodtypes = JUNKFOOD | SUGAR | ORANGES food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/bonbon name = "bon bon" @@ -141,6 +147,7 @@ /datum/reagent/consumable/nutriment/vitamin = 3, ) tastes = list("chocolate" = 1, "chewy caramel" = 1) + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/bonbon/chocolate_truffle name = "chocolate truffle" @@ -161,6 +168,7 @@ ) tastes = list("chocolate" = 1, "peanuts" = 1) foodtypes = DAIRY | SUGAR | JUNKFOOD | NUTS + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/bonbon/peanut_butter_cup name = "peanut butter cup" @@ -172,7 +180,7 @@ ) tastes = list("chocolate" = 1, "peanut butter" = 1) foodtypes = DAIRY | SUGAR | JUNKFOOD | NUTS - + crafting_complexity = FOOD_COMPLEXITY_1 // Gum /obj/item/food/bubblegum @@ -333,6 +341,7 @@ foodtypes = JUNKFOOD | SUGAR | BUGS food_flags = FOOD_FINGER_FOOD slot_flags = ITEM_SLOT_MASK + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/spiderlollipop/Initialize(mapload) . = ..() diff --git a/code/game/objects/items/food/vegetables.dm b/code/game/objects/items/food/vegetables.dm index 4c529befbd1..5438e5e9302 100644 --- a/code/game/objects/items/food/vegetables.dm +++ b/code/game/objects/items/food/vegetables.dm @@ -12,6 +12,7 @@ foodtypes = VEGETABLES | DAIRY w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_NORMAL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/yakiimo name = "yaki imo" @@ -25,6 +26,7 @@ foodtypes = VEGETABLES | SUGAR w_class = WEIGHT_CLASS_SMALL burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/roastparsnip name = "roast parsnip" @@ -37,6 +39,7 @@ tastes = list("parsnip" = 1) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 // Potatoes /obj/item/food/tatortot @@ -48,6 +51,7 @@ foodtypes = FRIED | VEGETABLES food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/tatortot/Initialize(mapload) . = ..() @@ -65,6 +69,7 @@ tastes = list("creamy mashed potatoes" = 1, "garlic" = 1) foodtypes = VEGETABLES | DAIRY w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/baked_potato name = "baked potato" @@ -75,6 +80,7 @@ foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL burns_in_oven = TRUE + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/buttered_baked_potato name = "buttered baked potato" @@ -84,6 +90,7 @@ tastes = list("baked potato" = 1) foodtypes = VEGETABLES | DAIRY w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/loaded_baked_potato name = "loaded baked potato" @@ -93,6 +100,7 @@ tastes = list("baked potato" = 1, "bacon" = 1, "cheese" = 1, "cabbage" = 1) foodtypes = VEGETABLES | DAIRY | MEAT w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 // Fries /obj/item/food/fries @@ -104,6 +112,7 @@ foodtypes = VEGETABLES | FRIED w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/fries/Initialize(mapload) . = ..() @@ -121,6 +130,7 @@ foodtypes = VEGETABLES | DAIRY w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cheesyfries/Initialize(mapload) . = ..() @@ -135,6 +145,7 @@ tastes = list("carrots" = 3, "salt" = 1) foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/carrotfries/Initialize(mapload) . = ..() @@ -149,6 +160,7 @@ foodtypes = VEGETABLES | FRIED | MEAT w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_CHEAP + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/poutine/Initialize(mapload) . = ..() diff --git a/code/game/objects/items/robot/items/hypo.dm b/code/game/objects/items/robot/items/hypo.dm index aa3ca4a6d0e..c482155e144 100644 --- a/code/game/objects/items/robot/items/hypo.dm +++ b/code/game/objects/items/robot/items/hypo.dm @@ -74,7 +74,7 @@ /datum/reagent/consumable/blackpepper,\ /datum/reagent/consumable/coco,\ /datum/reagent/consumable/cornmeal,\ - /datum/reagent/consumable/cornoil,\ + /datum/reagent/consumable/nutriment/fat/oil,\ /datum/reagent/consumable/corn_starch,\ /datum/reagent/consumable/eggwhite,\ /datum/reagent/consumable/eggyolk,\ @@ -388,7 +388,7 @@ shaker.trans_to(target, amount_per_transfer_from_this, transfered_by = user) balloon_alert(user, "[amount_per_transfer_from_this] unit\s poured") return . - + /obj/item/reagent_containers/borghypo/condiment_synthesizer // Solids! Condiments! The borger uprising! name = "Condiment Synthesizer" desc = "An advanced condiment synthesizer" @@ -398,7 +398,7 @@ // Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster. charge_cost = 40 //Costs double the power of the borgshaker due to synthesizing solids recharge_time = 6 //Double the recharge time too, for the same reason. - dispensed_temperature = WATER_MATTERSTATE_CHANGE_TEMP + dispensed_temperature = WATER_MATTERSTATE_CHANGE_TEMP default_reagent_types = EXPANDED_SERVICE_REAGENTS /obj/item/reagent_containers/borghypo/condiment_synthesizer/ui_interact(mob/user, datum/tgui/ui) @@ -424,9 +424,9 @@ data["reagents"] = condiments data["selectedReagent"] = selected_reagent?.name return data - + /obj/item/reagent_containers/borghypo/condiment_synthesizer/attack(mob/M, mob/user) - return + return /obj/item/reagent_containers/borghypo/condiment_synthesizer/afterattack(obj/target, mob/user, proximity) . = ..() @@ -451,7 +451,7 @@ shaker.add_reagent(selected_reagent.type, amount_per_transfer_from_this, reagtemp = dispensed_temperature, no_react = TRUE) shaker.trans_to(target, amount_per_transfer_from_this, transfered_by = user) balloon_alert(user, "[amount_per_transfer_from_this] unit\s poured") - + /obj/item/reagent_containers/borghypo/borgshaker/hacked name = "cyborg shaker" diff --git a/code/game/objects/items/storage/boxes/food_boxes.dm b/code/game/objects/items/storage/boxes/food_boxes.dm index 4e5ca1b3b63..3e23d604f6d 100644 --- a/code/game/objects/items/storage/boxes/food_boxes.dm +++ b/code/game/objects/items/storage/boxes/food_boxes.dm @@ -313,7 +313,7 @@ new /obj/item/food/grown/onion/red(src) new /obj/item/food/grown/onion/red(src) new /obj/item/food/grown/tomato(src) - new /obj/item/reagent_containers/condiment/quality_oil(src) + new /obj/item/reagent_containers/condiment/olive_oil(src) /obj/item/storage/box/ingredients/random theme_name = "random" @@ -466,7 +466,7 @@ /obj/item/food/cheese/wheel = 5, /obj/item/food/grown/toechtauese = 10, /obj/item/reagent_containers/condiment/cornmeal = 5, - /obj/item/reagent_containers/condiment/quality_oil = 5, + /obj/item/reagent_containers/condiment/olive_oil = 5, /obj/item/reagent_containers/condiment/yoghurt = 5, )) new random_food(src) diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm index 38b8292fe80..c02a4d56db9 100644 --- a/code/modules/cargo/packs/organic.dm +++ b/code/modules/cargo/packs/organic.dm @@ -47,6 +47,7 @@ /obj/item/food/spiderleg, /obj/item/food/fishmeat/carp, /obj/item/food/meat/slab/human, + /obj/item/food/meat/slab/grassfed, ) crate_name = "food crate" diff --git a/code/modules/events/holiday/easter.dm b/code/modules/events/holiday/easter.dm index f4fa2a038e0..ddade60e287 100644 --- a/code/modules/events/holiday/easter.dm +++ b/code/modules/events/holiday/easter.dm @@ -140,6 +140,7 @@ foodtypes = SUGAR | GRAIN | BREAKFAST tastes = list("pastry" = 1, "easter" = 1) bite_consumption = 2 + crafting_complexity = FOOD_COMPLEXITY_1 /datum/crafting_recipe/food/hotcrossbun name = "Hot Cross Bun" @@ -167,6 +168,7 @@ icon_state = "scotchegg" bite_consumption = 3 food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2) + crafting_complexity = FOOD_COMPLEXITY_2 /datum/crafting_recipe/food/scotchegg name = "Scotch egg" @@ -194,6 +196,7 @@ desc = "Contains less than 10% real rabbit!" icon_state = "chocolatebunny" food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/coco = 2, /datum/reagent/consumable/nutriment/vitamin = 1) + crafting_complexity = FOOD_COMPLEXITY_1 /datum/crafting_recipe/food/chocolatebunny name = "Chocolate bunny" diff --git a/code/modules/events/holiday/halloween.dm b/code/modules/events/holiday/halloween.dm index b0b9aa35264..d52dd1b9c50 100644 --- a/code/modules/events/holiday/halloween.dm +++ b/code/modules/events/holiday/halloween.dm @@ -31,12 +31,14 @@ desc = "Spooky! It's got delicious calcium flavouring!" icon = 'icons/obj/holiday/halloween_items.dmi' icon_state = "skeletoncookie" + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cookie/sugar/spookycoffin name = "coffin cookie" desc = "Spooky! It's got delicious coffee flavouring!" icon = 'icons/obj/holiday/halloween_items.dmi' icon_state = "coffincookie" + crafting_complexity = FOOD_COMPLEXITY_2 //spooky items diff --git a/code/modules/food_and_drinks/machinery/deep_fryer.dm b/code/modules/food_and_drinks/machinery/deep_fryer.dm index 4b5689383d6..79fbb6ddd5e 100644 --- a/code/modules/food_and_drinks/machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/machinery/deep_fryer.dm @@ -52,7 +52,7 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list( /obj/machinery/deepfryer/Initialize(mapload) . = ..() create_reagents(50, OPENCONTAINER) - reagents.add_reagent(/datum/reagent/consumable/cooking_oil, 25) + reagents.add_reagent(/datum/reagent/consumable/nutriment/fat/oil, 25) fry_loop = new(src, FALSE) /obj/machinery/deepfryer/Destroy() @@ -97,8 +97,8 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list( qdel(weapon) return // Make sure we have cooking oil - if(!reagents.has_reagent(/datum/reagent/consumable/cooking_oil)) - to_chat(user, span_warning("[src] has no cooking oil to fry with!")) + if(!reagents.has_reagent(/datum/reagent/consumable/nutriment/fat, check_subtypes = TRUE)) + to_chat(user, span_warning("[src] has no fat or oil to fry with!")) return // Don't deep fry indestructible things, for sanity reasons if(weapon.resistance_flags & INDESTRUCTIBLE) @@ -131,7 +131,7 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list( /obj/machinery/deepfryer/process(seconds_per_tick) ..() - var/datum/reagent/consumable/cooking_oil/frying_oil = reagents.has_reagent(/datum/reagent/consumable/cooking_oil) + var/datum/reagent/consumable/nutriment/fat/frying_oil = reagents.has_reagent(/datum/reagent/consumable/nutriment/fat, check_subtypes = TRUE) if(!frying_oil) return reagents.chem_temp = frying_oil.fry_temperature diff --git a/code/modules/food_and_drinks/machinery/processor.dm b/code/modules/food_and_drinks/machinery/processor.dm index 4dbf65f67d2..51d0a0629c4 100644 --- a/code/modules/food_and_drinks/machinery/processor.dm +++ b/code/modules/food_and_drinks/machinery/processor.dm @@ -68,7 +68,7 @@ var/list/cached_mats = recipe.preserve_materials && what.custom_materials var/cached_multiplier = (recipe.food_multiplier * rating_amount) for(var/i in 1 to cached_multiplier) - var/atom/processed_food = new recipe.output(drop_location()) + var/atom/processed_food = new recipe.output(drop_location(), no_base_reagents = TRUE) what.reagents.copy_to(processed_food, what.reagents.total_volume, multiplier = 1 / cached_multiplier) if(cached_mats) processed_food.set_custom_materials(cached_mats, 1 / cached_multiplier) diff --git a/code/modules/food_and_drinks/recipes/drinks/drinks_alcoholic.dm b/code/modules/food_and_drinks/recipes/drinks/drinks_alcoholic.dm index da2d6f1f71a..7e84fe4f5c0 100644 --- a/code/modules/food_and_drinks/recipes/drinks/drinks_alcoholic.dm +++ b/code/modules/food_and_drinks/recipes/drinks/drinks_alcoholic.dm @@ -241,7 +241,7 @@ /datum/chemical_reaction/drink/pina_olivada results = list(/datum/reagent/consumable/ethanol/pina_olivada = 5) - required_reagents = list(/datum/reagent/consumable/pineapplejuice = 3, /datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/quality_oil = 1) + required_reagents = list(/datum/reagent/consumable/pineapplejuice = 3, /datum/reagent/consumable/ethanol/rum = 1, /datum/reagent/consumable/nutriment/fat/oil/olive = 1) /datum/chemical_reaction/drink/sbiten results = list(/datum/reagent/consumable/ethanol/sbiten = 10) diff --git a/code/modules/food_and_drinks/recipes/food_mixtures.dm b/code/modules/food_and_drinks/recipes/food_mixtures.dm index 54195f63c1f..90e7963f6f8 100644 --- a/code/modules/food_and_drinks/recipes/food_mixtures.dm +++ b/code/modules/food_and_drinks/recipes/food_mixtures.dm @@ -1,6 +1,4 @@ /datum/crafting_recipe/food - /// A rough equivilance for how much nutrition this recipe's result will provide - var/total_nutriment_factor = 0 /datum/crafting_recipe/food/on_craft_completion(mob/user, atom/result) SHOULD_CALL_PARENT(TRUE) @@ -10,12 +8,6 @@ /datum/crafting_recipe/food/New() . = ..() - if(ispath(result, /obj/item/food)) - var/obj/item/food/result_food = new result() - for(var/datum/reagent/consumable/nutriment as anything in result_food.food_reagents) - total_nutriment_factor += initial(nutriment.nutriment_factor) * result_food.food_reagents[nutriment] - qdel(result_food) - parts |= reqs /datum/crafting_recipe/food/crafting_ui_data() @@ -24,7 +16,7 @@ if(ispath(result, /obj/item/food)) var/obj/item/food/item = result data["foodtypes"] = bitfield_to_list(initial(item.foodtypes), FOOD_FLAGS) - data["nutriments"] = total_nutriment_factor + data["complexity"] = initial(item.crafting_complexity) return data @@ -38,15 +30,25 @@ thermic_constant = 0 H_ion_release = 0 reaction_tags = REACTION_TAG_FOOD | REACTION_TAG_EASY + required_other = TRUE /// Typepath of food that is created on reaction var/atom/resulting_food_path + /// Reagent purity of the result, calculated on reaction + var/resulting_reagent_purity + +/datum/chemical_reaction/food/pre_reaction_other_checks(datum/reagents/holder) + resulting_reagent_purity = holder.get_average_purity(/datum/reagent/consumable) + return TRUE /datum/chemical_reaction/food/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume) if(resulting_food_path) var/atom/location = holder.my_atom.drop_location() for(var/i in 1 to created_volume) - new resulting_food_path(location) + if(ispath(resulting_food_path, /obj/item/food) && !isnull(resulting_reagent_purity)) + new resulting_food_path(location, starting_reagent_purity = resulting_reagent_purity) + else + new resulting_food_path(location) /datum/chemical_reaction/food/tofu required_reagents = list(/datum/reagent/consumable/soymilk = 10) @@ -56,7 +58,7 @@ resulting_food_path = /obj/item/food/tofu /datum/chemical_reaction/food/candycorn - required_reagents = list(/datum/reagent/consumable/cornoil = 5) + required_reagents = list(/datum/reagent/consumable/nutriment/fat/oil = 5) required_catalysts = list(/datum/reagent/consumable/sugar = 5) mob_react = FALSE reaction_flags = REACTION_INSTANT @@ -206,7 +208,7 @@ required_reagents = list(/datum/reagent/consumable/milk = 1, /datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/flour = 1) /datum/chemical_reaction/food/mothic_pizza_dough - required_reagents = list(/datum/reagent/consumable/milk = 5, /datum/reagent/consumable/quality_oil = 2, /datum/reagent/medicine/salglu_solution = 5, /datum/reagent/consumable/cornmeal = 10, /datum/reagent/consumable/flour = 5) + required_reagents = list(/datum/reagent/consumable/milk = 5, /datum/reagent/consumable/nutriment/fat/oil/olive = 2, /datum/reagent/medicine/salglu_solution = 5, /datum/reagent/consumable/cornmeal = 10, /datum/reagent/consumable/flour = 5) mix_message = "The ingredients form a pizza dough." reaction_flags = REACTION_INSTANT resulting_food_path = /obj/item/food/mothic_pizza_dough @@ -245,13 +247,13 @@ reaction_flags = REACTION_INSTANT /datum/chemical_reaction/food/quality_oil_upconvert - required_reagents = list(/datum/reagent/consumable/quality_oil = 1, /datum/reagent/consumable/cooking_oil = 2) - results = list(/datum/reagent/consumable/quality_oil = 2) + required_reagents = list(/datum/reagent/consumable/nutriment/fat/oil/olive = 1, /datum/reagent/consumable/nutriment/fat/oil = 2) + results = list(/datum/reagent/consumable/nutriment/fat/oil/olive = 2) mix_message = "The cooking oil dilutes the quality oil- how delightfully devilish..." reaction_flags = REACTION_INSTANT /datum/chemical_reaction/food/quality_oil - results = list(/datum/reagent/consumable/quality_oil = 2) + results = list(/datum/reagent/consumable/nutriment/fat/oil/olive = 2) required_reagents = list(/datum/reagent/consumable/olivepaste = 4, /datum/reagent/water = 1) reaction_flags = REACTION_INSTANT diff --git a/code/modules/food_and_drinks/recipes/soup_guide.dm b/code/modules/food_and_drinks/recipes/soup_guide.dm index a2bc0faccdb..3a9ba05ff0c 100644 --- a/code/modules/food_and_drinks/recipes/soup_guide.dm +++ b/code/modules/food_and_drinks/recipes/soup_guide.dm @@ -28,7 +28,6 @@ var/datum/glass_style/has_foodtype/soup_style = GLOB.glass_style_singletons[expected_container][result] if(istype(soup_style)) data["foodtypes"] = bitfield_to_list(soup_style.drink_type, FOOD_FLAGS) - data["nutriments"] = total_nutriment_factor return data @@ -39,10 +38,6 @@ for(var/obj/item/ingredienttype as anything in chemical_reaction.required_ingredients) LAZYSET(reqs, ingredienttype, chemical_reaction.required_ingredients[ingredienttype]) - if(ispath(result, /datum/reagent/consumable)) - var/datum/reagent/consumable/soup_result = result - total_nutriment_factor += initial(soup_result.nutriment_factor) * result_amount - /datum/crafting_recipe/food/reaction/soup/meatball_soup reaction = /datum/chemical_reaction/food/soup/meatballsoup diff --git a/code/modules/food_and_drinks/recipes/soup_mixtures.dm b/code/modules/food_and_drinks/recipes/soup_mixtures.dm index edc7867568f..71986e46812 100644 --- a/code/modules/food_and_drinks/recipes/soup_mixtures.dm +++ b/code/modules/food_and_drinks/recipes/soup_mixtures.dm @@ -4,7 +4,7 @@ /datum/reagent/consumable/nutriment/soup name = "Soup" chemical_flags = NONE - nutriment_factor = 12 * REAGENTS_METABOLISM // Slightly less to that of nutriment as soups will come with nutriments in tow + nutriment_factor = 12 // Slightly less to that of nutriment as soups will come with nutriments in tow burning_temperature = 520 default_container = /obj/item/reagent_containers/cup/bowl glass_price = FOOD_PRICE_CHEAP @@ -730,7 +730,7 @@ /datum/reagent/consumable/nutriment/soup/clown_tears name = "Clown's Tears" description = "The sorrow and melancholy of a thousand bereaved clowns, forever denied their Honkmechs." - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 5 ph = 9.2 data = list("a bad joke" = 1, "mournful honking" = 1) color = "#EEF442" diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm index 5ef95ca8ab6..06b5e8952ed 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm @@ -382,7 +382,7 @@ /obj/item/food/grown/cabbage = 1, /obj/item/toy/crayon/green = 1, /obj/item/flashlight/flare = 1, - /datum/reagent/consumable/cooking_oil = 15 + /datum/reagent/consumable/nutriment/fat/oil = 15 ) result = /obj/item/food/burger/crazy category = CAT_BURGER diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm index b70b3b9114c..4a2c9f2935d 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm @@ -141,14 +141,14 @@ result = /obj/item/food/cake/hardware_cake category = CAT_CAKE -/datum/crafting_recipe/food/bscccake - name = "blackberry and strawberry chocolate cake" +/datum/crafting_recipe/food/berry_chocolate_cake + name = "strawberry chocolate cake" reqs = list( /obj/item/food/cake/plain = 1, /obj/item/food/chocolatebar = 2, /obj/item/food/grown/berries = 5 ) - result = /obj/item/food/cake/bscc + result = /obj/item/food/cake/berry_chocolate_cake category = CAT_CAKE /datum/crafting_recipe/food/pavlovacream @@ -173,13 +173,13 @@ result = /obj/item/food/cake/pavlova/nuts category = CAT_CAKE -/datum/crafting_recipe/food/bscvcake +/datum/crafting_recipe/food/berry_vanilla_cake name = "blackberry and strawberry vanilla cake" reqs = list( /obj/item/food/cake/plain = 1, /obj/item/food/grown/berries = 5 ) - result = /obj/item/food/cake/bsvc + result = /obj/item/food/cake/berry_vanilla_cake category = CAT_CAKE /datum/crafting_recipe/food/clowncake diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm index 30eee31295b..4e99329d0ae 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm @@ -181,7 +181,7 @@ reaction = /datum/chemical_reaction/food/yoghurt /datum/crafting_recipe/food/reaction/quality_oil - result = /datum/reagent/consumable/quality_oil + result = /datum/reagent/consumable/nutriment/fat/oil/olive reaction = /datum/chemical_reaction/food/quality_oil /datum/crafting_recipe/food/reaction/quality_oil/upconvert @@ -228,6 +228,7 @@ /datum/crafting_recipe/food/rollingpin/pizza_sheet reqs = list(/obj/item/food/pizzaslice/margherita = 1) result = /obj/item/stack/sheet/pizza + category = CAT_PIZZA // Tools: Knife @@ -249,7 +250,7 @@ /datum/crafting_recipe/food/knife/cakeslice reqs = list(/obj/item/food/cake/plain = 1) result = /obj/item/food/cakeslice/plain - category = CAT_PASTRY + category = CAT_CAKE /datum/crafting_recipe/food/knife/pizzaslice reqs = list(/obj/item/food/pizza/margherita = 1) @@ -266,9 +267,9 @@ result = /obj/item/food/rootdoughslice category = CAT_BREAD -/datum/crafting_recipe/food/knife/pastrybase +/datum/crafting_recipe/food/knife/rawpastrybase reqs = list(/obj/item/food/piedough = 1) - result = /obj/item/food/pastrybase + result = /obj/item/food/rawpastrybase category = CAT_BREAD /datum/crafting_recipe/food/knife/butterslice @@ -357,7 +358,7 @@ /datum/crafting_recipe/food/knife/lil_baked_rice reqs = list(/obj/item/food/big_baked_rice = 1) result = /obj/item/food/lil_baked_rice - category = CAT_SALAD + category = CAT_MOTH /datum/crafting_recipe/food/knife/watermelonslice reqs = list(/obj/item/food/grown/watermelon = 1) @@ -447,7 +448,7 @@ /datum/crafting_recipe/food/grill/grilled_cheese_sandwich reqs = list(/obj/item/food/sandwich/cheese = 1) result = /obj/item/food/sandwich/cheese/grilled - category = CAT_BREAD + category = CAT_SANDWICH /datum/crafting_recipe/food/grill/grilled_cheese reqs = list(/obj/item/food/cheese/firm_cheese_slice = 1) @@ -511,6 +512,11 @@ "Bake until ready" ) +/datum/crafting_recipe/food/grill/hard_taco_shell + reqs = list(/obj/item/food/tortilla = 1) + result = /obj/item/food/hard_taco_shell + category = CAT_MEXICAN + // Machinery: Grinder /datum/crafting_recipe/food/grinder machinery = list(/obj/machinery/reagentgrinder) @@ -644,7 +650,7 @@ /datum/crafting_recipe/food/processor/tortilla reqs = list(/obj/item/food/grown/corn = 1) result = /obj/item/food/tortilla - category = CAT_BREAD + category = CAT_MEXICAN /datum/crafting_recipe/food/processor/tempeh reqs = list(/obj/item/food/tempehstarter = 1) @@ -748,12 +754,12 @@ /datum/crafting_recipe/food/oven/pie reqs = list(/obj/item/food/piedough = 1) result = /obj/item/food/pie/plain - category = CAT_PASTRY + category = CAT_PIE /datum/crafting_recipe/food/oven/cake reqs = list(/obj/item/food/cakebatter = 1) result = /obj/item/food/cake/plain - category = CAT_PASTRY + category = CAT_CAKE /datum/crafting_recipe/food/oven/breadstick reqs = list(/obj/item/food/raw_breadstick = 1) @@ -777,7 +783,7 @@ /datum/crafting_recipe/food/oven/big_baked_rice reqs = list(/obj/item/food/raw_baked_rice = 1) result = /obj/item/food/big_baked_rice - category = CAT_SALAD + category = CAT_MOTH /datum/crafting_recipe/food/oven/ratatouille reqs = list(/obj/item/food/raw_ratatouille = 1) @@ -787,7 +793,7 @@ /datum/crafting_recipe/food/oven/stuffed_peppers reqs = list(/obj/item/food/raw_stuffed_peppers = 1) result = /obj/item/food/stuffed_peppers - category = CAT_SALAD + category = CAT_MOTH /datum/crafting_recipe/food/oven/roasted_bell_pepper reqs = list(/obj/item/food/grown/bell_pepper = 1) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm index ccb0b975cb7..714c36223a4 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm @@ -74,7 +74,7 @@ /obj/item/food/grown/garlic = 1, /datum/reagent/consumable/lemonjuice = 3, /datum/reagent/consumable/blackpepper = 2, - /datum/reagent/consumable/quality_oil = 3 + /datum/reagent/consumable/nutriment/fat/oil/olive = 3 ) result = /obj/item/food/lizard_escargot category = CAT_LIZARD @@ -148,7 +148,7 @@ /obj/item/food/steeped_mushrooms = 1, /obj/item/food/grown/mushroom/plumphelmet = 1, /obj/item/food/grown/mushroom/chanterelle = 1, - /datum/reagent/consumable/quality_oil = 5 + /datum/reagent/consumable/nutriment/fat/oil/olive = 5 ) result = /obj/item/food/mushroomy_stirfry category = CAT_LIZARD @@ -204,7 +204,7 @@ /obj/item/food/spaghetti/nizaya = 1, /obj/item/food/grown/garlic = 1, /obj/item/food/grown/chili = 1, - /datum/reagent/consumable/quality_oil = 5 + /datum/reagent/consumable/nutriment/fat/oil/olive = 5 ) result = /obj/item/food/spaghetti/garlic_nizaya category = CAT_LIZARD @@ -228,7 +228,7 @@ /obj/item/food/spaghetti/nizaya = 1, /obj/item/food/steeped_mushrooms = 1, /obj/item/food/grown/garlic = 1, - /datum/reagent/consumable/quality_oil = 5 + /datum/reagent/consumable/nutriment/fat/oil/olive = 5 ) result = /obj/item/food/spaghetti/mushroom_nizaya category = CAT_LIZARD @@ -239,7 +239,7 @@ /obj/item/food/root_flatbread = 1, /obj/item/food/grown/garlic = 1, /datum/reagent/consumable/lemonjuice = 2, - /datum/reagent/consumable/quality_oil = 3 + /datum/reagent/consumable/nutriment/fat/oil/olive = 3 ) result = /obj/item/food/pizza/flatbread/rustic category = CAT_LIZARD @@ -251,7 +251,7 @@ /obj/item/food/grown/garlic = 1, /obj/item/food/grown/tomato = 1, /obj/item/food/meatball = 2, - /datum/reagent/consumable/quality_oil = 3 + /datum/reagent/consumable/nutriment/fat/oil/olive = 3 ) result = /obj/item/food/pizza/flatbread/italic category = CAT_LIZARD @@ -313,7 +313,7 @@ /obj/item/food/root_flatbread = 1, /obj/item/food/grown/tomato = 1, /obj/item/food/grown/mushroom = 3, - /datum/reagent/consumable/quality_oil = 3 + /datum/reagent/consumable/nutriment/fat/oil/olive = 3 ) result = /obj/item/food/pizza/flatbread/mushroom category = CAT_LIZARD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm index b184347a38f..fb4f29284b8 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm @@ -648,7 +648,7 @@ /obj/item/food/friedegg = 1, /obj/item/food/grown/chili = 1, /datum/reagent/consumable/yoghurt = 5, - /datum/reagent/consumable/quality_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil/olive = 2, ) result = /obj/item/food/cilbir category = CAT_MARTIAN diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 908ac40c016..ea2c1270303 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -173,7 +173,7 @@ /obj/item/food/meat/slab/rawcrab = 1 ) result = /obj/item/food/crab_rangoon - category = CAT_MISCFOOD + category = CAT_SEAFOOD /datum/crafting_recipe/food/royalcheese name = "Royal Cheese" @@ -203,7 +203,7 @@ /datum/reagent/consumable/salt = 5, /obj/item/food/grown/herbs = 2, /obj/item/food/grown/garlic = 1, - /datum/reagent/consumable/quality_oil = 5, + /datum/reagent/consumable/nutriment/fat/oil/olive = 5, /obj/item/food/canned/pine_nuts = 1 ) result = /obj/item/food/pesto @@ -215,7 +215,7 @@ /obj/item/food/canned/tomatoes = 1, /datum/reagent/consumable/salt = 2, /obj/item/food/grown/herbs = 1, - /datum/reagent/consumable/quality_oil = 5 + /datum/reagent/consumable/nutriment/fat/oil/olive = 5 ) result = /obj/item/food/tomato_sauce category = CAT_MISCFOOD @@ -434,7 +434,7 @@ reqs = list( /obj/item/food/grown/eggplant = 1, /obj/item/food/grown/garlic = 1, - /datum/reagent/consumable/quality_oil = 3, + /datum/reagent/consumable/nutriment/fat/oil/olive = 3, ) result = /obj/item/food/sauteed_eggplant category = CAT_MISCFOOD @@ -458,7 +458,7 @@ /obj/item/food/pita_bread = 1, /obj/item/food/grown/eggplant = 1, /obj/item/food/grown/garlic = 1, - /datum/reagent/consumable/quality_oil = 5, + /datum/reagent/consumable/nutriment/fat/oil/olive = 5, /datum/reagent/consumable/lemonjuice = 3, ) result = /obj/item/food/baba_ghanoush @@ -501,7 +501,7 @@ name = "Tzatziki sauce" reqs = list( /obj/item/food/grown/cucumber = 1, - /datum/reagent/consumable/quality_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil/olive = 2, /obj/item/food/grown/garlic = 1, /datum/reagent/consumable/salt = 1, ) @@ -548,7 +548,7 @@ reqs = list( /datum/reagent/consumable/flour = 10, /datum/reagent/water = 5, - /datum/reagent/consumable/quality_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil/olive = 2, /datum/reagent/consumable/sugar = 2, ) result = /obj/item/food/raw_pita_bread diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm index 880b51a3909..bb20f4ab0b3 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm @@ -23,7 +23,7 @@ /obj/item/seeds/sunflower = 1, /obj/item/seeds/pumpkin = 1, /obj/item/seeds/poppy = 1, - /datum/reagent/consumable/quality_oil = 2 + /datum/reagent/consumable/nutriment/fat/oil/olive = 2 ) result = /obj/item/food/toasted_seeds category = CAT_MOTH @@ -210,7 +210,7 @@ /obj/item/food/grown/tomato = 1, /obj/item/food/cheese/mozzarella = 1, /obj/item/food/grown/herbs = 1, - /datum/reagent/consumable/quality_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil/olive = 2, /datum/reagent/consumable/vinegar = 2 ) result = /obj/item/food/caprese_salad @@ -219,7 +219,7 @@ /datum/crafting_recipe/food/fleet_salad name = "Lörtonknusksolt (Fleet salad)" reqs = list( - /datum/reagent/consumable/quality_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil/olive = 2, /datum/reagent/consumable/vinegar = 2, /obj/item/food/breadslice/plain = 1, /obj/item/food/grilled_cheese = 1, @@ -233,7 +233,7 @@ /datum/crafting_recipe/food/cotton_salad name = "Flöfrölenknusksolt (Cotton salad)" reqs = list( - /datum/reagent/consumable/quality_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil/olive = 2, /datum/reagent/consumable/vinegar = 2, /obj/item/food/grown/carrot = 1, /obj/item/food/mothic_salad = 1, diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm index 653aac9672c..8ed91683c05 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm @@ -104,7 +104,7 @@ /obj/item/food/grown/carrot = 1, /obj/item/food/onion_slice/red = 2, /obj/item/food/grown/cabbage = 1, - /datum/reagent/consumable/quality_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil/olive = 2, ) result = /obj/item/food/salad/kale_salad category = CAT_SALAD @@ -117,7 +117,7 @@ /obj/item/food/grown/tomato = 1, /obj/item/food/onion_slice/red = 2, /obj/item/food/cheese/wedge = 1, - /datum/reagent/consumable/quality_oil = 5, + /datum/reagent/consumable/nutriment/fat/oil/olive = 5, /obj/item/food/grown/cucumber = 1, ) result = /obj/item/food/salad/greek_salad @@ -130,7 +130,7 @@ /obj/item/food/grown/cabbage = 2, /obj/item/food/onion_slice/red = 1, /obj/item/food/cheese/wedge = 1, - /datum/reagent/consumable/quality_oil = 5, + /datum/reagent/consumable/nutriment/fat/oil/olive = 5, /obj/item/food/breadslice/plain = 1, ) result = /obj/item/food/salad/caesar_salad @@ -143,7 +143,7 @@ /obj/item/food/grown/cabbage = 2, /obj/item/food/grown/carrot = 1, /obj/item/food/grown/peas = 1, - /datum/reagent/consumable/quality_oil = 5, + /datum/reagent/consumable/nutriment/fat/oil/olive = 5, ) result = /obj/item/food/salad/spring_salad category = CAT_SALAD @@ -167,7 +167,7 @@ /obj/item/food/grown/herbs = 3, /obj/item/food/grown/berries = 2, /obj/item/food/pineappleslice = 2, - /datum/reagent/consumable/quality_oil = 2, + /datum/reagent/consumable/nutriment/fat/oil/olive = 2, ) result = /obj/item/food/salad/spinach_fruit_salad category = CAT_SALAD diff --git a/code/modules/hydroponics/beekeeping/honeycomb.dm b/code/modules/hydroponics/beekeeping/honeycomb.dm index b62802410da..41bf1aeb76e 100644 --- a/code/modules/hydroponics/beekeeping/honeycomb.dm +++ b/code/modules/hydroponics/beekeeping/honeycomb.dm @@ -7,7 +7,7 @@ food_reagents = list(/datum/reagent/consumable/honey = 5) tastes = list("honey" = 1) preserved_food = TRUE - + starting_reagent_purity = 1 var/honey_color = "" /obj/item/food/honeycomb/Initialize(mapload) diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index 7a2b8f9841f..1f2951b3356 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -2,7 +2,8 @@ #define MAX_ITEMS_PER_RATING 10 /// How many items are converted per cycle, per rating point of the manipulator used. #define PROCESSED_ITEMS_PER_RATING 5 - +/// Starting purity of reagents made in biogenerator +#define BIOGEN_REAGENT_PURITY 0.3 /obj/machinery/biogenerator name = "biogenerator" @@ -387,7 +388,7 @@ if(!use_biomass(design.materials, amount)) return FALSE - beaker.reagents.add_reagent(design.make_reagent, amount) + beaker.reagents.add_reagent(design.make_reagent, amount, added_purity = BIOGEN_REAGENT_PURITY) if(design.build_path) if(!use_biomass(design.materials, amount)) @@ -568,3 +569,4 @@ #undef MAX_ITEMS_PER_RATING #undef PROCESSED_ITEMS_PER_RATING +#undef BIOGEN_REAGENT_PURITY diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 71c48c6e5c3..5a10c883e49 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -78,9 +78,6 @@ seed.prepare_result(src) transform *= TRANSFORM_USING_VARIABLE(seed.potency, 100) + 0.5 //Makes the resulting produce's sprite larger or smaller based on potency! - if(seed.get_gene(/datum/plant_gene/trait/brewing)) - ferment() - /obj/item/food/grown/Destroy() if(isatom(seed)) QDEL_NULL(seed) @@ -111,48 +108,49 @@ /// Turns the nutriments and vitamins into the distill reagent or fruit wine /obj/item/food/grown/proc/ferment() + var/reagent_purity = seed.get_reagent_purity() + var/purity_above_base = clamp((reagent_purity - 0.5) * 2, 0, 1) + var/quality_min = 0 + var/quality_max = DRINK_FANTASTIC + var/quality = round(LERP(quality_min, quality_max, purity_above_base)) for(var/datum/reagent/reagent in reagents.reagent_list) - if(reagent.type != /datum/reagent/consumable/nutriment && reagent.type != /datum/reagent/consumable/nutriment/vitamin) + if(!istype(reagent, /datum/reagent/consumable)) continue - var/purity = clamp(seed.lifespan/200 + seed.endurance/200, 0, 1) - var/quality_min = 0 - var/quality_max = DRINK_FANTASTIC - var/quality = round(LERP(quality_min, quality_max, purity)) if(distill_reagent) var/data = list() var/datum/reagent/consumable/ethanol/booze = distill_reagent data["quality"] = quality - data["boozepwr"] = round(initial(booze.boozepwr) * purity) - reagents.add_reagent(distill_reagent, reagent.volume, data, added_purity = purity) + data["boozepwr"] = round(initial(booze.boozepwr) * reagent_purity * 2) // default boozepwr at 50% purity + reagents.add_reagent(distill_reagent, reagent.volume, data, added_purity = reagent_purity) else var/data = list() data["names"] = list("[initial(name)]" = 1) data["color"] = filling_color - data["boozepwr"] = round(wine_power * purity) + data["boozepwr"] = round(wine_power * reagent_purity * 2) // default boozepwr at 50% purity data["quality"] = quality if(wine_flavor) data["tastes"] = list(wine_flavor = 1) else data["tastes"] = list(tastes[1] = 1) - reagents.add_reagent(/datum/reagent/consumable/ethanol/fruit_wine, reagent.volume, data, added_purity = purity) + reagents.add_reagent(/datum/reagent/consumable/ethanol/fruit_wine, reagent.volume, data, added_purity = reagent_purity) reagents.del_reagent(reagent.type) -/obj/item/food/grown/on_grind() - . = ..() - var/nutriment = reagents.get_reagent_amount(/datum/reagent/consumable/nutriment) - if(grind_results?.len) - for(var/i in 1 to grind_results.len) - grind_results[grind_results[i]] = nutriment - reagents.del_reagent(/datum/reagent/consumable/nutriment) - reagents.del_reagent(/datum/reagent/consumable/nutriment/vitamin) +/obj/item/food/grown/grind(datum/reagents/target_holder, mob/user) + if(on_grind() == -1) + return FALSE -/obj/item/food/grown/on_juice() - var/nutriment = reagents.get_reagent_amount(/datum/reagent/consumable/nutriment) - if(juice_results?.len) - for(var/i in 1 to juice_results.len) - juice_results[juice_results[i]] = nutriment - reagents.del_reagent(/datum/reagent/consumable/nutriment) - reagents.del_reagent(/datum/reagent/consumable/nutriment/vitamin) + var/grind_results_num = LAZYLEN(grind_results) + if(grind_results_num) + var/average_purity = reagents.get_average_purity() + var/total_nutriment_amount = reagents.get_reagent_amount(/datum/reagent/consumable/nutriment, include_subtypes = TRUE) + var/single_reagent_amount = grind_results_num > 1 ? round(total_nutriment_amount / grind_results_num, CHEMICAL_QUANTISATION_LEVEL) : total_nutriment_amount + reagents.remove_all_type(/datum/reagent/consumable/nutriment, total_nutriment_amount) + for(var/reagent in grind_results) + reagents.add_reagent(reagent, single_reagent_amount, added_purity = average_purity) + + if(reagents && target_holder) + reagents.trans_to(target_holder, reagents.total_volume, transfered_by = user) + return TRUE #undef BITE_SIZE_POTENCY_MULTIPLIER #undef BITE_SIZE_VOLUME_MULTIPLIER diff --git a/code/modules/hydroponics/grown/aloe.dm b/code/modules/hydroponics/grown/aloe.dm index b031999ebdf..cfbefce6dba 100644 --- a/code/modules/hydroponics/grown/aloe.dm +++ b/code/modules/hydroponics/grown/aloe.dm @@ -23,7 +23,7 @@ icon_state = "aloe" bite_consumption_mod = 3 foodtypes = VEGETABLES - juice_results = list(/datum/reagent/consumable/aloejuice = 0) + juice_typepath = /datum/reagent/consumable/aloejuice distill_reagent = /datum/reagent/consumable/ethanol/tequila /obj/item/food/grown/aloe/make_bakeable() diff --git a/code/modules/hydroponics/grown/apple.dm b/code/modules/hydroponics/grown/apple.dm index d4ac640ab44..b994749c2f8 100644 --- a/code/modules/hydroponics/grown/apple.dm +++ b/code/modules/hydroponics/grown/apple.dm @@ -22,7 +22,7 @@ desc = "It's a little piece of Eden." icon_state = "apple" foodtypes = FRUIT - juice_results = list(/datum/reagent/consumable/applejuice = 0) + juice_typepath = /datum/reagent/consumable/applejuice tastes = list("apple" = 1) distill_reagent = /datum/reagent/consumable/ethanol/hcider diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index a47dbceb8a8..fca26ebe978 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -25,7 +25,7 @@ trash_type = /obj/item/grown/bananapeel bite_consumption_mod = 3 foodtypes = FRUIT - juice_results = list(/datum/reagent/consumable/banana = 0) + juice_typepath = /datum/reagent/consumable/banana distill_reagent = /datum/reagent/consumable/ethanol/bananahonk /obj/item/food/grown/banana/make_edible() @@ -49,7 +49,6 @@ var/obj/item/grown/bananapeel/peel = . if(istype(peel)) peel.grind_results = list(/datum/reagent/medicine/coagulant/banana_peel = peel.seed.potency * 0.2) - peel.juice_results = list(/datum/reagent/medicine/coagulant/banana_peel = peel.seed.potency * 0.2) /obj/item/food/grown/banana/suicide_act(mob/living/user) user.visible_message(span_suicide("[user] is aiming [src] at [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!")) diff --git a/code/modules/hydroponics/grown/beans.dm b/code/modules/hydroponics/grown/beans.dm index f79c4590218..8643c616b47 100644 --- a/code/modules/hydroponics/grown/beans.dm +++ b/code/modules/hydroponics/grown/beans.dm @@ -15,7 +15,7 @@ icon_dead = "soybean-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) mutatelist = list(/obj/item/seeds/soya/koi) - reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05, /datum/reagent/consumable/cooking_oil = 0.03) //Vegetable oil! + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05, /datum/reagent/consumable/nutriment/fat/oil = 0.03) //Vegetable oil! /obj/item/food/grown/soybeans seed = /obj/item/seeds/soya diff --git a/code/modules/hydroponics/grown/berries.dm b/code/modules/hydroponics/grown/berries.dm index 0c27184f2ce..45b0db82ea3 100644 --- a/code/modules/hydroponics/grown/berries.dm +++ b/code/modules/hydroponics/grown/berries.dm @@ -25,7 +25,7 @@ icon_state = "berrypile" gender = PLURAL foodtypes = FRUIT - juice_results = list(/datum/reagent/consumable/berryjuice = 0) + juice_typepath = /datum/reagent/consumable/berryjuice tastes = list("berry" = 1) distill_reagent = /datum/reagent/consumable/ethanol/gin @@ -48,7 +48,7 @@ icon_state = "poisonberrypile" bite_consumption_mod = 3 foodtypes = FRUIT | TOXIC - juice_results = list(/datum/reagent/consumable/poisonberryjuice = 0) + juice_typepath = /datum/reagent/consumable/poisonberryjuice tastes = list("poison-berry" = 1) distill_reagent = null wine_power = 35 @@ -74,7 +74,7 @@ icon_state = "deathberrypile" bite_consumption_mod = 3 foodtypes = FRUIT | TOXIC - juice_results = list(/datum/reagent/consumable/poisonberryjuice = 0) + juice_typepath = /datum/reagent/consumable/poisonberryjuice tastes = list("death-berry" = 1) distill_reagent = null wine_power = 50 @@ -134,7 +134,7 @@ icon_state = "grapes" bite_consumption_mod = 2 foodtypes = FRUIT - juice_results = list(/datum/reagent/consumable/grapejuice = 0) + juice_typepath = /datum/reagent/consumable/grapejuice tastes = list("grape" = 1) distill_reagent = /datum/reagent/consumable/ethanol/wine @@ -185,6 +185,6 @@ desc = "A branch with töchtaüse berries on it. They're a favourite on the Mothic Fleet, but not in this form." icon_state = "toechtauese_branch" foodtypes = FRUIT - juice_results = list(/datum/reagent/consumable/toechtauese_juice = 0) + juice_typepath = /datum/reagent/consumable/toechtauese_juice tastes = list("fiery itchy pain" = 1) distill_reagent = /datum/reagent/toxin/itching_powder diff --git a/code/modules/hydroponics/grown/cereals.dm b/code/modules/hydroponics/grown/cereals.dm index 1a9db3c25d0..1a283afef08 100644 --- a/code/modules/hydroponics/grown/cereals.dm +++ b/code/modules/hydroponics/grown/cereals.dm @@ -97,7 +97,8 @@ /obj/item/food/grown/meatwheat/attack_self(mob/living/user) user.visible_message(span_notice("[user] crushes [src] into meat."), span_notice("You crush [src] into something that resembles meat.")) playsound(user, 'sound/effects/blobattack.ogg', 50, TRUE) - var/obj/item/food/meat/slab/meatwheat/M = new + var/reagent_purity = seed.get_reagent_purity() + var/obj/item/food/meat/slab/meatwheat/M = new(starting_reagent_purity = reagent_purity) qdel(src) user.put_in_hands(M) return 1 diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index de0643faed6..c624722f823 100644 --- a/code/modules/hydroponics/grown/citrus.dm +++ b/code/modules/hydroponics/grown/citrus.dm @@ -29,7 +29,7 @@ name = "lime" desc = "It's so sour, your face will twist." icon_state = "lime" - juice_results = list(/datum/reagent/consumable/limejuice = 0) + juice_typepath = /datum/reagent/consumable/limejuice // Orange /obj/item/seeds/orange @@ -56,7 +56,7 @@ desc = "It's a tangy fruit." icon_state = "orange" foodtypes = ORANGES - juice_results = list(/datum/reagent/consumable/orangejuice = 0) + juice_typepath = /datum/reagent/consumable/orangejuice distill_reagent = /datum/reagent/consumable/ethanol/triple_sec // Lemon @@ -82,7 +82,7 @@ name = "lemon" desc = "When life gives you lemons, make lemonade." icon_state = "lemon" - juice_results = list(/datum/reagent/consumable/lemonjuice = 0) + juice_typepath = /datum/reagent/consumable/lemonjuice // Combustible lemon /obj/item/seeds/firelemon //combustible lemon is too long so firelemon @@ -137,7 +137,7 @@ foodtypes = ORANGES alt_icon = "orange" bite_consumption_mod = 2 - juice_results = list(/datum/reagent/consumable/orangejuice = 0) + juice_typepath = /datum/reagent/consumable/orangejuice distill_reagent = /datum/reagent/toxin/mindbreaker tastes = list("polygons" = 1, "bluespace" = 1, "the true nature of reality" = 1) diff --git a/code/modules/hydroponics/grown/cocoa_vanilla.dm b/code/modules/hydroponics/grown/cocoa_vanilla.dm index e7a13ffbbb6..4e9a9810b42 100644 --- a/code/modules/hydroponics/grown/cocoa_vanilla.dm +++ b/code/modules/hydroponics/grown/cocoa_vanilla.dm @@ -80,7 +80,7 @@ bite_consumption_mod = 2 trash_type = /obj/item/food/grown/bungopit foodtypes = FRUIT - juice_results = list(/datum/reagent/consumable/bungojuice = 0) + juice_typepath = /datum/reagent/consumable/bungojuice tastes = list("bungo" = 2, "tropical fruitiness" = 1) distill_reagent = null diff --git a/code/modules/hydroponics/grown/corn.dm b/code/modules/hydroponics/grown/corn.dm index 655123d5a74..a606cf62017 100644 --- a/code/modules/hydroponics/grown/corn.dm +++ b/code/modules/hydroponics/grown/corn.dm @@ -14,7 +14,7 @@ icon_grow = "corn-grow" // Uses one growth icons set for all the subtypes icon_dead = "corn-dead" // Same for the dead icon mutatelist = list(/obj/item/seeds/corn/snapcorn) - reagents_add = list(/datum/reagent/consumable/cornoil = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) + reagents_add = list(/datum/reagent/consumable/nutriment/fat/oil = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) /obj/item/food/grown/corn seed = /obj/item/seeds/corn @@ -25,7 +25,7 @@ bite_consumption_mod = 2 foodtypes = VEGETABLES grind_results = list(/datum/reagent/consumable/cornmeal = 0) - juice_results = list(/datum/reagent/consumable/corn_starch = 0) + juice_typepath = /datum/reagent/consumable/corn_starch tastes = list("corn" = 1) distill_reagent = /datum/reagent/consumable/ethanol/whiskey diff --git a/code/modules/hydroponics/grown/cucumber.dm b/code/modules/hydroponics/grown/cucumber.dm index 649ef8b5212..f3712c6a5c9 100644 --- a/code/modules/hydroponics/grown/cucumber.dm +++ b/code/modules/hydroponics/grown/cucumber.dm @@ -22,5 +22,5 @@ desc = "Oblong and green, with pimples, the standard of salads." icon_state = "cucumber" foodtypes = VEGETABLES - juice_results = list(/datum/reagent/consumable/cucumberjuice = 0) + juice_typepath = /datum/reagent/consumable/cucumberjuice tastes = list("cucumber" = 1) diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm index b9c750c61c1..333c7f57c45 100644 --- a/code/modules/hydroponics/grown/flowers.dm +++ b/code/modules/hydroponics/grown/flowers.dm @@ -178,7 +178,7 @@ icon_grow = "sunflower-grow" icon_dead = "sunflower-dead" mutatelist = list(/obj/item/seeds/sunflower/moonflower, /obj/item/seeds/sunflower/novaflower) - reagents_add = list(/datum/reagent/consumable/cornoil = 0.08, /datum/reagent/consumable/nutriment = 0.04) + reagents_add = list(/datum/reagent/consumable/nutriment/fat/oil = 0.08, /datum/reagent/consumable/nutriment = 0.04) /obj/item/food/grown/sunflower // FLOWER POWER! seed = /obj/item/seeds/sunflower diff --git a/code/modules/hydroponics/grown/herbs.dm b/code/modules/hydroponics/grown/herbs.dm index 45d2ed1146d..b22be06ec6a 100644 --- a/code/modules/hydroponics/grown/herbs.dm +++ b/code/modules/hydroponics/grown/herbs.dm @@ -22,6 +22,6 @@ icon_state = "herbs" foodtypes = VEGETABLES grind_results = list(/datum/reagent/consumable/nutriment = 0) - juice_results = list(/datum/reagent/consumable/nutriment = 0) + juice_typepath = /datum/reagent/consumable/nutriment tastes = list("nondescript herbs" = 1) distill_reagent = /datum/reagent/consumable/ethanol/fernet diff --git a/code/modules/hydroponics/grown/korta_nut.dm b/code/modules/hydroponics/grown/korta_nut.dm index 0622b9d59d4..bf6ab82d474 100644 --- a/code/modules/hydroponics/grown/korta_nut.dm +++ b/code/modules/hydroponics/grown/korta_nut.dm @@ -23,7 +23,7 @@ icon_state = "korta_nut" foodtypes = NUTS grind_results = list(/datum/reagent/consumable/korta_flour = 0) - juice_results = list(/datum/reagent/consumable/korta_milk = 0) + juice_typepath = /datum/reagent/consumable/korta_milk tastes = list("peppery heat" = 1) distill_reagent = /datum/reagent/consumable/ethanol/kortara @@ -47,6 +47,6 @@ desc = "A sweet treat lizards love to eat." icon_state = "korta_nut" grind_results = list(/datum/reagent/consumable/korta_flour = 0) - juice_results = list(/datum/reagent/consumable/korta_milk = 0, /datum/reagent/consumable/korta_nectar = 0) + juice_typepath = /datum/reagent/consumable/korta_nectar tastes = list("peppery sweet" = 1) distill_reagent = /datum/reagent/consumable/ethanol/kortara diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm index e517883a2ea..83f6ac45466 100644 --- a/code/modules/hydroponics/grown/melon.dm +++ b/code/modules/hydroponics/grown/melon.dm @@ -30,7 +30,7 @@ bite_consumption_mod = 2 w_class = WEIGHT_CLASS_NORMAL foodtypes = FRUIT - juice_results = list(/datum/reagent/consumable/watermelonjuice = 0) + juice_typepath = /datum/reagent/consumable/watermelonjuice wine_power = 40 /obj/item/food/grown/watermelon/make_processable() @@ -62,7 +62,7 @@ bite_consumption_mod = 2 w_class = WEIGHT_CLASS_NORMAL foodtypes = FRUIT - juice_results = list(/datum/reagent/water/holywater = 0) + juice_typepath = /datum/reagent/water/holywater wine_power = 70 //Water to wine, baby. wine_flavor = "divinity" diff --git a/code/modules/hydroponics/grown/peas.dm b/code/modules/hydroponics/grown/peas.dm index e88b4fba1b1..c232ed247c6 100644 --- a/code/modules/hydroponics/grown/peas.dm +++ b/code/modules/hydroponics/grown/peas.dm @@ -54,7 +54,7 @@ desc = "Ridens Cicer, guaranteed to improve your mood dramatically upon consumption!" icon_state = "laughpeas" foodtypes = VEGETABLES - juice_results = list (/datum/reagent/consumable/laughsyrup = 0) + juice_typepath = /datum/reagent/consumable/laughsyrup tastes = list ("a prancing rabbit" = 1) //Vib Ribbon sends her regards.. wherever she is. wine_power = 90 wine_flavor = "a vector-graphic rabbit dancing on your tongue" diff --git a/code/modules/hydroponics/grown/pineapple.dm b/code/modules/hydroponics/grown/pineapple.dm index 060a7b172d3..3c0e462f388 100644 --- a/code/modules/hydroponics/grown/pineapple.dm +++ b/code/modules/hydroponics/grown/pineapple.dm @@ -30,7 +30,7 @@ throw_range = 5 w_class = WEIGHT_CLASS_NORMAL foodtypes = FRUIT | PINEAPPLE - juice_results = list(/datum/reagent/consumable/pineapplejuice = 0) + juice_typepath = /datum/reagent/consumable/pineapplejuice tastes = list("pineapple" = 1) wine_power = 40 diff --git a/code/modules/hydroponics/grown/plum.dm b/code/modules/hydroponics/grown/plum.dm index 997efa41222..cac12bdb1eb 100644 --- a/code/modules/hydroponics/grown/plum.dm +++ b/code/modules/hydroponics/grown/plum.dm @@ -22,7 +22,7 @@ desc = "A poet's favorite fruit. Noice." icon_state = "plum" foodtypes = FRUIT - juice_results = list(/datum/reagent/consumable/plumjuice = 0) + juice_typepath = /datum/reagent/consumable/plumjuice tastes = list("plum" = 1) distill_reagent = /datum/reagent/consumable/ethanol/plumwine diff --git a/code/modules/hydroponics/grown/potato.dm b/code/modules/hydroponics/grown/potato.dm index 4178e82e0c8..837937e41d1 100644 --- a/code/modules/hydroponics/grown/potato.dm +++ b/code/modules/hydroponics/grown/potato.dm @@ -25,7 +25,7 @@ desc = "Boil 'em! Mash 'em! Stick 'em in a stew!" icon_state = "potato" foodtypes = VEGETABLES - juice_results = list(/datum/reagent/consumable/potato_juice = 0) + juice_typepath = /datum/reagent/consumable/potato_juice distill_reagent = /datum/reagent/consumable/ethanol/vodka /obj/item/food/grown/potato/make_bakeable() diff --git a/code/modules/hydroponics/grown/pumpkin.dm b/code/modules/hydroponics/grown/pumpkin.dm index 07a25d14c94..561bd5119aa 100644 --- a/code/modules/hydroponics/grown/pumpkin.dm +++ b/code/modules/hydroponics/grown/pumpkin.dm @@ -24,7 +24,7 @@ icon_state = "pumpkin" bite_consumption_mod = 2 foodtypes = FRUIT - juice_results = list(/datum/reagent/consumable/pumpkinjuice = 0) + juice_typepath = /datum/reagent/consumable/pumpkinjuice wine_power = 20 ///Which type of lantern this gourd produces when carved. var/carved_type = /obj/item/clothing/head/utility/hardhat/pumpkinhead @@ -57,6 +57,6 @@ icon_state = "blumpkin" bite_consumption_mod = 3 foodtypes = FRUIT - juice_results = list(/datum/reagent/consumable/blumpkinjuice = 0) + juice_typepath = /datum/reagent/consumable/blumpkinjuice wine_power = 50 carved_type = /obj/item/clothing/head/utility/hardhat/pumpkinhead/blumpkin diff --git a/code/modules/hydroponics/grown/root.dm b/code/modules/hydroponics/grown/root.dm index 8afa52be9da..df37e3bf2b7 100644 --- a/code/modules/hydroponics/grown/root.dm +++ b/code/modules/hydroponics/grown/root.dm @@ -22,7 +22,7 @@ icon_state = "carrot" bite_consumption_mod = 2 foodtypes = VEGETABLES - juice_results = list(/datum/reagent/consumable/carrotjuice = 0) + juice_typepath = /datum/reagent/consumable/carrotjuice wine_power = 30 /obj/item/food/grown/carrot/attackby(obj/item/I, mob/user, params) @@ -53,7 +53,7 @@ desc = "Closely related to carrots." icon_state = "parsnip" foodtypes = VEGETABLES - juice_results = list(/datum/reagent/consumable/parsnipjuice = 0) + juice_typepath = /datum/reagent/consumable/parsnipjuice wine_power = 35 diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm index 1adfe4ac39b..c2fa44c7662 100644 --- a/code/modules/hydroponics/grown/tomato.dm +++ b/code/modules/hydroponics/grown/tomato.dm @@ -24,7 +24,7 @@ splat_type = /obj/effect/decal/cleanable/food/tomato_smudge foodtypes = FRUIT grind_results = list(/datum/reagent/consumable/ketchup = 0) - juice_results = list(/datum/reagent/consumable/tomatojuice = 0) + juice_typepath = /datum/reagent/consumable/tomatojuice distill_reagent = /datum/reagent/consumable/enzyme // Blood Tomato diff --git a/code/modules/hydroponics/seed_extractor.dm b/code/modules/hydroponics/seed_extractor.dm index 7e45fd18d75..a3804c9262f 100644 --- a/code/modules/hydroponics/seed_extractor.dm +++ b/code/modules/hydroponics/seed_extractor.dm @@ -213,6 +213,19 @@ "rate" = reagent.rate )) seed_data["volume_mod"] = (locate(/datum/plant_gene/trait/maxchem) in to_add.genes) ? 2 : 1 + seed_data["mutatelist"] = list() + for(var/obj/item/seeds/mutant as anything in to_add.mutatelist) + seed_data["mutatelist"] += initial(mutant.plantname) + var/obj/item/food/grown/product = new to_add.product + if(product) + var/datum/reagent/product_distill_reagent = product.distill_reagent + seed_data["distill_reagent"] = initial(product_distill_reagent.name) + var/datum/reagent/product_juice_typepath = product.juice_typepath + seed_data["juice_name"] = initial(product_juice_typepath.name) + seed_data["grind_results"] = list() + for(var/datum/reagent/reagent as anything in product.grind_results) + seed_data["grind_results"] += initial(reagent.name) + qdel(product) piles[seed_id] = seed_data return TRUE diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 7b9ce55bd2c..52be3e98f0c 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -266,6 +266,7 @@ reagent_max += reagents_add[rid] if(IS_EDIBLE(T) || istype(T, /obj/item/grown)) var/obj/item/food/grown/grown_edible = T + var/reagent_purity = get_reagent_purity() for(var/rid in reagents_add) var/reagent_overflow_mod = reagents_add[rid] if(reagent_max > 1) @@ -277,12 +278,13 @@ data = list("blood_type" = "O-") if(istype(grown_edible) && (rid == /datum/reagent/consumable/nutriment || rid == /datum/reagent/consumable/nutriment/vitamin)) data = grown_edible.tastes // apple tastes of apple. - T.reagents.add_reagent(rid, amount, data) + T.reagents.add_reagent(rid, amount, data, added_purity = reagent_purity) //Handles the juicing trait, swaps nutriment and vitamins for that species various juices if they exist. Mutually exclusive with distilling. - if(get_gene(/datum/plant_gene/trait/juicing) && grown_edible.juice_results) - grown_edible.on_juice() - grown_edible.reagents.add_reagent_list(grown_edible.juice_results) + if(get_gene(/datum/plant_gene/trait/juicing) && grown_edible.juice_typepath) + grown_edible.juice() + else if(get_gene(/datum/plant_gene/trait/brewing)) + grown_edible.ferment() /// The number of nutriments we have inside of our plant, for use in our heating / cooling genes var/num_nutriment = T.reagents.get_reagent_amount(/datum/reagent/consumable/nutriment) @@ -302,6 +304,14 @@ T.reagents.handle_reactions() playsound(T.loc, 'sound/effects/space_wind.ogg', 50) +/// Returns reagent purity based on seed stats +/obj/item/seeds/proc/get_reagent_purity() + var/purity_from_lifespan = lifespan / 400 //up to +25% for lifespan + var/purity_from_endurance = endurance / 400 //up to +25% for endurance + var/purity_from_instability = rand(-instability, instability) / 400 //up to +-25% at random for instability + var/result_purity = clamp(0.5 + purity_from_lifespan + purity_from_endurance + purity_from_instability, 0, 1) //50% base + stats + return result_purity + /// Setters procs /// /** diff --git a/code/modules/mob/living/basic/farm_animals/chicken/chicken.dm b/code/modules/mob/living/basic/farm_animals/chicken/chicken.dm index b3eb18e0cd4..89f5174f15e 100644 --- a/code/modules/mob/living/basic/farm_animals/chicken/chicken.dm +++ b/code/modules/mob/living/basic/farm_animals/chicken/chicken.dm @@ -49,7 +49,7 @@ GLOBAL_VAR_INIT(chicken_count, 0) AddElement(/datum/element/animal_variety, "chicken", pick("brown", "black", "white"), modify_pixels = TRUE) AddComponent(\ /datum/component/egg_layer,\ - /obj/item/food/egg,\ + /obj/item/food/egg/organic,\ list(/obj/item/food/grown/wheat),\ feed_messages = list("She clucks contently."),\ lay_messages = EGG_LAYING_MESSAGES,\ diff --git a/code/modules/mob/living/basic/farm_animals/cow/_cow.dm b/code/modules/mob/living/basic/farm_animals/cow/_cow.dm index 949a3cd0c34..8777cf5a4d1 100644 --- a/code/modules/mob/living/basic/farm_animals/cow/_cow.dm +++ b/code/modules/mob/living/basic/farm_animals/cow/_cow.dm @@ -11,7 +11,7 @@ mob_biotypes = MOB_ORGANIC | MOB_BEAST speak_emote = list("moos","moos hauntingly") speed = 1.1 - butcher_results = list(/obj/item/food/meat/slab = 6) + butcher_results = list(/obj/item/food/meat/slab/grassfed = 6) response_help_continuous = "pets" response_help_simple = "pet" response_disarm_continuous = "gently pushes aside" diff --git a/code/modules/mob/living/basic/farm_animals/deer.dm b/code/modules/mob/living/basic/farm_animals/deer.dm index a656426e3ba..445ad831e59 100644 --- a/code/modules/mob/living/basic/farm_animals/deer.dm +++ b/code/modules/mob/living/basic/farm_animals/deer.dm @@ -7,7 +7,7 @@ gender = FEMALE mob_biotypes = MOB_ORGANIC|MOB_BEAST speak_emote = list("grunts", "grunts lowly") - butcher_results = list(/obj/item/food/meat/slab = 3) + butcher_results = list(/obj/item/food/meat/slab/grassfed = 3) response_help_continuous = "pets" response_help_simple = "pet" response_disarm_continuous = "gently nudges" diff --git a/code/modules/mob/living/basic/farm_animals/rabbit.dm b/code/modules/mob/living/basic/farm_animals/rabbit.dm index fd95b7ef83b..92d40e0228e 100644 --- a/code/modules/mob/living/basic/farm_animals/rabbit.dm +++ b/code/modules/mob/living/basic/farm_animals/rabbit.dm @@ -32,7 +32,7 @@ response_harm_simple = "kick" attack_verb_continuous = "kicks" attack_verb_simple = "kick" - butcher_results = list(/obj/item/food/meat/slab = 1) + butcher_results = list(/obj/item/food/meat/slab/grassfed = 1) unsuitable_cold_damage = 0.5 // Cold damage is 0.5 here to account for low health on the rabbit. unsuitable_heat_damage = 0.5 // Heat damage is 0.5 here to account for low health on the rabbit. ai_controller = /datum/ai_controller/basic_controller/rabbit diff --git a/code/modules/mob/living/basic/farm_animals/sheep.dm b/code/modules/mob/living/basic/farm_animals/sheep.dm index 4102bd83fdf..691f1db14e3 100644 --- a/code/modules/mob/living/basic/farm_animals/sheep.dm +++ b/code/modules/mob/living/basic/farm_animals/sheep.dm @@ -9,7 +9,7 @@ mob_biotypes = MOB_ORGANIC | MOB_BEAST speak_emote = list("baas","bleats") speed = 1.1 - butcher_results = list(/obj/item/food/meat/slab = 3) + butcher_results = list(/obj/item/food/meat/slab/grassfed = 3) response_help_continuous = "pets" response_help_simple = "pet" response_disarm_continuous = "gently pushes aside" diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 774599948df..998cb9545d3 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -719,7 +719,7 @@ var/datum/reagent/bits = bile if(istype(bits, /datum/reagent/consumable)) var/datum/reagent/consumable/goodbit = bile - fullness += goodbit.nutriment_factor * goodbit.volume / goodbit.metabolization_rate + fullness += goodbit.get_nutriment_factor() * goodbit.volume / goodbit.metabolization_rate continue fullness += 0.6 * bits.volume / bits.metabolization_rate //not food takes up space diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 95b7da5b9da..c2e46d697cd 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -116,7 +116,7 @@ for(var/bile in reagents.reagent_list) var/datum/reagent/consumable/bits = bile if(bits) - fullness += bits.nutriment_factor * bits.volume / bits.metabolization_rate + fullness += bits.get_nutriment_factor() * bits.volume / bits.metabolization_rate return fullness /** diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index bbe9bf1b0bd..62b86e315a5 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -2532,7 +2532,7 @@ GLOBAL_LIST_EMPTY(fire_appearances) mob_mood.clear_mood_event(mood_events[chosen]) /// Adds a mood event to the mob -/mob/living/proc/add_mood_event(category, type, ...) +/mob/living/proc/add_mood_event(category, type, timeout_mod, ...) if(QDELETED(mob_mood)) return mob_mood.add_mood_event(arglist(args)) diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index baeb6123d25..af1b4eb1370 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -11,7 +11,7 @@ emote_see = list("shakes their head.", "stamps a foot.", "glares around.") speak_chance = 1 turns_per_move = 5 - butcher_results = list(/obj/item/food/meat/slab = 4) + butcher_results = list(/obj/item/food/meat/slab/grassfed = 4) response_help_continuous = "pets" response_help_simple = "pet" response_disarm_continuous = "gently pushes aside" diff --git a/code/modules/mob/living/simple_animal/hostile/ooze.dm b/code/modules/mob/living/simple_animal/hostile/ooze.dm index 72b464ff136..9491f5aa163 100644 --- a/code/modules/mob/living/simple_animal/hostile/ooze.dm +++ b/code/modules/mob/living/simple_animal/hostile/ooze.dm @@ -64,7 +64,7 @@ var/consumption_amount = min(reagents.get_reagent_amount(reagent.type), ooze_metabolism_modifier * REAGENTS_METABOLISM * seconds_per_tick) if(istype(reagent, /datum/reagent/consumable)) var/datum/reagent/consumable/consumable = reagent - nutrition_change += consumption_amount * consumable.nutriment_factor + nutrition_change += consumption_amount * consumable.get_nutriment_factor() reagents.remove_reagent(reagent.type, consumption_amount) adjust_ooze_nutrition(nutrition_change) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/goose.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/goose.dm index 29f628d148e..e4b07470c58 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/goose.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/goose.dm @@ -8,7 +8,7 @@ mob_biotypes = MOB_ORGANIC|MOB_BEAST speak_chance = 0 turns_per_move = 5 - butcher_results = list(/obj/item/food/meat/slab = 2) + butcher_results = list(/obj/item/food/meat/slab/grassfed = 2) response_help_continuous = "pets" response_help_simple = "pet" response_disarm_continuous = "gently pushes aside" diff --git a/code/modules/plumbing/plumbers/grinder_chemical.dm b/code/modules/plumbing/plumbers/grinder_chemical.dm index 54a8b48f2d2..5e3c3b0f5d3 100644 --- a/code/modules/plumbing/plumbers/grinder_chemical.dm +++ b/code/modules/plumbing/plumbers/grinder_chemical.dm @@ -41,18 +41,10 @@ if(!isitem(AM)) return var/obj/item/I = AM - if(I.juice_results || I.grind_results) + if(I.grind_results || I.juice_typepath) use_power(active_power_usage) - if(I.juice_results) - I.on_juice() - reagents.add_reagent_list(I.juice_results) - if(I.reagents) - I.reagents.trans_to(src, I.reagents.total_volume, transfered_by = src) - qdel(I) - return - I.on_grind() - reagents.add_reagent_list(I.grind_results) - if(I.reagents) - I.reagents.trans_to(src, I.reagents.total_volume, transfered_by = src) + if(I.grind_results) + I.grind(src, src) + else if (I.juice_typepath) + I.juice(src, src) qdel(I) - diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index f9b5a2b18de..1160604fb23 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -421,6 +421,28 @@ SEND_SIGNAL(src, COMSIG_REAGENTS_DEL_REAGENT, reagent) return TRUE +/// Turn one reagent into another, preserving volume, temp, purity, ph +/datum/reagents/proc/convert_reagent(source_reagent_typepath, target_reagent_typepath, multiplier = 1, include_source_subtypes = FALSE) + var/reagent_amount + var/reagent_purity + var/reagent_ph + if(include_source_subtypes) + reagent_ph = ph + var/weighted_purity + for(var/datum/reagent/reagent as anything in reagent_list) + if(reagent.type in typecacheof(source_reagent_typepath)) + weighted_purity += reagent.volume * reagent.purity + reagent_amount += reagent.volume + remove_reagent(reagent.type, reagent.volume) + reagent_purity = weighted_purity / reagent_amount + else + var/datum/reagent/source_reagent = get_reagent(source_reagent_typepath) + reagent_amount = source_reagent.volume + reagent_purity = source_reagent.purity + reagent_ph = source_reagent.ph + remove_reagent(source_reagent_typepath, reagent_amount) + add_reagent(target_reagent_typepath, reagent_amount * multiplier, reagtemp = chem_temp, added_purity = reagent_purity, added_ph = reagent_ph) + //Converts the creation_purity to purity /datum/reagents/proc/uncache_creation_purity(id) var/datum/reagent/R = has_reagent(id) @@ -1374,12 +1396,13 @@ return FALSE /// Get the amount of this reagent -/datum/reagents/proc/get_reagent_amount(reagent) +/datum/reagents/proc/get_reagent_amount(reagent, include_subtypes = FALSE) var/list/cached_reagents = reagent_list + var/total_amount = 0 for(var/datum/reagent/cached_reagent as anything in cached_reagents) - if(cached_reagent.type == reagent) - return round(cached_reagent.volume, CHEMICAL_QUANTISATION_LEVEL) - return 0 + if((!include_subtypes && cached_reagent.type == reagent) || (include_subtypes && ispath(cached_reagent.type, reagent))) + total_amount += round(cached_reagent.volume, CHEMICAL_QUANTISATION_LEVEL) + return total_amount /datum/reagents/proc/get_multiple_reagent_amounts(list/reagents) var/list/cached_reagents = reagent_list @@ -1397,6 +1420,30 @@ return round(cached_reagent.purity, 0.01) return 0 +/// Get the average purity of all reagents (or all subtypes of provided typepath) +/datum/reagents/proc/get_average_purity(parent_type = null) + var/total_amount + var/weighted_purity + var/list/cached_reagents = reagent_list + for(var/datum/reagent/reagent as anything in cached_reagents) + if(!isnull(parent_type) && !istype(reagent, parent_type)) + continue + total_amount += reagent.volume + weighted_purity += reagent.volume * reagent.purity + return weighted_purity / total_amount + +/// Get the average nutriment_factor of all consumable reagents +/datum/reagents/proc/get_average_nutriment_factor() + var/consumable_volume + var/weighted_nutriment_factor + var/list/cached_reagents = reagent_list + for(var/datum/reagent/reagent as anything in cached_reagents) + if(istype(reagent, /datum/reagent/consumable)) + var/datum/reagent/consumable/consumable_reagent = reagent + consumable_volume += consumable_reagent.volume + weighted_nutriment_factor += consumable_reagent.volume * consumable_reagent.nutriment_factor + return weighted_nutriment_factor / consumable_volume + /// Get a comma separated string of every reagent name in this holder. UNUSED /datum/reagents/proc/get_reagent_names() var/list/names = list() diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 516951e0e04..a3ed883551f 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -111,6 +111,8 @@ /datum/reagent/medicine/morphine ) //SKYRAT EDIT ADDITION END + /// Starting purity of the created reagents + var/base_reagent_purity = 1 var/list/recording_recipe @@ -319,7 +321,7 @@ if(!cell?.use(to_dispense / powerefficiency)) say("Not enough energy to complete operation!") return - holder.add_reagent(reagent, to_dispense, reagtemp = dispensed_temperature) + holder.add_reagent(reagent, to_dispense, reagtemp = dispensed_temperature, added_purity = base_reagent_purity) work_animation() else @@ -359,7 +361,7 @@ if(!cell?.use(to_dispense / powerefficiency)) say("Not enough energy to complete operation!") return - holder.add_reagent(reagent, to_dispense, reagtemp = dispensed_temperature) + holder.add_reagent(reagent, to_dispense, reagtemp = dispensed_temperature, added_purity = base_reagent_purity) work_animation() else recording_recipe[key] += dispense_amount @@ -457,7 +459,7 @@ if(beaker?.reagents) R += beaker.reagents for(var/i in 1 to total) - Q.add_reagent(pick(dispensable_reagents), 10, reagtemp = dispensed_temperature) + Q.add_reagent(pick(dispensable_reagents), 10, reagtemp = dispensed_temperature, added_purity = base_reagent_purity) R += Q chem_splash(get_turf(src), null, 3, R) if(beaker?.reagents) @@ -607,6 +609,7 @@ /datum/reagent/toxin/mindbreaker, /datum/reagent/toxin/staminatoxin ) + base_reagent_purity = 0.5 /obj/machinery/chem_dispenser/drinks/Initialize(mapload) . = ..() diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 2c4cff9c376..5749ac9a62e 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -29,8 +29,8 @@ GLOBAL_LIST_INIT(chem_master_containers, list( /obj/item/reagent_containers/condiment/coldsauce, /obj/item/reagent_containers/condiment/mayonnaise, /obj/item/reagent_containers/condiment/ketchup, - /obj/item/reagent_containers/condiment/quality_oil, - /obj/item/reagent_containers/condiment/cooking_oil, + /obj/item/reagent_containers/condiment/olive_oil, + /obj/item/reagent_containers/condiment/vegetable_oil, /obj/item/reagent_containers/condiment/peanut_butter, /obj/item/reagent_containers/condiment/cherryjelly, /obj/item/reagent_containers/condiment/honey, diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 15929e190cc..d5de6418636 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -192,7 +192,7 @@ to_chat(user, span_notice("You fill [src] to the brim.")) return TRUE - if(!I.grind_results && !I.juice_results) + if(!I.grind_results && !I.juice_typepath) if(user.combat_mode) return ..() else @@ -304,7 +304,7 @@ /obj/machinery/reagentgrinder/proc/stop_operating() operating = FALSE -/obj/machinery/reagentgrinder/proc/juice() +/obj/machinery/reagentgrinder/proc/juice(mob/user) power_change() if(!beaker || machine_stat & (NOPOWER|BROKEN) || beaker.reagents.total_volume >= beaker.reagents.maximum_volume) return @@ -313,14 +313,13 @@ if(beaker.reagents.total_volume >= beaker.reagents.maximum_volume) break var/obj/item/I = i - if(I.juice_results) - juice_item(I) + if(I.juice_typepath) + juice_item(I, user) -/obj/machinery/reagentgrinder/proc/juice_item(obj/item/I) //Juicing results can be found in respective object definitions - if(I.on_juice(src) == -1) +/obj/machinery/reagentgrinder/proc/juice_item(obj/item/I, mob/user) //Juicing results can be found in respective object definitions + if(!I.juice(beaker, user)) to_chat(usr, span_danger("[src] shorts out as it tries to juice up [I], and transfers it back to storage.")) return - beaker.reagents.add_reagent_list(I.juice_results) remove_object(I) /obj/machinery/reagentgrinder/proc/grind(mob/user) @@ -337,12 +336,9 @@ grind_item(i, user) /obj/machinery/reagentgrinder/proc/grind_item(obj/item/I, mob/user) //Grind results can be found in respective object definitions - if(I.on_grind(src) == -1) //Call on_grind() to change amount as needed, and stop grinding the item if it returns -1 + if(!I.grind(beaker, user)) to_chat(usr, span_danger("[src] shorts out as it tries to grind up [I], and transfers it back to storage.")) return - beaker.reagents.add_reagent_list(I.grind_results) - if(I.reagents) - I.reagents.trans_to(beaker, I.reagents.total_volume, transfered_by = user) remove_object(I) /obj/machinery/reagentgrinder/proc/mix(mob/user) @@ -357,16 +353,13 @@ if(beaker?.reagents.total_volume) //Recipe to make Butter var/butter_amt = FLOOR(beaker.reagents.get_reagent_amount(/datum/reagent/consumable/milk) / MILK_TO_BUTTER_COEFF, 1) + var/purity = beaker.reagents.get_reagent_purity(/datum/reagent/consumable/milk) beaker.reagents.remove_reagent(/datum/reagent/consumable/milk, MILK_TO_BUTTER_COEFF * butter_amt) for(var/i in 1 to butter_amt) - new /obj/item/food/butter(drop_location()) + new /obj/item/food/butter(drop_location(), starting_reagent_purity = purity) //Recipe to make Mayonnaise if (beaker.reagents.has_reagent(/datum/reagent/consumable/eggyolk)) - var/amount = beaker.reagents.get_reagent_amount(/datum/reagent/consumable/eggyolk) - beaker.reagents.remove_reagent(/datum/reagent/consumable/eggyolk, amount) - beaker.reagents.add_reagent(/datum/reagent/consumable/mayonnaise, amount) + beaker.reagents.convert_reagent(/datum/reagent/consumable/eggyolk, /datum/reagent/consumable/mayonnaise) //Recipe to make whipped cream if (beaker.reagents.has_reagent(/datum/reagent/consumable/cream)) - var/amount = beaker.reagents.get_reagent_amount(/datum/reagent/consumable/cream) - beaker.reagents.remove_reagent(/datum/reagent/consumable/cream, amount) - beaker.reagents.add_reagent(/datum/reagent/consumable/whipped_cream, amount) + beaker.reagents.convert_reagent(/datum/reagent/consumable/cream, /datum/reagent/consumable/whipped_cream) diff --git a/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm index aacef0822e1..d40ca4fd85b 100644 --- a/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm @@ -41,7 +41,7 @@ /datum/reagent/consumable/ethanol/New(list/data) if(LAZYLEN(data)) - if(data["quality"]) + if(!isnull(data["quality"])) quality = data["quality"] name = "Natural " + name if(data["boozepwr"]) @@ -99,7 +99,7 @@ name = "Beer" description = "An alcoholic beverage brewed since ancient times on Old Earth. Still popular today." color = "#664300" // rgb: 102, 67, 0 - nutriment_factor = 1 * REAGENTS_METABOLISM + nutriment_factor = 1 boozepwr = 25 taste_description = "mild carbonated malt" ph = 4 @@ -193,7 +193,7 @@ name = "Thirteen Loko" description = "A potent mixture of caffeine and alcohol." color = "#102000" // rgb: 16, 32, 0 - nutriment_factor = 1 * REAGENTS_METABOLISM + nutriment_factor = 1 boozepwr = 80 quality = DRINK_GOOD overdose_threshold = 60 @@ -264,7 +264,7 @@ name = "Bilk" description = "This appears to be beer mixed with milk. Disgusting." color = "#895C4C" // rgb: 137, 92, 76 - nutriment_factor = 2 * REAGENTS_METABOLISM + nutriment_factor = 2 boozepwr = 15 taste_description = "desperation and lactate" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -1063,7 +1063,7 @@ name = "Mead" description = "A Viking drink, though a cheap one." color = "#e0c058" // rgb: 224,192,88 - nutriment_factor = 1 * REAGENTS_METABOLISM + nutriment_factor = 1 boozepwr = 30 quality = DRINK_NICE taste_description = "sweet, sweet alcohol" @@ -1195,7 +1195,7 @@ /datum/reagent/consumable/ethanol/driestmartini name = "Driest Martini" description = "Only for the experienced. You think you see sand floating in the glass." - nutriment_factor = 1 * REAGENTS_METABOLISM + nutriment_factor = 1 color = "#2E6671" // rgb: 46, 102, 113 boozepwr = 65 quality = DRINK_GOOD @@ -1205,7 +1205,7 @@ /datum/reagent/consumable/ethanol/bananahonk name = "Banana Honk" description = "A drink from Clown Heaven." - nutriment_factor = 1 * REAGENTS_METABOLISM + nutriment_factor = 1 color = "#FFFF91" // rgb: 255, 255, 140 boozepwr = 60 quality = DRINK_GOOD @@ -1222,7 +1222,7 @@ /datum/reagent/consumable/ethanol/silencer name = "Silencer" description = "A drink from Mime Heaven." - nutriment_factor = 2 * REAGENTS_METABOLISM + nutriment_factor = 2 color = "#a8a8a8" // rgb: 168,168,168 boozepwr = 59 //Proof that clowns are better than mimes right here quality = DRINK_GOOD @@ -1257,7 +1257,7 @@ name = "Hard Cider" description = "Apple juice, for adults." color = "#CD6839" - nutriment_factor = 1 * REAGENTS_METABOLISM + nutriment_factor = 1 boozepwr = 25 taste_description = "the season that falls between summer and winter" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -1449,7 +1449,7 @@ name = "Eggnog" description = "For enjoying the most wonderful time of the year." color = "#fcfdc6" // rgb: 252, 253, 198 - nutriment_factor = 2 * REAGENTS_METABOLISM + nutriment_factor = 2 boozepwr = 1 quality = DRINK_VERYGOOD taste_description = "custard and alcohol" @@ -1606,7 +1606,7 @@ color = "#FF0000" boozepwr = 40 taste_description = "stale bread with a staler aftertaste" - nutriment_factor = 2 * REAGENTS_METABOLISM + nutriment_factor = 2 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED /datum/reagent/consumable/ethanol/squirt_cider/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired) @@ -1630,7 +1630,7 @@ boozepwr = 10 quality = DRINK_GOOD taste_description = "your arteries clogging with sugar" - nutriment_factor = 2 * REAGENTS_METABOLISM + nutriment_factor = 2 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED /datum/reagent/consumable/ethanol/sugar_rush/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired) @@ -1857,7 +1857,7 @@ /datum/reagent/consumable/ethanol/blank_paper name = "Blank Paper" description = "A bubbling glass of blank paper. Just looking at it makes you feel fresh." - nutriment_factor = 1 * REAGENTS_METABOLISM + nutriment_factor = 1 color = "#DCDCDC" // rgb: 220, 220, 220 boozepwr = 20 quality = DRINK_GOOD @@ -2313,7 +2313,7 @@ color = "#FF5B69" quality = DRINK_NICE taste_description = "regret" - nutriment_factor = 3 * REAGENTS_METABOLISM + nutriment_factor = 3 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED /datum/reagent/consumable/ethanol/protein_blend/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired) @@ -2511,7 +2511,7 @@ name = "Plum wine" description = "Plums turned into wine." color = "#8a0421" - nutriment_factor = 1 * REAGENTS_METABOLISM + nutriment_factor = 1 boozepwr = 20 taste_description = "a poet's love and undoing" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED diff --git a/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm index 4fe48c629ef..83aa18eebb5 100644 --- a/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm @@ -165,7 +165,7 @@ /datum/reagent/consumable/potato_juice name = "Potato Juice" description = "Juice of the potato. Bleh." - nutriment_factor = 2 * REAGENTS_METABOLISM + nutriment_factor = 2 color = "#302000" // rgb: 48, 32, 0 taste_description = "irish sadness" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -173,7 +173,7 @@ /datum/reagent/consumable/pickle name = "Pickle Juice" description = "More accurately, this is the brine the pickle was floating in" - nutriment_factor = 2 * REAGENTS_METABOLISM + nutriment_factor = 2 color = "#302000" // rgb: 48, 32, 0 taste_description = "vinegar brine" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -314,7 +314,7 @@ description = "Encourages the patient to go golfing." color = "#FFB766" quality = DRINK_NICE - nutriment_factor = 10 * REAGENTS_METABOLISM + nutriment_factor = 10 taste_description = "bitter tea" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -434,7 +434,7 @@ description = "A delightfully bubbly root beer, filled with so much sugar that it can actually speed up the user's trigger finger." color = "#181008" // rgb: 24, 16, 8 quality = DRINK_VERYGOOD - nutriment_factor = 10 * REAGENTS_METABOLISM + nutriment_factor = 10 metabolization_rate = 2 * REAGENTS_METABOLISM taste_description = "a monstrous sugar rush" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -745,7 +745,7 @@ description = "A cherry flavored milkshake." color = "#FFB6C1" quality = DRINK_VERYGOOD - nutriment_factor = 8 * REAGENTS_METABOLISM + nutriment_factor = 8 taste_description = "creamy tart cherry" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM @@ -755,7 +755,7 @@ description = "An exotic milkshake." color = "#00F1FF" quality = DRINK_VERYGOOD - nutriment_factor = 8 * REAGENTS_METABOLISM + nutriment_factor = 8 taste_description = "creamy blue cherry" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -764,7 +764,7 @@ description = "A vanilla flavored milkshake. The basics are still good." color = "#E9D2B2" quality = DRINK_VERYGOOD - nutriment_factor = 8 * REAGENTS_METABOLISM + nutriment_factor = 8 taste_description = "sweet creamy vanilla" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM @@ -774,7 +774,7 @@ description = "A caramel flavored milkshake. Your teeth hurt looking at it." color = "#E17C00" quality = DRINK_GOOD - nutriment_factor = 10 * REAGENTS_METABOLISM + nutriment_factor = 10 taste_description = "sweet rich creamy caramel" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM @@ -784,7 +784,7 @@ description = "A frosty chocolate milkshake." color = "#541B00" quality = DRINK_VERYGOOD - nutriment_factor = 8 * REAGENTS_METABOLISM + nutriment_factor = 8 taste_description = "sweet creamy chocolate" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM @@ -794,7 +794,7 @@ description = "A strawberry milkshake." color = "#ff7b7b" quality = DRINK_VERYGOOD - nutriment_factor = 8 * REAGENTS_METABOLISM + nutriment_factor = 8 taste_description = "sweet strawberries and milk" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM @@ -804,7 +804,7 @@ description = "A banana milkshake. Stuff that clowns drink at their honkday parties." color = "#f2d554" quality = DRINK_VERYGOOD - nutriment_factor = 8 * REAGENTS_METABOLISM + nutriment_factor = 8 taste_description = "thick banana" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_MEDIUM @@ -814,7 +814,7 @@ description = "A mix of pumpkin juice and coffee." color = "#F4A460" quality = DRINK_VERYGOOD - nutriment_factor = 3 * REAGENTS_METABOLISM + nutriment_factor = 3 taste_description = "creamy pumpkin" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -823,7 +823,7 @@ description = "Ice cream on top of a Dr. Gibb glass." color = "#B22222" quality = DRINK_NICE - nutriment_factor = 3 * REAGENTS_METABOLISM + nutriment_factor = 3 taste_description = "creamy cherry" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -871,7 +871,7 @@ /datum/reagent/consumable/hot_coco name = "Hot Coco" description = "Made with love! And coco beans." - nutriment_factor = 4 * REAGENTS_METABOLISM + nutriment_factor = 4 color = "#403010" // rgb: 64, 48, 16 taste_description = "creamy chocolate" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -888,7 +888,7 @@ /datum/reagent/consumable/italian_coco name = "Italian Hot Chocolate" description = "Made with love! You can just imagine a happy Nonna from the smell." - nutriment_factor = 8 * REAGENTS_METABOLISM + nutriment_factor = 8 color = "#57372A" quality = DRINK_VERYGOOD taste_description = "thick creamy chocolate" diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 0cc3d7beea8..3d9e8c40f82 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -13,8 +13,9 @@ taste_mult = 4 inverse_chem_val = 0.1 inverse_chem = null + creation_purity = 0.5 // 50% pure by default. Below - synthetic food. Above - natural food. /// How much nutrition this reagent supplies - var/nutriment_factor = 1 * REAGENTS_METABOLISM + var/nutriment_factor = 1 /// affects mood, typically higher for mixed drinks with more complex recipes' var/quality = 0 @@ -23,7 +24,7 @@ if(ishuman(M)) var/mob/living/carbon/human/H = M if(!HAS_TRAIT(H, TRAIT_NOHUNGER)) - H.adjust_nutrition(nutriment_factor * REM * seconds_per_tick) + H.adjust_nutrition(get_nutriment_factor() * REM * seconds_per_tick) if(length(reagent_removal_skip_list)) return holder.remove_reagent(type, metabolization_rate * seconds_per_tick) @@ -55,11 +56,14 @@ exposed_mob.add_mood_event("quality_drink", /datum/mood_event/race_drink) // SKYRAT ADDITION END +/datum/reagent/consumable/proc/get_nutriment_factor() + return nutriment_factor * REAGENTS_METABOLISM * (purity * 2) + /datum/reagent/consumable/nutriment name = "Nutriment" description = "All the vitamins, minerals, and carbohydrates the body needs in pure form." reagent_state = SOLID - nutriment_factor = 15 * REAGENTS_METABOLISM + nutriment_factor = 15 color = "#664330" // rgb: 102, 67, 48 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_DEAD_PROCESS @@ -134,9 +138,90 @@ name = "Protein" description = "A natural polyamide made up of amino acids. An essential constituent of mosts known forms of life." brute_heal = 0.8 //Rewards the player for eating a balanced diet. - nutriment_factor = 9 * REAGENTS_METABOLISM //45% as calorie dense as corn oil. + nutriment_factor = 9 //45% as calorie dense as oil. chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/reagent/consumable/nutriment/fat + name = "Fat" + description = "Triglycerides found in vegetable oils and fatty animal tissue." + color = "#f0eed7" + taste_description = "lard" + brute_heal = 0 + burn_heal = 1 + nutriment_factor = 18 // Twice as nutritious compared to protein and carbohydrates + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + var/fry_temperature = 450 //Around ~350 F (117 C) which deep fryers operate around in the real world + +/datum/reagent/consumable/nutriment/fat/expose_obj(obj/exposed_obj, reac_volume) + . = ..() + if(!holder || (holder.chem_temp <= fry_temperature)) + return + if(!isitem(exposed_obj) || HAS_TRAIT(exposed_obj, TRAIT_FOOD_FRIED)) + return + if(is_type_in_typecache(exposed_obj, GLOB.oilfry_blacklisted_items) || (exposed_obj.resistance_flags & INDESTRUCTIBLE)) + exposed_obj.visible_message(span_notice("The hot oil has no effect on [exposed_obj]!")) + return + if(exposed_obj.atom_storage) + exposed_obj.visible_message(span_notice("The hot oil splatters about as [exposed_obj] touches it. It seems too full to cook properly!")) + return + + exposed_obj.visible_message(span_warning("[exposed_obj] rapidly fries as it's splashed with hot oil! Somehow.")) + exposed_obj.AddElement(/datum/element/fried_item, volume) + exposed_obj.reagents.add_reagent(src.type, reac_volume) + +/datum/reagent/consumable/nutriment/fat/expose_mob(mob/living/exposed_mob, methods = TOUCH, reac_volume, show_message = TRUE, touch_protection = 0) + . = ..() + if(!(methods & (VAPOR|TOUCH)) || isnull(holder) || (holder.chem_temp < fry_temperature)) //Directly coats the mob, and doesn't go into their bloodstream + return + + var/burn_damage = ((holder.chem_temp / fry_temperature) * 0.33) //Damage taken per unit + if(methods & TOUCH) + burn_damage *= max(1 - touch_protection, 0) + var/FryLoss = round(min(38, burn_damage * reac_volume)) + if(!HAS_TRAIT(exposed_mob, TRAIT_OIL_FRIED)) + exposed_mob.visible_message(span_warning("The boiling oil sizzles as it covers [exposed_mob]!"), \ + span_userdanger("You're covered in boiling oil!")) + if(FryLoss) + exposed_mob.emote("scream") + playsound(exposed_mob, 'sound/machines/fryer/deep_fryer_emerge.ogg', 25, TRUE) + ADD_TRAIT(exposed_mob, TRAIT_OIL_FRIED, "cooking_oil_react") + addtimer(CALLBACK(exposed_mob, TYPE_PROC_REF(/mob/living, unfry_mob)), 3) + if(FryLoss) + exposed_mob.adjustFireLoss(FryLoss) + +/datum/reagent/consumable/nutriment/fat/expose_turf(turf/open/exposed_turf, reac_volume) + . = ..() + if(!istype(exposed_turf)) + return + exposed_turf.MakeSlippery(TURF_WET_LUBE, min_wet_time = 10 SECONDS, wet_time_to_add = reac_volume*2 SECONDS) + var/obj/effect/hotspot/hotspot = (locate(/obj/effect/hotspot) in exposed_turf) + if(hotspot) + var/datum/gas_mixture/lowertemp = exposed_turf.remove_air(exposed_turf.air.total_moles()) + lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0) + lowertemp.react(src) + exposed_turf.assume_air(lowertemp) + qdel(hotspot) + +/datum/reagent/consumable/nutriment/fat/oil + name = "Vegetable Oil" + description = "A variety of cooking oil derived from plant fats. Used in food preparation and frying." + color = "#EADD6B" //RGB: 234, 221, 107 (based off of canola oil) + taste_mult = 0.8 + taste_description = "oil" + nutriment_factor = 7 //Not very healthy on its own + metabolization_rate = 10 * REAGENTS_METABOLISM + penetrates_skin = NONE + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + default_container = /obj/item/reagent_containers/condiment/vegetable_oil + +/datum/reagent/consumable/nutriment/fat/oil/olive + name = "Olive Oil" + description = "A high quality oil, suitable for dishes where the oil is a key flavour." + taste_description = "olive oil" + color = "#DBCF5C" + nutriment_factor = 10 + default_container = /obj/item/reagent_containers/condiment/olive_oil + /datum/reagent/consumable/nutriment/organ_tissue name = "Organ Tissue" description = "Natural tissues that make up the bulk of organs, providing many vitamins and minerals." @@ -146,7 +231,7 @@ /datum/reagent/consumable/nutriment/cloth_fibers name = "Cloth Fibers" description = "It's not actually a form of nutriment but it does keep Mothpeople going for a short while..." - nutriment_factor = 30 * REAGENTS_METABOLISM + nutriment_factor = 30 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED brute_heal = 0 burn_heal = 0 @@ -175,79 +260,20 @@ current_cycle++ if (HAS_TRAIT(eater, TRAIT_ROCK_EATER) && !HAS_TRAIT(eater, TRAIT_NOHUNGER) && ishuman(eater)) var/mob/living/carbon/human/golem_eater = eater - golem_eater.adjust_nutrition(nutriment_factor * REM * delta_time) + golem_eater.adjust_nutrition(get_nutriment_factor() * REM * delta_time) if(length(reagent_removal_skip_list)) return holder.remove_reagent(type, metabolization_rate * delta_time) -/datum/reagent/consumable/cooking_oil - name = "Cooking Oil" - description = "A variety of cooking oil derived from fat or plants. Used in food preparation and frying." - color = "#EADD6B" //RGB: 234, 221, 107 (based off of canola oil) - taste_mult = 0.8 - taste_description = "oil" - nutriment_factor = 7 * REAGENTS_METABOLISM //Not very healthy on its own - metabolization_rate = 10 * REAGENTS_METABOLISM - penetrates_skin = NONE - var/fry_temperature = 450 //Around ~350 F (117 C) which deep fryers operate around in the real world - chemical_flags = REAGENT_CAN_BE_SYNTHESIZED - default_container = /obj/item/reagent_containers/condiment/cooking_oil - -/datum/reagent/consumable/cooking_oil/expose_obj(obj/exposed_obj, reac_volume) - . = ..() - if(!holder || (holder.chem_temp <= fry_temperature)) - return - if(!isitem(exposed_obj) || HAS_TRAIT(exposed_obj, TRAIT_FOOD_FRIED)) - return - if(is_type_in_typecache(exposed_obj, GLOB.oilfry_blacklisted_items) || (exposed_obj.resistance_flags & INDESTRUCTIBLE)) - exposed_obj.visible_message(span_notice("The hot oil has no effect on [exposed_obj]!")) - return - if(exposed_obj.atom_storage) - exposed_obj.visible_message(span_notice("The hot oil splatters about as [exposed_obj] touches it. It seems too full to cook properly!")) - return - - exposed_obj.visible_message(span_warning("[exposed_obj] rapidly fries as it's splashed with hot oil! Somehow.")) - exposed_obj.AddElement(/datum/element/fried_item, volume) - exposed_obj.reagents.add_reagent(/datum/reagent/consumable/cooking_oil, reac_volume) - -/datum/reagent/consumable/cooking_oil/expose_mob(mob/living/exposed_mob, methods = TOUCH, reac_volume, show_message = TRUE, touch_protection = 0) - . = ..() - if(!(methods & (VAPOR|TOUCH)) || isnull(holder) || (holder.chem_temp < fry_temperature)) //Directly coats the mob, and doesn't go into their bloodstream - return - - var/oil_damage = ((holder.chem_temp / fry_temperature) * 0.33) //Damage taken per unit - if(methods & TOUCH) - oil_damage *= max(1 - touch_protection, 0) - var/FryLoss = round(min(38, oil_damage * reac_volume)) - if(!HAS_TRAIT(exposed_mob, TRAIT_OIL_FRIED)) - exposed_mob.visible_message(span_warning("The boiling oil sizzles as it covers [exposed_mob]!"), \ - span_userdanger("You're covered in boiling oil!")) - if(FryLoss) - exposed_mob.emote("scream") - playsound(exposed_mob, 'sound/machines/fryer/deep_fryer_emerge.ogg', 25, TRUE) - ADD_TRAIT(exposed_mob, TRAIT_OIL_FRIED, "cooking_oil_react") - addtimer(CALLBACK(exposed_mob, TYPE_PROC_REF(/mob/living, unfry_mob)), 3) - if(FryLoss) - exposed_mob.adjustFireLoss(FryLoss) - -/datum/reagent/consumable/cooking_oil/expose_turf(turf/open/exposed_turf, reac_volume) - . = ..() - if(!istype(exposed_turf) || isgroundlessturf(exposed_turf) || (reac_volume < 5)) - return - - exposed_turf.MakeSlippery(TURF_WET_LUBE, min_wet_time = 10 SECONDS, wet_time_to_add = reac_volume * 1.5 SECONDS) - exposed_turf.name = "Deep-fried [initial(exposed_turf.name)]" - exposed_turf.add_atom_colour(color, TEMPORARY_COLOUR_PRIORITY) - /datum/reagent/consumable/sugar name = "Sugar" description = "The organic compound commonly known as table sugar and sometimes called saccharose. This white, odorless, crystalline powder has a pleasing, sweet taste." reagent_state = SOLID color = "#FFFFFF" // rgb: 255, 255, 255 taste_mult = 1.5 // stop sugar drowning out other flavours - nutriment_factor = 10 * REAGENTS_METABOLISM + nutriment_factor = 2 metabolization_rate = 2 * REAGENTS_METABOLISM - overdose_threshold = 200 // Hyperglycaemic shock + overdose_threshold = 100 // Hyperglycaemic shock taste_description = "sweetness" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED default_container = /obj/item/reagent_containers/condiment/sugar @@ -270,7 +296,7 @@ /datum/reagent/consumable/virus_food name = "Virus Food" description = "A mixture of water and milk. Virus cells can use this mixture to reproduce." - nutriment_factor = 2 * REAGENTS_METABOLISM + nutriment_factor = 2 color = "#899613" // rgb: 137, 150, 19 taste_description = "watery milk" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -282,7 +308,7 @@ /datum/reagent/consumable/soysauce name = "Soysauce" description = "A salty sauce made from the soy plant." - nutriment_factor = 2 * REAGENTS_METABOLISM + nutriment_factor = 2 color = "#792300" // rgb: 121, 35, 0 taste_description = "umami" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -291,7 +317,7 @@ /datum/reagent/consumable/ketchup name = "Ketchup" description = "Ketchup, catsup, whatever. It's tomato paste." - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 5 color = "#731008" // rgb: 115, 16, 8 taste_description = "ketchup" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -459,7 +485,7 @@ name = "Coco Powder" description = "A fatty, bitter paste made from coco beans." reagent_state = SOLID - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 5 color = "#302000" // rgb: 48, 32, 0 taste_description = "bitterness" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -528,28 +554,6 @@ . = TRUE ..() -/datum/reagent/consumable/cornoil - name = "Corn Oil" - description = "An oil derived from various types of corn." - nutriment_factor = 20 * REAGENTS_METABOLISM - color = "#302000" // rgb: 48, 32, 0 - taste_description = "slime" - chemical_flags = REAGENT_CAN_BE_SYNTHESIZED - default_container = /obj/item/reagent_containers/condiment/cooking_oil - -/datum/reagent/consumable/cornoil/expose_turf(turf/open/exposed_turf, reac_volume) - . = ..() - if(!istype(exposed_turf)) - return - exposed_turf.MakeSlippery(TURF_WET_LUBE, min_wet_time = 10 SECONDS, wet_time_to_add = reac_volume*2 SECONDS) - var/obj/effect/hotspot/hotspot = (locate(/obj/effect/hotspot) in exposed_turf) - if(hotspot) - var/datum/gas_mixture/lowertemp = exposed_turf.remove_air(exposed_turf.air.total_moles()) - lowertemp.temperature = max( min(lowertemp.temperature-2000,lowertemp.temperature / 2) ,0) - lowertemp.react(src) - exposed_turf.assume_air(lowertemp) - qdel(hotspot) - /datum/reagent/consumable/enzyme name = "Universal Enzyme" description = "A universal enzyme used in the preparation of certain chemicals and foods." @@ -570,7 +574,7 @@ /datum/reagent/consumable/hot_ramen name = "Hot Ramen" description = "The noodles are boiled, the flavors are artificial, just like being back in school." - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 5 color = "#302000" // rgb: 48, 32, 0 taste_description = "wet and cheap noodles" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -579,7 +583,7 @@ /datum/reagent/consumable/nutraslop name = "Nutraslop" description = "Mixture of leftover prison foods served on previous days." - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 5 color = "#3E4A00" // rgb: 62, 74, 0 taste_description = "your imprisonment" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -591,7 +595,7 @@ /datum/reagent/consumable/hell_ramen name = "Hell Ramen" description = "The noodles are boiled, the flavors are artificial, just like being back in school." - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 5 color = "#302000" // rgb: 48, 32, 0 taste_description = "wet and cheap noodles on fire" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -621,7 +625,7 @@ /datum/reagent/consumable/cherryjelly name = "Cherry Jelly" description = "Totally the best. Only to be spread on foods with excellent lateral symmetry." - nutriment_factor = 10 * REAGENTS_METABOLISM + nutriment_factor = 10 color = "#801E28" // rgb: 128, 30, 40 taste_description = "cherry" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -637,7 +641,7 @@ name = "Rice" description = "tiny nutritious grains" reagent_state = SOLID - nutriment_factor = 3 * REAGENTS_METABOLISM + nutriment_factor = 3 color = "#FFFFFF" // rgb: 0, 0, 0 taste_description = "rice" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -647,7 +651,7 @@ name = "Vanilla Powder" description = "A fatty, bitter paste made from vanilla pods." reagent_state = SOLID - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 5 color = "#FFFACD" taste_description = "vanilla" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -655,7 +659,7 @@ /datum/reagent/consumable/eggyolk name = "Egg Yolk" description = "It's full of protein." - nutriment_factor = 4 * REAGENTS_METABOLISM + nutriment_factor = 8 color = "#FFB500" taste_description = "egg" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -663,7 +667,7 @@ /datum/reagent/consumable/eggwhite name = "Egg White" description = "It's full of even more protein." - nutriment_factor = 1.5 * REAGENTS_METABOLISM + nutriment_factor = 4 color = "#fffdf7" taste_description = "bland egg" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -690,7 +694,7 @@ name = "Honey" description = "Sweet sweet honey that decays into sugar. Has antibacterial and natural healing properties." color = "#d3a308" - nutriment_factor = 15 * REAGENTS_METABOLISM + nutriment_factor = 15 metabolization_rate = 1 * REAGENTS_METABOLISM taste_description = "sweetness" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -749,13 +753,13 @@ name = "Stabilized Nutriment" description = "A bioengineered protien-nutrient structure designed to decompose in high saturation. In layman's terms, it won't get you fat." reagent_state = SOLID - nutriment_factor = 15 * REAGENTS_METABOLISM + nutriment_factor = 15 color = "#664330" // rgb: 102, 67, 48 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED /datum/reagent/consumable/nutriment/stabilized/on_mob_life(mob/living/carbon/M, seconds_per_tick, times_fired) if(M.nutrition > NUTRITION_LEVEL_FULL - 25) - M.adjust_nutrition(-3 * REM * nutriment_factor * seconds_per_tick) + M.adjust_nutrition(-3 * REM * get_nutriment_factor() * seconds_per_tick) ..() ////Lavaland Flora Reagents//// @@ -812,7 +816,7 @@ name = "Vitrium Froth" description = "A bubbly paste that heals wounds of the skin." color = "#d3a308" - nutriment_factor = 3 * REAGENTS_METABOLISM + nutriment_factor = 3 taste_description = "fruity mushroom" ph = 10.4 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -827,7 +831,7 @@ /datum/reagent/consumable/liquidelectricity name = "Liquid Electricity" description = "The blood of Ethereals, and the stuff that keeps them going. Great for them, horrid for anyone else." - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 5 color = "#97ee63" taste_description = "pure electricity" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -874,7 +878,7 @@ /datum/reagent/consumable/secretsauce name = "Secret Sauce" description = "What could it be?" - nutriment_factor = 2 * REAGENTS_METABOLISM + nutriment_factor = 2 color = "#792300" taste_description = "indescribable" quality = FOOD_AMAZING @@ -886,7 +890,7 @@ color = "#BBD4D9" taste_description = "mint frosting" description = "These restorative peptides not only speed up wound healing, but are nutritious as well!" - nutriment_factor = 10 * REAGENTS_METABOLISM // 33% less than nutriment to reduce weight gain + nutriment_factor = 10 // 33% less than nutriment to reduce weight gain brute_heal = 3 burn_heal = 1 inverse_chem = /datum/reagent/peptides_failed//should be impossible, but it's so it appears in the chemical lookup gui @@ -896,7 +900,7 @@ /datum/reagent/consumable/caramel name = "Caramel" description = "Who would have guessed that heated sugar could be so delicious?" - nutriment_factor = 10 * REAGENTS_METABOLISM + nutriment_factor = 10 color = "#D98736" taste_mult = 2 taste_description = "caramel" @@ -907,7 +911,7 @@ name = "Char" description = "Essence of the grill. Has strange properties when overdosed." reagent_state = LIQUID - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 5 color = "#C8C8C8" taste_mult = 6 taste_description = "smoke" @@ -923,7 +927,7 @@ /datum/reagent/consumable/bbqsauce name = "BBQ Sauce" description = "Sweet, smoky, savory, and gets everywhere. Perfect for grilling." - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 5 color = "#78280A" // rgb: 120 40, 10 taste_mult = 2.5 //sugar's 1.5, capsacin's 1.5, so a good middle ground. taste_description = "smokey sweetness" @@ -935,7 +939,7 @@ description = "A great dessert for chocolate lovers." color = "#800000" quality = DRINK_VERYGOOD - nutriment_factor = 4 * REAGENTS_METABOLISM + nutriment_factor = 4 taste_description = "sweet chocolate" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED glass_price = DRINK_PRICE_EASY @@ -952,7 +956,7 @@ description = "A great dessert for vanilla lovers." color = "#FAFAD2" quality = DRINK_VERYGOOD - nutriment_factor = 4 * REAGENTS_METABOLISM + nutriment_factor = 4 taste_description = "sweet vanilla" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -967,7 +971,7 @@ name = "Laughin' Syrup" description = "The product of juicing Laughin' Peas. Fizzy, and seems to change flavour based on what it's used with!" color = "#803280" - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 5 taste_mult = 2 taste_description = "fizzy sweetness" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -1005,7 +1009,7 @@ name = "Korta Nectar" description = "A sweet, sugary syrup made from crushed sweet korta nuts." color = "#d3a308" - nutriment_factor = 5 * REAGENTS_METABOLISM + nutriment_factor = 5 metabolization_rate = 1 * REAGENTS_METABOLISM taste_description = "peppery sweetness" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -1014,7 +1018,7 @@ name = "Whipped Cream" description = "A white fluffy cream made from whipping cream at intense speed." color = "#efeff0" - nutriment_factor = 4 * REAGENTS_METABOLISM + nutriment_factor = 4 taste_description = "fluffy sweet cream" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED @@ -1024,7 +1028,7 @@ taste_description = "peanuts" reagent_state = SOLID color = "#D9A066" - nutriment_factor = 15 * REAGENTS_METABOLISM + nutriment_factor = 15 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED default_container = /obj/item/reagent_containers/condiment/peanut_butter @@ -1042,15 +1046,6 @@ chemical_flags = REAGENT_CAN_BE_SYNTHESIZED default_container = /obj/item/reagent_containers/condiment/vinegar -//A better oil, representing choices like olive oil, argan oil, avocado oil, etc. -/datum/reagent/consumable/quality_oil - name = "Quality Oil" - description = "A high quality oil, suitable for dishes where the oil is a key flavour." - taste_description = "olive oil" - color = "#DBCF5C" - chemical_flags = REAGENT_CAN_BE_SYNTHESIZED - default_container = /obj/item/reagent_containers/condiment/quality_oil - /datum/reagent/consumable/cornmeal name = "Cornmeal" description = "Ground cornmeal, for making corn related things." @@ -1064,7 +1059,7 @@ description = "Creamy natural yoghurt, with applications in both food and drinks." taste_description = "yoghurt" color = "#efeff0" - nutriment_factor = 2 * REAGENTS_METABOLISM + nutriment_factor = 2 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED default_container = /obj/item/reagent_containers/condiment/yoghurt @@ -1087,7 +1082,7 @@ description = "Powdered milk for cheap coffee. How delightful." taste_description = "milk" color = "#efeff0" - nutriment_factor = 1.5 * REAGENTS_METABOLISM + nutriment_factor = 1.5 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED default_container = /obj/item/reagent_containers/condiment/creamer diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index e657ae7df21..54fa4391790 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -131,7 +131,7 @@ color = "#CC4633" description = "You don't even want to think about what's in here." taste_description = "gross iron" - nutriment_factor = 2 * REAGENTS_METABOLISM + nutriment_factor = 2 material = /datum/material/meat ph = 7.45 chemical_flags = REAGENT_CAN_BE_SYNTHESIZED diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index 9248c22dbe9..1c77ff5f6c1 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -16,7 +16,7 @@ /datum/chemical_reaction/spraytan2 results = list(/datum/reagent/spraytan = 2) - required_reagents = list(/datum/reagent/consumable/orangejuice = 1, /datum/reagent/consumable/cornoil = 1) + required_reagents = list(/datum/reagent/consumable/orangejuice = 1, /datum/reagent/consumable/nutriment/fat/oil = 1) reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER /datum/chemical_reaction/impedrezene @@ -31,7 +31,7 @@ /datum/chemical_reaction/glycerol results = list(/datum/reagent/glycerol = 1) - required_reagents = list(/datum/reagent/consumable/cornoil = 3, /datum/reagent/toxin/acid = 1) + required_reagents = list(/datum/reagent/consumable/nutriment/fat/oil = 3, /datum/reagent/toxin/acid = 1) reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_EXPLOSIVE /datum/chemical_reaction/sodiumchloride diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index b39eee137c1..6b5ddfc14e3 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -383,8 +383,8 @@ explosion(holder.my_atom, devastation_range = 1, heavy_impact_range = 3, light_impact_range = 6, explosion_cause = src) -/datum/chemical_reaction/slime/slimecornoil - results = list(/datum/reagent/consumable/cornoil = 10) +/datum/chemical_reaction/slime/slimeoil + results = list(/datum/reagent/consumable/nutriment/fat/oil = 10) required_reagents = list(/datum/reagent/blood = 1) required_container = /obj/item/slime_extract/oil diff --git a/code/modules/reagents/reagent_containers/condiment.dm b/code/modules/reagents/reagent_containers/condiment.dm index 18a89f76a73..a5ea964172f 100644 --- a/code/modules/reagents/reagent_containers/condiment.dm +++ b/code/modules/reagents/reagent_containers/condiment.dm @@ -275,18 +275,18 @@ list_reagents = list(/datum/reagent/consumable/vinegar = 50) fill_icon_thresholds = null -/obj/item/reagent_containers/condiment/cooking_oil +/obj/item/reagent_containers/condiment/vegetable_oil name = "cooking oil" desc = "For all your deep-frying needs." icon_state = "cooking_oil" - list_reagents = list(/datum/reagent/consumable/cooking_oil = 50) + list_reagents = list(/datum/reagent/consumable/nutriment/fat/oil = 50) fill_icon_thresholds = null -/obj/item/reagent_containers/condiment/quality_oil +/obj/item/reagent_containers/condiment/olive_oil name = "quality oil" desc = "For the fancy chef inside everyone." icon_state = "oliveoil" - list_reagents = list(/datum/reagent/consumable/quality_oil = 50) + list_reagents = list(/datum/reagent/consumable/nutriment/fat/oil/olive = 50) fill_icon_thresholds = null /obj/item/reagent_containers/condiment/yoghurt @@ -420,7 +420,7 @@ /datum/reagent/consumable/frostoil = list("condi_frostoil", "Coldsauce", "Leaves the tongue numb in its passage"), /datum/reagent/consumable/salt = list("condi_salt", "Salt Shaker", "Salt. From space oceans, presumably"), /datum/reagent/consumable/blackpepper = list("condi_pepper", "Pepper Mill", "Often used to flavor food or make people sneeze"), - /datum/reagent/consumable/cornoil = list("condi_cornoil", "Corn Oil", "A delicious oil used in cooking. Made from corn"), + /datum/reagent/consumable/nutriment/fat/oil = list("condi_cornoil", "Vegetable Oil", "A delicious oil used in cooking."), /datum/reagent/consumable/sugar = list("condi_sugar", "Sugar", "Tasty spacey sugar!"), /datum/reagent/consumable/astrotame = list("condi_astrotame", "Astrotame", "The sweetness of a thousand sugars but none of the calories."), /datum/reagent/consumable/bbqsauce = list("condi_bbq", "BBQ sauce", "Hand wipes not included."), diff --git a/code/modules/reagents/reagent_containers/cups/_cup.dm b/code/modules/reagents/reagent_containers/cups/_cup.dm index c65bfe88090..f6b2a0fb323 100644 --- a/code/modules/reagents/reagent_containers/cups/_cup.dm +++ b/code/modules/reagents/reagent_containers/cups/_cup.dm @@ -515,36 +515,10 @@ if(do_after(user, 25, target = src)) user.adjustStaminaLoss(40) switch(picked_option) - if("Juice") //prioritize juicing - if(grinded.juice_results) - grinded.on_juice() - reagents.add_reagent_list(grinded.juice_results) - to_chat(user, span_notice("You juice [grinded] into a fine liquid.")) - QDEL_NULL(grinded) - return - else - grinded.on_grind() - reagents.add_reagent_list(grinded.grind_results) - if(grinded.reagents) //If grinded item has reagents within, transfer them to the mortar - grinded.reagents.trans_to(src, grinded.reagents.total_volume, transfered_by = user) - to_chat(user, span_notice("You try to juice [grinded] but there is no liquids in it. Instead you get nice powder.")) - QDEL_NULL(grinded) - return + if("Juice") + return juice_item(grinded, user) if("Grind") - if(grinded.grind_results) - grinded.on_grind() - reagents.add_reagent_list(grinded.grind_results) - if(grinded.reagents) //If grinded item has reagents within, transfer them to the mortar - grinded.reagents.trans_to(src, grinded.reagents.total_volume, transfered_by = user) - to_chat(user, span_notice("You break [grinded] into powder.")) - QDEL_NULL(grinded) - return - else - grinded.on_juice() - reagents.add_reagent_list(grinded.juice_results) - to_chat(user, span_notice("You try to grind [grinded] but it almost instantly turns into a fine liquid.")) - QDEL_NULL(grinded) - return + return grind_item(grinded, user) else to_chat(user, span_notice("You try to grind the mortar itself instead of [grinded]. You failed.")) return @@ -555,12 +529,28 @@ if(grinded) to_chat(user, span_warning("There is something inside already!")) return - if(I.juice_results || I.grind_results) + if(I.juice_typepath || I.grind_results) I.forceMove(src) grinded = I return to_chat(user, span_warning("You can't grind this!")) +/obj/item/reagent_containers/cup/mortar/proc/grind_item(obj/item/item, mob/living/carbon/human/user) + if(!item.grind(src, user)) + to_chat(user, span_notice("You fail to grind [item].")) + return + to_chat(user, span_notice("You grind [item] into a nice powder.")) + grinded = null + QDEL_NULL(item) + +/obj/item/reagent_containers/cup/mortar/proc/juice_item(obj/item/item, mob/living/carbon/human/user) + if(!item.juice(src, user)) + to_chat(user, span_notice("You fail to juice [item].")) + return + to_chat(user, span_notice("You juice [item] into a fine liquid.")) + grinded = null + QDEL_NULL(item) + //Coffeepots: for reference, a standard cup is 30u, to allow 20u for sugar/sweetener/milk/creamer /obj/item/reagent_containers/cup/coffeepot name = "coffeepot" diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 60f79d3615b..40a41c6f033 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -397,7 +397,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/reagent_dispensers/wall/virusfood, 30 desc = "A huge metal vat with a tap on the front. Filled with cooking oil for use in frying food." icon_state = "vat" anchored = TRUE - reagent_id = /datum/reagent/consumable/cooking_oil + reagent_id = /datum/reagent/consumable/nutriment/fat/oil openable = TRUE /obj/structure/reagent_dispensers/servingdish diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm index 9d3b442773e..f07ef21a8e7 100644 --- a/code/modules/research/designs/biogenerator_designs.dm +++ b/code/modules/research/designs/biogenerator_designs.dm @@ -3,7 +3,7 @@ /////////////////////////////////// /datum/design/milk - name = "Milk" + name = "Synthetic Milk" id = "milk" build_type = BIOGENERATOR materials = list(/datum/material/biomass = 0.4) @@ -11,7 +11,7 @@ category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD) /datum/design/soymilk - name = "Soy Milk" + name = "Synthetic Soy Milk" id = "soymilk" build_type = BIOGENERATOR materials = list(/datum/material/biomass = 0.4) @@ -19,7 +19,7 @@ category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD) /datum/design/ethanol - name = "Ethanol" + name = "Synthetic Ethanol" id = "ethanol" build_type = BIOGENERATOR materials = list(/datum/material/biomass = 0.6) @@ -27,7 +27,7 @@ category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD) /datum/design/cream - name = "Cream" + name = "Synthetic Cream" id = "cream" build_type = BIOGENERATOR materials = list(/datum/material/biomass = 0.6) @@ -35,7 +35,7 @@ category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD) /datum/design/black_pepper - name = "Black Pepper" + name = "Synthetic Black Pepper" id = "black_pepper" build_type = BIOGENERATOR materials = list(/datum/material/biomass = 0.6) @@ -43,7 +43,7 @@ category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD) /datum/design/enzyme - name = "Universal Enzyme" + name = "Synthetic Enzyme" id = "enzyme" build_type = BIOGENERATOR materials = list(/datum/material/biomass = 0.6) @@ -51,7 +51,7 @@ category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD) /datum/design/flour - name = "Flour" + name = "Synthetic Flour" id = "flour_sack" build_type = BIOGENERATOR materials = list(/datum/material/biomass = 0.6) @@ -59,7 +59,7 @@ category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD) /datum/design/sugar - name = "Sugar" + name = "Synthetic Sugar" id = "sugar" build_type = BIOGENERATOR materials = list(/datum/material/biomass = 0.6) @@ -70,7 +70,7 @@ name = "Monkey Cube" id = "mcube" build_type = BIOGENERATOR - materials = list(/datum/material/biomass =SMALL_MATERIAL_AMOUNT*0.5) + materials = list(/datum/material/biomass = 50) build_path = /obj/item/food/monkeycube category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_FOOD) diff --git a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm index 1210e5527eb..bec3092d8ea 100644 --- a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm +++ b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/common.dm @@ -10,11 +10,10 @@ supplementary_reagents = list( /datum/reagent/growthserum = 2, /datum/reagent/consumable/liquidgibs = 2, - /datum/reagent/consumable/cornoil = 2, /datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/sugar = 1, - /datum/reagent/consumable/cooking_oil = 1, + /datum/reagent/consumable/nutriment/fat/oil = 2, /datum/reagent/consumable/rice = 1, /datum/reagent/consumable/eggyolk = 1) @@ -176,9 +175,8 @@ /datum/reagent/consumable/nutriment) supplementary_reagents = list( - /datum/reagent/consumable/cornoil = 4, //Carp are oily fish + /datum/reagent/consumable/nutriment/fat/oil = 4, //Carp are oily fish /datum/reagent/toxin/carpotoxin = 3, - /datum/reagent/consumable/cooking_oil = 2, /datum/reagent/consumable/nutriment/vitamin = 2) suppressive_reagents = list( @@ -197,10 +195,9 @@ /datum/reagent/consumable/nutriment) supplementary_reagents = list( - /datum/reagent/consumable/cornoil = 4, + /datum/reagent/consumable/nutriment/fat/oil = 4, /datum/reagent/growthserum = 3, /datum/reagent/toxin/carpotoxin = 2, - /datum/reagent/consumable/cooking_oil = 2, /datum/reagent/consumable/nutriment/vitamin = 2) suppressive_reagents = list( @@ -526,8 +523,7 @@ /datum/reagent/consumable/vanillapudding = 8, /datum/reagent/growthserum = 6, /datum/reagent/consumable/nutriment/peptides = 4, - /datum/reagent/consumable/cornoil = 3, - /datum/reagent/consumable/cooking_oil = 1, + /datum/reagent/consumable/nutriment/fat/oil = 3, /datum/reagent/consumable/space_cola = 1) suppressive_reagents = list( diff --git a/code/modules/unit_tests/hydroponics_harvest.dm b/code/modules/unit_tests/hydroponics_harvest.dm index fefd8839cd2..8ff72c40b06 100644 --- a/code/modules/unit_tests/hydroponics_harvest.dm +++ b/code/modules/unit_tests/hydroponics_harvest.dm @@ -39,7 +39,7 @@ // Apples should harvest 10 apples with 10u nutrients and 4u vitamins. test_seed(hydroponics_tray, planted_food_seed, human) - // Sunflowers should harvest 10 sunflowers with 4u nutriment and 0u vitamins. It should also have 8u corn oil. + // Sunflowers should harvest 10 sunflowers with 4u nutriment and 0u vitamins. It should also have 8u oil. test_seed(hydroponics_tray, planted_not_food_seed, human) // Redbeets should harvest 5 beets (10 / 2) with 10u nutriments (5 x 2) and 10u vitamins (5 x 2) thanks to densified chemicals. test_seed(hydroponics_tray, planted_densified_seed, human) diff --git a/icons/hud/screen_alert.dmi b/icons/hud/screen_alert.dmi index 7a1f40d6fcd..944337b18e5 100755 Binary files a/icons/hud/screen_alert.dmi and b/icons/hud/screen_alert.dmi differ diff --git a/modular_skyrat/modules/basic_mobs/code/bananaspider.dm b/modular_skyrat/modules/basic_mobs/code/bananaspider.dm index 0900f7a1a74..6e3a7e26dcd 100644 --- a/modular_skyrat/modules/basic_mobs/code/bananaspider.dm +++ b/modular_skyrat/modules/basic_mobs/code/bananaspider.dm @@ -42,7 +42,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/vitamin = 2) foodtypes = GORE | MEAT | RAW grind_results = list(/datum/reagent/blood = 20, /datum/reagent/consumable/liquidgibs = 5) - juice_results = list(/datum/reagent/consumable/banana = 10) + juice_typepath = /datum/reagent/consumable/banana /obj/item/food/deadbanana_spider/Initialize(mapload) diff --git a/modular_skyrat/modules/cargo/code/packs.dm b/modular_skyrat/modules/cargo/code/packs.dm index 48cb5693967..5da7ac90af4 100644 --- a/modular_skyrat/modules/cargo/code/packs.dm +++ b/modular_skyrat/modules/cargo/code/packs.dm @@ -438,8 +438,8 @@ desc = "Chef slop boring? Have high-maintenance crewmembers that with wings? Maybe you just want to revel in the sinful delight that are Cheese Curds? The Finest of our trade union has made the pack for you, containing a mix of fine oils, vinegar, and exceptionally rare ingredients." cost = CARGO_CRATE_VALUE * 5 contains = list( - /obj/item/reagent_containers/condiment/quality_oil, - /obj/item/reagent_containers/condiment/quality_oil, + /obj/item/reagent_containers/condiment/olive_oil, + /obj/item/reagent_containers/condiment/olive_oil, /obj/item/reagent_containers/condiment/vinegar, /obj/item/reagent_containers/condiment/vinegar, /obj/item/food/canned/tomatoes, @@ -459,16 +459,16 @@ desc = "Normal cooking oil not cutting it? Chef throw all the quality stuff in the frier because they thought it was funny? Well, We got you covered, Introducing a bulk pack of Ten (10) bottles of our finest oils, blended for the perfect taste in cold recipes, and a resistance for going acrid when cooking." cost = CARGO_CRATE_VALUE * 9 contains = list( - /obj/item/reagent_containers/condiment/quality_oil, - /obj/item/reagent_containers/condiment/quality_oil, - /obj/item/reagent_containers/condiment/quality_oil, - /obj/item/reagent_containers/condiment/quality_oil, - /obj/item/reagent_containers/condiment/quality_oil, - /obj/item/reagent_containers/condiment/quality_oil, - /obj/item/reagent_containers/condiment/quality_oil, - /obj/item/reagent_containers/condiment/quality_oil, - /obj/item/reagent_containers/condiment/quality_oil, - /obj/item/reagent_containers/condiment/quality_oil, + /obj/item/reagent_containers/condiment/olive_oil, + /obj/item/reagent_containers/condiment/olive_oil, + /obj/item/reagent_containers/condiment/olive_oil, + /obj/item/reagent_containers/condiment/olive_oil, + /obj/item/reagent_containers/condiment/olive_oil, + /obj/item/reagent_containers/condiment/olive_oil, + /obj/item/reagent_containers/condiment/olive_oil, + /obj/item/reagent_containers/condiment/olive_oil, + /obj/item/reagent_containers/condiment/olive_oil, + /obj/item/reagent_containers/condiment/olive_oil, ) crate_name = "bulk quality oil pack" crate_type = /obj/structure/closet/crate/freezer diff --git a/modular_skyrat/modules/customization/modules/food_and_drinks/food/hemophage_food.dm b/modular_skyrat/modules/customization/modules/food_and_drinks/food/hemophage_food.dm index df3ef78eba4..970b9eb5710 100644 --- a/modular_skyrat/modules/customization/modules/food_and_drinks/food/hemophage_food.dm +++ b/modular_skyrat/modules/customization/modules/food_and_drinks/food/hemophage_food.dm @@ -4,7 +4,6 @@ icon = 'modular_skyrat/master_files/icons/obj/food/hemophage_food.dmi' foodtypes = GORE | BLOODY - /obj/item/food/hemophage/blood_rice_pearl name = "kessen shinju" desc = "A fun finger food. Little clumps of sticky rice with a bit of ground pork and green onion, all soaked and rolled in fresh blood; giving it a crimson hue. Recommended to serve hot!" @@ -15,7 +14,7 @@ ) tastes = list("rice" = 3, "blood" = 5) foodtypes = GRAIN | GORE | BLOODY - + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/hemophage/blood_rice_pearl/raw name = "uncooked blood rice" @@ -29,11 +28,11 @@ tastes = list("raw rice" = 3, "blood" = 5) color = "#810000" foodtypes = GRAIN | GORE | BLOODY | RAW + crafting_complexity = FOOD_COMPLEXITY_0 /obj/item/food/hemophage/blood_rice_pearl/raw/make_microwaveable() AddElement(/datum/element/microwavable, /obj/item/food/hemophage/blood_rice_pearl) - /obj/item/food/hemophage/blood_noodles name = "boiled blood noodles" desc = "A plain dish of blood-soaked noodles, it would probably be better with more ingredients." @@ -46,7 +45,7 @@ ) tastes = list("blood" = 5, "pasta" = 1) foodtypes = GRAIN | GORE | BLOODY - + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/hemophage/blood_noodles/raw name = "raw blood noodles" @@ -58,11 +57,11 @@ ) tastes = list("blood" = 5, "raw pasta" = 1) foodtypes = GRAIN | GORE | BLOODY | RAW + crafting_complexity = FOOD_COMPLEXITY_0 /obj/item/food/hemophage/blood_noodles/raw/make_microwaveable() AddElement(/datum/element/microwavable, /obj/item/food/hemophage/blood_noodles) - /obj/item/food/hemophage/blood_noodles/boat_noodles name = "boat noodles" desc = "A dish with normally made with a very strong combination of pork and beef; the main attraction in this meatless version being the combination of blood curds and curly noodles, seasoned and immersed in fresh blood to the point they've turned crimson. It reeks of iron." @@ -76,7 +75,7 @@ ) tastes = list("blood" = 5, "congealed blood" = 3, "pasta" = 1) foodtypes = GRAIN | GORE | BLOODY - + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/hemophage/blood_curd name = "blood curd" @@ -88,7 +87,7 @@ ) tastes = list("congealed blood" = 1) foodtypes = GORE | BLOODY | RAW - + crafting_complexity = FOOD_COMPLEXITY_0 /obj/item/food/hemophage/blood_cake name = "ti hoeh koe" @@ -101,7 +100,7 @@ ) tastes = list("blood" = 5, "crunchy rice" = 2, "peanut butter" = 2) foodtypes = GRAIN | GORE | BLOODY | SUGAR | NUTS - + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/soup/hemophage/blood_soup name = "dinuguan" @@ -115,3 +114,4 @@ ) tastes = list("blood" = 5, "congealed blood" = 2, "chili" = 3, "vinegar" = 1, "garlic" = 1) foodtypes = GORE | BLOODY | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_4 diff --git a/modular_skyrat/modules/customization/modules/food_and_drinks/food/scottish.dm b/modular_skyrat/modules/customization/modules/food_and_drinks/food/scottish.dm index 12532d1951f..9a26ebee5d2 100644 --- a/modular_skyrat/modules/customization/modules/food_and_drinks/food/scottish.dm +++ b/modular_skyrat/modules/customization/modules/food_and_drinks/food/scottish.dm @@ -4,10 +4,11 @@ icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' icon_state = "haggis" food_reagents = list( - /datum/reagent/consumable/nutriment = 50, + /datum/reagent/consumable/nutriment = 50, /datum/reagent/consumable/nutriment/vitamin = 25 ) foodtypes = MEAT | GRAIN + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/snacks/store/bread/haggis/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/snacks/breadslice/haggis, 5, 30, screentip_verb = "Slice") @@ -18,10 +19,11 @@ icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' icon_state = "haggis_chunk" food_reagents = list( - /datum/reagent/consumable/nutriment = 10, + /datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 5 ) foodtypes = MEAT | GRAIN + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/snacks/neep_tatty_haggis @@ -30,11 +32,12 @@ icon_state = "neep_tatty_haggis" icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' food_reagents = list( - /datum/reagent/consumable/nutriment = 20, - /datum/reagent/consumable/nutriment/vitamin = 10, + /datum/reagent/consumable/nutriment = 20, + /datum/reagent/consumable/nutriment/vitamin = 10, /datum/reagent/iron = 10 ) foodtypes = GRAIN | VEGETABLES | MEAT + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/raw_sausage/battered name = "raw battered sausage" @@ -42,11 +45,12 @@ icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' icon_state = "batteredsausage" food_reagents = list( - /datum/reagent/consumable/nutriment/protein = 5, - /datum/reagent/consumable/nutriment/vitamin = 2, + /datum/reagent/consumable/nutriment/protein = 5, + /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/ethanol/beerbatter = 5 ) - + crafting_complexity = FOOD_COMPLEXITY_1 + /obj/item/food/raw_sausage/battered/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/sausage/battered, rand(60 SECONDS, 75 SECONDS), TRUE) @@ -57,11 +61,12 @@ icon_state = "grilled_batteredsausage" food_reagents = list( /datum/reagent/consumable/nutriment/protein = 5, - /datum/reagent/consumable/nutriment/vitamin = 2, - /datum/reagent/consumable/nutriment = 2, - /datum/reagent/consumable/cooking_oil = 2 + /datum/reagent/consumable/nutriment/vitamin = 2, + /datum/reagent/consumable/nutriment = 2, + /datum/reagent/consumable/nutriment/fat/oil = 2 ) foodtypes = MEAT | BREAKFAST | FRIED + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/sausage/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/salami, 6, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") @@ -72,8 +77,9 @@ icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' icon_state = "shortbread" food_reagents = list( - /datum/reagent/consumable/nutriment = 6, + /datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/sugar = 6 ) tastes = list("sugary dough" = 1) foodtypes = GRAIN | JUNKFOOD | SUGAR + crafting_complexity = FOOD_COMPLEXITY_2 diff --git a/modular_skyrat/modules/customization/modules/food_and_drinks/food/teshari_food.dm b/modular_skyrat/modules/customization/modules/food_and_drinks/food/teshari_food.dm index 69c251509db..228916b4869 100644 --- a/modular_skyrat/modules/customization/modules/food_and_drinks/food/teshari_food.dm +++ b/modular_skyrat/modules/customization/modules/food_and_drinks/food/teshari_food.dm @@ -7,6 +7,7 @@ w_class = WEIGHT_CLASS_SMALL tastes = list("minty dough" = 1) foodtypes = VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/piru_dough/make_processable() AddElement(/datum/element/processable, TOOL_ROLLINGPIN, /obj/item/food/flat_piru_dough, 1, 3 SECONDS, table_required = TRUE, screentip_verb = "Flatten") @@ -27,6 +28,7 @@ foodtypes = VEGETABLES w_class = WEIGHT_CLASS_SMALL burns_on_grill = TRUE + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/piru_loaf/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/breadslice/piru, 4, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") @@ -39,6 +41,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 5) tastes = list("minty bread" = 1) foodtypes = VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/flat_piru_dough name = "flattened piru dough" @@ -48,6 +51,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 6) tastes = list("minty dough" = 1) foodtypes = VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/flat_piru_dough/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/piru_pasta, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") @@ -67,6 +71,7 @@ tastes = list("minty flatbread" = 1) foodtypes = VEGETABLES burns_on_grill = TRUE + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/piru_pasta name = "piru pasta" @@ -77,6 +82,7 @@ w_class = WEIGHT_CLASS_SMALL tastes = list("minty pasta" = 1) foodtypes = VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/baked_kiri name = "baked kiri fruit" @@ -84,13 +90,14 @@ icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' icon_state = "baked_kiri" food_reagents = list( - /datum/reagent/consumable/nutriment = 6, + /datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/kiri_jelly = 6 ) burns_in_oven = TRUE w_class = WEIGHT_CLASS_SMALL tastes = list("crispy sweetness" = 1, "caramelized jelly" = 1) foodtypes = FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/baked_muli name = "baked muli pod" @@ -98,14 +105,15 @@ icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' icon_state = "baked_muli" food_reagents = list( - /datum/reagent/consumable/nutriment = 4, - /datum/reagent/consumable/nutriment/vitamin = 4, + /datum/reagent/consumable/nutriment = 4, + /datum/reagent/consumable/nutriment/vitamin = 4, /datum/reagent/consumable/muli_juice = 4 ) burns_in_oven = TRUE w_class = WEIGHT_CLASS_SMALL tastes = list("zesty mintyness" = 1) foodtypes = VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/spiced_jerky name = "spiced jerky" @@ -113,12 +121,13 @@ icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' icon_state = "spiced_jerky" food_reagents = list( - /datum/reagent/consumable/nutriment = 8, + /datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/protein = 6 ) w_class = WEIGHT_CLASS_SMALL tastes = list("tough, spicy jerky" = 1) foodtypes = MEAT + crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/sirisai_wrap name = "sirisai wrap" @@ -126,13 +135,14 @@ icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' icon_state = "sirisai_wrap" food_reagents = list( - /datum/reagent/consumable/nutriment = 8, - /datum/reagent/consumable/nutriment/protein = 6, + /datum/reagent/consumable/nutriment = 8, + /datum/reagent/consumable/nutriment/protein = 6, /datum/reagent/consumable/nutriment/vitamin = 6 ) w_class = WEIGHT_CLASS_SMALL tastes = list("cooked cabbage" = 1, "spiced meat" = 1, "minty piru bread" = 1) foodtypes = MEAT | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/sweet_piru_noodles name = "sweet piru noodles" @@ -141,14 +151,15 @@ icon_state = "sweet_piru_noodles" trash_type = /obj/item/reagent_containers/cup/bowl food_reagents = list( - /datum/reagent/consumable/nutriment = 8, - /datum/reagent/consumable/kiri_jelly = 4, - /datum/reagent/consumable/muli_juice = 4, + /datum/reagent/consumable/nutriment = 8, + /datum/reagent/consumable/kiri_jelly = 4, + /datum/reagent/consumable/muli_juice = 4, /datum/reagent/consumable/nutriment/vitamin = 4 ) w_class = WEIGHT_CLASS_SMALL tastes = list("minty piru noodles" = 1, "minty muli juice" = 1, "sugary kiri jelly" = 1, "baked carrots" = 1) foodtypes = VEGETABLES | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/kiri_curry name = "kiri curry" @@ -157,14 +168,15 @@ icon_state = "kiri_curry" trash_type = /obj/item/reagent_containers/cup/bowl food_reagents = list( - /datum/reagent/consumable/nutriment = 8, - /datum/reagent/consumable/nutriment/protein = 4, - /datum/reagent/consumable/kiri_jelly = 6, + /datum/reagent/consumable/nutriment = 8, + /datum/reagent/consumable/nutriment/protein = 4, + /datum/reagent/consumable/kiri_jelly = 6, /datum/reagent/consumable/nutriment/vitamin = 4 ) w_class = WEIGHT_CLASS_SMALL tastes = list("heavily seasoned meat" = 1, "sweetened minty piru noodles" = 1, "zesty chilis" = 1) foodtypes = VEGETABLES | FRUIT | SUGAR | MEAT + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/sirisai_flatbread name = "sirisai flatbread" @@ -172,14 +184,15 @@ icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' icon_state = "sirisai_flatbread" food_reagents = list( - /datum/reagent/consumable/nutriment = 24, - /datum/reagent/consumable/nutriment/protein = 16, - /datum/reagent/consumable/muli_juice = 12, + /datum/reagent/consumable/nutriment = 24, + /datum/reagent/consumable/nutriment/protein = 16, + /datum/reagent/consumable/muli_juice = 12, /datum/reagent/consumable/nutriment/vitamin = 16 ) w_class = WEIGHT_CLASS_SMALL tastes = list("crispy minty flatbread" = 1, "minty muli pods" = 1, "tomato sauce" = 1, "tangy spice" = 1, "baked meat" = 1) foodtypes = VEGETABLES | MEAT + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/sirisai_flatbread/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/sirisai_flatbread_slice, 4, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") @@ -190,14 +203,15 @@ icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' icon_state = "sirisai_flatbread_slice" food_reagents = list( - /datum/reagent/consumable/nutriment = 6, - /datum/reagent/consumable/nutriment/protein = 4, - /datum/reagent/consumable/muli_juice = 3, + /datum/reagent/consumable/nutriment = 6, + /datum/reagent/consumable/nutriment/protein = 4, + /datum/reagent/consumable/muli_juice = 3, /datum/reagent/consumable/nutriment/vitamin = 4 ) w_class = WEIGHT_CLASS_SMALL tastes = list("crispy minty flatbread" = 1, "minty muli pods" = 1, "tomato sauce" = 1, "tangy spice" = 1, "baked meat" = 1) foodtypes = VEGETABLES | MEAT + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/bluefeather_crisp name = "bluefeather crisp" @@ -205,12 +219,13 @@ icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' icon_state = "bluefeather_crisp" food_reagents = list( - /datum/reagent/consumable/nutriment = 4, + /datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2 ) w_class = WEIGHT_CLASS_SMALL tastes = list("chewy crackers" = 1, "zesty spice" = 1, "pleasant mintyness" = 1) foodtypes = VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/bluefeather_crisps_and_dip name = "bluefeather crisps and dip" @@ -218,13 +233,14 @@ icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' icon_state = "bluefeather_crisps_and_dip" food_reagents = list( - /datum/reagent/consumable/nutriment = 12, - /datum/reagent/consumable/muli_juice = 8, + /datum/reagent/consumable/nutriment = 12, + /datum/reagent/consumable/muli_juice = 8, /datum/reagent/consumable/nutriment/vitamin = 6 ) w_class = WEIGHT_CLASS_SMALL tastes = list("chewy crackers" = 1, "tangy dip" = 1, "pleasant mintyness" = 1) foodtypes = VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/stewed_muli name = "stewed muli" @@ -233,14 +249,15 @@ icon_state = "stewed_muli" trash_type = /obj/item/reagent_containers/cup/bowl food_reagents = list( - /datum/reagent/consumable/nutriment = 10, - /datum/reagent/consumable/nutriment/protein = 8, - /datum/reagent/consumable/nutriment/vitamin = 6, + /datum/reagent/consumable/nutriment = 10, + /datum/reagent/consumable/nutriment/protein = 8, + /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/consumable/muli_juice = 6 ) w_class = WEIGHT_CLASS_SMALL tastes = list("hearty spiced meat" = 1, "baked carrots" = 1, "baked cabbage" = 1, "minty broth" = 1) foodtypes = VEGETABLES | MEAT + crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/stuffed_muli_pod name = "stuffed muli pod" @@ -248,14 +265,15 @@ icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' icon_state = "stuffed_muli_pod" food_reagents = list( - /datum/reagent/consumable/nutriment = 8, - /datum/reagent/consumable/nutriment/protein = 4, - /datum/reagent/consumable/nutriment/vitamin = 4, + /datum/reagent/consumable/nutriment = 8, + /datum/reagent/consumable/nutriment/protein = 4, + /datum/reagent/consumable/nutriment/vitamin = 4, /datum/reagent/consumable/muli_juice = 4 ) w_class = WEIGHT_CLASS_SMALL tastes = list("spiced meat" = 1, "minty muli pod" = 1, "super-sweet kiri fruit" = 1, "chili" = 1) foodtypes = VEGETABLES | FRUIT | MEAT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/caramel_jelly_toast name = "caramel jelly toast" @@ -263,12 +281,13 @@ icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' icon_state = "caramel_jelly_toast" food_reagents = list( - /datum/reagent/consumable/nutriment = 8, + /datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 6 ) w_class = WEIGHT_CLASS_SMALL tastes = list("minty piru bread" = 1, "sweet caramel" = 1, "super-sweet kiri jelly" = 1) foodtypes = VEGETABLES | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/kiri_jellypuff name = "kiri jellypuff" @@ -276,10 +295,11 @@ icon = 'modular_skyrat/master_files/icons/obj/food/irnbru.dmi' icon_state = "kiri_jellypuff" food_reagents = list( - /datum/reagent/consumable/nutriment = 8, - /datum/reagent/consumable/nutriment/vitamin = 6, + /datum/reagent/consumable/nutriment = 8, + /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/consumable/kiri_jelly = 4 ) w_class = WEIGHT_CLASS_SMALL tastes = list("puffed minty piru bread" = 1, "rich cream" = 1, "super-sweet kiri jelly" = 1) foodtypes = VEGETABLES | FRUIT | SUGAR + crafting_complexity = FOOD_COMPLEXITY_4 diff --git a/modular_skyrat/modules/customization/modules/food_and_drinks/recipes/drinks_recipes.dm b/modular_skyrat/modules/customization/modules/food_and_drinks/recipes/drinks_recipes.dm index 636e0071c27..14691393f03 100644 --- a/modular_skyrat/modules/customization/modules/food_and_drinks/recipes/drinks_recipes.dm +++ b/modular_skyrat/modules/customization/modules/food_and_drinks/recipes/drinks_recipes.dm @@ -215,7 +215,7 @@ /datum/chemical_reaction/drink/beerbatter results = list(/datum/reagent/consumable/ethanol/beerbatter = 4) - required_reagents = list(/datum/reagent/consumable/cooking_oil = 1, /datum/reagent/consumable/ethanol/beer = 1, /datum/reagent/consumable/flour = 1) + required_reagents = list(/datum/reagent/consumable/nutriment/fat/oil = 1, /datum/reagent/consumable/ethanol/beer = 1, /datum/reagent/consumable/flour = 1) mix_message = "Sizzling and cracking is heard as you beat the mixture into submission." /datum/chemical_reaction/drink/shakiri_spritz diff --git a/modular_skyrat/modules/customization/modules/hydroponics/grown/muli.dm b/modular_skyrat/modules/customization/modules/hydroponics/grown/muli.dm index 308d34ca193..7f787804fc6 100644 --- a/modular_skyrat/modules/customization/modules/hydroponics/grown/muli.dm +++ b/modular_skyrat/modules/customization/modules/hydroponics/grown/muli.dm @@ -22,7 +22,7 @@ icon = 'modular_skyrat/master_files/icons/obj/hydroponics/harvest.dmi' icon_state = "muli" foodtypes = VEGETABLES - juice_results = list(/datum/reagent/consumable/muli_juice = 0.3) + juice_typepath = /datum/reagent/consumable/muli_juice grind_results = list(/datum/reagent/consumable/muli_juice = 0.1) tastes = list("mint and savory sweetness" = 1) diff --git a/modular_skyrat/modules/modular_items/code/pastries.dm b/modular_skyrat/modules/modular_items/code/pastries.dm index d99e4d1da27..8ae5939bb09 100644 --- a/modular_skyrat/modules/modular_items/code/pastries.dm +++ b/modular_skyrat/modules/modular_items/code/pastries.dm @@ -9,6 +9,7 @@ foodtypes = GRAIN | SUGAR | FRUIT food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("fruit" = 1, "raisins" = 1, "christmas spirit" = 1) + crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/mimce_pie name = "mimce pie" @@ -20,6 +21,7 @@ foodtypes = GRAIN | SUGAR | FRUIT food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("nothing" = 1, "christmas spirit" = 1) + crafting_complexity = FOOD_COMPLEXITY_3 // RECIPE diff --git a/modular_skyrat/modules/primitive_cooking_additions/code/big_mortar.dm b/modular_skyrat/modules/primitive_cooking_additions/code/big_mortar.dm index 23069d83941..da1aacc9d05 100644 --- a/modular_skyrat/modules/primitive_cooking_additions/code/big_mortar.dm +++ b/modular_skyrat/modules/primitive_cooking_additions/code/big_mortar.dm @@ -90,7 +90,7 @@ switch(picked_option) if("Juice") for(var/obj/item/target_item as anything in contents) - if(target_item.juice_results) + if(target_item.juice_typepath) juice_target_item(target_item, user) else grind_target_item(target_item, user) @@ -103,7 +103,7 @@ juice_target_item(target_item, user) return - if(!attacking_item.juice_results && !attacking_item.grind_results) + if(!attacking_item.grind_results && !attacking_item.juice_typepath) balloon_alert(user, "can't grind this") return ..() @@ -115,24 +115,16 @@ ///Juices the passed target item, and transfers any contained chems to the mortar as well /obj/structure/large_mortar/proc/juice_target_item(obj/item/to_be_juiced, mob/living/carbon/human/user) - to_be_juiced.on_juice() - reagents.add_reagent_list(to_be_juiced.juice_results) + to_be_juiced.juice(src, user) - if(to_be_juiced.reagents) //If juiced item has reagents within, transfer them to the mortar - to_be_juiced.reagents.trans_to(src, to_be_juiced.reagents.total_volume, transfered_by = user) - - to_chat(user, span_notice("You juice [to_be_juiced] into a fine liquid.")) + to_chat(user, span_notice("You juice [to_be_juiced] into a liquid.")) QDEL_NULL(to_be_juiced) ///Grinds the passed target item, and transfers any contained chems to the mortar as well /obj/structure/large_mortar/proc/grind_target_item(obj/item/to_be_ground, mob/living/carbon/human/user) - to_be_ground.on_grind() - reagents.add_reagent_list(to_be_ground.grind_results) + to_be_ground.grind(src, user) - if(to_be_ground.reagents) //If grinded item has reagents within, transfer them to the mortar - to_be_ground.reagents.trans_to(src, to_be_ground.reagents.total_volume, transfered_by = user) - - to_chat(user, span_notice("You break [to_be_ground] into powder.")) + to_chat(user, span_notice("You break [to_be_ground] into a fine powder.")) QDEL_NULL(to_be_ground) #undef LARGE_MORTAR_STAMINA_MINIMUM diff --git a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/amauri.dm b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/amauri.dm index af6c178a007..ed234b942e8 100644 --- a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/amauri.dm +++ b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/amauri.dm @@ -24,5 +24,5 @@ filling_color = "#FF4500" bite_consumption_mod = 0.5 foodtypes = FRUIT - juice_results = list(/datum/reagent/medicine/psicodine = 0) + juice_typepath = /datum/reagent/medicine/psicodine tastes = list("shadow" = 1) diff --git a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/gelthi.dm b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/gelthi.dm index 63013a631dc..3ff46763f1e 100644 --- a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/gelthi.dm +++ b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/gelthi.dm @@ -24,5 +24,5 @@ filling_color = "#FF4500" bite_consumption_mod = 0.5 foodtypes = FRUIT - juice_results = list(/datum/reagent/gold = 0) + juice_typepath = /datum/reagent/gold tastes = list("gold" = 1) diff --git a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/jurlmah.dm b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/jurlmah.dm index 95dda523b59..5351435276b 100644 --- a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/jurlmah.dm +++ b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/jurlmah.dm @@ -24,5 +24,5 @@ filling_color = "#FF4500" bite_consumption_mod = 0.5 foodtypes = FRUIT - juice_results = list(/datum/reagent/medicine/cryoxadone = 0) + juice_typepath = /datum/reagent/medicine/cryoxadone tastes = list("cold" = 1) diff --git a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/nofruit.dm b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/nofruit.dm index 770259c1266..65d8625e5d8 100644 --- a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/nofruit.dm +++ b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/nofruit.dm @@ -24,5 +24,5 @@ filling_color = "#FF4500" bite_consumption_mod = 0.5 foodtypes = FRUIT - juice_results = list(/datum/reagent/consumable/nothing = 0) + juice_typepath = /datum/reagent/consumable/nothing tastes = list("entertainment" = 1) diff --git a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/shand.dm b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/shand.dm index a898cd99ed9..c028b7b6082 100644 --- a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/shand.dm +++ b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/shand.dm @@ -24,5 +24,5 @@ filling_color = "#FF4500" bite_consumption_mod = 0.5 foodtypes = FRUIT - juice_results = list(/datum/reagent/pax = 0) + juice_typepath = /datum/reagent/pax tastes = list("peace" = 1) diff --git a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/surik.dm b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/surik.dm index b055083e428..073274209dd 100644 --- a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/surik.dm +++ b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/surik.dm @@ -24,5 +24,5 @@ filling_color = "#FF4500" bite_consumption_mod = 0.5 foodtypes = FRUIT - juice_results = list(/datum/reagent/consumable/frostoil = 0) + juice_typepath = /datum/reagent/consumable/frostoil tastes = list("snow" = 1) diff --git a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/telriis.dm b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/telriis.dm index 0193e4e140b..7783cbdac1b 100644 --- a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/telriis.dm +++ b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/telriis.dm @@ -25,5 +25,5 @@ filling_color = "#FF4500" bite_consumption_mod = 0.5 foodtypes = FRUIT - juice_results = list(/datum/reagent/medicine/higadrite = 0) + juice_typepath = /datum/reagent/medicine/higadrite tastes = list("liver" = 1) diff --git a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/thaadra.dm b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/thaadra.dm index 0c6384ed79a..e9eeadb274e 100644 --- a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/thaadra.dm +++ b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/thaadra.dm @@ -24,5 +24,5 @@ filling_color = "#FF4500" bite_consumption_mod = 0.5 foodtypes = FRUIT - juice_results = list(/datum/reagent/silver = 0) + juice_typepath = /datum/reagent/silver tastes = list("silver" = 1) diff --git a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/vale.dm b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/vale.dm index b3a78598dae..adf8654d6b6 100644 --- a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/vale.dm +++ b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/vale.dm @@ -24,5 +24,5 @@ filling_color = "#FF4500" bite_consumption_mod = 0.5 foodtypes = FRUIT - juice_results = list(/datum/reagent/medicine/neurine = 0) + juice_typepath = /datum/reagent/medicine/neurine tastes = list("medicine" = 1) diff --git a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/vaporsac.dm b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/vaporsac.dm index fb3d6f72efc..1f467a66ab6 100644 --- a/modular_skyrat/modules/xenoarch/code/modules/hydroponics/vaporsac.dm +++ b/modular_skyrat/modules/xenoarch/code/modules/hydroponics/vaporsac.dm @@ -24,5 +24,5 @@ filling_color = "#FF4500" bite_consumption_mod = 0.5 foodtypes = FRUIT - juice_results = list(/datum/reagent/nitrous_oxide = 0) + juice_typepath = /datum/reagent/nitrous_oxide tastes = list("sleep" = 1) diff --git a/tgstation.dme b/tgstation.dme index f53f2663d45..c5ecfcf71a4 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1539,6 +1539,7 @@ #include "code\datums\mood_events\dna_infuser_events.dm" #include "code\datums\mood_events\drink_events.dm" #include "code\datums\mood_events\drug_events.dm" +#include "code\datums\mood_events\food_events.dm" #include "code\datums\mood_events\generic_negative_events.dm" #include "code\datums\mood_events\generic_positive_events.dm" #include "code\datums\mood_events\morbid_events.dm" @@ -1617,6 +1618,7 @@ #include "code\datums\status_effects\agent_pinpointer.dm" #include "code\datums\status_effects\buffs.dm" #include "code\datums\status_effects\drug_effects.dm" +#include "code\datums\status_effects\food_effects.dm" #include "code\datums\status_effects\gas.dm" #include "code\datums\status_effects\grouped_effect.dm" #include "code\datums\status_effects\limited_effect.dm" @@ -1624,6 +1626,8 @@ #include "code\datums\status_effects\song_effects.dm" #include "code\datums\status_effects\stacking_effect.dm" #include "code\datums\status_effects\wound_effects.dm" +#include "code\datums\status_effects\buffs\food_haste.dm" +#include "code\datums\status_effects\buffs\food_traits.dm" #include "code\datums\status_effects\buffs\stun_absorption.dm" #include "code\datums\status_effects\debuffs\blindness.dm" #include "code\datums\status_effects\debuffs\choke.dm" diff --git a/tgui/packages/tgui/interfaces/PersonalCrafting.tsx b/tgui/packages/tgui/interfaces/PersonalCrafting.tsx index d1b776dda1e..20a288a2828 100644 --- a/tgui/packages/tgui/interfaces/PersonalCrafting.tsx +++ b/tgui/packages/tgui/interfaces/PersonalCrafting.tsx @@ -145,7 +145,7 @@ type Data = { categories: string[]; material_occurences: Material[]; foodtypes: string[]; - nutriments: number; + complexity: number; }; export const PersonalCrafting = (props, context) => { @@ -829,14 +829,14 @@ const RecipeContent = ({ item, craftable, busy, mode, diet }, context) => { } /> )} - {item.nutriments > 0 && ( + {!!item.complexity && ( - Nutrition: {item.nutriments} - + Complexity: {item.complexity} )} {item.foodtypes?.length > 0 && ( + {item.foodtypes.map((foodtype) => ( { ])(seeds_filtered || []); sortField !== 'name' && seeds.reverse(); return ( - +
@@ -73,88 +77,81 @@ export const SeedExtractor = (props, context) => { setSortField('potency')}> - Potency + PTN setSortField('yield')}> - Yield + YLD setSortField('instability')}> - Instability + INS setSortField('endurance')}> - Endurance + END + content={`Lifespan: The age at which the plant starts decaying, in ${data.cycle_seconds} second long cycles. Improves quality of resulting food & drinks.`}> setSortField('lifespan')}> - Lifespan + LFS + content={`Maturation: The age required for the first harvest, in ${data.cycle_seconds} second long cycles.`}> setSortField('maturation')}> - Maturation + MTR + content={`Production: The period of product regrowth, in ${data.cycle_seconds} second long cycles.`}> setSortField('production')}> - Production + PRD - - setSortField('amount')}> - Amount - - {sortField !== 'name' && ( @@ -189,7 +186,7 @@ export const SeedExtractor = (props, context) => { /> - {item.name} + {`${item.amount}x ${item.name}`} {item.traits?.map((trait) => ( @@ -199,11 +196,18 @@ export const SeedExtractor = (props, context) => { trait_db={data.trait_db} /> ))} + {!!item.mutatelist.length && ( + + + + )} {item.reagents.length > 0 && ( @@ -211,6 +215,17 @@ export const SeedExtractor = (props, context) => { )} + {!!item.juice_name && ( + + + + )} + {!!item.distill_reagent && ( + + + + )} @@ -228,13 +243,10 @@ export const SeedExtractor = (props, context) => { - {item.maturation} + {item.maturation} - {item.production} - - - {item.amount} + {item.production} { return (
- Reagents + Reagents on grind: - {props.reagents?.map((reagent) => ( - + {props.reagents?.map((reagent, i) => ( + {reagent.name} {Math.max( @@ -324,6 +336,20 @@ const ReagentTooltip = (props) => { ))} + {!!props.grind_results.length && ( + <> + + + Nutriments turn into: + + + {props.grind_results?.map((reagent, i) => ( + + {reagent} + + ))} + + )}
); };