Huge Bundle of Fixes, Update Cooking to current Aurora

Cooking times are now no longer 10-15 minutes per item, the LARGEST items will take around ~4-5 minutes, 6 at the maximum in the case of the superbigbite (one of the most filling food items in the game).
Cooking oil tanks added
Appliances are now constructible instead of being eldritch black magic
Recipes are now reorganized to either fryer/oven/grill based on where they're made (Although recipes_microwave still needs a LOT more sorting)
Critical time bug with cooking fixed, AND you can now upgrade your appliances for even higher efficiencies!
This commit is contained in:
Rykka
2020-07-22 21:34:13 -04:00
parent 1ca8336bad
commit 886ab72289
26 changed files with 607 additions and 449 deletions

View File

@@ -46,6 +46,13 @@
containertype = /obj/structure/closet/crate containertype = /obj/structure/closet/crate
containername = "crate of bar supplies" containername = "crate of bar supplies"
/datum/supply_pack/hospitality/cookingoil
name = "Cooking oil tank crate"
contains = list(/obj/structure/reagent_dispensers/cookingoil)
cost = 10
containertype = /obj/structure/largecrate
containername = "cooking oil tank crate"
/datum/supply_pack/randomised/hospitality/ /datum/supply_pack/randomised/hospitality/
group = "Hospitality" group = "Hospitality"

View File

@@ -81,6 +81,31 @@
frame_class = FRAME_CLASS_MACHINE frame_class = FRAME_CLASS_MACHINE
frame_size = 4 frame_size = 4
/datum/frame/frame_types/oven
name = "Oven"
frame_class = FRAME_CLASS_MACHINE
frame_size = 4
/datum/frame/frame_types/fryer
name = "Fryer"
frame_class = FRAME_CLASS_MACHINE
frame_size = 4
/datum/frame/frame_types/grill
name = "Grill"
frame_class = FRAME_CLASS_MACHINE
frame_size = 4
/datum/frame/frame_types/cerealmaker
name = "Cereal Maker"
frame_class = FRAME_CLASS_MACHINE
frame_size = 4
/datum/frame/frame_types/candymachine
name = "Candy Machine"
frame_class = FRAME_CLASS_MACHINE
frame_size = 4
/datum/frame/frame_types/fax /datum/frame/frame_types/fax
name = "Fax" name = "Fax"
frame_class = FRAME_CLASS_MACHINE frame_class = FRAME_CLASS_MACHINE

View File

@@ -121,16 +121,6 @@
/obj/item/weapon/stock_parts/motor = 2, /obj/item/weapon/stock_parts/motor = 2,
/obj/item/stack/cable_coil = 5) /obj/item/stack/cable_coil = 5)
/obj/item/weapon/circuitboard/microwave
name = T_BOARD("microwave")
build_path = /obj/machinery/microwave
board_type = new /datum/frame/frame_types/microwave
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/motor = 1,
/obj/item/weapon/stock_parts/capacitor = 1)
/obj/item/weapon/circuitboard/recharger /obj/item/weapon/circuitboard/recharger
name = T_BOARD("recharger") name = T_BOARD("recharger")
build_path = /obj/machinery/recharger build_path = /obj/machinery/recharger
@@ -250,13 +240,3 @@
/obj/item/weapon/stock_parts/spring = 1, /obj/item/weapon/stock_parts/spring = 1,
/obj/item/stack/cable_coil = 5) /obj/item/stack/cable_coil = 5)
/obj/item/weapon/circuitboard/microwave/advanced
name = T_BOARD("deluxe microwave")
build_path = /obj/machinery/microwave/advanced
board_type = new /datum/frame/frame_types/microwave
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/motor = 1,
/obj/item/weapon/stock_parts/capacitor = 1)

View File

@@ -0,0 +1,74 @@
/obj/item/weapon/circuitboard/microwave
name = T_BOARD("microwave")
desc = "The circuitboard for a microwave."
build_path = /obj/machinery/microwave
board_type = new /datum/frame/frame_types/microwave
contain_parts = 0
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/capacitor = 3, // Original Capacitor count was 1
/obj/item/weapon/stock_parts/motor = 1,
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/matter_bin = 2)
/obj/item/weapon/circuitboard/oven
name = T_BOARD("oven")
desc = "The circuitboard for an oven."
build_path = /obj/machinery/appliance/cooker/oven
board_type = new /datum/frame/frame_types/oven
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
req_components = list(
/obj/item/weapon/stock_parts/capacitor = 3,
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/matter_bin = 2)
/obj/item/weapon/circuitboard/fryer
name = T_BOARD("deep fryer")
desc = "The circuitboard for a deep fryer."
build_path = /obj/machinery/appliance/cooker/fryer
board_type = new /datum/frame/frame_types/fryer
req_components = list(
/obj/item/weapon/stock_parts/capacitor = 3,
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/matter_bin = 2)
/obj/item/weapon/circuitboard/grill
name = T_BOARD("grill")
desc = "The circuitboard for an industrial grill."
build_path = /obj/machinery/appliance/cooker/grill
board_type = new /datum/frame/frame_types/grill
req_components = list(
/obj/item/weapon/stock_parts/capacitor = 3,
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/matter_bin = 2)
/obj/item/weapon/circuitboard/cerealmaker
name = T_BOARD("cereal maker")
desc = "The circuitboard for a cereal maker."
build_path = /obj/machinery/appliance/mixer/cereal
board_type = new /datum/frame/frame_types/cerealmaker
req_components = list(
/obj/item/weapon/stock_parts/capacitor = 3,
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/matter_bin = 2)
/obj/item/weapon/circuitboard/candymachine
name = T_BOARD("candy machine")
desc = "The circuitboard for a candy machine."
build_path = /obj/machinery/appliance/mixer/candy
board_type = new /datum/frame/frame_types/candymachine
req_components = list(
/obj/item/weapon/stock_parts/capacitor = 3,
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/matter_bin = 2)
/obj/item/weapon/circuitboard/microwave/advanced
name = T_BOARD("deluxe microwave")
build_path = /obj/machinery/microwave/advanced
board_type = new /datum/frame/frame_types/microwave
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
req_components = list(
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/weapon/stock_parts/motor = 1,
/obj/item/weapon/stock_parts/capacitor = 1)

View File

@@ -4366,7 +4366,7 @@
//Code for dipping food in batter //Code for dipping food in batter
/obj/item/weapon/reagent_containers/food/snacks/afterattack(obj/O as obj, mob/user as mob, proximity) /obj/item/weapon/reagent_containers/food/snacks/afterattack(obj/O as obj, mob/user as mob, proximity)
if(O.is_open_container() && O.reagents && !(istype(O, /obj/item/weapon/reagent_containers/food))) if(O.is_open_container() && O.reagents && !(istype(O, /obj/item/weapon/reagent_containers/food)) && proximity)
for (var/r in O.reagents.reagent_list) for (var/r in O.reagents.reagent_list)
var/datum/reagent/R = r var/datum/reagent/R = r

View File

