diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 8e4b3d9f2d..70d6a8ae7c 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -15141,6 +15141,9 @@ req_access_txt = "28" }, /obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "aKW" = ( @@ -15604,9 +15607,6 @@ /obj/machinery/chem_master/condimaster{ name = "CondiMaster Neo" }, -/obj/machinery/camera{ - c_tag = "Kitchen Cold Room" - }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, @@ -60595,6 +60595,14 @@ /obj/item/device/flashlight, /turf/open/floor/plasteel/black, /area/engine/engineering) +"QoL" = ( +/obj/machinery/camera{ + c_tag = "Kitchen Cold Room" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/reagent_dispensers/cooking_oil, +/turf/open/floor/plasteel/showroomfloor, +/area/crew_quarters/kitchen) (1,1,1) = {" aaa @@ -99259,7 +99267,7 @@ alP aGL aHY aQj -aQj +QoL aMk aNK aOM diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index b454b9f9c2..aac4220a82 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -21904,14 +21904,10 @@ /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "aWJ" = ( -/obj/structure/sink/kitchen{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "sink"; - pixel_y = 28 - }, /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/structure/reagent_dispensers/cooking_oil, /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "aWK" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 7a04dc6d06..1d65c33c2a 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -53396,6 +53396,7 @@ dir = 4; pixel_x = 28 }, +/obj/structure/reagent_dispensers/cooking_oil, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) "cgG" = ( diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index ee9fbf1a7b..6e21a7c806 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -18585,17 +18585,13 @@ /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "aIW" = ( -/obj/structure/sink/kitchen{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "sink"; - pixel_y = 28 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/obj/structure/reagent_dispensers/cooking_oil, /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "aIX" = ( diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index a28ea84b3c..8702ce0eba 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -19097,6 +19097,7 @@ dir = 8; pixel_x = 23 }, +/obj/structure/reagent_dispensers/cooking_oil, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) "aVc" = ( diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm index e8c2f4f05e..c0aa24830f 100644 --- a/code/datums/looping_sounds/machinery_sounds.dm +++ b/code/datums/looping_sounds/machinery_sounds.dm @@ -21,4 +21,57 @@ mid_sounds = list('sound/machines/generator/generator_mid1.ogg'=1, 'sound/machines/generator/generator_mid2.ogg'=1, 'sound/machines/generator/generator_mid3.ogg'=1) mid_length = 4 end_sound = 'sound/machines/generator/generator_end.ogg' - volume = 40 \ No newline at end of file +<<<<<<< HEAD + volume = 40 +======= + volume = 40 + + +/datum/looping_sound/server + mid_sounds = list('sound/machines/tcomms/tcomms_mid1.ogg'=1,'sound/machines/tcomms/tcomms_mid2.ogg'=1,'sound/machines/tcomms/tcomms_mid3.ogg'=1,'sound/machines/tcomms/tcomms_mid4.ogg'=1,\ + 'sound/machines/tcomms/tcomms_mid5.ogg'=1,'sound/machines/tcomms/tcomms_mid6.ogg'=1,'sound/machines/tcomms/tcomms_mid7.ogg'=1) + mid_length = 17 + range_modifier = -4.5 + volume = 50 + +/datum/looping_sound/computer + start_sound = 'sound/machines/computer/computer_start.ogg' + start_length = 72 + mid_sounds = list('sound/machines/computer/computer_mid1.ogg'=1, 'sound/machines/computer/computer_mid2.ogg'=1) + mid_length = 6.1 + end_sound = 'sound/machines/computer/computer_end.ogg' + volume = 10 + range_modifier = -5.5 + +/datum/looping_sound/borg + mid_sounds = list('sound/machines/borg/borg_mid1.ogg'=1, 'sound/machines/borg/borg_mid2.ogg'=1, 'sound/machines/borg/borg_mid3.ogg'=1) + mid_length = 19.5 + end_sound = 'sound/machines/computer/computer_end.ogg' + volume = 80 + range_modifier = -5.5 + + +/datum/looping_sound/deep_fryer + start_sound = 'sound/machines/fryer/deep_fryer_immerse.ogg' //my immersions + start_length = 10 + mid_sounds = list('sound/machines/fryer/deep_fryer_1.ogg' = 1, 'sound/machines/fryer/deep_fryer_2.ogg' = 1) + mid_length = 2 + end_sound = 'sound/machines/fryer/deep_fryer_emerge.ogg' + volume = 25 + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/datum/looping_sound/microwave + start_sound = 'sound/machines/microwave/microwave-start.ogg' + start_length = 10 + mid_sounds = list('sound/machines/microwave/microwave-mid1.ogg'=10, 'sound/machines/microwave/microwave-mid2.ogg'=1) + mid_length = 10 + end_sound = 'sound/machines/microwave/microwave-end.ogg' + volume = 90 + +/datum/looping_sound/gravgen + mid_sounds = list('sound/machines/gravgen/gravgen_mid1.ogg'=1,'sound/machines/gravgen/gravgen_mid2.ogg'=1,'sound/machines/gravgen/gravgen_mid3.ogg'=1,'sound/machines/gravgen/gravgen_mid4.ogg'=1,) + mid_length = 17 + range_modifier = -4.5 + volume = 70 +>>>>>>> 5946689... Improves the deep fryer (#32482) diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm index 106d5abb1e..d61db6fe15 100644 --- a/code/modules/food_and_drinks/food/snacks/meat.dm +++ b/code/modules/food_and_drinks/food/snacks/meat.dm @@ -8,7 +8,7 @@ icon_state = "meat" dried_type = /obj/item/reagent_containers/food/snacks/sosjerky/healthy bitesize = 3 - list_reagents = list("nutriment" = 3) + list_reagents = list("nutriment" = 3, "cooking_oil" = 2) //Meat has fats that a food processor can process into cooking oil cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/plain slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/plain slices_num = 3 @@ -170,7 +170,7 @@ name = "bear meat" desc = "A very manly slab of meat." icon_state = "bearmeat" - list_reagents = list("nutriment" = 12, "morphine" = 5, "vitamin" = 2) + list_reagents = list("nutriment" = 12, "morphine" = 5, "vitamin" = 2, "cooking_oil" = 6) filling_color = "#FFB6C1" cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/bear slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/bear @@ -205,7 +205,7 @@ /obj/item/reagent_containers/food/snacks/meat/slab/goliath name = "goliath meat" desc = "A slab of goliath meat. It's not very edible now, but it cooks great in lava." - list_reagents = list("nutriment" = 3, "toxin" = 5) + list_reagents = list("nutriment" = 3, "toxin" = 5, "cooking_oil" = 3) icon_state = "goliathmeat" tastes = list("meat" = 1) foodtype = RAW | MEAT | TOXIC @@ -218,7 +218,7 @@ /obj/item/reagent_containers/food/snacks/meat/slab/meatwheat name = "meatwheat clump" desc = "This doesn't look like meat, but your standards aren't that high to begin with." - list_reagents = list("nutriment" = 3, "vitamin" = 2, "blood" = 5) + list_reagents = list("nutriment" = 3, "vitamin" = 2, "blood" = 5, "cooking_oil" = 1) filling_color = rgb(150, 0, 0) icon_state = "meatwheat_clump" bitesize = 4 @@ -228,7 +228,11 @@ /obj/item/reagent_containers/food/snacks/meat/slab/gorilla name = "gorilla meat" desc = "Much meatier than monkey meat." +<<<<<<< HEAD list_reagents = list("nutriment" = 5, "vitamin" = 1) +======= + list_reagents = list("nutriment" = 5, "vitamin" = 1, "cooking_oil" = 5) //Plenty of fat! +>>>>>>> 5946689... Improves the deep fryer (#32482) /obj/item/reagent_containers/food/snacks/meat/rawbacon name = "raw piece of bacon" @@ -236,7 +240,7 @@ icon_state = "bacon" cooked_type = /obj/item/reagent_containers/food/snacks/meat/bacon bitesize = 2 - list_reagents = list("nutriment" = 1) + list_reagents = list("nutriment" = 1, "cooking_oil" = 3) filling_color = "#B22222" tastes = list("bacon" = 1) foodtype = RAW | MEAT @@ -246,7 +250,7 @@ desc = "A delicious piece of bacon." icon_state = "baconcooked" list_reagents = list("nutriment" = 2) - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + bonus_reagents = list("nutriment" = 1, "vitamin" = 1, "cooking_oil" = 2) filling_color = "#854817" tastes = list("bacon" = 1) foodtype = MEAT diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index 0d76bb6e7d..8f48e94d08 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -185,36 +185,39 @@ icon_state = "" bitesize = 2 -/obj/item/reagent_containers/food/snacks/deepfryholder/proc/fry(obj/item/frying, datum/reagents/reagents, cook_time = 30) - if(istype(frying, /obj/item/reagent_containers/)) - var/obj/item/reagent_containers/food = frying - food.reagents.trans_to(src, food.reagents.total_volume) - icon = frying.icon - overlays = frying.overlays - icon_state = frying.icon_state - desc = frying.desc - w_class = frying.w_class - reagents.trans_to(src, 2*(cook_time/15)) +/obj/item/reagent_containers/food/snacks/deepfryholder/Initialize(mapload, obj/item/fried) + . = ..() + name = fried.name //We'll determine the other stuff when it's actually removed + icon = fried.icon + overlays = fried.copy_overlays() + icon_state = fried.icon_state + desc = fried.desc + if(istype(fried, /obj/item/reagent_containers/food/snacks)) + fried.reagents.trans_to(src, fried.reagents.total_volume) + qdel(fried) + else + fried.forceMove(src) + +/obj/item/reagent_containers/food/snacks/deepfryholder/proc/fry(cook_time = 30) switch(cook_time) if(0 to 15) add_atom_colour(rgb(166,103,54), FIXED_COLOUR_PRIORITY) - name = "lightly-fried [frying.name]" + name = "lightly-fried [name]" + desc = "[desc] It's been lightly fried in a deep fryer." if(16 to 49) add_atom_colour(rgb(103,63,24), FIXED_COLOUR_PRIORITY) - name = "fried [frying.name]" + name = "fried [name]" + desc = "[desc] It's been fried, increasing its tastiness value by [rand(1, 75)]%." if(50 to 59) add_atom_colour(rgb(63,23,4), FIXED_COLOUR_PRIORITY) - name = "deep-fried [frying.name]" + name = "deep-fried [name]" + desc = "[desc] Deep-fried to perfection." if(60 to INFINITY) add_atom_colour(rgb(33,19,9), FIXED_COLOUR_PRIORITY) name = "the physical manifestation of the very concept of fried foods" - desc = "A heavily fried...something. Who can tell anymore?" + desc = "A heavily-fried...something. Who can tell anymore?" filling_color = color foodtype |= FRIED - if(istype(frying, /obj/item/reagent_containers/food/snacks/)) - qdel(frying) - else - frying.forceMove(src) /obj/item/reagent_containers/food/snacks/butteredtoast name = "buttered toast" diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index 1a1b009fff..a336d77404 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -1,11 +1,25 @@ /* April 3rd, 2014 marks the day this machine changed the face of the kitchen on NTStation13 God bless America. -insert ascii eagle on american flag background here + ___----------___ + _-- ----__ + - ---_ + -___ ____---_ --_ + __---_ .-_-- _ O _- - + - -_- --- - +- __---------___ - +- _---- - + - -_ _ + ` _- _ + _ _-_ _-_ _ + _- ____ -_ - -- + - _-__ _ __--- ------- - + _- _- -_-- -_-- _ + -_- _ + _- _ + - */ -// April 3rd, 2014 marks the day this machine changed the face of the kitchen on NTStation13 -// God bless America. /obj/machinery/deepfryer name = "deep fryer" desc = "Deep fried everything." @@ -16,8 +30,12 @@ insert ascii eagle on american flag background here use_power = IDLE_POWER_USE idle_power_usage = 5 container_type = OPENCONTAINER_1 - var/obj/item/frying = null //What's being fried RIGHT NOW? + var/obj/item/reagent_containers/food/snacks/deepfryholder/frying //What's being fried RIGHT NOW? var/cook_time = 0 + var/oil_use = 0.05 //How much cooking oil is used per tick + var/fry_speed = 1 //How quickly we fry food + var/frying_fried //If the object has been fried; used for messages + var/frying_burnt //If the object has been burnt var/static/list/deepfry_blacklisted_items = typecacheof(list( /obj/item/screwdriver, /obj/item/crowbar, @@ -26,16 +44,27 @@ insert ascii eagle on american flag background here /obj/item/device/multitool, /obj/item/weldingtool, /obj/item/reagent_containers/glass, + /obj/item/reagent_containers/syringe, + /obj/item/reagent_containers/food/condiment, /obj/item/storage/part_replacer)) + var/datum/looping_sound/deep_fryer/fry_loop /obj/machinery/deepfryer/Initialize() . = ..() create_reagents(50) - reagents.add_reagent("nutriment", 25) + reagents.add_reagent("cooking_oil", 25) component_parts = list() component_parts += new /obj/item/circuitboard/machine/deep_fryer(null) component_parts += new /obj/item/stock_parts/micro_laser(null) RefreshParts() + fry_loop = new(list(src), FALSE) + +/obj/machinery/deepfryer/RefreshParts() + var/oil_efficiency + for(var/obj/item/stock_parts/micro_laser/M in component_parts) + oil_efficiency += M.rating + oil_use = initial(oil_use) - (oil_efficiency * 0.0095) + fry_speed = oil_efficiency /obj/machinery/deepfryer/examine() ..() @@ -43,8 +72,16 @@ insert ascii eagle on american flag background here to_chat(usr, "You can make out \a [frying] in the oil.") /obj/machinery/deepfryer/attackby(obj/item/I, mob/user) - if(!reagents.total_volume) - to_chat(user, "There's nothing to fry with in [src]!") + if(istype(I, /obj/item/reagent_containers/pill)) + if(!reagents.total_volume) + to_chat(user, "There's nothing to dissolve [I] in!") + return + user.visible_message("[user] drops [I] into [src].", "You dissolve [I] in [src].") + I.reagents.trans_to(src, I.reagents.total_volume) + qdel(I) + return + if(!reagents.has_reagent("cooking_oil")) + to_chat(user, "[src] has no cooking oil to fry with!") return if(istype(I, /obj/item/reagent_containers/food/snacks/deepfryholder)) to_chat(user, "Your cooking skills are not up to the legendary Doublefry technique.") @@ -60,20 +97,26 @@ insert ascii eagle on american flag background here . = ..() else if(!frying && user.transferItemToLoc(I, src)) to_chat(user, "You put [I] into [src].") - frying = I + frying = new/obj/item/reagent_containers/food/snacks/deepfryholder(src, I) icon_state = "fryer_on" + fry_loop.start() /obj/machinery/deepfryer/process() ..() - if(!reagents.total_volume) + var/datum/reagent/consumable/cooking_oil/C = reagents.has_reagent("cooking_oil") + if(!C) return + reagents.chem_temp = C.fry_temperature if(frying) - cook_time++ - if(cook_time == 30) + reagents.trans_to(frying, oil_use, multiplier = fry_speed * 3) //Fried foods gain more of the reagent thanks to space magic + cook_time += fry_speed + if(cook_time >= 30 && !frying_fried) + frying_fried = TRUE //frying... frying... fried playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) - visible_message("[src] dings!") - else if (cook_time == 60) - visible_message("[src] emits an acrid smell!") + audible_message("[src] dings!") + else if (cook_time >= 60 && !frying_burnt) + frying_burnt = TRUE + visible_message("[src] emits an acrid smell!") /obj/machinery/deepfryer/attack_ai(mob/user) @@ -83,13 +126,14 @@ insert ascii eagle on american flag background here if(frying) if(frying.loc == src) to_chat(user, "You eject [frying] from [src].") - var/obj/item/reagent_containers/food/snacks/deepfryholder/S = new(drop_location()) - S.fry(frying, reagents, cook_time) + frying.fry(cook_time) icon_state = "fryer_off" - if(user.Adjacent(src)) - user.put_in_hands(S) + user.put_in_hands(frying) frying = null cook_time = 0 + frying_fried = FALSE + frying_burnt = FALSE + fry_loop.stop() return else if(user.pulling && user.a_intent == "grab" && iscarbon(user.pulling) && reagents.total_volume) if(user.grab_state < GRAB_AGGRESSIVE) @@ -98,7 +142,7 @@ insert ascii eagle on american flag background here var/mob/living/carbon/C = user.pulling user.visible_message("[user] dunks [C]'s face in [src]!") reagents.reaction(C, TOUCH) - C.adjustFireLoss(reagents.total_volume) + C.apply_damage(min(30, reagents.total_volume), BURN, "head") reagents.remove_any((reagents.total_volume/2)) C.Knockdown(60) user.changeNext_move(CLICK_CD_MELEE) diff --git a/code/modules/hydroponics/grown/beans.dm b/code/modules/hydroponics/grown/beans.dm index 01c795888e..8ca2a5961a 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("vitamin" = 0.04, "nutriment" = 0.05) + reagents_add = list("vitamin" = 0.04, "nutriment" = 0.05, "cooking_oil" = 0.03) //Vegetable oil! /obj/item/reagent_containers/food/snacks/grown/soybeans seed = /obj/item/seeds/soya diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index d25df998e3..08db315b7d 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -83,6 +83,50 @@ M.satiety += 30 . = ..() +/datum/reagent/consumable/cooking_oil + name = "Cooking Oil" + id = "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 + var/fry_temperature = 450 //Around ~350 F (117 C) which deep fryers operate around in the real world + var/boiling //Used in mob life to determine if the oil kills, and only on touch application + +/datum/reagent/consumable/cooking_oil/reaction_obj(obj/O, reac_volume) + if(holder && holder.chem_temp >= fry_temperature) + if(isitem(O)) + O.loc.visible_message("[O] rapidly fries as it's splashed with hot oil! Somehow.") + var/obj/item/reagent_containers/food/snacks/deepfryholder/F = new(O.drop_location()) + F.fry(O, volume) + +/datum/reagent/consumable/cooking_oil/reaction_mob(mob/living/M, method = TOUCH, reac_volume, show_message = 1, touch_protection = 0) + if(!istype(M)) + return + if(holder && holder.chem_temp >= fry_temperature) + boiling = TRUE + if(method == VAPOR || method == TOUCH) //Directly coats the mob, and doesn't go into their bloodstream + if(boiling) + M.visible_message("The boiling oil sizzles as it covers [M]!", \ + "You're covered in boiling oil!") + M.emote("scream") + playsound(M, 'sound/machines/fryer/deep_fryer_emerge.ogg', 25, TRUE) + var/oil_damage = (holder.chem_temp / fry_temperature) * 0.33 //Damage taken per unit + M.adjustFireLoss(min(35, oil_damage * reac_volume)) //Damage caps at 35 + else + ..() + return TRUE + +/datum/reagent/consumable/cooking_oil/reaction_turf(turf/open/T, reac_volume) + if(!istype(T)) + return + if(reac_volume >= 5) + T.MakeSlippery(min_wet_time = 10, wet_time_to_add = reac_volume * 1.5) + T.name = "deep-fried [initial(T.name)]" + T.add_atom_colour(color, TEMPORARY_COLOUR_PRIORITY) + /datum/reagent/consumable/sugar name = "Sugar" id = "sugar" diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 1f4dd47734..ea80f4c508 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -181,4 +181,12 @@ icon_state = "virus_food" anchored = TRUE density = FALSE - reagent_id = "virusfood" \ No newline at end of file + reagent_id = "virusfood" + + +/obj/structure/reagent_dispensers/cooking_oil + name = "vat of cooking oil" + 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 = "cooking_oil" diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index 3757957d9a..e94228f701 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/sound/machines/fryer/deep_fryer_1.ogg b/sound/machines/fryer/deep_fryer_1.ogg new file mode 100644 index 0000000000..7b726c9de6 Binary files /dev/null and b/sound/machines/fryer/deep_fryer_1.ogg differ diff --git a/sound/machines/fryer/deep_fryer_2.ogg b/sound/machines/fryer/deep_fryer_2.ogg new file mode 100644 index 0000000000..4bd4be7d77 Binary files /dev/null and b/sound/machines/fryer/deep_fryer_2.ogg differ diff --git a/sound/machines/fryer/deep_fryer_emerge.ogg b/sound/machines/fryer/deep_fryer_emerge.ogg new file mode 100644 index 0000000000..a803dd4c67 Binary files /dev/null and b/sound/machines/fryer/deep_fryer_emerge.ogg differ diff --git a/sound/machines/fryer/deep_fryer_immerse.ogg b/sound/machines/fryer/deep_fryer_immerse.ogg new file mode 100644 index 0000000000..3c06b865ca Binary files /dev/null and b/sound/machines/fryer/deep_fryer_immerse.ogg differ