Improves the deep fryer
This commit is contained in:
committed by
CitadelStationBot
parent
3ea8808201
commit
9dff28b50d
@@ -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 <i>that</i> 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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 <i>everything</i>."
|
||||
@@ -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, "<span class='warning'>There's nothing to dissolve [I] in!</span>")
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] drops [I] into [src].</span>", "<span class='notice'>You dissolve [I] in [src].</span>")
|
||||
I.reagents.trans_to(src, I.reagents.total_volume)
|
||||
qdel(I)
|
||||
return
|
||||
if(!reagents.has_reagent("cooking_oil"))
|
||||
to_chat(user, "<span class='warning'>[src] has no cooking oil to fry with!</span>")
|
||||
return
|
||||
if(istype(I, /obj/item/reagent_containers/food/snacks/deepfryholder))
|
||||
to_chat(user, "<span class='userdanger'>Your cooking skills are not up to the legendary Doublefry technique.</span>")
|
||||
@@ -60,20 +97,26 @@ insert ascii eagle on american flag background here
|
||||
. = ..()
|
||||
else if(!frying && user.transferItemToLoc(I, src))
|
||||
to_chat(user, "<span class='notice'>You put [I] into [src].</span>")
|
||||
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("<span class='notice'>[src] dings!</span>")
|
||||
else if (cook_time >= 60 && !frying_burnt)
|
||||
frying_burnt = TRUE
|
||||
visible_message("<span class='warning'>[src] emits an acrid smell!</span>")
|
||||
|
||||
|
||||
/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, "<span class='notice'>You eject [frying] from [src].</span>")
|
||||
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("<span class = 'danger'>[user] dunks [C]'s face in [src]!</span>")
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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("<span class='warning'>[O] rapidly fries as it's splashed with hot oil! Somehow.</span>")
|
||||
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("<span class='warning'>The boiling oil sizzles as it covers [M]!</span>", \
|
||||
"<span class='userdanger'>You're covered in boiling oil!</span>")
|
||||
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"
|
||||
|
||||
@@ -181,4 +181,12 @@
|
||||
icon_state = "virus_food"
|
||||
anchored = TRUE
|
||||
density = FALSE
|
||||
reagent_id = "virusfood"
|
||||
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"
|
||||
|
||||
Reference in New Issue
Block a user