@@ -16,10 +16,10 @@
use_power = USE_POWER_IDLE use_power = USE_POWER_IDLE
idle_power_usage = 5 // Power used when turned on, but not processing anything idle_power_usage = 5 // Power used when turned on, but not processing anything
active_power_usage = 1000 // Power used when turned on and actively cooking something active_power_usage = 1000 // Power used when turned on and actively cooking something
var/initial_active_power_usage = 1000
var/cooking_power = 1 var/cooking_power = 0 // Effectiveness/speed at cooking
var/initial_cooking_power = 1 var/cooking_coeff = 0 // Optimal power * proximity to optimal temp; used to calc. cooking power.
var/heating_power = 1000 // Effectiveness at heating up; not used for mixers, should be equal to active_power_usage
var/max_contents = 1 // Maximum number of things this appliance can simultaneously cook var/max_contents = 1 // Maximum number of things this appliance can simultaneously cook
var/on_icon // Icon state used when cooking. var/on_icon // Icon state used when cooking.
var/off_icon // Icon state used when not cooking. var/off_icon // Icon state used when not cooking.
@@ -29,7 +29,7 @@
var/mobdamagetype = BRUTE // Burn damage for cooking appliances, brute for cereal/candy var/mobdamagetype = BRUTE // Burn damage for cooking appliances, brute for cereal/candy
var/food_color // Colour of resulting food item. var/food_color // Colour of resulting food item.
var/cooked_sound = 'sound/machines/ding.ogg' // Sound played when cooking completes. var/cooked_sound = 'sound/machines/ding.ogg' // Sound played when cooking completes.
var/can_burn_food // Can the object burn food that is left inside? var/can_burn_food = FALSE // Can the object burn food that is left inside?
var/burn_chance = 10 // How likely is the food to burn? var/burn_chance = 10 // How likely is the food to burn?
var/list/cooking_objs = list() // List of things being cooked var/list/cooking_objs = list() // List of things being cooked
@@ -40,18 +40,13 @@
var/container_type = null var/container_type = null
var/combine_first = 0//If 1, this appliance will do combinaiton cooking before checking recipes var/combine_first = FALSE // If TRUE, this appliance will do combination cooking before checking recipes
/obj/machinery/appliance/Initialize() /obj/machinery/appliance/Initialize()
. = ..() . = ..()
component_parts = list()
component_parts += /obj/item/weapon/circuitboard/cooking default_apply_parts()
component_parts += /obj/item/weapon/stock_parts/capacitor
component_parts += /obj/item/weapon/stock_parts/capacitor
component_parts += /obj/item/weapon/stock_parts/capacitor
component_parts += /obj/item/weapon/stock_parts/scanning_module
component_parts += /obj/item/weapon/stock_parts/matter_bin
component_parts += /obj/item/weapon/stock_parts/matter_bin
if(output_options.len) if(output_options.len)
verbs += /obj/machinery/appliance/proc/choose_output verbs += /obj/machinery/appliance/proc/choose_output
@@ -228,7 +223,7 @@
else if(istype(check, /obj/item/weapon/disk/nuclear)) else if(istype(check, /obj/item/weapon/disk/nuclear))
to_chat(user, "<span class='warning'>You can't cook that.</span>") to_chat(user, "<span class='warning'>You can't cook that.</span>")
return 0 return 0
else if(I.is_crowbar() || I.is_screwdriver()) // You can't cook tools, dummy. else if(I.is_crowbar() || I.is_screwdriver() || istype(I, /obj/item/weapon/storage/part_replacer)) // You can't cook tools, dummy.
return 0 return 0
else if(!istype(check) && !istype(check, /obj/item/weapon/holder)) else if(!istype(check) && !istype(check, /obj/item/weapon/holder))
to_chat(user, "<span class='warning'>That's not edible.</span>") to_chat(user, "<span class='warning'>That's not edible.</span>")
@@ -301,7 +296,7 @@
/obj/machinery/appliance/proc/get_cooking_work(var/datum/cooking_item/CI) /obj/machinery/appliance/proc/get_cooking_work(var/datum/cooking_item/CI)
for (var/obj/item/J in CI.container) for (var/obj/item/J in CI.container)
oilwork(J, CI) cookwork_by_item(J, CI)
for (var/r in CI.container.reagents.reagent_list) for (var/r in CI.container.reagents.reagent_list)
var/datum/reagent/R = r var/datum/reagent/R = r
@@ -328,7 +323,7 @@
CI.max_cookwork += buffer*multiplier CI.max_cookwork += buffer*multiplier
//Just a helper to save code duplication in the above //Just a helper to save code duplication in the above
/obj/machinery/appliance/proc/oilwork(var/obj/item/I, var/datum/cooking_item/CI) /obj/machinery/appliance/proc/cookwork_by_item(var/obj/item/I, var/datum/cooking_item/CI)
var/obj/item/weapon/reagent_containers/food/snacks/S = I var/obj/item/weapon/reagent_containers/food/snacks/S = I
var/work = 0 var/work = 0
if (istype(S)) if (istype(S))
@@ -725,18 +720,13 @@
for(var/obj/item/weapon/stock_parts/P in src.component_parts) for(var/obj/item/weapon/stock_parts/P in src.component_parts)
if(istype(P, /obj/item/weapon/stock_parts/scanning_module)) if(istype(P, /obj/item/weapon/stock_parts/scanning_module))
scan_rating += P.rating scan_rating += P.rating - 1 // Default parts shouldn't mess with stats
// to_world("RefreshParts returned scan rating of [scan_rating] during this step.") // Debug lines, uncomment if you need to test.
else if(istype(P, /obj/item/weapon/stock_parts/capacitor)) else if(istype(P, /obj/item/weapon/stock_parts/capacitor))
cap_rating += P.rating cap_rating += P.rating - 1 // Default parts shouldn't mess with stats
// to_world("RefreshParts returned cap rating of [cap_rating] during this step.") // Debug lines, uncomment if you need to test.
active_power_usage = initial(active_power_usage) - scan_rating*10 active_power_usage = initial(active_power_usage) - scan_rating * 25
cooking_power = initial(cooking_power) + (scan_rating+cap_rating)/10 heating_power = initial(heating_power) + cap_rating * 25
cooking_power = cooking_coeff * (1 + (scan_rating + cap_rating) / 20) // 100% eff. becomes 120%, 140%, 160% w/ better parts, thus rewarding upgrading the appliances during your shift.
/obj/item/weapon/circuitboard/cooking // to_world("RefreshParts returned cooking power of [cooking_power] during this step.") // Debug lines, uncomment if you need to test.
name = "kitchen appliance circuitry"
desc = "The circuitboard for many kitchen appliances. Not of much use."
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
req_components = list(
/obj/item/weapon/stock_parts/capacitor = 3,
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/matter_bin = 2)

View File

@@ -2,27 +2,29 @@
var/temperature = T20C var/temperature = T20C
var/min_temp = 80 + T0C //Minimum temperature to do any cooking var/min_temp = 80 + T0C //Minimum temperature to do any cooking
var/optimal_temp = 200 + T0C //Temperature at which we have 100% efficiency. efficiency is lowered on either side of this var/optimal_temp = 200 + T0C //Temperature at which we have 100% efficiency. efficiency is lowered on either side of this
var/optimal_power = 0.1//cooking power at 100% var/optimal_power = 0.6 //cooking power at 100% - This variable determines the MAXIMUM increase in do_cooking_ticks, once math goes through. If you want ticks of 0.5, set it to 0.5, etc.
var/loss = 1 //Temp lost per proc when equalising var/loss = 1 //Temp lost per proc when equalising
var/resistance = 32000 //Resistance to heating. combines with active power usage to determine how long heating takes. 32k by default. var/resistance = 32000 //Resistance to heating. combines with heating power to determine how long heating takes. 32k by default.
var/light_x = 0 var/light_x = 0
var/light_y = 0 var/light_y = 0
cooking_coeff = 0
cooking_power = 0 cooking_power = 0
mobdamagetype = BURN mobdamagetype = BURN
can_burn_food = TRUE
/obj/machinery/appliance/cooker/examine(var/mob/user) /obj/machinery/appliance/cooker/examine(var/mob/user)
. = ..() . = ..()
if(.) //no need to duplicate adjacency check if(.) //no need to duplicate adjacency check
if(!stat) if(!stat)
if (temperature < min_temp) if (temperature < min_temp)
to_chat(user, span("warning", "\The [src] is still heating up and is too cold to cook anything yet.")) to_chat(user, "<span class='warning'>\The [src] is still heating up and is too cold to cook anything yet.</span>")
else else
to_chat(user, span("notice", "It is running at [round(get_efficiency(), 0.1)]% efficiency!")) to_chat(user, "<span class='notice'>It is running at [round(get_efficiency(), 0.1)]% efficiency!</span>")
to_chat(user, "Temperature: [round(temperature - T0C, 0.1)]C / [round(optimal_temp - T0C, 0.1)]C") to_chat(user, "Temperature: [round(temperature - T0C, 0.1)]C / [round(optimal_temp - T0C, 0.1)]C")
else else
to_chat(user, span("warning", "It is switched off.")) to_chat(user, "<span class='warning'>It is switched off.</span>")
/obj/machinery/appliance/cooker/list_contents(var/mob/user) /obj/machinery/appliance/cooker/list_contents(var/mob/user)
if (cooking_objs.len) if (cooking_objs.len)
@@ -35,10 +37,10 @@
string += "- [CI.container.label(num)], [report_progress(CI)]</br>" string += "- [CI.container.label(num)], [report_progress(CI)]</br>"
to_chat(user, string) to_chat(user, string)
else else
to_chat(user, span("notice","It is empty.")) to_chat(user, "<span class='notice'>It's empty.</span>")
/obj/machinery/appliance/cooker/proc/get_efficiency() /obj/machinery/appliance/cooker/proc/get_efficiency()
//RefreshParts() // to_world("Our cooking_power is [cooking_power] and our efficiency is [(cooking_power / optimal_power) * 100].") // Debug lines, uncomment if you need to test.
return (cooking_power / optimal_power) * 100 return (cooking_power / optimal_power) * 100
/obj/machinery/appliance/cooker/Initialize() /obj/machinery/appliance/cooker/Initialize()
@@ -80,6 +82,12 @@
/obj/machinery/appliance/cooker/proc/update_cooking_power() /obj/machinery/appliance/cooker/proc/update_cooking_power()
var/temp_scale = 0 var/temp_scale = 0
if(temperature > min_temp) if(temperature > min_temp)
if(temperature >= optimal_temp) // If we're at or above optimal temp, then we're going to be at 1 for temp scale. No use penalizing you for the cookers increasing heat constantly (until we implement setting a temp on the oven via a menu.)
temp_scale = 1
else
temp_scale = (temperature - min_temp) / (optimal_temp - min_temp) // If we're between min and optimal this will yield a value in the range 0-1
/* // old code for reference, will be useful if/when we implement ovens with configurable temperatures - TODO recipes with optimal temps for cooking per-recipe??
temp_scale = (temperature - min_temp) / (optimal_temp - min_temp) // If we're between min and optimal this will yield a value in the range 0-1 temp_scale = (temperature - min_temp) / (optimal_temp - min_temp) // If we're between min and optimal this will yield a value in the range 0-1
if(temp_scale > 1) // We're above optimal, efficiency goes down as we pass too much over it if(temp_scale > 1) // We're above optimal, efficiency goes down as we pass too much over it
@@ -87,9 +95,12 @@
temp_scale = 0 temp_scale = 0
else else
temp_scale = 1 - (temp_scale - 1) temp_scale = 1 - (temp_scale - 1)
*/
cooking_power = optimal_power * temp_scale cooking_coeff = optimal_power * temp_scale
// RefreshParts() // to_world("Our cooking_power is [cooking_power] and our tempscale is [temp_scale], and our cooking_coeff is [cooking_coeff] before RefreshParts.") // Debug lines, uncomment if you need to test.
RefreshParts()
// to_world("Our cooking_power is [cooking_power] after RefreshParts.") // Debug lines, uncomment if you need to test.
/obj/machinery/appliance/cooker/proc/heat_up() /obj/machinery/appliance/cooker/proc/heat_up()
if(temperature < optimal_temp) if(temperature < optimal_temp)
@@ -97,7 +108,7 @@
playsound(src, 'sound/machines/click.ogg', 20, 1) playsound(src, 'sound/machines/click.ogg', 20, 1)
use_power = 2.//If we're heating we use the active power use_power = 2.//If we're heating we use the active power
update_icon() update_icon()
temperature += active_power_usage / resistance temperature += heating_power / resistance
update_cooking_power() update_cooking_power()
return 1 return 1
else else

