Kitchen Overhaul

MASSIVE overhaul to the kitchen, should make the chef job more
interesting.

Additions:
- Candy Maker!
- - This machine allows the chef to create a variety of sugary treats
for the crew to enjoy.
- Candy! Lots of candy and this is only the first wave!
- - More candy planned / dreamed for the future
- Candy Moulds
- - Craftable from plastic sheets, also available in the kitchen vendor.
Use these to make different candy types
- - These are returned if you successfully make the candy. Screw up and
the mould is destroyed!
- Cardboard Tubes are now craftable from cardboard

Changes:
- Oven and Grill have been updated to work more in line with the
Microwave and Candy Maker.
- - This means that they are also buildable and upgradeable!
- - Boards for the oven, grill, and candy maker are available from the
circuit printer.
- Many recipes moved from the microwave to the oven and grill.
- - For example, bread is made in the oven, and kabobs are made on the
grill.
- Adds "byproduct" var to recipes
- - Allows for the return of an item in addition to the result,
currently used for candy moulds

Fixes
- Adds Grape Juice reagent.
- - This will fix a runtime and also allow people to actually drink from
the purple cans.

Sprite Credits
- Many thanks to FoS for their sprites for a lot of the candies which I
combined and recolored
- - Also thanks for the new sprites which were included, but not all
used (yet!)
- I also edited and created some horrible sprites for a few candy items
and machine states.
- - Hopefully they will be such an eyesore that a real spriter steps up
and provides something nice.