View File

@@ -10,7 +10,7 @@ fundamental differences
/obj/machinery/appliance/mixer /obj/machinery/appliance/mixer
max_contents = 1 max_contents = 1
stat = POWEROFF stat = POWEROFF
cooking_power = 0.4 cooking_coeff = 0.75 // Original value 0.4
active_power_usage = 3000 active_power_usage = 3000
idle_power_usage = 50 idle_power_usage = 50

View File

@@ -6,7 +6,8 @@
on_icon = "mixer_on" on_icon = "mixer_on"
cook_type = "candied" cook_type = "candied"
appliancetype = CANDYMAKER appliancetype = CANDYMAKER
cooking_power = 0.6 circuit = /obj/item/weapon/circuitboard/candymachine
cooking_coeff = 1.0 // Original Value 0.6
output_options = list( output_options = list(
"Jawbreaker" = /obj/item/weapon/reagent_containers/food/snacks/variable/jawbreaker, "Jawbreaker" = /obj/item/weapon/reagent_containers/food/snacks/variable/jawbreaker,

View File

@@ -7,6 +7,7 @@
on_icon = "cereal_on" on_icon = "cereal_on"
off_icon = "cereal_off" off_icon = "cereal_off"
appliancetype = CEREALMAKER appliancetype = CEREALMAKER
circuit = /obj/item/weapon/circuitboard/cerealmaker
output_options = list( output_options = list(
"Cereal" = /obj/item/weapon/reagent_containers/food/snacks/variable/cereal "Cereal" = /obj/item/weapon/reagent_containers/food/snacks/variable/cereal

View File

@@ -150,6 +150,15 @@
max_space = 30 max_space = 30
max_reagents = 120 max_reagents = 120
/obj/item/weapon/reagent_containers/cooking_container/oven/Initialize()
. = ..()
// We add to the insertable list specifically for the oven trays, to allow specialty cakes.
insertable += list(
/obj/item/clothing/head/cakehat, // This is because we want to allow birthday cakes to be makeable.
/obj/item/organ/internal/brain // As before, needed for braincake
)
/obj/item/weapon/reagent_containers/cooking_container/fryer /obj/item/weapon/reagent_containers/cooking_container/fryer
name = "fryer basket" name = "fryer basket"
shortname = "basket" shortname = "basket"

View File

@@ -9,18 +9,20 @@
food_color = "#FFAD33" food_color = "#FFAD33"
cooked_sound = 'sound/machines/ding.ogg' cooked_sound = 'sound/machines/ding.ogg'
var/datum/looping_sound/deep_fryer/fry_loop var/datum/looping_sound/deep_fryer/fry_loop
circuit = /obj/item/weapon/circuitboard/fryer
appliancetype = FRYER appliancetype = FRYER
active_power_usage = 12 KILOWATTS active_power_usage = 12 KILOWATTS
heating_power = 12000
min_temp = 140 + T0C // Same as above, increasing this to just under 2x to make the % increase on efficiency not quite so painful as it would be at 80. min_temp = 140 + T0C // Same as above, increasing this to just under 2x to make the % increase on efficiency not quite so painful as it would be at 80.
optimal_temp = 400 + T0C // Increasing this to be 2x Oven to allow for a much higher/realistic frying temperatures. Doesn't really do anything but make heating the fryer take a bit longer. optimal_temp = 400 + T0C // Increasing this to be 2x Oven to allow for a much higher/realistic frying temperatures. Doesn't really do anything but make heating the fryer take a bit longer.
optimal_power = 0.35 optimal_power = 0.95 // .35 higher than the default to give fryers faster cooking speed.
idle_power_usage = 3.6 KILOWATTS idle_power_usage = 3.6 KILOWATTS
// Power used to maintain temperature once it's heated. // Power used to maintain temperature once it's heated.
// Going with 25% of the active power. This is a somewhat arbitrary value. // Going with 25% of the active power. This is a somewhat arbitrary value.
resistance = 20000 // Approx. 8-9 minutes to heat up. resistance = 60000 // Approx. 10 minutes to heat up.
max_contents = 2 max_contents = 2
container_type = /obj/item/weapon/reagent_containers/cooking_container/fryer container_type = /obj/item/weapon/reagent_containers/cooking_container/fryer

View File

@@ -3,24 +3,29 @@
desc = "Backyard grilling, IN SPACE." desc = "Backyard grilling, IN SPACE."
icon_state = "grill_off" icon_state = "grill_off"
cook_type = "grilled" cook_type = "grilled"
appliancetype = GRILL
food_color = "#A34719" food_color = "#A34719"
on_icon = "grill_on" on_icon = "grill_on"
off_icon = "grill_off" off_icon = "grill_off"
can_burn_food = 1 can_burn_food = TRUE
stat = POWEROFF circuit = /obj/item/weapon/circuitboard/grill
appliancetype = GRILL
active_power_usage = 4 KILOWATTS active_power_usage = 4 KILOWATTS
heating_power = 4000
idle_power_usage = 2 KILOWATTS idle_power_usage = 2 KILOWATTS
optimal_power = 1.2 // Things on the grill cook .6 faster - this is now the fastest appliance to heat and to cook on. BURGERS GO SIZZLE.
stat = POWEROFF // Starts turned off.
// Grill is faster to heat and setup than the rest. // Grill is faster to heat and setup than the rest.
optimal_temp = 120 + T0C optimal_temp = 120 + T0C
min_temp = 60 + T0C min_temp = 60 + T0C
resistance = 8 KILOWATTS // Very fast to heat up. resistance = 8 KILOWATTS // Very fast to heat up.
max_contents = 3 // Arbitrary number, 3 grill 'racks'
container_type = /obj/item/weapon/reagent_containers/cooking_container/grill container_type = /obj/item/weapon/reagent_containers/cooking_container/grill
/* // Test Comment this out too, /cooker does this for us, and this path '/obj/machinery/appliance/grill' is invalid anyways, meaning it does jack shit. - Updated the paths, but I'm basically commenting all this shit out and if the grill works as-normal, none of this stuff is needed.
/obj/machinery/appliance/grill/toggle_power() /obj/machinery/appliance/grill/toggle_power()
set src in view() set src in view()
set name = "Toggle Power" set name = "Toggle Power"
@@ -42,12 +47,13 @@
playsound(src, 'sound/machines/click.ogg', 40, 1) playsound(src, 'sound/machines/click.ogg', 40, 1)
update_icon() update_icon()
/obj/machinery/appliance/grill/Initialize()
/obj/machinery/appliance/cooker/grill/Initialize()
. = ..() . = ..()
// cooking_objs += new /datum/cooking_item(new /obj/item/weapon/reagent_containers/cooking_container(src)) // cooking_objs += new /datum/cooking_item(new /obj/item/weapon/reagent_containers/cooking_container(src))
cooking = FALSE cooking = FALSE
/obj/machinery/appliance/grill/has_space(var/obj/item/I) /obj/machinery/appliance/cooker/grill/has_space(var/obj/item/I)
var/datum/cooking_item/CI = cooking_objs[1] var/datum/cooking_item/CI = cooking_objs[1]
if (!CI || !CI.container) if (!CI || !CI.container)
return 0 return 0
@@ -56,7 +62,8 @@
return CI return CI
return 0 return 0
*/
/* // Test comment this out, I don't think this is doing shit anyways.
//Container is not removable //Container is not removable
/obj/machinery/appliance/grill/removal_menu(var/mob/user) /obj/machinery/appliance/grill/removal_menu(var/mob/user)
if (can_remove_items(user)) if (can_remove_items(user))
@@ -79,14 +86,17 @@
update_icon() update_icon()
return 1 return 1
return 0 return 0
*/
/obj/machinery/appliance/grill/update_icon() /obj/machinery/appliance/grill/update_icon() // TODO: Cooking icon
if(!stat) if(!stat)
icon_state = on_icon icon_state = on_icon
else else
icon_state = off_icon icon_state = off_icon
/* // Test remove this too.
/obj/machinery/appliance/grill/process() /obj/machinery/appliance/grill/process()
if (!stat) if (!stat)
for (var/i in cooking_objs) for (var/i in cooking_objs)
do_cooking_tick(i) do_cooking_tick(i)
*/

View File

@@ -6,14 +6,16 @@
cook_type = "baked" cook_type = "baked"
appliancetype = OVEN appliancetype = OVEN
food_color = "#A34719" food_color = "#A34719"
can_burn_food = 1 can_burn_food = TRUE
circuit = /obj/item/weapon/circuitboard/oven
active_power_usage = 6 KILOWATTS active_power_usage = 6 KILOWATTS
heating_power = 6000
//Based on a double deck electric convection oven //Based on a double deck electric convection oven
resistance = 16000 resistance = 30000 // Approx. 12 minutes to heat up.
idle_power_usage = 2 KILOWATTS idle_power_usage = 2 KILOWATTS
//uses ~30% power to stay warm //uses ~30% power to stay warm
optimal_power = 0.2 optimal_power = 0.8 // Oven cooks .2 faster than the default speed.
light_x = 2 light_x = 2
max_contents = 5 max_contents = 5
@@ -74,19 +76,27 @@
if(open) if(open)
open = FALSE open = FALSE
loss = (active_power_usage / resistance)*0.5 loss = (heating_power / resistance) * 0.5
cooking = TRUE cooking = TRUE
else else
open = TRUE open = TRUE
loss = (active_power_usage / resistance)*4 loss = (heating_power / resistance) * 4
//When the oven door is opened, heat is lost MUCH faster and you stop cooking (because the door is open) //When the oven door is opened, heat is lost MUCH faster and you stop cooking (because the door is open)
cooking = FALSE cooking = FALSE
playsound(src, 'sound/machines/hatch_open.ogg', 20, 1) playsound(src, 'sound/machines/hatch_open.ogg', 20, 1)
update_icon() update_icon()
/obj/machinery/appliance/cooker/oven/proc/manip(var/obj/item/I)
// check if someone's trying to manipulate the machine
if(I.is_crowbar() || I.is_screwdriver() || istype(I, /obj/item/weapon/storage/part_replacer))
return TRUE
else
return FALSE
/obj/machinery/appliance/cooker/oven/can_insert(var/obj/item/I, var/mob/user) /obj/machinery/appliance/cooker/oven/can_insert(var/obj/item/I, var/mob/user)
if(!open) if(!open && !manip(I))
to_chat(user, "<span class='warning'>You can't put anything in while the door is closed!</span>") to_chat(user, "<span class='warning'>You can't put anything in while the door is closed!</span>")
return 0 return 0
@@ -117,6 +127,7 @@
/obj/machinery/appliance/cooker/oven/finish_cooking(var/datum/cooking_item/CI) /obj/machinery/appliance/cooker/oven/finish_cooking(var/datum/cooking_item/CI)
if(CI.combine_target) if(CI.combine_target)
CI.result_type = 3//Combination type. We're making something out of our ingredients CI.result_type = 3//Combination type. We're making something out of our ingredients
visible_message("<span class='notice'>\The [src] pings!</span>")
combination_cook(CI) combination_cook(CI)
return return
else else

View File

@@ -35,6 +35,7 @@
/obj/machinery/microwave/Initialize() /obj/machinery/microwave/Initialize()
. = ..() . = ..()
reagents = new/datum/reagents(100) reagents = new/datum/reagents(100)
reagents.my_atom = src reagents.my_atom = src
@@ -156,12 +157,18 @@
var/obj/item/weapon/grab/G = O var/obj/item/weapon/grab/G = O
to_chat(user, "<span class='warning'>This is ridiculous. You can not fit \the [G.affecting] in this [src].</span>") to_chat(user, "<span class='warning'>This is ridiculous. You can not fit \the [G.affecting] in this [src].</span>")
return 1 return 1
else if(O.is_screwdriver())
default_deconstruction_screwdriver(user, O)
return
else if(O.is_crowbar()) else if(O.is_crowbar())
if(default_deconstruction_crowbar(user, O))
return
else
user.visible_message( \ user.visible_message( \
"<span class='notice'>\The [user] begins [src.anchored ? "unsecuring" : "securing"] the microwave.</span>", \ "<span class='notice'>\The [user] begins [src.anchored ? "unsecuring" : "securing"] the microwave.</span>", \
"<span class='notice'>You attempt to [src.anchored ? "unsecure" : "secure"] the microwave.</span>" "<span class='notice'>You attempt to [src.anchored ? "unsecure" : "secure"] the microwave.</span>"
) )
if (do_after(user,20)) if (do_after(user,20/O.toolspeed))
user.visible_message( \ user.visible_message( \
"<span class='notice'>\The [user] [src.anchored ? "unsecures" : "secures"] the microwave.</span>", \ "<span class='notice'>\The [user] [src.anchored ? "unsecures" : "secures"] the microwave.</span>", \
"<span class='notice'>You [src.anchored ? "unsecure" : "secure"] the microwave.</span>" "<span class='notice'>You [src.anchored ? "unsecure" : "secure"] the microwave.</span>"
@@ -169,6 +176,8 @@
src.anchored = !src.anchored src.anchored = !src.anchored
else else
to_chat(user, "<span class='notice'>You decide not to do that.</span>") to_chat(user, "<span class='notice'>You decide not to do that.</span>")
else if(default_part_replacement(user, O))
return
else else
to_chat(user, "<span class='warning'>You have no idea what you can cook with this [O].</span>") to_chat(user, "<span class='warning'>You have no idea what you can cook with this [O].</span>")
..() ..()

View File

@@ -199,15 +199,15 @@
//We will not touch things which are not required for this recipe. They will be left behind for the caller //We will not touch things which are not required for this recipe. They will be left behind for the caller
//to decide what to do. They may be used again to make another recipe or discarded, or merged into the results, //to decide what to do. They may be used again to make another recipe or discarded, or merged into the results,
//thats no longer the concern of this proc //thats no longer the concern of this proc
var/obj/temp = new /obj(src) var/datum/reagents/buffer = new /datum/reagents(10000000000, null)//
temp.create_reagents(999999999)
//Find items we need //Find items we need
if (items && items.len) if (items && items.len)
for (var/i in items) for (var/i in items)
var/obj/item/I = locate(i) in container var/obj/item/I = locate(i) in container
if (I && I.reagents) if (I && I.reagents)
I.reagents.trans_to_holder(temp.reagents,I.reagents.total_volume) I.reagents.trans_to_holder(buffer,I.reagents.total_volume)
qdel(I) qdel(I)
//Find fruits //Find fruits
@@ -223,14 +223,14 @@
//We found a thing we need //We found a thing we need
checklist[G.seed.kitchen_tag]-- checklist[G.seed.kitchen_tag]--
if (G && G.reagents) if (G && G.reagents)
G.reagents.trans_to_holder(temp.reagents,G.reagents.total_volume) G.reagents.trans_to_holder(buffer,G.reagents.total_volume)
qdel(G) qdel(G)
//And lastly deduct necessary quantities of reagents //And lastly deduct necessary quantities of reagents
if (reagents && reagents.len) if (reagents && reagents.len)
for (var/r in reagents) for (var/r in reagents)
//Doesnt matter whether or not there's enough, we assume that check is done before //Doesnt matter whether or not there's enough, we assume that check is done before
container.reagents.trans_id_to(temp, r, reagents[r]) container.reagents.trans_type_to(buffer, r, reagents[r])
/* /*
Now we've removed all the ingredients that were used and we have the buffer containing the total of Now we've removed all the ingredients that were used and we have the buffer containing the total of
@@ -244,8 +244,7 @@
If, as in the most common case, there is only a single result, then it will just be a reference to If, as in the most common case, there is only a single result, then it will just be a reference to
the single-result's reagents the single-result's reagents
*/ */
var/obj/tempholder = new(src) var/datum/reagents/holder = new/datum/reagents(10000000000)
tempholder.create_reagents(999999999)
var/list/results = list() var/list/results = list()
while (tally < result_quantity) while (tally < result_quantity)
var/obj/result_obj = new result(container) var/obj/result_obj = new result(container)
@@ -253,15 +252,13 @@
if (!result_obj.reagents)//This shouldn't happen if (!result_obj.reagents)//This shouldn't happen
//If the result somehow has no reagents defined, then create a new holder //If the result somehow has no reagents defined, then create a new holder
log_runtime(EXCEPTION("<span class='danger'>[result_obj] had no reagents!</span>")) result_obj.reagents = new /datum/reagents(buffer.total_volume*1.5, result_obj)
result_obj.create_reagents(temp.reagents.total_volume*1.5)
if (result_quantity == 1) if (result_quantity == 1)
qdel(tempholder.reagents) qdel(holder)
tempholder.reagents = result_obj.reagents holder = result_obj.reagents
else else
log_runtime(EXCEPTION("<span class='danger'>[result_quantity] was greater than 1! Check [result_obj]!</span>")) result_obj.reagents.trans_to(holder, result_obj.reagents.total_volume)
result_obj.reagents.trans_to(tempholder.reagents, result_obj.reagents.total_volume)
tally++ tally++
@@ -270,38 +267,39 @@
//We do no transferring //We do no transferring
if (RECIPE_REAGENT_SUM) if (RECIPE_REAGENT_SUM)
//Sum is easy, just shove the entire buffer into the result //Sum is easy, just shove the entire buffer into the result
temp.reagents.trans_to_holder(tempholder.reagents, temp.reagents.total_volume) buffer.trans_to_holder(holder, buffer.total_volume)
if (RECIPE_REAGENT_MAX) if (RECIPE_REAGENT_MAX)
//We want the highest of each. //We want the highest of each.
//Iterate through everything in buffer. If the target has less than the buffer, then top it up //Iterate through everything in buffer. If the target has less than the buffer, then top it up
for (var/datum/reagent/R in temp.reagents.reagent_list) for (var/datum/reagent/R in buffer.reagent_list)
var/rvol = tempholder.reagents.get_reagent_amount(R.id) var/rvol = holder.get_reagent_amount(R.type)
if (rvol < R.volume) if (rvol < R.volume)
//Transfer the difference //Transfer the difference
temp.reagents.trans_id_to(tempholder, R.id, R.volume-rvol) buffer.trans_type_to(holder, R.type, R.volume-rvol)
if (RECIPE_REAGENT_MIN) if (RECIPE_REAGENT_MIN)
//Min is slightly more complex. We want the result to have the lowest from each side //Min is slightly more complex. We want the result to have the lowest from each side
//But zero will not count. Where a side has zero its ignored and the side with a nonzero value is used //But zero will not count. Where a side has zero its ignored and the side with a nonzero value is used
for (var/datum/reagent/R in temp.reagents.reagent_list) for (var/datum/reagent/R in buffer.reagent_list)
var/rvol = tempholder.reagents.get_reagent_amount(R.id) var/rvol = holder.get_reagent_amount(R.type)
if (rvol == 0) //If the target has zero of this reagent if (rvol == 0) //If the target has zero of this reagent
temp.reagents.trans_id_to(tempholder, R.id, R.volume) buffer.trans_type_to(holder, R.type, R.volume)
//Then transfer all of ours //Then transfer all of ours
else if (rvol > R.volume) else if (rvol > R.volume)
//if the target has more than ours //if the target has more than ours
//Remove the difference //Remove the difference
tempholder.reagents.remove_reagent(R.id, rvol-R.volume) holder.remove_reagent(R.type, rvol-R.volume)
if (results.len > 1) if (results.len > 1)
//If we're here, then holder is a buffer containing the total reagents for all the results. //If we're here, then holder is a buffer containing the total reagents for all the results.
//So now we redistribute it among them //So now we redistribute it among them
var/total = tempholder.reagents.total_volume var/total = holder.total_volume
for (var/i in results) for (var/i in results)
var/atom/a = i //optimisation var/atom/a = i //optimisation
tempholder.reagents.trans_to(a, total / results.len) holder.trans_to(a, total / results.len)
return results return results
// When exact is false, extraneous ingredients are ignored // When exact is false, extraneous ingredients are ignored

View File

@@ -77,28 +77,36 @@
//Sweet Recipes. //Sweet Recipes.
//================== //==================
// All donuts were given reagents of 5 to equal old recipes and make for faster cook times.
/datum/recipe/jellydonut /datum/recipe/jellydonut
appliance = FRYER appliance = FRYER
reagents = list("berryjuice" = 10, "sugar" = 10) reagents = list("berryjuice" = 5, "sugar" = 5)
items = list( items = list(
/obj/item/weapon/reagent_containers/food/snacks/doughslice /obj/item/weapon/reagent_containers/food/snacks/doughslice
) )
result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly
result_quantity = 2 result_quantity = 2
/datum/recipe/jellydonut/poisonberry
reagents = list("poisonberryjuice" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/poisonberry
/datum/recipe/jellydonut/slime /datum/recipe/jellydonut/slime
appliance = FRYER appliance = FRYER
reagents = list("slimejelly" = 10, "sugar" = 10) reagents = list("slimejelly" = 5, "sugar" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly result = /obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly
/datum/recipe/jellydonut/cherry /datum/recipe/jellydonut/cherry
appliance = FRYER appliance = FRYER
reagents = list("cherryjelly" = 10, "sugar" = 10) reagents = list("cherryjelly" = 5, "sugar" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly result = /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly
/datum/recipe/donut /datum/recipe/donut
appliance = FRYER appliance = FRYER
reagents = list("sugar" = 10) reagents = list("sugar" = 5)
items = list( items = list(
/obj/item/weapon/reagent_containers/food/snacks/doughslice /obj/item/weapon/reagent_containers/food/snacks/doughslice
) )

View File

@@ -0,0 +1,231 @@
/datum/recipe/humanburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat/human,
/obj/item/weapon/reagent_containers/food/snacks/bun
)
result = /obj/item/weapon/reagent_containers/food/snacks/human/burger
/datum/recipe/plainburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/weapon/reagent_containers/food/snacks/meat //do not place this recipe before /datum/recipe/humanburger
)
result = /obj/item/weapon/reagent_containers/food/snacks/monkeyburger
/datum/recipe/syntiburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh
)
result = /obj/item/weapon/reagent_containers/food/snacks/monkeyburger
/datum/recipe/brainburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/organ/internal/brain
)
result = /obj/item/weapon/reagent_containers/food/snacks/brainburger
/datum/recipe/roburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/robot_parts/head
)
result = /obj/item/weapon/reagent_containers/food/snacks/roburger
/datum/recipe/xenoburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/weapon/reagent_containers/food/snacks/xenomeat
)
result = /obj/item/weapon/reagent_containers/food/snacks/xenoburger
/datum/recipe/fishburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/weapon/reagent_containers/food/snacks/carpmeat
)
result = /obj/item/weapon/reagent_containers/food/snacks/fishburger
/datum/recipe/tofuburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/weapon/reagent_containers/food/snacks/tofu
)
result = /obj/item/weapon/reagent_containers/food/snacks/tofuburger
/datum/recipe/ghostburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/weapon/ectoplasm //where do you even find this stuff
)
result = /obj/item/weapon/reagent_containers/food/snacks/ghostburger
/datum/recipe/clownburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/clothing/mask/gas/clown_hat
)
result = /obj/item/weapon/reagent_containers/food/snacks/clownburger
/datum/recipe/mimeburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/clothing/head/beret
)
result = /obj/item/weapon/reagent_containers/food/snacks/mimeburger
/datum/recipe/mouseburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/weapon/holder/mouse
)
result = /obj/item/weapon/reagent_containers/food/snacks/mouseburger
/datum/recipe/bunbun
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/weapon/reagent_containers/food/snacks/bun
)
result = /obj/item/weapon/reagent_containers/food/snacks/bunbun
/datum/recipe/hotdog
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/weapon/reagent_containers/food/snacks/sausage
)
result = /obj/item/weapon/reagent_containers/food/snacks/hotdog
/datum/recipe/humankabob
appliance = GRILL
items = list(
/obj/item/stack/rods,
/obj/item/weapon/reagent_containers/food/snacks/meat/human,
/obj/item/weapon/reagent_containers/food/snacks/meat/human,
)
result = /obj/item/weapon/reagent_containers/food/snacks/human/kabob
/datum/recipe/kabob //Do not put before humankabob
appliance = GRILL
items = list(
/obj/item/stack/rods,
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/meat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/monkeykabob
/datum/recipe/monkeykabob
appliance = GRILL
items = list(
/obj/item/stack/rods,
/obj/item/weapon/reagent_containers/food/snacks/meat/monkey,
/obj/item/weapon/reagent_containers/food/snacks/meat/monkey
)
result = /obj/item/weapon/reagent_containers/food/snacks/monkeykabob
/datum/recipe/syntikabob
appliance = GRILL
items = list(
/obj/item/stack/rods,
/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,
/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh
)
result = /obj/item/weapon/reagent_containers/food/snacks/monkeykabob
/datum/recipe/tofukabob
appliance = GRILL
items = list(
/obj/item/stack/rods,
/obj/item/weapon/reagent_containers/food/snacks/tofu,
/obj/item/weapon/reagent_containers/food/snacks/tofu,
)
result = /obj/item/weapon/reagent_containers/food/snacks/tofukabob
/datum/recipe/spellburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/monkeyburger,
/obj/item/clothing/head/wizard/fake,
)
result = /obj/item/weapon/reagent_containers/food/snacks/spellburger
/datum/recipe/spellburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/monkeyburger,
/obj/item/clothing/head/wizard,
)
result = /obj/item/weapon/reagent_containers/food/snacks/spellburger
/datum/recipe/bigbiteburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/monkeyburger,
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/meat,
)
reagents = list("egg" = 3)
reagent_mix = RECIPE_REAGENT_REPLACE
result = /obj/item/weapon/reagent_containers/food/snacks/bigbiteburger
/datum/recipe/superbiteburger
appliance = GRILL
fruit = list("tomato" = 1)
reagents = list("sodiumchloride" = 5, "blackpepper" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bigbiteburger,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/boiledegg,
)
result = /obj/item/weapon/reagent_containers/food/snacks/superbiteburger
/datum/recipe/slimeburger
appliance = GRILL
reagents = list("slimejelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun
)
result = /obj/item/weapon/reagent_containers/food/snacks/jellyburger/slime
/datum/recipe/jellyburger
appliance = GRILL
reagents = list("cherryjelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun
)
result = /obj/item/weapon/reagent_containers/food/snacks/jellyburger/cherry
/datum/recipe/bearburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/weapon/reagent_containers/food/snacks/bearmeat
)
result = /obj/item/weapon/reagent_containers/food/snacks/bearburger
/datum/recipe/baconburger
appliance = GRILL
items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/bacon,
/obj/item/weapon/reagent_containers/food/snacks/bacon
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/bacon

View File

@@ -43,47 +43,7 @@ I said no!
) )
result = /obj/item/weapon/reagent_containers/food/snacks/devilledegg result = /obj/item/weapon/reagent_containers/food/snacks/devilledegg
/datum/recipe/dionaroast /* // Test remove these in favor of grillin' on the grill, bby.
fruit = list("apple" = 1)
reagents = list("pacid" = 5) //It dissolves the carapace. Still poisonous, though.
items = list(/obj/item/weapon/holder/diona)
result = /obj/item/weapon/reagent_containers/food/snacks/dionaroast
/* // These should be fryer recipes, as should the other donuts, TODO Conversions
/datum/recipe/jellydonut
reagents = list("berryjuice" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly
/datum/recipe/jellydonut/poisonberry
reagents = list("poisonberryjuice" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/poisonberry
/datum/recipe/jellydonut/slime
reagents = list("slimejelly" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly
/datum/recipe/jellydonut/cherry
reagents = list("cherryjelly" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly
/datum/recipe/donut
reagents = list("sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/normal
*/
/datum/recipe/humanburger /datum/recipe/humanburger
items = list( items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat/human, /obj/item/weapon/reagent_containers/food/snacks/meat/human,
@@ -167,6 +127,7 @@ I said no!
/obj/item/weapon/holder/mouse /obj/item/weapon/holder/mouse
) )
result = /obj/item/weapon/reagent_containers/food/snacks/mouseburger result = /obj/item/weapon/reagent_containers/food/snacks/mouseburger
*/
/datum/recipe/bunbun /datum/recipe/bunbun
items = list( items = list(
@@ -211,44 +172,6 @@ I said no!
) )
result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL
/datum/recipe/meatbread
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/meatbread
/datum/recipe/xenomeatbread
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/xenomeat,
/obj/item/weapon/reagent_containers/food/snacks/xenomeat,
/obj/item/weapon/reagent_containers/food/snacks/xenomeat,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread
/datum/recipe/bananabread
fruit = list("banana" = 1)
reagents = list("milk" = 5, "sugar" = 15)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread
/datum/recipe/omelette /datum/recipe/omelette
items = list( items = list(
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge, /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
@@ -289,41 +212,6 @@ I said no!
) )
result = /obj/item/weapon/reagent_containers/food/snacks/soylentgreen result = /obj/item/weapon/reagent_containers/food/snacks/soylentgreen
/datum/recipe/meatpie
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
/obj/item/weapon/reagent_containers/food/snacks/meat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/meatpie
/datum/recipe/tofupie
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
/obj/item/weapon/reagent_containers/food/snacks/tofu,
)
result = /obj/item/weapon/reagent_containers/food/snacks/tofupie
/datum/recipe/xemeatpie
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
/obj/item/weapon/reagent_containers/food/snacks/xenomeat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/xemeatpie
/datum/recipe/pie
fruit = list("banana" = 1)
reagents = list("sugar" = 5)
items = list(/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough)
result = /obj/item/weapon/reagent_containers/food/snacks/pie
/datum/recipe/cherrypie
fruit = list("cherries" = 1)
reagents = list("sugar" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
)
result = /obj/item/weapon/reagent_containers/food/snacks/cherrypie
/datum/recipe/berryclafoutis /datum/recipe/berryclafoutis
fruit = list("berries" = 1) fruit = list("berries" = 1)
items = list( items = list(
@@ -344,14 +232,8 @@ I said no!
/obj/item/weapon/reagent_containers/food/snacks/xenomeat /obj/item/weapon/reagent_containers/food/snacks/xenomeat
) )
result = /obj/item/weapon/reagent_containers/food/snacks/wingfangchu result = /obj/item/weapon/reagent_containers/food/snacks/wingfangchu
/* - TODO: Port this to Fryer
/datum/recipe/chaosdonut /* // Test remove these in favor of grillin' on the grill, bby.
reagents = list("frostoil" = 5, "capsaicin" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/chaos
*/
/datum/recipe/humankabob /datum/recipe/humankabob
items = list( items = list(
/obj/item/stack/rods, /obj/item/stack/rods,
@@ -391,6 +273,7 @@ I said no!
/obj/item/weapon/reagent_containers/food/snacks/tofu, /obj/item/weapon/reagent_containers/food/snacks/tofu,
) )
result = /obj/item/weapon/reagent_containers/food/snacks/tofukabob result = /obj/item/weapon/reagent_containers/food/snacks/tofukabob
*/
/datum/recipe/tofubread /datum/recipe/tofubread
items = list( items = list(
@@ -593,16 +476,7 @@ I said no!
items = list(/obj/item/weapon/reagent_containers/food/snacks/meat) items = list(/obj/item/weapon/reagent_containers/food/snacks/meat)
result = /obj/item/weapon/reagent_containers/food/snacks/coldchili result = /obj/item/weapon/reagent_containers/food/snacks/coldchili
/datum/recipe/amanita_pie /* // Testremove to swap to grill
reagents = list("amatoxin" = 5)
items = list(/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough)
result = /obj/item/weapon/reagent_containers/food/snacks/amanita_pie
/datum/recipe/plump_pie
fruit = list("plumphelmet" = 1)
items = list(/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough)
result = /obj/item/weapon/reagent_containers/food/snacks/plump_pie
/datum/recipe/spellburger /datum/recipe/spellburger
items = list( items = list(
/obj/item/weapon/reagent_containers/food/snacks/monkeyburger, /obj/item/weapon/reagent_containers/food/snacks/monkeyburger,
@@ -627,7 +501,7 @@ I said no!
reagents = list("egg" = 3) reagents = list("egg" = 3)
reagent_mix = RECIPE_REAGENT_REPLACE reagent_mix = RECIPE_REAGENT_REPLACE
result = /obj/item/weapon/reagent_containers/food/snacks/bigbiteburger result = /obj/item/weapon/reagent_containers/food/snacks/bigbiteburger
*/
/datum/recipe/enchiladas /datum/recipe/enchiladas
fruit = list("chili" = 2, "corn" = 1) fruit = list("chili" = 2, "corn" = 1)
items = list(/obj/item/weapon/reagent_containers/food/snacks/cutlet) items = list(/obj/item/weapon/reagent_containers/food/snacks/cutlet)
@@ -808,7 +682,7 @@ I said no!
/obj/item/weapon/reagent_containers/food/snacks/meatball, /obj/item/weapon/reagent_containers/food/snacks/meatball,
) )
result = /obj/item/weapon/reagent_containers/food/snacks/spesslaw result = /obj/item/weapon/reagent_containers/food/snacks/spesslaw
/*
/datum/recipe/superbiteburger /datum/recipe/superbiteburger
fruit = list("tomato" = 1) fruit = list("tomato" = 1)
reagents = list("sodiumchloride" = 5, "blackpepper" = 5) reagents = list("sodiumchloride" = 5, "blackpepper" = 5)
@@ -820,7 +694,7 @@ I said no!
/obj/item/weapon/reagent_containers/food/snacks/boiledegg, /obj/item/weapon/reagent_containers/food/snacks/boiledegg,
) )
result = /obj/item/weapon/reagent_containers/food/snacks/superbiteburger result = /obj/item/weapon/reagent_containers/food/snacks/superbiteburger
*/
/datum/recipe/candiedapple /datum/recipe/candiedapple
fruit = list("apple" = 1) fruit = list("apple" = 1)
reagents = list("water" = 5, "sugar" = 5) reagents = list("water" = 5, "sugar" = 5)
@@ -942,11 +816,6 @@ I said no!
reagent_mix = RECIPE_REAGENT_REPLACE reagent_mix = RECIPE_REAGENT_REPLACE
result = /obj/item/weapon/reagent_containers/food/snacks/mysterysoup result = /obj/item/weapon/reagent_containers/food/snacks/mysterysoup
/datum/recipe/pumpkinpie
fruit = list("pumpkin" = 1)
reagents = list("milk" = 5, "sugar" = 5, "egg" = 3, "flour" = 10)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie
/datum/recipe/plumphelmetbiscuit /datum/recipe/plumphelmetbiscuit
fruit = list("plumphelmet" = 1) fruit = list("plumphelmet" = 1)
reagents = list("water" = 5, "flour" = 5) reagents = list("water" = 5, "flour" = 5)
@@ -972,14 +841,6 @@ I said no!
reagents = list("water" = 10) reagents = list("water" = 10)
result = /obj/item/weapon/reagent_containers/food/snacks/beetsoup result = /obj/item/weapon/reagent_containers/food/snacks/beetsoup
/datum/recipe/appletart
fruit = list("goldapple" = 1)
reagents = list("sugar" = 5, "milk" = 5, "flour" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg
)
result = /obj/item/weapon/reagent_containers/food/snacks/appletart
/datum/recipe/tossedsalad /datum/recipe/tossedsalad
fruit = list("cabbage" = 2, "tomato" = 1, "carrot" = 1, "apple" = 1) fruit = list("cabbage" = 2, "tomato" = 1, "carrot" = 1, "apple" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/tossedsalad result = /obj/item/weapon/reagent_containers/food/snacks/tossedsalad
@@ -1012,13 +873,6 @@ I said no!
for (var/obj/item/weapon/reagent_containers/food/snacks/validsalad/being_cooked in .) for (var/obj/item/weapon/reagent_containers/food/snacks/validsalad/being_cooked in .)
being_cooked.reagents.del_reagent("toxin") being_cooked.reagents.del_reagent("toxin")
/datum/recipe/cracker
reagents = list("sodiumchloride" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/doughslice
)
result = /obj/item/weapon/reagent_containers/food/snacks/cracker
/datum/recipe/stuffing /datum/recipe/stuffing
reagents = list("water" = 5, "sodiumchloride" = 1, "blackpepper" = 1) reagents = list("water" = 5, "sodiumchloride" = 1, "blackpepper" = 1)
items = list( items = list(
@@ -1292,64 +1146,6 @@ I said no!
) )
result = /obj/item/weapon/reagent_containers/food/snacks/piginblanket result = /obj/item/weapon/reagent_containers/food/snacks/piginblanket
// Cakes.
/datum/recipe/cake
reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9, "vanilla" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake
/datum/recipe/cake/carrot
fruit = list("carrot" = 1)
reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake
/datum/recipe/cake/cheese
reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake
/datum/recipe/cake/peanut
fruit = list("peanut" = 3)
reagents = list("milk" = 5, "flour" = 10, "sugar" = 5, "egg" = 6, "peanutbutter" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/peanutcake
/datum/recipe/cake/orange
fruit = list("orange" = 1)
reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake
/datum/recipe/cake/lime
fruit = list("lime" = 1)
reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake
/datum/recipe/cake/lemon
fruit = list("lemon" = 1)
reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake
/datum/recipe/cake/chocolate
items = list(/obj/item/weapon/reagent_containers/food/snacks/chocolatebar)
reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake
/datum/recipe/cake/birthday
reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
items = list(/obj/item/clothing/head/cakehat)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake
/datum/recipe/cake/apple
fruit = list("apple" = 1)
reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake
/datum/recipe/cake/brain
reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
items = list(/obj/item/organ/internal/brain)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake
/datum/recipe/bagelplain /datum/recipe/bagelplain
reagents = list("water" = 5) reagents = list("water" = 5)
items = list( items = list(
@@ -1439,13 +1235,14 @@ I said no!
fruit = list("peanut" = 2, "potato" = 1) fruit = list("peanut" = 2, "potato" = 1)
reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product reagent_mix = RECIPE_REAGENT_REPLACE //Simplify end product
result = /obj/item/weapon/reagent_containers/food/snacks/yellowcurry result = /obj/item/weapon/reagent_containers/food/snacks/yellowcurry
/*
/datum/recipe/bearburger /datum/recipe/bearburger
items = list( items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun, /obj/item/weapon/reagent_containers/food/snacks/bun,
/obj/item/weapon/reagent_containers/food/snacks/bearmeat /obj/item/weapon/reagent_containers/food/snacks/bearmeat
) )
result = /obj/item/weapon/reagent_containers/food/snacks/bearburger result = /obj/item/weapon/reagent_containers/food/snacks/bearburger
*/
/datum/recipe/bearchili /datum/recipe/bearchili
fruit = list("chili" = 1, "tomato" = 1) fruit = list("chili" = 1, "tomato" = 1)
@@ -1808,7 +1605,7 @@ I said no!
/obj/item/weapon/reagent_containers/food/snacks/friedegg /obj/item/weapon/reagent_containers/food/snacks/friedegg
) )
result = /obj/item/weapon/reagent_containers/food/snacks/bacon_and_eggs result = /obj/item/weapon/reagent_containers/food/snacks/bacon_and_eggs
/*
/datum/recipe/baconburger /datum/recipe/baconburger
items = list( items = list(
/obj/item/weapon/reagent_containers/food/snacks/bun, /obj/item/weapon/reagent_containers/food/snacks/bun,
@@ -1817,6 +1614,7 @@ I said no!
/obj/item/weapon/reagent_containers/food/snacks/bacon /obj/item/weapon/reagent_containers/food/snacks/bacon
) )
result = /obj/item/weapon/reagent_containers/food/snacks/burger/bacon result = /obj/item/weapon/reagent_containers/food/snacks/burger/bacon
*/
/datum/recipe/ntmuffin /datum/recipe/ntmuffin
items = list( items = list(

View File

@@ -9,23 +9,8 @@
result = /obj/item/weapon/reagent_containers/food/snacks/path_to_some_food result = /obj/item/weapon/reagent_containers/food/snacks/path_to_some_food
*/ */
// All of this shit needs to be gone through and reorganized into different recipes per machine - Rykka 7/16/2020 // All of this shit needs to be gone through and reorganized into different recipes per machine - Rykka 7/16/2020
/datum/recipe/jellydonut
items = list(
/obj/item/weapon/reagent_containers/food/snacks/doughslice)
/datum/recipe/jellydonut/slime /datum/recipe/carpsushi
items = list(
/obj/item/weapon/reagent_containers/food/snacks/doughslice)
/datum/recipe/jellydonut/cherry
items = list(
/obj/item/weapon/reagent_containers/food/snacks/doughslice)
/datum/recipe/donut
items = list(
/obj/item/weapon/reagent_containers/food/snacks/doughslice)
/datum/recipe/sushi
fruit = list("cabbage" = 1) fruit = list("cabbage" = 1)
reagents = list("rice" = 20) reagents = list("rice" = 20)
items = list( items = list(
@@ -45,37 +30,6 @@
) )
result = /obj/item/weapon/reagent_containers/food/snacks/lasagna result = /obj/item/weapon/reagent_containers/food/snacks/lasagna
/datum/recipe/goulash
fruit = list("tomato" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/cutlet,
/obj/item/weapon/reagent_containers/food/snacks/spagetti
)
result = /obj/item/weapon/reagent_containers/food/snacks/goulash
/datum/recipe/donerkebab
fruit = list("tomato" = 1, "cabbage" = 1)
reagents = list("sodiumchloride" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meatsteak,
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
)
result = /obj/item/weapon/reagent_containers/food/snacks/donerkebab
/datum/recipe/roastbeef
fruit = list("carrot" = 2, "potato" = 2)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat
)
result = /obj/item/weapon/reagent_containers/food/snacks/roastbeef
/datum/recipe/reishicup
reagents = list("psilocybin" = 3, "sugar" = 3)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar
)
result = /obj/item/weapon/reagent_containers/food/snacks/reishicup
/datum/recipe/chickenwings /datum/recipe/chickenwings
reagents = list("capsaicin" = 5, "flour" = 10) reagents = list("capsaicin" = 5, "flour" = 10)
items = list( items = list(
@@ -86,22 +40,6 @@
) )
result = /obj/item/weapon/storage/box/wings //This is kinda like the donut box. result = /obj/item/weapon/storage/box/wings //This is kinda like the donut box.
/datum/recipe/hotandsoursoup
fruit = list("cabbage" = 1, "mushroom" = 1)
reagents = list("sodiumchloride" = 2, "blackpepper" = 2, "water" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tofu
)
result = /obj/item/weapon/reagent_containers/food/snacks/hotandsoursoup
/datum/recipe/kitsuneudon
reagents = list("egg" = 3)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/spagetti,
/obj/item/weapon/reagent_containers/food/snacks/tofu
)
result = /obj/item/weapon/reagent_containers/food/snacks/kitsuneudon
/datum/recipe/generalschicken /datum/recipe/generalschicken
reagents = list("capsaicin" = 2, "sugar" = 2, "flour" = 10) reagents = list("capsaicin" = 2, "sugar" = 2, "flour" = 10)
items = list( items = list(
@@ -131,28 +69,6 @@
) )
result = /obj/item/weapon/reagent_containers/food/snacks/boiledegg/roiz result = /obj/item/weapon/reagent_containers/food/snacks/boiledegg/roiz
/datum/recipe/pillbugball
reagents = list("carbon" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat
)
result = /obj/item/weapon/reagent_containers/food/snacks/bugball
/datum/recipe/mammi
fruit = list("orange" = 1)
reagents = list("water" = 10, "flour" = 10, "milk" = 5, "sodiumchloride" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/mammi
/datum/recipe/makaroni
reagents = list("flour" = 15, "milk" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge
)
result = /obj/item/weapon/reagent_containers/food/snacks/makaroni
/datum/recipe/lobster /datum/recipe/lobster
fruit = list("lemon" = 1, "cabbage" = 1) fruit = list("lemon" = 1, "cabbage" = 1)
items = list( items = list(

View File

@@ -421,27 +421,34 @@
//============ //============
/datum/recipe/cake /datum/recipe/cake
appliance = OVEN appliance = OVEN
reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9) reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9, "vanilla" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/plaincake
reagent_mix = RECIPE_REAGENT_REPLACE reagent_mix = RECIPE_REAGENT_REPLACE
/datum/recipe/cake/carrot /datum/recipe/cake/carrot
appliance = OVEN appliance = OVEN
fruit = list("carrot" = 3) fruit = list("carrot" = 3)
reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake
/datum/recipe/cake/cheese /datum/recipe/cake/cheese
appliance = OVEN appliance = OVEN
reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
items = list( items = list(
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge, /obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge /obj/item/weapon/reagent_containers/food/snacks/cheesewedge
) )
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/cheesecake
/datum/recipe/cake/peanut
fruit = list("peanut" = 3)
reagents = list("milk" = 5, "flour" = 10, "sugar" = 5, "egg" = 6, "peanutbutter" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/peanutcake
/datum/recipe/cake/orange /datum/recipe/cake/orange
appliance = OVEN appliance = OVEN
fruit = list("orange" = 1) fruit = list("orange" = 1)
reagents = list("milk" = 5, "flour" = 15, "egg" = 9, "orangejuice" = 3, "sugar" = 5) reagents = list("milk" = 5, "flour" = 15, "egg" = 9, "sugar" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake
/datum/recipe/cake/lime /datum/recipe/cake/lime
@@ -464,16 +471,19 @@
/datum/recipe/cake/birthday /datum/recipe/cake/birthday
appliance = OVEN appliance = OVEN
reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
items = list(/obj/item/clothing/head/cakehat) items = list(/obj/item/clothing/head/cakehat)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake
/datum/recipe/cake/apple /datum/recipe/cake/apple
appliance = OVEN appliance = OVEN
fruit = list("apple" = 2) fruit = list("apple" = 2)
reagents = list("milk" = 5, "flour" = 15, "egg" = 9,"sugar" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake
/datum/recipe/cake/brain /datum/recipe/cake/brain
appliance = OVEN appliance = OVEN
reagents = list("milk" = 5, "flour" = 15, "sugar" = 15, "egg" = 9)
items = list(/obj/item/organ/internal/brain) items = list(/obj/item/organ/internal/brain)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake

View File

@@ -153,7 +153,9 @@
/obj/item/weapon/reagent_containers/glass, /obj/item/weapon/reagent_containers/glass,
/obj/item/weapon/reagent_containers/food, /obj/item/weapon/reagent_containers/food,
/obj/item/seeds, /obj/item/seeds,
/obj/item/weapon/grown /obj/item/weapon/grown,
/obj/item/trash,
/obj/item/weapon/reagent_containers/cooking_container
) )
/obj/item/weapon/gripper/gravekeeper //Used for handling grave things, flowers, etc. /obj/item/weapon/gripper/gravekeeper //Used for handling grave things, flowers, etc.

View File

@@ -282,6 +282,34 @@
trans_to(target, amount, multiplier, copy) trans_to(target, amount, multiplier, copy)
/datum/reagents/proc/trans_type_to(var/target, var/rtype, var/amount = 1)
if (!target)
return
var/datum/reagent/transfering_reagent = get_reagent(rtype)
if (istype(target, /atom))
var/atom/A = target
if (!A.reagents || !A.simulated)
return
amount = min(amount, transfering_reagent.volume)
if(!amount)
return
var/datum/reagents/F = new /datum/reagents(amount)
var/tmpdata = get_data(rtype)
F.add_reagent(rtype, amount, tmpdata)
remove_reagent(rtype, amount)
if (istype(target, /atom))
return F.trans_to(target, amount) // Let this proc check the atom's type
else if (istype(target, /datum/reagents))
return F.trans_to_holder(target, amount)
/datum/reagents/proc/trans_id_to(var/atom/target, var/id, var/amount = 1) /datum/reagents/proc/trans_id_to(var/atom/target, var/id, var/amount = 1)
if (!target || !target.reagents) if (!target || !target.reagents)
return return

View File

@@ -583,13 +583,48 @@ CIRCUITS BELOW
req_tech = list(TECH_DATA = 4, TECH_BIO = 3) req_tech = list(TECH_DATA = 4, TECH_BIO = 3)
build_path = /obj/item/weapon/circuitboard/aicore build_path = /obj/item/weapon/circuitboard/aicore
sort_string = "XAAAA" sort_string = "XAAAA"
// Cooking Appliances
/datum/design/circuit/microwave
name = "microwave board"
id = "microwave_board"
req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/microwave
sort_string = "HACAM"
/datum/design/circuit/oven
name = "oven board"
id = "oven_board"
req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/oven
sort_string = "HACAN"
/datum/design/circuit/fryer
name = "deep fryer board"
id = "fryer_board"
req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/fryer
sort_string = "HACAO"
/datum/design/circuit/cerealmaker
name = "cereal maker board"
id = "cerealmaker_board"
req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/cerealmaker
sort_string = "HACAP"
/datum/design/circuit/candymaker
name = "candy machine board"
id = "candymachine_board"
req_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2)
build_path = /obj/item/weapon/circuitboard/candymachine
sort_string = "HACAQ"
/datum/design/circuit/microwave/advanced /datum/design/circuit/microwave/advanced
name = "deluxe microwave" name = "deluxe microwave"
id = "deluxe microwave" id = "deluxe microwave"
req_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 5, TECH_BLUESPACE = 4) req_tech = list(TECH_DATA = 5, TECH_ENGINEERING = 5, TECH_BLUESPACE = 4)
build_path = /obj/item/weapon/circuitboard/microwave/advanced build_path = /obj/item/weapon/circuitboard/microwave/advanced
sort_string = "MAAAC" sort_string = "HACAA"
/datum/design/circuit/shield_generator /datum/design/circuit/shield_generator
name = "shield generator" name = "shield generator"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 130 KiB

View File

@@ -1238,6 +1238,7 @@
#include "code\game\objects\items\weapons\circuitboards\machinery\cloning.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\cloning.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\engineering.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\engineering.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\jukebox.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\jukebox.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\kitchen_appliances.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\mech_recharger.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\mech_recharger.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\mining_drill.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\mining_drill.dm"
#include "code\game\objects\items\weapons\circuitboards\machinery\pacman.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\pacman.dm"
@@ -2065,6 +2066,7 @@
#include "code\modules\food\recipe.dm" #include "code\modules\food\recipe.dm"
#include "code\modules\food\recipe_dump.dm" #include "code\modules\food\recipe_dump.dm"
#include "code\modules\food\recipes_fryer.dm" #include "code\modules\food\recipes_fryer.dm"
#include "code\modules\food\recipes_grill.dm"
#include "code\modules\food\recipes_microwave.dm" #include "code\modules\food\recipes_microwave.dm"
#include "code\modules\food\recipes_microwave_vr.dm" #include "code\modules\food\recipes_microwave_vr.dm"
#include "code\modules\food\recipes_oven.dm" #include "code\modules\food\recipes_oven.dm"