This overhaul should hopefully add a little variety to the chef role,
while keeping it largely unchanged in terms of difficulty.
This commit is contained in:
FalseIncarnate
2015-03-08 05:09:19 -04:00
parent a9230f7310
commit ae13c938c5
24 changed files with 3520 additions and 196 deletions
+427
View File
@@ -0,0 +1,427 @@
/obj/machinery/candy_maker
name = "candy machine"
desc = "Get yer box of deep fried deep fried deep fried deep fried cotton candy cereal sandwich cookies here!"
icon = 'icons/obj/cooking_machines.dmi'
icon_state = "candymaker_off"
layer = 2.9
density = 1
anchored = 1
use_power = 1
idle_power_usage = 5
active_power_usage = 100
flags = OPENCONTAINER | NOREACT
var/operating = 0 // Is it on?
var/dirty = 0 // = {0..100} Does it need cleaning?
var/broken = 0 // ={0,1,2} How broken is it???
var/global/list/datum/recipe/available_recipes // List of the recipes you can use
var/global/list/acceptable_items // List of the items you can put in
var/global/list/acceptable_reagents // List of the reagents you can put in
var/global/max_n_of_items = 0
var/efficiency
// see code/modules/food/recipes_candy.dm for recipes
/*******************
* Initialising
********************/
/obj/machinery/candy_maker/New()
//..() //do not need this
reagents = new/datum/reagents(100)
reagents.my_atom = src
if (!available_recipes)
available_recipes = new
for (var/type in (typesof(/datum/recipe/candy)-/datum/recipe/candy))
available_recipes+= new type
acceptable_items = new
acceptable_reagents = new
for (var/datum/recipe/candy/recipe in available_recipes)
for (var/item in recipe.items)
acceptable_items |= item
for (var/reagent in recipe.reagents)
acceptable_reagents |= reagent
if (recipe.items)
max_n_of_items = max(max_n_of_items,recipe.items.len)
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/candy_maker(null)
component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/stack/cable_coil(null, 5)
RefreshParts()
/obj/machinery/candy_maker/upgraded/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/candy_maker(null)
component_parts += new /obj/item/weapon/stock_parts/manipulator/pico(null)
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/stack/cable_coil(null, 5)
RefreshParts()
/obj/machinery/candy_maker/RefreshParts()
var/E
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
E += M.rating
efficiency = E
/*******************
* Item Adding
********************/
/obj/machinery/candy_maker/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(operating)
return
if(!broken && dirty < 100)
if(default_deconstruction_screwdriver(user, "candymaker_open", "candymaker_off", O))
return
if(exchange_parts(user, O))
return
if(istype(O, /obj/item/weapon/wrench))
playsound(src, 'sound/items/Ratchet.ogg', 50, 1)
if(anchored)
anchored = 0
user << "<span class='caution'>The [src] can now be moved.</span>"
return
else if(!anchored)
anchored = 1
user << "<span class='caution'>The [src] is now secured.</span>"
return
default_deconstruction_crowbar(O)
if(src.broken > 0)
if(src.broken == 2 && istype(O, /obj/item/weapon/screwdriver)) // If it's broken and they're using a screwdriver
user.visible_message( \
"\blue [user] starts to fix part of the candy maker.", \
"\blue You start to fix part of the candy maker." \
)
if (do_after(user,20))
user.visible_message( \
"\blue [user] fixes part of the candy maker.", \
"\blue You have fixed part of the candy maker." \
)
src.broken = 1 // Fix it a bit
else if(src.broken == 1 && istype(O, /obj/item/weapon/wrench)) // If it's broken and they're doing the wrench
user.visible_message( \
"\blue [user] starts to fix part of the candy maker.", \
"\blue You start to fix part of the candy maker." \
)
if (do_after(user,20))
user.visible_message( \
"\blue [user] fixes the candy maker.", \
"\blue You have fixed the candy maker." \
)
src.icon_state = "candymaker_off"
src.broken = 0 // Fix it!
src.dirty = 0 // just to be sure
src.flags = OPENCONTAINER
else
user << "\red It's broken!"
return 1
else if(src.dirty==100) // The candy_maker is all dirty so can't be used!
if(istype(O, /obj/item/weapon/reagent_containers/spray/cleaner) || istype(O, /obj/item/weapon/soap)) // If they're trying to clean it then let them
user.visible_message( \
"\blue [user] starts to clean the candy maker.", \
"\blue You start to clean the candy maker." \
)
if (do_after(user,20))
user.visible_message( \
"\blue [user] has cleaned the candy maker.", \
"\blue You have cleaned the candy maker." \
)
src.dirty = 0 // It's clean!
src.broken = 0 // just to be sure
src.icon_state = "candymaker_off"
src.flags = OPENCONTAINER
else //Otherwise bad luck!!
user << "\red It's dirty!"
return 1
else if(is_type_in_list(O,acceptable_items))
if (contents.len>=max_n_of_items)
user << "\red This [src] is full of ingredients, you cannot put more."
return 1
if (istype(O,/obj/item/stack) && O:amount>1)
new O.type (src)
O:use(1)
user.visible_message( \
"\blue [user] has added one of [O] to \the [src].", \
"\blue You add one of [O] to \the [src].")
else
// user.unEquip(O) //This just causes problems so far as I can tell. -Pete
if(!user.drop_item())
user << "<span class='notice'>\the [O] is stuck to your hand, you cannot put it in \the [src]</span>"
return 0
O.loc = src
user.visible_message( \
"\blue [user] has added \the [O] to \the [src].", \
"\blue You add \the [O] to \the [src].")
else if(istype(O,/obj/item/weapon/reagent_containers/glass) || \
istype(O,/obj/item/weapon/reagent_containers/food/drinks) || \
istype(O,/obj/item/weapon/reagent_containers/food/condiment) \
)
if (!O.reagents)
return 1
for (var/datum/reagent/R in O.reagents.reagent_list)
if (!(R.id in acceptable_reagents))
user << "\red Your [O] contains components unsuitable for cookery."
return 1
//G.reagents.trans_to(src,G.amount_per_transfer_from_this)
else if(istype(O,/obj/item/weapon/grab))
var/obj/item/weapon/grab/G = O
user << "\red This is ridiculous. You can not fit \the [G.affecting] in this [src]."
return 1
else
user << "\red You have no idea what you can cook with this [O]."
return 1
src.updateUsrDialog()
/obj/machinery/candy_maker/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/candy_maker/attack_ai(mob/user as mob)
return 0
/obj/machinery/candy_maker/attack_hand(mob/user as mob)
user.set_machine(src)
interact(user)
/*******************
* candy_maker Menu
********************/
/obj/machinery/candy_maker/interact(mob/user as mob) // The Candy Maker Menu
if(panel_open || !anchored)
return
var/dat = ""
if(src.broken > 0)
dat = {"<TT>Bzzzzttttt</TT>"}
else if(src.operating)
var/whimsy_word = pick("Wonderizing", "Scrumpdiddlyumptiousification", "Miracle-coating", "Flavorifaction")
dat = {"<TT>[whimsy_word] in progress!<BR>Please wait...!</TT>"}
else if(src.dirty==100)
dat = {"<TT>This candy maker is dirty!<BR>Please clean it before use!</TT>"}
else
var/list/items_counts = new
var/list/items_measures = new
var/list/items_measures_p = new
for (var/obj/O in contents)
var/display_name = O.name
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/egg))
items_measures[display_name] = "egg"
items_measures_p[display_name] = "eggs"
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/tofu))
items_measures[display_name] = "tofu chunk"
items_measures_p[display_name] = "tofu chunks"
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/meat)) //any meat
items_measures[display_name] = "slab of meat"
items_measures_p[display_name] = "slabs of meat"
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/donkpocket))
display_name = "Turnovers"
items_measures[display_name] = "turnover"
items_measures_p[display_name] = "turnovers"
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/carpmeat))
items_measures[display_name] = "fillet of meat"
items_measures_p[display_name] = "fillets of meat"
items_counts[display_name]++
for (var/O in items_counts)
var/N = items_counts[O]
if (!(O in items_measures))
dat += {"<B>[capitalize(O)]:</B> [N] [lowertext(O)]\s<BR>"}
else
if (N==1)
dat += {"<B>[capitalize(O)]:</B> [N] [items_measures[O]]<BR>"}
else
dat += {"<B>[capitalize(O)]:</B> [N] [items_measures_p[O]]<BR>"}
for (var/datum/reagent/R in reagents.reagent_list)
var/display_name = R.name
if (R.id == "capsaicin")
display_name = "Hotsauce"
if (R.id == "frostoil")
display_name = "Coldsauce"
dat += {"<B>[display_name]:</B> [R.volume] unit\s<BR>"}
if (items_counts.len==0 && reagents.reagent_list.len==0)
dat = {"<B>The candy maker is empty</B><BR>"}
else
dat = {"<b>Ingredients:</b><br>[dat]"}
dat += {"<HR><BR>\
<A href='?src=\ref[src];action=cook'>Turn on!<BR>\
<A href='?src=\ref[src];action=dispose'>Eject ingredients!<BR>\
"}
user << browse("<HEAD><TITLE>Candy Maker Controls</TITLE></HEAD><TT>[dat]</TT>", "window=candy_maker")
onclose(user, "candy_maker")
return
/***********************************
* candy_maker Menu Handling/Cooking
************************************/
/obj/machinery/candy_maker/proc/cook()
if(stat & (NOPOWER|BROKEN))
return
start()
if (reagents.total_volume==0 && !(locate(/obj) in contents)) //dry run
if (!wzhzhzh(10))
abort()
return
stop()
return
var/datum/recipe/recipe = select_recipe(available_recipes,src)
var/obj/cooked
var/obj/byproduct
if (!recipe)
dirty += 1
if (prob(max(10,dirty*5)))
if (!wzhzhzh(4))
abort()
return
muck_start()
wzhzhzh(4)
muck_finish()
cooked = fail()
cooked.loc = src.loc
return
else if (has_extra_item())
if (!wzhzhzh(4))
abort()
return
broke()
cooked = fail()
cooked.loc = src.loc
return
else
if (!wzhzhzh(10))
abort()
return
stop()
cooked = fail()
cooked.loc = src.loc
return
else
var/halftime = round(recipe.time/10/2)
if (!wzhzhzh(halftime))
abort()
return
if (!wzhzhzh(halftime))
abort()
cooked = fail()
cooked.loc = src.loc
return
cooked = recipe.make_food(src)
byproduct = recipe.get_byproduct()
stop()
if(cooked)
cooked.loc = src.loc
for(var/i=1,i<efficiency,i++)
cooked = new cooked.type(loc)
if(byproduct)
byproduct.loc = src.loc
byproduct = new byproduct.type(loc)
return
/obj/machinery/candy_maker/proc/wzhzhzh(var/seconds as num)
for (var/i=1 to seconds)
if (stat & (NOPOWER|BROKEN))
return 0
use_power(500)
sleep(10)
return 1
/obj/machinery/candy_maker/proc/has_extra_item()
for (var/obj/O in contents)
if ( \
!istype(O,/obj/item/weapon/reagent_containers/food) && \
!istype(O, /obj/item/weapon/grown) \
)
return 1
return 0
/obj/machinery/candy_maker/proc/start()
src.visible_message("\blue The candy maker turns on.", "\blue You hear a candy maker.")
src.operating = 1
src.icon_state = "candymaker_on"
src.updateUsrDialog()
/obj/machinery/candy_maker/proc/abort()
src.operating = 0 // Turn it off again aferwards
src.icon_state = "candymaker_off"
src.updateUsrDialog()
/obj/machinery/candy_maker/proc/stop()
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
src.operating = 0 // Turn it off again aferwards
src.icon_state = "candymaker_off"
src.updateUsrDialog()
/obj/machinery/candy_maker/proc/dispose()
for (var/obj/O in contents)
O.loc = src.loc
if (src.reagents.total_volume)
src.dirty++
src.reagents.clear_reagents()
usr << "\blue You dispose of the candy maker contents."
src.updateUsrDialog()
/obj/machinery/candy_maker/proc/muck_start()
playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) // Play a splat sound
src.icon_state = "candymaker_dirty" // Make it look dirty!!
/obj/machinery/candy_maker/proc/muck_finish()
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
src.visible_message("\red The candy maker gets covered in muck!")
src.dirty = 100 // Make it dirty so it can't be used util cleaned
src.flags = null //So you can't add condiments
src.icon_state = "candymaker_dirty" // Make it look dirty too
src.operating = 0 // Turn it off again aferwards
src.updateUsrDialog()
/obj/machinery/candy_maker/proc/broke()
var/datum/effect/effect/system/spark_spread/s = new
s.set_up(2, 1, src)
s.start()
src.icon_state = "candymaker_broke" // Make it look all busted up and shit
src.visible_message("\red The candy maker breaks!") //Let them know they're stupid
src.broken = 2 // Make it broken so it can't be used util fixed
src.flags = null //So you can't add condiments
src.operating = 0 // Turn it off again aferwards
src.updateUsrDialog()
/obj/machinery/candy_maker/proc/fail()
var/obj/item/weapon/reagent_containers/food/snacks/badrecipe/ffuu = new(src)
var/amount = 0
for (var/obj/O in contents-ffuu)
amount++
if (O.reagents)
var/id = O.reagents.get_master_reagent_id()
if (id)
amount+=O.reagents.get_reagent_amount(id)
del(O)
src.reagents.clear_reagents()
ffuu.reagents.add_reagent("carbon", amount)
ffuu.reagents.add_reagent("toxin", amount/10)
return ffuu
/obj/machinery/candy_maker/Topic(href, href_list)
if(..() || panel_open)
return
usr.set_machine(src)
if(src.operating)
src.updateUsrDialog()
return
switch(href_list["action"])
if ("cook")
cook()
if ("dispose")
dispose()
return
+424
View File
@@ -0,0 +1,424 @@
/obj/machinery/grill
name = "grill"
desc = "Backyard grilling, IN SPACE."
icon = 'icons/obj/cooking_machines.dmi'
icon_state = "grill_off"
layer = 2.9
density = 1
anchored = 1
use_power = 1
idle_power_usage = 5
active_power_usage = 100
flags = OPENCONTAINER | NOREACT
var/operating = 0 // Is it on?
var/dirty = 0 // = {0..100} Does it need cleaning?
var/broken = 0 // ={0,1,2} How broken is it???
var/global/list/datum/recipe/available_recipes // List of the recipes you can use
var/global/list/acceptable_items // List of the items you can put in
var/global/list/acceptable_reagents // List of the reagents you can put in
var/global/max_n_of_items = 0
var/efficiency
// see code/modules/food/recipes_grill.dm for recipes
/*******************
* Initialising
********************/
/obj/machinery/grill/New()
//..() //do not need this
reagents = new/datum/reagents(100)
reagents.my_atom = src
if (!available_recipes)
available_recipes = new
for (var/type in (typesof(/datum/recipe/grill)-/datum/recipe/grill))
available_recipes+= new type
acceptable_items = new
acceptable_reagents = new
for (var/datum/recipe/grill/recipe in available_recipes)
for (var/item in recipe.items)
acceptable_items |= item
for (var/reagent in recipe.reagents)
acceptable_reagents |= reagent
if (recipe.items)
max_n_of_items = max(max_n_of_items,recipe.items.len)
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/grill(null)
component_parts += new /obj/item/weapon/stock_parts/micro_laser(null)
component_parts += new /obj/item/weapon/stock_parts/micro_laser(null)
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/stack/cable_coil(null, 5)
RefreshParts()
/obj/machinery/grill/upgraded/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/grill(null)
component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null)
component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null)
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/stack/cable_coil(null, 5)
RefreshParts()
/obj/machinery/grill/RefreshParts()
var/E
for(var/obj/item/weapon/stock_parts/micro_laser/M in component_parts)
E += M.rating
efficiency = round((E/2), 1) // There's 2 lasers, so halve the effect on the efficiency to keep it balanced
/*******************
* Item Adding
********************/
/obj/machinery/grill/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(operating)
return
if(!broken && dirty < 100)
if(default_deconstruction_screwdriver(user, "grill_open", "grill_off", O))
return
if(exchange_parts(user, O))
return
if(istype(O, /obj/item/weapon/wrench))
playsound(src, 'sound/items/Ratchet.ogg', 50, 1)
if(anchored)
anchored = 0
user << "<span class='caution'>The [src] can now be moved.</span>"
return
else if(!anchored)
anchored = 1
user << "<span class='caution'>The [src] is now secured.</span>"
return
default_deconstruction_crowbar(O)
if(src.broken > 0)
if(src.broken == 2 && istype(O, /obj/item/weapon/screwdriver)) // If it's broken and they're using a screwdriver
user.visible_message( \
"\blue [user] starts to fix part of the grill.", \
"\blue You start to fix part of the grill." \
)
if (do_after(user,20))
user.visible_message( \
"\blue [user] fixes part of the grill.", \
"\blue You have fixed part of the grill." \
)
src.broken = 1 // Fix it a bit
else if(src.broken == 1 && istype(O, /obj/item/weapon/wrench)) // If it's broken and they're doing the wrench
user.visible_message( \
"\blue [user] starts to fix part of the grill.", \
"\blue You start to fix part of the grill." \
)
if (do_after(user,20))
user.visible_message( \
"\blue [user] fixes the grill.", \
"\blue You have fixed the grill." \
)
src.icon_state = "grill_off"
src.broken = 0 // Fix it!
src.dirty = 0 // just to be sure
src.flags = OPENCONTAINER
else
user << "\red It's broken!"
return 1
else if(src.dirty==100) // The grill is all dirty so can't be used!
if(istype(O, /obj/item/weapon/reagent_containers/spray/cleaner) || istype(O, /obj/item/weapon/soap)) // If they're trying to clean it then let them
user.visible_message( \
"\blue [user] starts to clean the grill.", \
"\blue You start to clean the grill." \
)
if (do_after(user,20))
user.visible_message( \
"\blue [user] has cleaned the grill.", \
"\blue You have cleaned the grill." \
)
src.dirty = 0 // It's clean!
src.broken = 0 // just to be sure
src.icon_state = "grill_off"
src.flags = OPENCONTAINER
else //Otherwise bad luck!!
user << "\red It's dirty!"
return 1
else if(is_type_in_list(O,acceptable_items))
if (contents.len>=max_n_of_items)
user << "\red This [src] is full of ingredients, you cannot put more."
return 1
if (istype(O,/obj/item/stack) && O:amount>1)
new O.type (src)
O:use(1)
user.visible_message( \
"\blue [user] has added one of [O] to \the [src].", \
"\blue You add one of [O] to \the [src].")
else
// user.unEquip(O) //This just causes problems so far as I can tell. -Pete
if(!user.drop_item())
user << "<span class='notice'>\the [O] is stuck to your hand, you cannot put it in \the [src]</span>"
return 0
O.loc = src
user.visible_message( \
"\blue [user] has added \the [O] to \the [src].", \
"\blue You add \the [O] to \the [src].")
else if(istype(O,/obj/item/weapon/reagent_containers/glass) || \
istype(O,/obj/item/weapon/reagent_containers/food/drinks) || \
istype(O,/obj/item/weapon/reagent_containers/food/condiment) \
)
if (!O.reagents)
return 1
for (var/datum/reagent/R in O.reagents.reagent_list)
if (!(R.id in acceptable_reagents))
user << "\red Your [O] contains components unsuitable for cookery."
return 1
//G.reagents.trans_to(src,G.amount_per_transfer_from_this)
else if(istype(O,/obj/item/weapon/grab))
var/obj/item/weapon/grab/G = O
user << "\red This is ridiculous. You can not fit \the [G.affecting] in this [src]."
return 1
else
user << "\red You have no idea what you can cook with this [O]."
return 1
src.updateUsrDialog()
/obj/machinery/grill/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/grill/attack_ai(mob/user as mob)
return 0
/obj/machinery/grill/attack_hand(mob/user as mob)
user.set_machine(src)
interact(user)
/*******************
* grill Menu
********************/
/obj/machinery/grill/interact(mob/user as mob) // The grill Menu
if(panel_open || !anchored)
return
var/dat = ""
if(src.broken > 0)
dat = {"<TT>Bzzzzttttt</TT>"}
else if(src.operating)
dat = {"<TT>Grilling in progress!<BR>Please wait...!</TT>"}
else if(src.dirty==100)
dat = {"<TT>This grill is dirty!<BR>Please clean it before use!</TT>"}
else
var/list/items_counts = new
var/list/items_measures = new
var/list/items_measures_p = new
for (var/obj/O in contents)
var/display_name = O.name
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/egg))
items_measures[display_name] = "egg"
items_measures_p[display_name] = "eggs"
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/tofu))
items_measures[display_name] = "tofu chunk"
items_measures_p[display_name] = "tofu chunks"
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/meat)) //any meat
items_measures[display_name] = "slab of meat"
items_measures_p[display_name] = "slabs of meat"
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/donkpocket))
display_name = "Turnovers"
items_measures[display_name] = "turnover"
items_measures_p[display_name] = "turnovers"
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/carpmeat))
items_measures[display_name] = "fillet of meat"
items_measures_p[display_name] = "fillets of meat"
items_counts[display_name]++
for (var/O in items_counts)
var/N = items_counts[O]
if (!(O in items_measures))
dat += {"<B>[capitalize(O)]:</B> [N] [lowertext(O)]\s<BR>"}
else
if (N==1)
dat += {"<B>[capitalize(O)]:</B> [N] [items_measures[O]]<BR>"}
else
dat += {"<B>[capitalize(O)]:</B> [N] [items_measures_p[O]]<BR>"}
for (var/datum/reagent/R in reagents.reagent_list)
var/display_name = R.name
if (R.id == "capsaicin")
display_name = "Hotsauce"
if (R.id == "frostoil")
display_name = "Coldsauce"
dat += {"<B>[display_name]:</B> [R.volume] unit\s<BR>"}
if (items_counts.len==0 && reagents.reagent_list.len==0)
dat = {"<B>The grill is empty</B><BR>"}
else
dat = {"<b>Ingredients:</b><br>[dat]"}
dat += {"<HR><BR>\
<A href='?src=\ref[src];action=cook'>Turn on!<BR>\
<A href='?src=\ref[src];action=dispose'>Eject ingredients!<BR>\
"}
user << browse("<HEAD><TITLE>grill Controls</TITLE></HEAD><TT>[dat]</TT>", "window=grill")
onclose(user, "grill")
return
/***********************************
* grill Menu Handling/Cooking
************************************/
/obj/machinery/grill/proc/cook()
if(stat & (NOPOWER|BROKEN))
return
start()
if (reagents.total_volume==0 && !(locate(/obj) in contents)) //dry run
if (!wzhzhzh(10))
abort()
return
stop()
return
var/datum/recipe/recipe = select_recipe(available_recipes,src)
var/obj/cooked
if (!recipe)
dirty += 1
if (prob(max(10,dirty*5)))
if (!wzhzhzh(4))
abort()
return
muck_start()
wzhzhzh(4)
muck_finish()
cooked = fail()
cooked.loc = src.loc
return
else if (has_extra_item())
if (!wzhzhzh(4))
abort()
return
broke()
cooked = fail()
cooked.loc = src.loc
return
else
if (!wzhzhzh(10))
abort()
return
stop()
cooked = fail()
cooked.loc = src.loc
return
else
var/halftime = round(recipe.time/10/2)
if (!wzhzhzh(halftime))
abort()
return
if (!wzhzhzh(halftime))
abort()
cooked = fail()
cooked.loc = src.loc
return
cooked = recipe.make_food(src)
stop()
if(cooked)
cooked.loc = src.loc
for(var/i=1,i<efficiency,i++)
cooked = new cooked.type(loc)
return
/obj/machinery/grill/proc/wzhzhzh(var/seconds as num)
for (var/i=1 to seconds)
if (stat & (NOPOWER|BROKEN))
return 0
use_power(500)
sleep(10)
return 1
/obj/machinery/grill/proc/has_extra_item()
for (var/obj/O in contents)
if ( \
!istype(O,/obj/item/weapon/reagent_containers/food) && \
!istype(O, /obj/item/weapon/grown) \
)
return 1
return 0
/obj/machinery/grill/proc/start()
src.visible_message("\blue The grill turns on.", "\blue You hear a grill.")
src.operating = 1
src.icon_state = "grill_on"
src.updateUsrDialog()
/obj/machinery/grill/proc/abort()
src.operating = 0 // Turn it off again aferwards
src.icon_state = "grill_off"
src.updateUsrDialog()
/obj/machinery/grill/proc/stop()
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
src.operating = 0 // Turn it off again aferwards
src.icon_state = "grill_off"
src.updateUsrDialog()
/obj/machinery/grill/proc/dispose()
for (var/obj/O in contents)
O.loc = src.loc
if (src.reagents.total_volume)
src.dirty++
src.reagents.clear_reagents()
usr << "\blue You dispose of the grill contents."
src.updateUsrDialog()
/obj/machinery/grill/proc/muck_start()
playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) // Play a splat sound
src.icon_state = "grill_dirty" // Make it look dirty!!
/obj/machinery/grill/proc/muck_finish()
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
src.visible_message("\red The grill gets covered in muck!")
src.dirty = 100 // Make it dirty so it can't be used util cleaned
src.flags = null //So you can't add condiments
src.icon_state = "grill_dirty" // Make it look dirty too
src.operating = 0 // Turn it off again aferwards
src.updateUsrDialog()
/obj/machinery/grill/proc/broke()
var/datum/effect/effect/system/spark_spread/s = new
s.set_up(2, 1, src)
s.start()
src.icon_state = "grill_broke" // Make it look all busted up and shit
src.visible_message("\red The grill breaks!") //Let them know they're stupid
src.broken = 2 // Make it broken so it can't be used util fixed
src.flags = null //So you can't add condiments
src.operating = 0 // Turn it off again aferwards
src.updateUsrDialog()
/obj/machinery/grill/proc/fail()
var/obj/item/weapon/reagent_containers/food/snacks/badrecipe/ffuu = new(src)
var/amount = 0
for (var/obj/O in contents-ffuu)
amount++
if (O.reagents)
var/id = O.reagents.get_master_reagent_id()
if (id)
amount+=O.reagents.get_reagent_amount(id)
del(O)
src.reagents.clear_reagents()
ffuu.reagents.add_reagent("carbon", amount)
ffuu.reagents.add_reagent("toxin", amount/10)
return ffuu
/obj/machinery/grill/Topic(href, href_list)
if(..() || panel_open)
return
usr.set_machine(src)
if(src.operating)
src.updateUsrDialog()
return
switch(href_list["action"])
if ("cook")
cook()
if ("dispose")
dispose()
return
+424
View File
@@ -0,0 +1,424 @@
/obj/machinery/oven
name = "oven"
desc = "Cookies are ready, dear."
icon = 'icons/obj/cooking_machines.dmi'
icon_state = "oven_off"
layer = 2.9
density = 1
anchored = 1
use_power = 1
idle_power_usage = 5
active_power_usage = 100
flags = OPENCONTAINER | NOREACT
var/operating = 0 // Is it on?
var/dirty = 0 // = {0..100} Does it need cleaning?
var/broken = 0 // ={0,1,2} How broken is it???
var/global/list/datum/recipe/available_recipes // List of the recipes you can use
var/global/list/acceptable_items // List of the items you can put in
var/global/list/acceptable_reagents // List of the reagents you can put in
var/global/max_n_of_items = 0
var/efficiency
// see code/modules/food/recipes_oven.dm for recipes
/*******************
* Initialising
********************/
/obj/machinery/oven/New()
//..() //do not need this
reagents = new/datum/reagents(100)
reagents.my_atom = src
if (!available_recipes)
available_recipes = new
for (var/type in (typesof(/datum/recipe/oven)-/datum/recipe/oven))
available_recipes+= new type
acceptable_items = new
acceptable_reagents = new
for (var/datum/recipe/oven/recipe in available_recipes)
for (var/item in recipe.items)
acceptable_items |= item
for (var/reagent in recipe.reagents)
acceptable_reagents |= reagent
if (recipe.items)
max_n_of_items = max(max_n_of_items,recipe.items.len)
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/oven(null)
component_parts += new /obj/item/weapon/stock_parts/micro_laser(null)
component_parts += new /obj/item/weapon/stock_parts/micro_laser(null)
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/stack/cable_coil(null, 5)
RefreshParts()
/obj/machinery/oven/upgraded/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/oven(null)
component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null)
component_parts += new /obj/item/weapon/stock_parts/micro_laser/ultra(null)
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/stack/cable_coil(null, 5)
RefreshParts()
/obj/machinery/oven/RefreshParts()
var/E
for(var/obj/item/weapon/stock_parts/micro_laser/M in component_parts)
E += M.rating
efficiency = round((E/2), 1) // There's 2 lasers, so halve the effect on the efficiency to keep it balanced
/*******************
* Item Adding
********************/
/obj/machinery/oven/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(operating)
return
if(!broken && dirty < 100)
if(default_deconstruction_screwdriver(user, "oven_open", "oven_off", O))
return
if(exchange_parts(user, O))
return
if(istype(O, /obj/item/weapon/wrench))
playsound(src, 'sound/items/Ratchet.ogg', 50, 1)
if(anchored)
anchored = 0
user << "<span class='caution'>The [src] can now be moved.</span>"
return
else if(!anchored)
anchored = 1
user << "<span class='caution'>The [src] is now secured.</span>"
return
default_deconstruction_crowbar(O)
if(src.broken > 0)
if(src.broken == 2 && istype(O, /obj/item/weapon/screwdriver)) // If it's broken and they're using a screwdriver
user.visible_message( \
"\blue [user] starts to fix part of the oven.", \
"\blue You start to fix part of the oven." \
)
if (do_after(user,20))
user.visible_message( \
"\blue [user] fixes part of the oven.", \
"\blue You have fixed part of the oven." \
)
src.broken = 1 // Fix it a bit
else if(src.broken == 1 && istype(O, /obj/item/weapon/wrench)) // If it's broken and they're doing the wrench
user.visible_message( \
"\blue [user] starts to fix part of the oven.", \
"\blue You start to fix part of the oven." \
)
if (do_after(user,20))
user.visible_message( \
"\blue [user] fixes the oven.", \
"\blue You have fixed the oven." \
)
src.icon_state = "oven_off"
src.broken = 0 // Fix it!
src.dirty = 0 // just to be sure
src.flags = OPENCONTAINER
else
user << "\red It's broken!"
return 1
else if(src.dirty==100) // The oven is all dirty so can't be used!
if(istype(O, /obj/item/weapon/reagent_containers/spray/cleaner) || istype(O, /obj/item/weapon/soap)) // If they're trying to clean it then let them
user.visible_message( \
"\blue [user] starts to clean the oven.", \
"\blue You start to clean the oven." \
)
if (do_after(user,20))
user.visible_message( \
"\blue [user] has cleaned the oven.", \
"\blue You have cleaned the oven." \
)
src.dirty = 0 // It's clean!
src.broken = 0 // just to be sure
src.icon_state = "oven_off"
src.flags = OPENCONTAINER
else //Otherwise bad luck!!
user << "\red It's dirty!"
return 1
else if(is_type_in_list(O,acceptable_items))
if (contents.len>=max_n_of_items)
user << "\red This [src] is full of ingredients, you cannot put more."
return 1
if (istype(O,/obj/item/stack) && O:amount>1)
new O.type (src)
O:use(1)
user.visible_message( \
"\blue [user] has added one of [O] to \the [src].", \
"\blue You add one of [O] to \the [src].")
else
// user.unEquip(O) //This just causes problems so far as I can tell. -Pete
if(!user.drop_item())
user << "<span class='notice'>\the [O] is stuck to your hand, you cannot put it in \the [src]</span>"
return 0
O.loc = src
user.visible_message( \
"\blue [user] has added \the [O] to \the [src].", \
"\blue You add \the [O] to \the [src].")
else if(istype(O,/obj/item/weapon/reagent_containers/glass) || \
istype(O,/obj/item/weapon/reagent_containers/food/drinks) || \
istype(O,/obj/item/weapon/reagent_containers/food/condiment) \
)
if (!O.reagents)
return 1
for (var/datum/reagent/R in O.reagents.reagent_list)
if (!(R.id in acceptable_reagents))
user << "\red Your [O] contains components unsuitable for cookery."
return 1
//G.reagents.trans_to(src,G.amount_per_transfer_from_this)
else if(istype(O,/obj/item/weapon/grab))
var/obj/item/weapon/grab/G = O
user << "\red This is ridiculous. You can not fit \the [G.affecting] in this [src]."
return 1
else
user << "\red You have no idea what you can cook with this [O]."
return 1
src.updateUsrDialog()
/obj/machinery/oven/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/oven/attack_ai(mob/user as mob)
return 0
/obj/machinery/oven/attack_hand(mob/user as mob)
user.set_machine(src)
interact(user)
/*******************
* oven Menu
********************/
/obj/machinery/oven/interact(mob/user as mob) // The oven Menu
if(panel_open || !anchored)
return
var/dat = ""
if(src.broken > 0)
dat = {"<TT>Bzzzzttttt</TT>"}
else if(src.operating)
dat = {"<TT>Baking in progress!<BR>Please wait...!</TT>"}
else if(src.dirty==100)
dat = {"<TT>This oven is dirty!<BR>Please clean it before use!</TT>"}
else
var/list/items_counts = new
var/list/items_measures = new
var/list/items_measures_p = new
for (var/obj/O in contents)
var/display_name = O.name
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/egg))
items_measures[display_name] = "egg"
items_measures_p[display_name] = "eggs"
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/tofu))
items_measures[display_name] = "tofu chunk"
items_measures_p[display_name] = "tofu chunks"
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/meat)) //any meat
items_measures[display_name] = "slab of meat"
items_measures_p[display_name] = "slabs of meat"
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/donkpocket))
display_name = "Turnovers"
items_measures[display_name] = "turnover"
items_measures_p[display_name] = "turnovers"
if (istype(O,/obj/item/weapon/reagent_containers/food/snacks/carpmeat))
items_measures[display_name] = "fillet of meat"
items_measures_p[display_name] = "fillets of meat"
items_counts[display_name]++
for (var/O in items_counts)
var/N = items_counts[O]
if (!(O in items_measures))
dat += {"<B>[capitalize(O)]:</B> [N] [lowertext(O)]\s<BR>"}
else
if (N==1)
dat += {"<B>[capitalize(O)]:</B> [N] [items_measures[O]]<BR>"}
else
dat += {"<B>[capitalize(O)]:</B> [N] [items_measures_p[O]]<BR>"}
for (var/datum/reagent/R in reagents.reagent_list)
var/display_name = R.name
if (R.id == "capsaicin")
display_name = "Hotsauce"
if (R.id == "frostoil")
display_name = "Coldsauce"
dat += {"<B>[display_name]:</B> [R.volume] unit\s<BR>"}
if (items_counts.len==0 && reagents.reagent_list.len==0)
dat = {"<B>The oven is empty</B><BR>"}
else
dat = {"<b>Ingredients:</b><br>[dat]"}
dat += {"<HR><BR>\
<A href='?src=\ref[src];action=cook'>Turn on!<BR>\
<A href='?src=\ref[src];action=dispose'>Eject ingredients!<BR>\
"}
user << browse("<HEAD><TITLE>oven Controls</TITLE></HEAD><TT>[dat]</TT>", "window=oven")
onclose(user, "oven")
return
/***********************************
* oven Menu Handling/Cooking
************************************/
/obj/machinery/oven/proc/cook()
if(stat & (NOPOWER|BROKEN))
return
start()
if (reagents.total_volume==0 && !(locate(/obj) in contents)) //dry run
if (!wzhzhzh(10))
abort()
return
stop()
return
var/datum/recipe/recipe = select_recipe(available_recipes,src)
var/obj/cooked
if (!recipe)
dirty += 1
if (prob(max(10,dirty*5)))
if (!wzhzhzh(4))
abort()
return
muck_start()
wzhzhzh(4)
muck_finish()
cooked = fail()
cooked.loc = src.loc
return
else if (has_extra_item())
if (!wzhzhzh(4))
abort()
return
broke()
cooked = fail()
cooked.loc = src.loc
return
else
if (!wzhzhzh(10))
abort()
return
stop()
cooked = fail()
cooked.loc = src.loc
return
else
var/halftime = round(recipe.time/10/2)
if (!wzhzhzh(halftime))
abort()
return
if (!wzhzhzh(halftime))
abort()
cooked = fail()
cooked.loc = src.loc
return
cooked = recipe.make_food(src)
stop()
if(cooked)
cooked.loc = src.loc
for(var/i=1,i<efficiency,i++)
cooked = new cooked.type(loc)
return
/obj/machinery/oven/proc/wzhzhzh(var/seconds as num)
for (var/i=1 to seconds)
if (stat & (NOPOWER|BROKEN))
return 0
use_power(500)
sleep(10)
return 1
/obj/machinery/oven/proc/has_extra_item()
for (var/obj/O in contents)
if ( \
!istype(O,/obj/item/weapon/reagent_containers/food) && \
!istype(O, /obj/item/weapon/grown) \
)
return 1
return 0
/obj/machinery/oven/proc/start()
src.visible_message("\blue The oven turns on.", "\blue You hear a oven.")
src.operating = 1
src.icon_state = "oven_on"
src.updateUsrDialog()
/obj/machinery/oven/proc/abort()
src.operating = 0 // Turn it off again aferwards
src.icon_state = "oven_off"
src.updateUsrDialog()
/obj/machinery/oven/proc/stop()
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
src.operating = 0 // Turn it off again aferwards
src.icon_state = "oven_off"
src.updateUsrDialog()
/obj/machinery/oven/proc/dispose()
for (var/obj/O in contents)
O.loc = src.loc
if (src.reagents.total_volume)
src.dirty++
src.reagents.clear_reagents()
usr << "\blue You dispose of the oven contents."
src.updateUsrDialog()
/obj/machinery/oven/proc/muck_start()
playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) // Play a splat sound
src.icon_state = "oven_dirty" // Make it look dirty!!
/obj/machinery/oven/proc/muck_finish()
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
src.visible_message("\red The oven gets covered in muck!")
src.dirty = 100 // Make it dirty so it can't be used util cleaned
src.flags = null //So you can't add condiments
src.icon_state = "oven_dirty" // Make it look dirty too
src.operating = 0 // Turn it off again aferwards
src.updateUsrDialog()
/obj/machinery/oven/proc/broke()
var/datum/effect/effect/system/spark_spread/s = new
s.set_up(2, 1, src)
s.start()
src.icon_state = "oven_broke" // Make it look all busted up and shit
src.visible_message("\red The oven breaks!") //Let them know they're stupid
src.broken = 2 // Make it broken so it can't be used util fixed
src.flags = null //So you can't add condiments
src.operating = 0 // Turn it off again aferwards
src.updateUsrDialog()
/obj/machinery/oven/proc/fail()
var/obj/item/weapon/reagent_containers/food/snacks/badrecipe/ffuu = new(src)
var/amount = 0
for (var/obj/O in contents-ffuu)
amount++
if (O.reagents)
var/id = O.reagents.get_master_reagent_id()
if (id)
amount+=O.reagents.get_reagent_amount(id)
del(O)
src.reagents.clear_reagents()
ffuu.reagents.add_reagent("carbon", amount)
ffuu.reagents.add_reagent("toxin", amount/10)
return ffuu
/obj/machinery/oven/Topic(href, href_list)
if(..() || panel_open)
return
usr.set_machine(src)
if(src.operating)
src.updateUsrDialog()
return
switch(href_list["action"])
if ("cook")
cook()
if ("dispose")
dispose()
return
+512
View File
@@ -0,0 +1,512 @@
/*
* /datum/recipe/candy/
* reagents = list()
* items = list()
* result = /obj/item/weapon/reagent_containers/food/snacks/
* byproduct = /obj/item/ // only set this if the recipe has a byproduct, like returning it's mould
*
* NOTE: If using a mould, make sure to list it in *BOTH* the items and byproduct lists if it is to be returned.
* Failure to list in both places will result in either consumption of the mould, or spontaneous generation of a mould.
*
*/
// ***********************************************************
// Candy Ingredients / Flavorings Recipes
// ***********************************************************
/datum/recipe/candy/chocolate_bar
reagents = list("soymilk" = 2, "coco" = 2, "sugar" = 2)
items = list()
result = /obj/item/weapon/reagent_containers/food/snacks/chocolatebar
/datum/recipe/candy/chocolate_bar2
reagents = list("milk" = 2, "coco" = 2, "sugar" = 2)
items = list()
result = /obj/item/weapon/reagent_containers/food/snacks/chocolatebar
/datum/recipe/candy/fudge
reagents = list("sugar" = 5, "cream" = 5)
items = list(/obj/item/weapon/reagent_containers/food/snacks/chocolatebar)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/fudge
/datum/recipe/candy/caramel
reagents = list("sugar" = 5, "cream" = 5)
items = list()
result = /obj/item/weapon/reagent_containers/food/snacks/candy/caramel
/datum/recipe/candy/toffee
reagents = list("sugar" = 5)
items = list(/obj/item/weapon/reagent_containers/food/snacks/flour)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/toffee
/datum/recipe/candy/taffy
reagents = list("sugar" = 5, "water" = 5, "sodiumchloride" = 5)
items = list()
result = /obj/item/weapon/reagent_containers/food/snacks/candy/taffy
/datum/recipe/candy/nougat
reagents = list("sugar" = 5, "cornoil" = 5)
items = list(/obj/item/weapon/reagent_containers/food/snacks/egg)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/nougat
// ***********************************************************
// Base Candy Recipes (unflavored / plain)
// ***********************************************************
/datum/recipe/candy/cotton
reagents = list("sugar" = 15)
items = list(
/obj/item/weapon/c_tube,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/cotton
/datum/recipe/candy/gummybear
reagents = list("sugar" = 5, "water" = 5, "cornoil" = 5)
items = list(
/obj/item/weapon/kitchen/mould/bear,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummybear
byproduct = /obj/item/weapon/kitchen/mould/bear
/datum/recipe/candy/gummyworm
reagents = list("sugar" = 5, "water" = 5, "cornoil" = 5)
items = list(
/obj/item/weapon/kitchen/mould/worm,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm
byproduct = /obj/item/weapon/kitchen/mould/worm
/datum/recipe/candy/jellybean
reagents = list("sugar" = 5, "water" = 5, "cornoil" = 5)
items = list(
/obj/item/weapon/kitchen/mould/bean,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jellybean
byproduct = /obj/item/weapon/kitchen/mould/bean
/datum/recipe/candy/jawbreaker
reagents = list("sugar" = 10, "cornoil" = 5)
items = list(
/obj/item/weapon/kitchen/mould/ball,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jawbreaker
byproduct = /obj/item/weapon/kitchen/mould/ball
/datum/recipe/candy/candycane
reagents = list("sugar" = 5)
items = list(
/obj/item/weapon/kitchen/mould/cane,
/obj/item/weapon/reagent_containers/food/snacks/mint,
)
result = /obj/item/weapon/reagent_containers/food/snacks/mint
byproduct = /obj/item/weapon/kitchen/mould/cane
/datum/recipe/candy/gum
reagents = list("sugar" = 5, "water" = 5, "cornoil" = 5)
items = list()
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gum
/datum/recipe/candy/candybar
reagents = list("sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/candybar
/datum/recipe/candy/cash
reagents = list()
items = list(
/obj/item/weapon/kitchen/mould/cash,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/cash
byproduct = /obj/item/weapon/kitchen/mould/cash
/datum/recipe/candy/coin
reagents = list()
items = list(
/obj/item/weapon/kitchen/mould/coin,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/coin
byproduct = /obj/item/weapon/kitchen/mould/coin
/datum/recipe/candy/sucker
reagents = list("sugar" = 10, "cornoil" = 5)
items = list(
/obj/item/weapon/kitchen/mould/loli,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/sucker
byproduct = /obj/item/weapon/kitchen/mould/loli
// ***********************************************************
// Cotton Candy Recipes (flavored)
// ***********************************************************
/datum/recipe/candy/cotton/red
reagents = list("cherryjelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/cotton/red
/datum/recipe/candy/cotton/blue
reagents = list("berryjuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/cotton/blue
/datum/recipe/candy/cotton/poison
reagents = list("poisonberryjuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/cotton/poison
/datum/recipe/candy/cotton/green
reagents = list("limejuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/cotton/green
/datum/recipe/candy/cotton/yellow
reagents = list("lemonjuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/cotton/yellow
/datum/recipe/candy/cotton/orange
reagents = list("orangejuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/cotton/orange
/datum/recipe/candy/cotton/purple
reagents = list("grapejuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/cotton/purple
/datum/recipe/candy/cotton/pink
reagents = list("watermelonjuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/cotton/pink
/datum/recipe/candy/cotton/rainbow
reagents = list()
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/red,
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/blue,
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/green,
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/yellow,
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/orange,
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/purple,
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/pink,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/cotton/rainbow
/datum/recipe/candy/cotton/rainbow2
reagents = list()
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/red,
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/poison,
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/green,
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/yellow,
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/orange,
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/purple,
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/pink,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/cotton/bad_rainbow
// ***********************************************************
// Gummy Bear Recipes (flavored)
// ***********************************************************
/datum/recipe/candy/gummybear/red
reagents = list("cherryjelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/red
/datum/recipe/candy/gummybear/blue
reagents = list("berryjuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/blue
/datum/recipe/candy/gummybear/poison
reagents = list("poisonberryjuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/poison
/datum/recipe/candy/gummybear/green
reagents = list("limejuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/green
/datum/recipe/candy/gummybear/yellow
reagents = list("lemonjuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/yellow
/datum/recipe/candy/gummybear/orange
reagents = list("orangejuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/orange
/datum/recipe/candy/gummybear/purple
reagents = list("grapejuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/purple
/datum/recipe/candy/gummybear/wtf
reagents = list("space_drugs" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/wtf
/datum/recipe/candy/gummybear/wtf2
reagents = list()
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/wtf
// ***********************************************************
// Gummy Worm Recipes (flavored)
// ***********************************************************
/datum/recipe/candy/gummyworm/red
reagents = list("cherryjelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/red
/datum/recipe/candy/gummyworm/blue
reagents = list("berryjuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/blue
/datum/recipe/candy/gummyworm/poison
reagents = list("poisonberryjuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/poison
/datum/recipe/candy/gummyworm/green
reagents = list("limejuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/green
/datum/recipe/candy/gummyworm/yellow
reagents = list("lemonjuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/yellow
/datum/recipe/candy/gummyworm/orange
reagents = list("orangejuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/orange
/datum/recipe/candy/gummyworm/purple
reagents = list("grapejuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/purple
/datum/recipe/candy/gummyworm/wtf
reagents = list("space_drugs" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/wtf
/datum/recipe/candy/gummyworm/wtf2
reagents = list()
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/wtf
// ***********************************************************
// Jelly Bean Recipes (flavored)
// ***********************************************************
/datum/recipe/candy/jellybean/red
reagents = list("cherryjelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/red
/datum/recipe/candy/jellybean/blue
reagents = list("berryjuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/blue
/datum/recipe/candy/jellybean/poison
reagents = list("poisonberryjuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/poison
/datum/recipe/candy/jellybean/green
reagents = list("limejuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/green
/datum/recipe/candy/jellybean/yellow
reagents = list("lemonjuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/yellow
/datum/recipe/candy/jellybean/orange
reagents = list("orangejuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/orange
/datum/recipe/candy/jellybean/purple
reagents = list("grapejuice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/purple
/datum/recipe/candy/jellybean/chocolate
reagents = list()
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/chocolate
/datum/recipe/candy/jellybean/cola
reagents = list("cola" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/cola
/datum/recipe/candy/jellybean/popcorn
reagents = list()
items = list(
/obj/item/weapon/reagent_containers/food/snacks/popcorn,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/popcorn
/datum/recipe/candy/jellybean/coffee
reagents = list("coffee" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/cola
/datum/recipe/candy/jellybean/drgibb
reagents = list("dr_gibb" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/cola
/datum/recipe/candy/jellybean/wtf
reagents = list("space_drugs" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/wtf
/datum/recipe/candy/jellybean/wtf2
reagents = list()
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/wtf
// ***********************************************************
// Candybar Recipes (flavored)
// ***********************************************************
/datum/recipe/candy/candybar/caramel
reagents = list()
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/candybar,
/obj/item/weapon/reagent_containers/food/snacks/candy/caramel,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/candybar/caramel
/datum/recipe/candy/candybar/nougat
reagents = list()
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/candybar,
/obj/item/weapon/reagent_containers/food/snacks/candy/nougat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/candybar/nougat
/datum/recipe/candy/candybar/toffee
reagents = list()
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/candybar,
/obj/item/weapon/reagent_containers/food/snacks/candy/toffee,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/candybar/toffee
/datum/recipe/candy/candybar/rice
reagents = list("rice" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/candybar,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/candybar/rice
/datum/recipe/candy/candybar/caramel_nougat
reagents = list()
items = list(
/obj/item/weapon/reagent_containers/food/snacks/candy/candybar,
/obj/item/weapon/reagent_containers/food/snacks/candy/caramel,
/obj/item/weapon/reagent_containers/food/snacks/candy/nougat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/candy/candybar/caramel_nougat
+132
View File
@@ -0,0 +1,132 @@
// /datum/recipe/grill
/datum/recipe/grill/telebacon
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/device/assembly/signaler
)
result = /obj/item/weapon/reagent_containers/food/snacks/telebacon
/datum/recipe/grill/syntitelebacon
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,
/obj/item/device/assembly/signaler
)
result = /obj/item/weapon/reagent_containers/food/snacks/telebacon
/datum/recipe/grill/friedegg
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg
)
result = /obj/item/weapon/reagent_containers/food/snacks/friedegg
/datum/recipe/grill/meatsteak
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat
)
result = /obj/item/weapon/reagent_containers/food/snacks/meatsteak
/datum/recipe/grill/syntisteak
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh
)
result = /obj/item/weapon/reagent_containers/food/snacks/meatsteak
/datum/recipe/grill/waffles
reagents = list("sugar" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/reagent_containers/food/snacks/waffles
/datum/recipe/grill/rofflewaffles
reagents = list("psilocybin" = 5, "sugar" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
)
result = /obj/item/weapon/reagent_containers/food/snacks/rofflewaffles
/datum/recipe/grill/grilledcheese
items = list(
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
)
result = /obj/item/weapon/reagent_containers/food/snacks/grilledcheese
/datum/recipe/grill/sausage
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meatball,
/obj/item/weapon/reagent_containers/food/snacks/cutlet,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sausage
/datum/recipe/grill/fishfingers
items = list(
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/carpmeat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/fishfingers
/datum/recipe/grill/cutlet
items = list(
/obj/item/weapon/reagent_containers/food/snacks/rawcutlet
)
result = /obj/item/weapon/reagent_containers/food/snacks/cutlet
/datum/recipe/grill/omelette
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg,
/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/omelette
/datum/recipe/grill/wingfangchu
reagents = list("soysauce" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/xenomeat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/wingfangchu
/datum/recipe/grill/human/kabob
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/grill/monkeykabob
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/grill/syntikabob
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/grill/tofukabob
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
File diff suppressed because it is too large Load Diff
+429
View File
@@ -0,0 +1,429 @@
// /datum/recipe/oven
/datum/recipe/oven/bun
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough
)
result = /obj/item/weapon/reagent_containers/food/snacks/bun
/datum/recipe/oven/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/oven/syntibread
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/syntiflesh,
/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,
/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,
/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/oven/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/oven/bananabread
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,
/obj/item/weapon/reagent_containers/food/snacks/grown/banana,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/bananabread
/datum/recipe/oven/muffin
reagents = list("milk" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
)
result = /obj/item/weapon/reagent_containers/food/snacks/muffin
/datum/recipe/oven/carrotcake
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,
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/carrotcake
/datum/recipe/oven/cheesecake
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,
/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/oven/plaincake
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/plaincake
/datum/recipe/oven/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/oven/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/oven/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/oven/pie
reagents = list("sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
/obj/item/weapon/reagent_containers/food/snacks/grown/banana,
)
result = /obj/item/weapon/reagent_containers/food/snacks/pie
/datum/recipe/oven/cherrypie
reagents = list("sugar" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
/obj/item/weapon/reagent_containers/food/snacks/grown/cherries,
)
result = /obj/item/weapon/reagent_containers/food/snacks/cherrypie
/datum/recipe/oven/berryclafoutis
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
/obj/item/weapon/reagent_containers/food/snacks/grown/berries,
)
result = /obj/item/weapon/reagent_containers/food/snacks/berryclafoutis
/datum/recipe/oven/tofubread
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/tofu,
/obj/item/weapon/reagent_containers/food/snacks/tofu,
/obj/item/weapon/reagent_containers/food/snacks/tofu,
/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/tofubread
/datum/recipe/oven/loadedbakedpotato
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/potato,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
)
result = /obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato
/datum/recipe/oven/cookie
reagents = list("milk" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
)
result = /obj/item/weapon/reagent_containers/food/snacks/cookie
/datum/recipe/oven/fortunecookie
reagents = list("sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/doughslice,
/obj/item/weapon/paper,
)
result = /obj/item/weapon/reagent_containers/food/snacks/fortunecookie
make_food(var/obj/container as obj)
var/obj/item/weapon/paper/paper = locate() in container
paper.loc = null //prevent deletion
var/obj/item/weapon/reagent_containers/food/snacks/fortunecookie/being_cooked = ..(container)
paper.loc = being_cooked
being_cooked.trash = paper //so the paper is left behind as trash without special-snowflake(TM Nodrak) code ~carn
return being_cooked
check_items(var/obj/container as obj)
. = ..()
if (.)
var/obj/item/weapon/paper/paper = locate() in container
if (!paper.info)
return 0
return .
/datum/recipe/oven/pizzamargherita
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
/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,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita
/datum/recipe/oven/meatpizza
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
/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/grown/tomato,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza
/datum/recipe/oven/syntipizza
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,
/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,
/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza
/datum/recipe/oven/mushroompizza
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza
/datum/recipe/oven/vegetablepizza
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
/obj/item/weapon/reagent_containers/food/snacks/grown/eggplant,
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,
/obj/item/weapon/reagent_containers/food/snacks/grown/corn,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza
/datum/recipe/oven/amanita_pie
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita,
)
result = /obj/item/weapon/reagent_containers/food/snacks/amanita_pie
/datum/recipe/oven/plump_pie
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet,
)
result = /obj/item/weapon/reagent_containers/food/snacks/plump_pie
/datum/recipe/oven/creamcheesebread
items = list(
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/flour,
/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/creamcheesebread
/datum/recipe/oven/baguette
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/dough,
)
result = /obj/item/weapon/reagent_containers/food/snacks/baguette
/datum/recipe/oven/birthdaycake
reagents = list("milk" = 5, "sugar" = 5)
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/clothing/head/cakehat
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake
/datum/recipe/oven/bread
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/egg
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/bread
/datum/recipe/oven/applepie
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough,
/obj/item/weapon/reagent_containers/food/snacks/grown/apple,
)
result = /obj/item/weapon/reagent_containers/food/snacks/applepie
/datum/recipe/oven/applecake
reagents = list("milk" = 5, "sugar" = 5)
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/grown/apple,
/obj/item/weapon/reagent_containers/food/snacks/grown/apple,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake
/datum/recipe/oven/orangecake
reagents = list("milk" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/grown/orange,
/obj/item/weapon/reagent_containers/food/snacks/grown/orange,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake
/datum/recipe/oven/limecake
reagents = list("milk" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/grown/lime,
/obj/item/weapon/reagent_containers/food/snacks/grown/lime,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/limecake
/datum/recipe/oven/lemoncake
reagents = list("milk" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/grown/lemon,
/obj/item/weapon/reagent_containers/food/snacks/grown/lemon,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/lemoncake
/datum/recipe/oven/chocolatecake
reagents = list("milk" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/chocolatecake
/datum/recipe/oven/braincake
reagents = list("milk" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/brain
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/braincake
/datum/recipe/oven/pumpkinpie
reagents = list("milk" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin,
/obj/item/weapon/reagent_containers/food/snacks/egg,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie
/datum/recipe/oven/appletart
reagents = list("sugar" = 5, "milk" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/grown/goldapple,
)
result = /obj/item/weapon/reagent_containers/food/snacks/appletart
/datum/recipe/oven/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/oven/sugarcookie
reagents = list("sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/dough,
/obj/item/weapon/reagent_containers/food/snacks/egg,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sugarcookie
/datum/recipe/oven/flatbread
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough
)
result = /obj/item/weapon/reagent_containers/food/snacks/flatbread
@@ -2771,6 +2771,12 @@ datum
description = "This juice is VERY sour."
color = "#863333" // rgb: 175, 175, 0
grapejuice
name = "Grape Juice"
id = "grapejuice"
description = "This juice is known to stain shirts."
color = "#993399" // rgb: 153, 51, 153
banana
name = "Banana Juice"
id = "banana"
@@ -319,6 +319,7 @@
reagents.add_reagent("tricordrazine", 8)
bitesize = 3
/*
/obj/item/weapon/reagent_containers/food/snacks/candy
name = "candy"
desc = "Nougat, love it or hate it."
@@ -353,6 +354,7 @@
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("sugar", 2)
bitesize = 2
*/
/obj/item/weapon/reagent_containers/food/snacks/chips
name = "chips"
@@ -0,0 +1,774 @@
// ***********************************************************
// Candy! Delicious and sugary candy!
// Separated for organization and such
// ***********************************************************
//Candy / Candy Ingredients
//Subclass so we can pass on values
/obj/item/weapon/reagent_containers/food/snacks/candy/
name = "generic candy"
desc = "It's placeholder flavored. This shouldn't be seen."
icon_state = "candy"
New()
..()
// ***********************************************************
// Candy Ingredients / Flavorings / Byproduct
// ***********************************************************
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar
name = "Chocolate Bar"
desc = "Such sweet, fattening food."
icon_state = "chocolatebar"
filling_color = "#7D5F46"
New()
..()
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("sugar", 2)
reagents.add_reagent("coco", 2)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/candy/caramel
name = "Caramel"
desc = "Chewy and dense, yet it practically melts in your mouth!"
icon_state = "caramel"
filling_color = "#DB944D"
New()
..()
reagents.add_reagent("cream", 2)
reagents.add_reagent("sugar", 2)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/candy/toffee
name = "Toffee"
desc = "A hard, brittle candy with a distinctive taste."
icon_state = "toffee"
filling_color = "#7D5F46"
New()
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sugar", 3)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/candy/nougat
name = "Nougat"
desc = "A soft, chewy candy commonly found in candybars."
icon_state = "nougat"
filling_color = "#7D5F46"
New()
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sugar", 3)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/candy/taffy
name = "Saltwater Taffy"
desc = "Old fashioned saltwater taffy. Chewy!"
icon_state = "candy1"
filling_color = "#7D5F46"
New()
..()
icon_state = pick("candy1", "candy2", "candy3", "candy4", "candy5")
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("sugar", 3)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/candy/fudge
name = "Fudge"
desc = "Chocolate fudge, a timeless classic treat."
icon_state = "fudge"
filling_color = "#7D5F46"
New()
..()
reagents.add_reagent("cream", 3)
reagents.add_reagent("sugar", 3)
reagents.add_reagent("coco", 3)
bitesize = 3
// ***********************************************************
// Candy Products (Pre-existing)
// ***********************************************************
/obj/item/weapon/reagent_containers/food/snacks/candy/donor
name = "Donor Candy"
desc = "A little treat for blood donors."
trash = /obj/item/trash/candy
New()
..()
reagents.add_reagent("nutriment", 10)
reagents.add_reagent("sugar", 3)
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/candy_corn
name = "candy corn"
desc = "It's a handful of candy corn. Cannot be stored in a detective's hat, alas."
icon_state = "candy_corn"
filling_color = "#FFFCB0"
New()
..()
reagents.add_reagent("nutriment", 4)
reagents.add_reagent("sugar", 2)
bitesize = 2
// ***********************************************************
// Candy Products (plain / unflavored)
// ***********************************************************
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton
name = "cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_plain"
trash = /obj/item/weapon/c_tube
filling_color = "#FFFFFF"
New()
..()
reagents.add_reagent("sugar", 15)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/candybar
name = "candy"
desc = "A chocolate candybar, wrapped in a bit of foil."
icon_state = "candy"
trash = /obj/item/trash/candy
filling_color = "#7D5F46"
New()
..()
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("sugar", 5)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/candycane
name = "candy cane"
desc = "A festive mint candy cane."
icon_state = "candycane"
filling_color = "#F2F2F2"
New()
..()
reagents.add_reagent("minttoxin", 1)
reagents.add_reagent("sugar", 5)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear
name = "gummy bear"
desc = "A small edible bear. It's squishy and chewy!"
icon_state = "gbear"
filling_color = "#FFFFFF"
New()
..()
reagents.add_reagent("sugar" = 10)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm
name = "gummy bear"
desc = "An edible worm, made from gelatin."
icon_state = "gworm"
filling_color = "#FFFFFF"
New()
..()
reagents.add_reagent("sugar" = 10)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas."
icon_state = "jbean"
filling_color = "#FFFFFF"
New()
..()
reagents.add_reagent("sugar" = 10)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/jawbreaker
name = "jawbreaker"
desc = "An unbelievably hard candy. The name is fitting."
icon_state = "jawbreaker"
filling_color = "#ED0758"
New()
..()
reagents.add_reagent("sugar" = 10)
bitesize = 0.1 //this is gonna take a while, you'll be working at this all shift.
/obj/item/weapon/reagent_containers/food/snacks/candy/cash
name = "candy cash"
desc = "Not legal tender. Tasty though."
icon_state = "candy_cash"
filling_color = "#302000"
New()
..()
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("sugar", 2)
reagents.add_reagent("coco", 2)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/candy/coin
name = "chocolate coin"
desc = "Probably won't work in the vending machines."
icon_state = "choc_coin"
filling_color = "#302000"
New()
..()
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("sugar", 2)
reagents.add_reagent("coco", 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gum
name = "bubblegum"
desc = "Chewy!"
icon_state = "bubblegum"
trash = /obj/item/trash/gum
filling_color = "#FF7495"
New()
..()
reagents.add_reagent("sugar" = 5)
bitesize = 0.2
/obj/item/weapon/reagent_containers/food/snacks/candy/sucker
name = "sucker"
desc = "For being such a good sport!"
icon_state = "sucker"
filling_color = "#FFFFFF"
New()
..()
reagents.add_reagent("sugar" = 10)
bitesize = 1
// ***********************************************************
// Gummy Bear Flavors
// ***********************************************************
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/red
name = "gummy bear"
desc = "A small edible bear. It's red!"
icon_state = "gbear_red"
filling_color = "#801E28"
New()
..()
reagents.add_reagent("cherryjelly" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/blue
name = "gummy bear"
desc = "A small edible bear. It's blue!"
icon_state = "gbear_blue"
filling_color = "#863333"
New()
..()
reagents.add_reagent("berryjuice" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/poison
name = "gummy bear"
desc = "A small edible bear. It's blue!"
icon_state = "gbear_blue"
filling_color = "#863353"
New()
..()
reagents.add_reagent("poisonberryjuice" = 12)
reagents.del_reagent("sugar")
reagents.update_total()
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/green
name = "gummy bear"
desc = "A small edible bear. It's green!"
icon_state = "gbear_green"
filling_color = "#365E30"
New()
..()
reagents.add_reagent("limejuice" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/yellow
name = "gummy bear"
desc = "A small edible bear. It's yellow!"
icon_state = "gbear_yellow"
filling_color = "#863333"
New()
..()
reagents.add_reagent("lemonjuice" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/orange
name = "gummy bear"
desc = "A small edible bear. It's orange!"
icon_state = "gbear_orange"
filling_color = "#E78108"
New()
..()
reagents.add_reagent("orangejuice" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/purple
name = "gummy bear"
desc = "A small edible bear. It's purple!"
icon_state = "gbear_purple"
filling_color = "#993399"
New()
..()
reagents.add_reagent("grapejuice" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gummybear/wtf
name = "gummy bear"
desc = "A small bear. Wait... what?"
icon_state = "gbear_wtf"
filling_color = "#60A584"
New()
..()
reagents.add_reagent("space_drugs" = 2)
bitesize = 3
// ***********************************************************
// Gummy Worm Flavors
// ***********************************************************
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/red
name = "gummy bear"
desc = "An edible worm, made from gelatin. It's red!"
icon_state = "gworm_red"
filling_color = "#801E28"
New()
..()
reagents.add_reagent("cherryjelly" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/blue
name = "gummy bear"
desc = "An edible worm, made from gelatin. It's blue!"
icon_state = "gworm_blue"
filling_color = "#863333"
New()
..()
reagents.add_reagent("berryjuice" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/poison
name = "gummy bear"
desc = "An edible worm, made from gelatin. It's blue!"
icon_state = "gworm_blue"
filling_color = "#863353"
New()
..()
reagents.add_reagent("poisonberryjuice" = 12)
reagents.del_reagent("sugar")
reagents.update_total()
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/green
name = "gummy bear"
desc = "An edible worm, made from gelatin. It's green!"
icon_state = "gworm_green"
filling_color = "#365E30"
New()
..()
reagents.add_reagent("limejuice" = 10)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/yellow
name = "gummy bear"
desc = "An edible worm, made from gelatin. It's yellow!"
icon_state = "gworm_yellow"
filling_color = "#863333"
New()
..()
reagents.add_reagent("lemonjuice" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/orange
name = "gummy bear"
desc = "An edible worm, made from gelatin. It's orange!"
icon_state = "gworm_orange"
filling_color = "#E78108"
New()
..()
reagents.add_reagent("orangejuice" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/purple
name = "gummy bear"
desc = "An edible worm, made from gelatin. It's purple!"
icon_state = "gworm_purple"
filling_color = "#993399"
New()
..()
reagents.add_reagent("grapejuice" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/gummyworm/wtf
name = "gummy bear"
desc = "An edible worm. Did it just move?"
icon_state = "gworm_wtf"
filling_color = "#60A584"
New()
..()
reagents.add_reagent("space_drugs" = 2)
bitesize = 3
// ***********************************************************
// Jelly Bean Flavors
// ***********************************************************
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/red
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's red!"
icon_state = "jbean_red"
filling_color = "#801E28"
New()
..()
reagents.add_reagent("cherryjelly" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/blue
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's blue!"
icon_state = "jbean_blue"
filling_color = "#863333"
New()
..()
reagents.add_reagent("berryjuice" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/poison
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's blue!"
icon_state = "jbean_blue"
filling_color = "#863353"
New()
..()
reagents.add_reagent("poisonberryjuice" = 12)
reagents.del_reagent("sugar")
reagents.update_total()
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/green
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's green!"
icon_state = "jbean_green"
filling_color = "#365E30"
New()
..()
reagents.add_reagent("limejuice" = 10)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/yellow
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's yellow!"
icon_state = "jbean_yellow"
filling_color = "#863333"
New()
..()
reagents.add_reagent("lemonjuice" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/orange
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's orange!"
icon_state = "jbean_orange"
filling_color = "#E78108"
New()
..()
reagents.add_reagent("orangejuice" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/purple
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's purple!"
icon_state = "jbean_purple"
filling_color = "#993399"
New()
..()
reagents.add_reagent("grapejuice" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/chocolate
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's chocolate!"
icon_state = "jbean_choc"
filling_color = "#302000"
New()
..()
reagents.add_reagent("coco" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/popcorn
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's popcorn flavored!"
icon_state = "jbean_popcorn"
filling_color = "#664330"
New()
..()
reagents.add_reagent("nutriment" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/cola
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's Cola flavored!"
icon_state = "jbean_cola"
filling_color = "#102000"
New()
..()
reagents.add_reagent("cola" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/drgibb
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's Dr. Gibb flavored!"
icon_state = "jbean_cola"
filling_color = "#102000"
New()
..()
reagents.add_reagent("dr_gibb" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/coffee
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. It's Coffee flavored!"
icon_state = "jbean_choc"
filling_color = "#482000"
New()
..()
reagents.add_reagent("coffee" = 2)
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/candy/jellybean/wtf
name = "jelly bean"
desc = "A candy bean, guarenteed to not give you gas. You aren't sure what color it is."
icon_state = "jbean_wtf"
filling_color = "#60A584"
New()
..()
reagents.add_reagent("space_drugs" = 2)
bitesize = 3
// ***********************************************************
// Cotton Candy Flavors
// ***********************************************************
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/red
name = "cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_plain"
trash = /obj/item/weapon/c_tube
filling_color = "#801E28"
New()
..()
reagents.add_reagent("cherryjelly", 5)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/blue
name = "cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_plain"
trash = /obj/item/weapon/c_tube
filling_color = "#863333"
New()
..()
reagents.add_reagent("berryjuice", 5)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/poison
name = "cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_plain"
trash = /obj/item/weapon/c_tube
filling_color = "#863353"
New()
..()
reagents.add_reagent("poisonberryjuice", 20)
reagents.del_reagent("sugar")
reagents.update_total()
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/green
name = "cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_plain"
trash = /obj/item/weapon/c_tube
filling_color = "#365E30"
New()
..()
reagents.add_reagent("limejuice", 5)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/yellow
name = "cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_plain"
trash = /obj/item/weapon/c_tube
filling_color = "#863333"
New()
..()
reagents.add_reagent("lemonjuice", 5)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/orange
name = "cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_plain"
trash = /obj/item/weapon/c_tube
filling_color = "#E78108"
New()
..()
reagents.add_reagent("orangejuice", 5)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/purple
name = "cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_plain"
trash = /obj/item/weapon/c_tube
filling_color = "#993399"
New()
..()
reagents.add_reagent("grapejuice", 5)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/pink
name = "cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_plain"
trash = /obj/item/weapon/c_tube
filling_color = "#863333"
New()
..()
reagents.add_reagent("watermelonjuice", 5)
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/rainbow
name = "cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_plain"
trash = /obj/item/weapon/c_tube
filling_color = "#C8A5DC"
New()
..()
reagents.add_reagent("tricordrazine", 20)
reagents.del_reagent("sugar")
reagents.update_total()
bitesize = 4
/obj/item/weapon/reagent_containers/food/snacks/candy/cotton/bad_rainbow
name = "cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_plain"
trash = /obj/item/weapon/c_tube
filling_color = "#32127A"
New()
..()
reagents.add_reagent("lexorin", 20)
reagents.del_reagent("sugar")
reagents.update_total()
bitesize = 4
// ***********************************************************
// Candybar Flavors
// ***********************************************************
/obj/item/weapon/reagent_containers/food/snacks/candy/candybar/rice
name = "Asteroid Crunch Bar"
desc = "Crunchy rice deposits in delicious chocolate! A favorite of miners galaxy-wide."
icon_state = "asteroidcrunch"
trash = /obj/item/trash/candy
filling_color = "#7D5F46"
New()
..()
/obj/item/weapon/reagent_containers/food/snacks/candy/candybar/toffee
name = "Yum-baton Bar"
desc = "Chocolate and toffee in the shape of a baton. Security sure knows how to pound these down!"
icon_state = "yumbaton"
filling_color = "#7D5F46"
New()
..()
/obj/item/weapon/reagent_containers/food/snacks/candy/candybar/caramel
name = "Malper Bar"
desc = "A chocolate syringe filled with a caramel injection. Just what the doctor ordered!"
icon_state = "malper"
filling_color = "#7D5F46"
New()
..()
/obj/item/weapon/reagent_containers/food/snacks/candy/candybar/caramel_nougat
name = "Toxins Test Bar"
desc = "An explosive combination of chocolate, caramel, and nougat. Research has never been so tasty!"
icon_state = "toxinstest"
filling_color = "#7D5F46"
New()
..()
/obj/item/weapon/reagent_containers/food/snacks/candy/candybar/nougat
name = "Tool-erone Bar"
desc = "Chocolate-covered nougat, shaped like a wrench. Great for an engineer on the go!"
icon_state = "toolerone"
filling_color = "#7D5F46"
New()
..()
@@ -10,7 +10,7 @@
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/thermomachine
category = list ("Engineering Machinery")
category = list ("Engineering Machinery")
/datum/design/smes
name = "Machine Board (SMES)"
@@ -21,7 +21,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/smes
category = list ("Engineering Machinery")
/datum/design/telepad
name = "Machine Board (Telepad Board)"
desc = "Allows for the construction of circuit boards used to build a Telepad."
@@ -30,8 +30,8 @@
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/telesci_pad
category = list ("Teleportation Machinery")
category = list ("Teleportation Machinery")
/datum/design/teleport_hub
name = "Machine Board (Teleportation Hub)"
desc = "Allows for the construction of circuit boards used to build a Teleportation Hub."
@@ -40,8 +40,8 @@
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/teleporter_hub
category = list ("Teleportation Machinery")
category = list ("Teleportation Machinery")
/datum/design/teleport_station
name = "Machine Board (Teleportation Station)"
desc = "Allows for the construction of circuit boards used to build a Teleporter Station."
@@ -50,8 +50,8 @@
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/teleporter_station
category = list ("Teleportation Machinery")
category = list ("Teleportation Machinery")
/datum/design/bodyscanner
name = "Machine Board (Body Scanner)"
desc = "Allows for the construction of circuit boards used to build a Body Scanner."
@@ -71,7 +71,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/bodyscanner_console
category = list("Medical Machinery")
/datum/design/clonepod
name = "Machine Board (Cloning Pod)"
desc = "Allows for the construction of circuit boards used to build a Cloning Pod."
@@ -81,7 +81,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/clonepod
category = list("Medical Machinery")
/datum/design/clonescanner
name = "Machine Board (Cloning Scanner)"
desc = "Allows for the construction of circuit boards used to build a Cloning Scanner."
@@ -91,7 +91,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/clonescanner
category = list("Medical Machinery")
/datum/design/cryotube
name = "Machine Board (Cryotube Board)"
desc = "Allows for the construction of circuit boards used to build a Cryotube."
@@ -101,7 +101,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/cryo_tube
category = list("Medical Machinery")
/datum/design/chem_dispenser
name = "Machine Board (Portable Chem Dispenser)"
desc = "The circuit board for a Portable Chem Dispenser."
@@ -111,7 +111,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/chem_dispenser
category = list("Medical Machinery")
/datum/design/sleeper
name = "Machine Board (Sleeper)"
desc = "Allows for the construction of circuit boards used to build a Sleeper."
@@ -131,7 +131,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/sleep_console
category = list("Medical Machinery")
/datum/design/biogenerator
name = "Machine Board (Biogenerator)"
desc = "The circuit board for a Biogenerator."
@@ -160,8 +160,8 @@
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/autolathe
category = list("Research Machinery")
category = list("Research Machinery")
/datum/design/circuit_imprinter
name = "Machine Board (Circuit Imprinter)"
desc = "The circuit board for a Circuit Imprinter."
@@ -170,8 +170,8 @@
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/circuit_imprinter
category = list("Research Machinery")
category = list("Research Machinery")
/datum/design/cyborgrecharger
name = "Machine Board (Cyborg Recharger)"
desc = "The circuit board for a Cyborg Recharger."
@@ -181,7 +181,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/cyborgrecharger
category = list("Research Machinery")
/datum/design/destructive_analyzer
name = "Machine Board (Destructive Analyzer)"
desc = "The circuit board for a Destructive Analyzer."
@@ -191,7 +191,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/destructive_analyzer
category = list("Research Machinery")
/datum/design/mechfab
name = "Machine Board (Exosuit Fabricator)"
desc = "The circuit board for an Exosuit Fabricator"
@@ -201,7 +201,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mechfab
category = list("Research Machinery")
/datum/design/mech_recharger
name = "Machine Board (Mech Bay Recharger)"
desc = "The circuit board for a Mech Bay Recharger."
@@ -250,8 +250,38 @@
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/microwave
category = list("Misc. Machinery")
category = list("Misc. Machinery")
/datum/design/oven
name = "Machine Board (Oven)"
desc = "The circuit board for an Oven."
id = "oven"
req_tech = list("programming" = 1, "plasmatech" = 1)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/oven
category = list("Misc. Machinery")
/datum/design/grill
name = "Machine Board (Grill)"
desc = "The circuit board for a Grill."
id = "grill"
req_tech = list("programming" = 1, "plasmatech" = 1)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/grill
category = list("Misc. Machinery")
/datum/design/candy_maker
name = "Machine Board (Candy Maker)"
desc = "The circuit board for a Candy Maker."
id = "candymaker"
req_tech = list("programming" = 2)
build_type = IMPRINTER
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/candy_maker
category = list("Misc. Machinery")
/datum/design/orion_trail
name = "Machine Board (Orion Trail Arcade Machine)"
desc = "Allows for the construction of circuit boards used to build a new Orion Trail machine."
@@ -261,7 +291,7 @@
materials = list("$glass" = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/arcade/orion_trail
category = list("Misc. Machinery")
/datum/design/programmable
name = "Machine Board (Programmable Unloader)"
desc = "The circuit board for a Programmable Unloader."