Making food code less bloated and messy.

This commit is contained in:
Firecage
2014-07-22 16:47:06 +02:00
parent c0c9702c13
commit 4f2dbf2868
25 changed files with 6812 additions and 6745 deletions
@@ -1,11 +1,11 @@
////////////////////////////////////////////////////////////////////////////////
/// Food.
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/food
possible_transfer_amounts = null
volume = 50 //Sets the default container amount for all food items.
/obj/item/weapon/reagent_containers/food/New()
..()
pixel_x = rand(-5, 5) //Randomizes postion slightly.
////////////////////////////////////////////////////////////////////////////////
/// Food.
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/food
possible_transfer_amounts = null
volume = 50 //Sets the default container amount for all food items.
/obj/item/weapon/reagent_containers/food/New()
..()
pixel_x = rand(-5, 5) //Randomizes postion slightly.
pixel_y = rand(-5, 5)
@@ -1,222 +1,222 @@
///////////////////////////////////////////////Condiments
//Notes by Darem: The condiments food-subtype is for stuff you don't actually eat but you use to modify existing food. They all
// leave empty containers when used up and can be filled/re-filled with other items. Formatting for first section is identical
// to mixed-drinks code. If you want an object that starts pre-loaded, you need to make it in addition to the other code.
//Food items that aren't eaten normally and leave an empty container behind.
/obj/item/weapon/reagent_containers/food/condiment
name = "Condiment Container"
desc = "Just your average condiment container."
icon = 'icons/obj/food.dmi'
icon_state = "emptycondiment"
flags = OPENCONTAINER
possible_transfer_amounts = list(1,5,10)
volume = 50
//Possible_states has the reagent id as key and a list of, in order, the icon_state, the name and the desc as values. Used in the on_reagent_change() to change names, descs and sprites.
var/list/possible_states = list("ketchup" = list("ketchup", "Ketchup", "You feel more American already."), "capsaicin" = list("hotsauce", "Hotsauce", "You can almost TASTE the stomach ulcers now!"), "enzyme" = list("enzyme", "Universal Enzyme", "Used in cooking various dishes"), "soysauce" = list("soysauce", "Soy Sauce", "A salty soy-based flavoring"), "frostoil" = list("coldsauce", "Coldsauce", "Leaves the tongue numb in it's passage"), "sodiumchloride" = list("saltshaker", "Salt Shaker", "Salt. From space oceans, presumably"), "blackpepper" = list("pepermillsmall", "Pepper Mill", "Often used to flavor food or make people sneeze"), "cornoil" = list("oliveoil", "Corn Oil", "A delicious oil used in cooking. Made from corn"), "sugar" = list("emptycondiment", "Sugar", "Tasty spacey sugar!"))
/obj/item/weapon/reagent_containers/food/condiment/attackby(obj/item/weapon/W as obj, mob/user as mob)
return
/obj/item/weapon/reagent_containers/food/condiment/attack_self(mob/user as mob)
return
/obj/item/weapon/reagent_containers/food/condiment/attack(mob/M as mob, mob/user as mob, def_zone)
var/datum/reagents/R = src.reagents
if(!R || !R.total_volume)
user << "<span class='warning'>None of [src] left, oh no!</span>"
return 0
if(!canconsume(M, user))
return 0
if(M == user)
M << "<span class='notice'>You swallow some of contents of the [src].</span>"
if(reagents.total_volume)
reagents.reaction(M, INGEST)
spawn(5)
reagents.trans_to(M, 10)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
return 1
else if( istype(M, /mob/living/carbon/human) )
for(var/mob/O in viewers(world.view, user))
O.show_message("<span class='warning'>[user] attempts to feed [M] [src].</span>", 1)
if(!do_mob(user, M)) return
for(var/mob/O in viewers(world.view, user))
O.show_message("<span class='warning'>[user] feeds [M] [src].</span>", 1)
add_logs(user, M, "fed", object="[reagentlist(src)]")
if(reagents.total_volume)
reagents.reaction(M, INGEST)
spawn(5)
reagents.trans_to(M, 10)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
return 1
return 0
/obj/item/weapon/reagent_containers/food/condiment/attackby(obj/item/I as obj, mob/user as mob)
return
/obj/item/weapon/reagent_containers/food/condiment/afterattack(obj/target, mob/user , proximity)
if(!proximity) return
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
if(!target.reagents.total_volume)
user << "<span class='warning'>[target] is empty.</span>"
return
if(reagents.total_volume >= reagents.maximum_volume)
user << "<span class='warning'>[src] is full.</span>"
return
var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
user << "<span class='notice'>You fill [src] with [trans] units of the contents of [target].</span>"
//Something like a glass or a food item. Player probably wants to transfer TO it.
else if(target.is_open_container() || istype(target, /obj/item/weapon/reagent_containers/food/snacks))
if(!reagents.total_volume)
user << "<span class='warning'>[src] is empty.</span>"
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "<span class='warning'>you can't add anymore to [target].</span>"
return
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
user << "<span class='notice'>You transfer [trans] units of the condiment to [target].</span>"
/obj/item/weapon/reagent_containers/food/condiment/on_reagent_change()
if(icon_state == "saltshakersmall" || icon_state == "peppermillsmall")
return
if(reagents.reagent_list.len > 0)
var/main_reagent = reagents.get_master_reagent_id()
if(main_reagent in possible_states)
var/list/temp_list = possible_states[main_reagent]
icon_state = temp_list[1]
name = temp_list[2]
desc = temp_list[3]
else
name = "misc Condiment Bottle"
main_reagent = reagents.get_master_reagent_name()
if (reagents.reagent_list.len==1)
desc = "Looks like it is [lowertext(main_reagent)], but you are not sure."
else
desc = "A mixture of various condiments. [lowertext(main_reagent)] is one of them."
icon_state = "mixedcondiments"
else
icon_state = "emptycondiment"
name = "condiment Bottle"
desc = "An empty condiment bottle."
return
/obj/item/weapon/reagent_containers/food/condiment/enzyme
name = "Universal Enzyme"
desc = "Used in cooking various dishes."
icon_state = "enzyme"
New()
..()
reagents.add_reagent("enzyme", 50)
/obj/item/weapon/reagent_containers/food/condiment/sugar
New()
..()
reagents.add_reagent("sugar", 50)
/obj/item/weapon/reagent_containers/food/condiment/saltshaker //Seperate from above since it's a small shaker rather then
name = "Salt Shaker" // a large one.
desc = "Salt. From space oceans, presumably."
icon_state = "saltshakersmall"
possible_transfer_amounts = list(1,20) //for clown turning the lid off
amount_per_transfer_from_this = 1
volume = 20
New()
..()
reagents.add_reagent("sodiumchloride", 20)
/obj/item/weapon/reagent_containers/food/condiment/peppermill
name = "Pepper Mill"
desc = "Often used to flavor food or make people sneeze."
icon_state = "peppermillsmall"
possible_transfer_amounts = list(1,20) //for clown turning the lid off
amount_per_transfer_from_this = 1
volume = 20
New()
..()
reagents.add_reagent("blackpepper", 20)
//Food packs. To easily apply deadly toxi... delicious sauces to your food!
/obj/item/weapon/reagent_containers/food/condiment/pack
name = "condiment pack"
desc = "A small plastic pack with condiments to put on your food"
icon_state = "condi_empty"
volume = 10
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(10)
possible_states = list("ketchup" = list("condi_ketchup", "Ketchup", "You feel more American already."), "capsaicin" = list("condi_hotsauce", "Hotsauce", "You can almost TASTE the stomach ulcers now!"), "soysauce" = list("condi_soysauce", "Soy Sauce", "A salty soy-based flavoring"), "frostoil" = list("condi_frostoil", "Coldsauce", "Leaves the tongue numb in it's passage"), "sodiumchloride" = list("condi_salt", "Salt Shaker", "Salt. From space oceans, presumably"), "blackpepper" = list("condi_pepper", "Pepper Mill", "Often used to flavor food or make people sneeze"), "cornoil" = list("condi_cornoil", "Corn Oil", "A delicious oil used in cooking. Made from corn"), "sugar" = list("condi_sugar", "Sugar", "Tasty spacey sugar!"))
var/originalname = "condiment" //Can't use initial(name) for this. This stores the name set by condimasters.
/obj/item/weapon/reagent_containers/food/condiment/pack/New()
..()
pixel_x = rand(-7, 7)
pixel_y = rand(-7, 7)
/obj/item/weapon/reagent_containers/food/condiment/pack/attack(mob/M, mob/user, def_zone) //Can't feed these to people directly.
return
/obj/item/weapon/reagent_containers/food/condiment/pack/afterattack(obj/target, mob/user , proximity)
if(!proximity) return
//You can tear the bag open above food to put the condiments on it, obviously.
if(istype(target, /obj/item/weapon/reagent_containers/food/snacks))
if(!reagents.total_volume)
user << "<span class='warning'>You tear open [src], but there's nothing in it.</span>"
qdel(src)
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "<span class='warning'>You tear open [src], but [target] is stacked so high that it just drips off!</span>" //Not sure if food can ever be full, but better safe than sorry.
qdel(src)
return
else
user << "<span class='notice'>You tear open [src] above [target] and the condiments drip onto it.</span>"
src.reagents.trans_to(target, amount_per_transfer_from_this)
qdel(src)
/obj/item/weapon/reagent_containers/food/condiment/pack/on_reagent_change()
if(reagents.reagent_list.len > 0)
var/main_reagent = reagents.get_master_reagent_id()
if(main_reagent in possible_states)
var/list/temp_list = possible_states[main_reagent]
icon_state = temp_list[1]
desc = temp_list[3]
else
icon_state = "condi_mixed"
desc = "A small condiment pack. The label says it contains [originalname]"
else
icon_state = "condi_empty"
desc = "A small condiment pack. It is empty."
//Ketchup
/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup
name = "ketchup pack"
originalname = "ketchup"
/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup/New()
..()
reagents.add_reagent("ketchup", 10)
//Hot sauce
/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce
name = "hotsauce pack"
originalname = "hotsauce"
/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce/New()
..()
reagents.add_reagent("capsaicin", 10)
///////////////////////////////////////////////Condiments
//Notes by Darem: The condiments food-subtype is for stuff you don't actually eat but you use to modify existing food. They all
// leave empty containers when used up and can be filled/re-filled with other items. Formatting for first section is identical
// to mixed-drinks code. If you want an object that starts pre-loaded, you need to make it in addition to the other code.
//Food items that aren't eaten normally and leave an empty container behind.
/obj/item/weapon/reagent_containers/food/condiment
name = "Condiment Container"
desc = "Just your average condiment container."
icon = 'icons/obj/food.dmi'
icon_state = "emptycondiment"
flags = OPENCONTAINER
possible_transfer_amounts = list(1,5,10)
volume = 50
//Possible_states has the reagent id as key and a list of, in order, the icon_state, the name and the desc as values. Used in the on_reagent_change() to change names, descs and sprites.
var/list/possible_states = list("ketchup" = list("ketchup", "Ketchup", "You feel more American already."), "capsaicin" = list("hotsauce", "Hotsauce", "You can almost TASTE the stomach ulcers now!"), "enzyme" = list("enzyme", "Universal Enzyme", "Used in cooking various dishes"), "soysauce" = list("soysauce", "Soy Sauce", "A salty soy-based flavoring"), "frostoil" = list("coldsauce", "Coldsauce", "Leaves the tongue numb in it's passage"), "sodiumchloride" = list("saltshaker", "Salt Shaker", "Salt. From space oceans, presumably"), "blackpepper" = list("pepermillsmall", "Pepper Mill", "Often used to flavor food or make people sneeze"), "cornoil" = list("oliveoil", "Corn Oil", "A delicious oil used in cooking. Made from corn"), "sugar" = list("emptycondiment", "Sugar", "Tasty spacey sugar!"))
/obj/item/weapon/reagent_containers/food/condiment/attackby(obj/item/weapon/W as obj, mob/user as mob)
return
/obj/item/weapon/reagent_containers/food/condiment/attack_self(mob/user as mob)
return
/obj/item/weapon/reagent_containers/food/condiment/attack(mob/M as mob, mob/user as mob, def_zone)
var/datum/reagents/R = src.reagents
if(!R || !R.total_volume)
user << "<span class='warning'>None of [src] left, oh no!</span>"
return 0
if(!canconsume(M, user))
return 0
if(M == user)
M << "<span class='notice'>You swallow some of contents of the [src].</span>"
if(reagents.total_volume)
reagents.reaction(M, INGEST)
spawn(5)
reagents.trans_to(M, 10)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
return 1
else if( istype(M, /mob/living/carbon/human) )
for(var/mob/O in viewers(world.view, user))
O.show_message("<span class='warning'>[user] attempts to feed [M] [src].</span>", 1)
if(!do_mob(user, M)) return
for(var/mob/O in viewers(world.view, user))
O.show_message("<span class='warning'>[user] feeds [M] [src].</span>", 1)
add_logs(user, M, "fed", object="[reagentlist(src)]")
if(reagents.total_volume)
reagents.reaction(M, INGEST)
spawn(5)
reagents.trans_to(M, 10)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
return 1
return 0
/obj/item/weapon/reagent_containers/food/condiment/attackby(obj/item/I as obj, mob/user as mob)
return
/obj/item/weapon/reagent_containers/food/condiment/afterattack(obj/target, mob/user , proximity)
if(!proximity) return
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
if(!target.reagents.total_volume)
user << "<span class='warning'>[target] is empty.</span>"
return
if(reagents.total_volume >= reagents.maximum_volume)
user << "<span class='warning'>[src] is full.</span>"
return
var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
user << "<span class='notice'>You fill [src] with [trans] units of the contents of [target].</span>"
//Something like a glass or a food item. Player probably wants to transfer TO it.
else if(target.is_open_container() || istype(target, /obj/item/weapon/reagent_containers/food/snacks))
if(!reagents.total_volume)
user << "<span class='warning'>[src] is empty.</span>"
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "<span class='warning'>you can't add anymore to [target].</span>"
return
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
user << "<span class='notice'>You transfer [trans] units of the condiment to [target].</span>"
/obj/item/weapon/reagent_containers/food/condiment/on_reagent_change()
if(icon_state == "saltshakersmall" || icon_state == "peppermillsmall")
return
if(reagents.reagent_list.len > 0)
var/main_reagent = reagents.get_master_reagent_id()
if(main_reagent in possible_states)
var/list/temp_list = possible_states[main_reagent]
icon_state = temp_list[1]
name = temp_list[2]
desc = temp_list[3]
else
name = "misc Condiment Bottle"
main_reagent = reagents.get_master_reagent_name()
if (reagents.reagent_list.len==1)
desc = "Looks like it is [lowertext(main_reagent)], but you are not sure."
else
desc = "A mixture of various condiments. [lowertext(main_reagent)] is one of them."
icon_state = "mixedcondiments"
else
icon_state = "emptycondiment"
name = "condiment Bottle"
desc = "An empty condiment bottle."
return
/obj/item/weapon/reagent_containers/food/condiment/enzyme
name = "Universal Enzyme"
desc = "Used in cooking various dishes."
icon_state = "enzyme"
New()
..()
reagents.add_reagent("enzyme", 50)
/obj/item/weapon/reagent_containers/food/condiment/sugar
New()
..()
reagents.add_reagent("sugar", 50)
/obj/item/weapon/reagent_containers/food/condiment/saltshaker //Seperate from above since it's a small shaker rather then
name = "Salt Shaker" // a large one.
desc = "Salt. From space oceans, presumably."
icon_state = "saltshakersmall"
possible_transfer_amounts = list(1,20) //for clown turning the lid off
amount_per_transfer_from_this = 1
volume = 20
New()
..()
reagents.add_reagent("sodiumchloride", 20)
/obj/item/weapon/reagent_containers/food/condiment/peppermill
name = "Pepper Mill"
desc = "Often used to flavor food or make people sneeze."
icon_state = "peppermillsmall"
possible_transfer_amounts = list(1,20) //for clown turning the lid off
amount_per_transfer_from_this = 1
volume = 20
New()
..()
reagents.add_reagent("blackpepper", 20)
//Food packs. To easily apply deadly toxi... delicious sauces to your food!
/obj/item/weapon/reagent_containers/food/condiment/pack
name = "condiment pack"
desc = "A small plastic pack with condiments to put on your food"
icon_state = "condi_empty"
volume = 10
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(10)
possible_states = list("ketchup" = list("condi_ketchup", "Ketchup", "You feel more American already."), "capsaicin" = list("condi_hotsauce", "Hotsauce", "You can almost TASTE the stomach ulcers now!"), "soysauce" = list("condi_soysauce", "Soy Sauce", "A salty soy-based flavoring"), "frostoil" = list("condi_frostoil", "Coldsauce", "Leaves the tongue numb in it's passage"), "sodiumchloride" = list("condi_salt", "Salt Shaker", "Salt. From space oceans, presumably"), "blackpepper" = list("condi_pepper", "Pepper Mill", "Often used to flavor food or make people sneeze"), "cornoil" = list("condi_cornoil", "Corn Oil", "A delicious oil used in cooking. Made from corn"), "sugar" = list("condi_sugar", "Sugar", "Tasty spacey sugar!"))
var/originalname = "condiment" //Can't use initial(name) for this. This stores the name set by condimasters.
/obj/item/weapon/reagent_containers/food/condiment/pack/New()
..()
pixel_x = rand(-7, 7)
pixel_y = rand(-7, 7)
/obj/item/weapon/reagent_containers/food/condiment/pack/attack(mob/M, mob/user, def_zone) //Can't feed these to people directly.
return
/obj/item/weapon/reagent_containers/food/condiment/pack/afterattack(obj/target, mob/user , proximity)
if(!proximity) return
//You can tear the bag open above food to put the condiments on it, obviously.
if(istype(target, /obj/item/weapon/reagent_containers/food/snacks))
if(!reagents.total_volume)
user << "<span class='warning'>You tear open [src], but there's nothing in it.</span>"
qdel(src)
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "<span class='warning'>You tear open [src], but [target] is stacked so high that it just drips off!</span>" //Not sure if food can ever be full, but better safe than sorry.
qdel(src)
return
else
user << "<span class='notice'>You tear open [src] above [target] and the condiments drip onto it.</span>"
src.reagents.trans_to(target, amount_per_transfer_from_this)
qdel(src)
/obj/item/weapon/reagent_containers/food/condiment/pack/on_reagent_change()
if(reagents.reagent_list.len > 0)
var/main_reagent = reagents.get_master_reagent_id()
if(main_reagent in possible_states)
var/list/temp_list = possible_states[main_reagent]
icon_state = temp_list[1]
desc = temp_list[3]
else
icon_state = "condi_mixed"
desc = "A small condiment pack. The label says it contains [originalname]"
else
icon_state = "condi_empty"
desc = "A small condiment pack. It is empty."
//Ketchup
/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup
name = "ketchup pack"
originalname = "ketchup"
/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup/New()
..()
reagents.add_reagent("ketchup", 10)
//Hot sauce
/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce
name = "hotsauce pack"
originalname = "hotsauce"
/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce/New()
..()
reagents.add_reagent("capsaicin", 10)
@@ -1,378 +1,378 @@
////////////////////////////////////////////////////////////////////////////////
/// Drinks.
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/food/drinks
name = "drink"
desc = "yummy"
icon = 'icons/obj/drinks.dmi'
icon_state = null
flags = OPENCONTAINER
var/gulp_size = 5 //This is now officially broken ... need to think of a nice way to fix it.
possible_transfer_amounts = list(5,10,25)
volume = 50
on_reagent_change()
if (gulp_size < 5) gulp_size = 5
else gulp_size = max(round(reagents.total_volume / 5), 5)
attack_self(mob/user as mob)
return
attack(mob/M as mob, mob/user as mob, def_zone)
if(!reagents || !reagents.total_volume)
user << "<span class='alert'>None of [src] left, oh no!</span>"
return 0
if(!canconsume(M, user))
return 0
if(M == user)
M << "<span class='notice'>You swallow a gulp of [src].</span>"
if(reagents.total_volume)
reagents.reaction(M, INGEST)
spawn(5)
reagents.trans_to(M, gulp_size)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
return 1
M.visible_message("<span class='warning'>[user] attempts to feed [src] to [M].</span>", "<span class='notice'>You attempt to feed [src] to [M].</span>")
if(!do_mob(user, M)) return
if(!reagents.total_volume) return // The drink might be empty after the delay, such as by spam-feeding
M.visible_message("<span class='warning'>[user] feeds [src] to [M].</span>", "<span class='notice'>You feed [src] to [M].</span>")
add_logs(user, M, "fed", object="[reagentlist(src)]")
if(reagents.total_volume)
reagents.reaction(M, INGEST)
spawn(5)
reagents.trans_to(M, gulp_size)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
return 1
afterattack(obj/target, mob/user , proximity)
if(!proximity) return
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
if(!target.reagents.total_volume)
user << "<span class='warning'>[target] is empty.</span>"
return
if(reagents.total_volume >= reagents.maximum_volume)
user << "<span class='warning'>[src] is full.</span>"
return
var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
user << "<span class='notice'>You fill [src] with [trans] units of the contents of [target].</span>"
else if(target.is_open_container()) //Something like a glass. Player probably wants to transfer TO it.
if(!reagents.total_volume)
user << "<span class='warning'>[src] is empty.</span>"
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "<span class='warning'>[target] is full.</span>"
return
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
user << "<span class='notice'> You transfer [trans] units of the solution to [target].</span>"
if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
var/mob/living/silicon/robot/bro = user
bro.cell.use(30)
var/refill = reagents.get_master_reagent_id()
spawn(600)
reagents.add_reagent(refill, trans)
return
examine()
set src in view()
..()
if (!(usr in range(0)) && usr!=src.loc) return
if(!reagents || reagents.total_volume==0)
usr << "<span class='notice'>\The [src] is empty!</span>"
else if (reagents.total_volume<=src.volume/4)
usr << "<span class='notice'>\The [src] is almost empty!</span>"
else if (reagents.total_volume<=src.volume*0.66)
usr << "<span class='notice'>\The [src] is half full!</span>"
else if (reagents.total_volume<=src.volume*0.90)
usr << "<span class='notice'>\The [src] is almost full!</span>"
else
usr << "<span class='notice'>\The [src] is full!</span>"
////////////////////////////////////////////////////////////////////////////////
/// Drinks. END
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/food/drinks/golden_cup
desc = "A golden cup"
name = "golden cup"
icon_state = "golden_cup"
item_state = "" //nope :(
w_class = 4
force = 14
throwforce = 10
amount_per_transfer_from_this = 20
possible_transfer_amounts = null
volume = 150
flags = CONDUCT | OPENCONTAINER
/obj/item/weapon/reagent_containers/food/drinks/golden_cup/tournament_26_06_2011
desc = "A golden cup. It will be presented to a winner of tournament 26 june and name of the winner will be graved on it."
///////////////////////////////////////////////Drinks
//Notes by Darem: Drinks are simply containers that start preloaded. Unlike condiments, the contents can be ingested directly
// rather then having to add it to something else first. They should only contain liquids. They have a default container size of 50.
// Formatting is the same as food.
/obj/item/weapon/reagent_containers/food/drinks/milk
name = "Space Milk"
desc = "It's milk. White and nutritious goodness!"
icon_state = "milk"
item_state = "carton"
New()
..()
reagents.add_reagent("milk", 50)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/flour
name = "flour sack"
desc = "A big bag of flour. Good for baking!"
icon = 'icons/obj/food.dmi'
icon_state = "flour"
item_state = "flour"
New()
..()
reagents.add_reagent("flour", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/soymilk
name = "SoyMilk"
desc = "It's soy milk. White and nutritious goodness!"
icon_state = "soymilk"
item_state = "carton"
New()
..()
reagents.add_reagent("soymilk", 50)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/coffee
name = "Robust Coffee"
desc = "Careful, the beverage you're about to enjoy is extremely hot."
icon_state = "coffee"
New()
..()
reagents.add_reagent("coffee", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/tea
name = "Duke Purple Tea"
desc = "An insult to Duke Purple is an insult to the Space Queen! Any proper gentleman will fight you, if you sully this tea."
icon_state = "tea"
item_state = "coffee"
New()
..()
reagents.add_reagent("tea", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/ice
name = "Ice Cup"
desc = "Careful, cold ice, do not chew."
icon_state = "coffee"
New()
..()
reagents.add_reagent("ice", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/h_chocolate
name = "Dutch Hot Coco"
desc = "Made in Space South America."
icon_state = "tea"
item_state = "coffee"
New()
..()
reagents.add_reagent("hot_coco", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/dry_ramen
name = "Cup Ramen"
desc = "Just add 10ml water, self heats! A taste that reminds you of your school years."
icon_state = "ramen"
New()
..()
reagents.add_reagent("dry_ramen", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/beer
name = "Space Beer"
desc = "Beer. In space."
icon_state = "beer"
New()
..()
reagents.add_reagent("beer", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/ale
name = "Magm-Ale"
desc = "A true dorf's drink of choice."
icon_state = "alebottle"
item_state = "beer"
New()
..()
reagents.add_reagent("ale", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/sillycup
name = "Paper Cup"
desc = "A paper water cup."
icon_state = "water_cup_e"
possible_transfer_amounts = null
volume = 10
New()
..()
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
on_reagent_change()
if(reagents.total_volume)
icon_state = "water_cup"
else
icon_state = "water_cup_e"
//////////////////////////drinkingglass and shaker//
//Note by Darem: This code handles the mixing of drinks. New drinks go in three places: In Chemistry-Reagents.dm (for the drink
// itself), in Chemistry-Recipes.dm (for the reaction that changes the components into the drink), and here (for the drinking glass
// icon states.
/obj/item/weapon/reagent_containers/food/drinks/shaker
name = "Shaker"
desc = "A metal shaker to mix drinks in."
icon_state = "shaker"
amount_per_transfer_from_this = 10
volume = 100
/obj/item/weapon/reagent_containers/food/drinks/flask
name = "Captain's Flask"
desc = "A metal flask belonging to the captain"
icon_state = "flask"
volume = 60
/obj/item/weapon/reagent_containers/food/drinks/britcup
name = "cup"
desc = "A cup with the british flag emblazoned on it."
icon_state = "britcup"
volume = 30
//////////////////////////soda_cans//
//These are in their own group to be used as IED's in /obj/item/weapon/grenade/ghettobomb.dm
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/attack(mob/M, mob/user)
if(M == user && !src.reagents.total_volume && user.a_intent == "harm" && user.zone_sel.selecting == "head")
user.visible_message("<span class='notice'>[user] crushes the can of [src] on \his forehead!</span>", "<span class='notice'>You crush the can of [src] on your forehead!</span>")
playsound(user.loc,'sound/weapons/pierce.ogg', rand(10,50), 1)
var/obj/item/trash/can/crushed_can = new /obj/item/trash/can(user.loc)
crushed_can.icon_state = icon_state
qdel(src)
..()
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola
name = "Space Cola"
desc = "Cola. in space."
icon_state = "cola"
New()
..()
reagents.add_reagent("cola", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/tonic
name = "T-Borg's Tonic Water"
desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
icon_state = "tonic"
New()
..()
reagents.add_reagent("tonic", 50)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/sodawater
name = "Soda Water"
desc = "A can of soda water. Why not make a scotch and soda?"
icon_state = "sodawater"
New()
..()
reagents.add_reagent("sodawater", 50)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/lemon_lime
name = "Orange Soda"
desc = "You wanted ORANGE. It gave you Lemon Lime."
icon_state = "lemon-lime"
New()
..()
name = "Lemon-Lime Soda"
reagents.add_reagent("lemon_lime", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_up
name = "Space-Up"
desc = "Tastes like a hull breach in your mouth."
icon_state = "space-up"
New()
..()
reagents.add_reagent("space_up", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/starkist
name = "Star-kist"
desc = "The taste of a star in liquid form. And, a bit of tuna...?"
icon_state = "starkist"
New()
..()
reagents.add_reagent("cola", 15)
reagents.add_reagent("orangejuice", 15)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_mountain_wind
name = "Space Mountain Wind"
desc = "Blows right through you like a space wind."
icon_state = "space_mountain_wind"
New()
..()
reagents.add_reagent("spacemountainwind", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/thirteenloko
name = "Thirteen Loko"
desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkeness, or even death. Please Drink Responsably."
icon_state = "thirteen_loko"
New()
..()
reagents.add_reagent("thirteenloko", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb
name = "Dr. Gibb"
desc = "A delicious mixture of 42 different flavors."
icon_state = "dr_gibb"
New()
..()
reagents.add_reagent("dr_gibb", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
////////////////////////////////////////////////////////////////////////////////
/// Drinks.
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/food/drinks
name = "drink"
desc = "yummy"
icon = 'icons/obj/drinks.dmi'
icon_state = null
flags = OPENCONTAINER
var/gulp_size = 5 //This is now officially broken ... need to think of a nice way to fix it.
possible_transfer_amounts = list(5,10,25)
volume = 50
on_reagent_change()
if (gulp_size < 5) gulp_size = 5
else gulp_size = max(round(reagents.total_volume / 5), 5)
attack_self(mob/user as mob)
return
attack(mob/M as mob, mob/user as mob, def_zone)
if(!reagents || !reagents.total_volume)
user << "<span class='alert'>None of [src] left, oh no!</span>"
return 0
if(!canconsume(M, user))
return 0
if(M == user)
M << "<span class='notice'>You swallow a gulp of [src].</span>"
if(reagents.total_volume)
reagents.reaction(M, INGEST)
spawn(5)
reagents.trans_to(M, gulp_size)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
return 1
M.visible_message("<span class='warning'>[user] attempts to feed [src] to [M].</span>", "<span class='notice'>You attempt to feed [src] to [M].</span>")
if(!do_mob(user, M)) return
if(!reagents.total_volume) return // The drink might be empty after the delay, such as by spam-feeding
M.visible_message("<span class='warning'>[user] feeds [src] to [M].</span>", "<span class='notice'>You feed [src] to [M].</span>")
add_logs(user, M, "fed", object="[reagentlist(src)]")
if(reagents.total_volume)
reagents.reaction(M, INGEST)
spawn(5)
reagents.trans_to(M, gulp_size)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
return 1
afterattack(obj/target, mob/user , proximity)
if(!proximity) return
if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
if(!target.reagents.total_volume)
user << "<span class='warning'>[target] is empty.</span>"
return
if(reagents.total_volume >= reagents.maximum_volume)
user << "<span class='warning'>[src] is full.</span>"
return
var/trans = target.reagents.trans_to(src, target:amount_per_transfer_from_this)
user << "<span class='notice'>You fill [src] with [trans] units of the contents of [target].</span>"
else if(target.is_open_container()) //Something like a glass. Player probably wants to transfer TO it.
if(!reagents.total_volume)
user << "<span class='warning'>[src] is empty.</span>"
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "<span class='warning'>[target] is full.</span>"
return
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
user << "<span class='notice'> You transfer [trans] units of the solution to [target].</span>"
if(isrobot(user)) //Cyborg modules that include drinks automatically refill themselves, but drain the borg's cell
var/mob/living/silicon/robot/bro = user
bro.cell.use(30)
var/refill = reagents.get_master_reagent_id()
spawn(600)
reagents.add_reagent(refill, trans)
return
examine()
set src in view()
..()
if (!(usr in range(0)) && usr!=src.loc) return
if(!reagents || reagents.total_volume==0)
usr << "<span class='notice'>\The [src] is empty!</span>"
else if (reagents.total_volume<=src.volume/4)
usr << "<span class='notice'>\The [src] is almost empty!</span>"
else if (reagents.total_volume<=src.volume*0.66)
usr << "<span class='notice'>\The [src] is half full!</span>"
else if (reagents.total_volume<=src.volume*0.90)
usr << "<span class='notice'>\The [src] is almost full!</span>"
else
usr << "<span class='notice'>\The [src] is full!</span>"
////////////////////////////////////////////////////////////////////////////////
/// Drinks. END
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/reagent_containers/food/drinks/golden_cup
desc = "A golden cup"
name = "golden cup"
icon_state = "golden_cup"
item_state = "" //nope :(
w_class = 4
force = 14
throwforce = 10
amount_per_transfer_from_this = 20
possible_transfer_amounts = null
volume = 150
flags = CONDUCT | OPENCONTAINER
/obj/item/weapon/reagent_containers/food/drinks/golden_cup/tournament_26_06_2011
desc = "A golden cup. It will be presented to a winner of tournament 26 june and name of the winner will be graved on it."
///////////////////////////////////////////////Drinks
//Notes by Darem: Drinks are simply containers that start preloaded. Unlike condiments, the contents can be ingested directly
// rather then having to add it to something else first. They should only contain liquids. They have a default container size of 50.
// Formatting is the same as food.
/obj/item/weapon/reagent_containers/food/drinks/milk
name = "Space Milk"
desc = "It's milk. White and nutritious goodness!"
icon_state = "milk"
item_state = "carton"
New()
..()
reagents.add_reagent("milk", 50)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/flour
name = "flour sack"
desc = "A big bag of flour. Good for baking!"
icon = 'icons/obj/food.dmi'
icon_state = "flour"
item_state = "flour"
New()
..()
reagents.add_reagent("flour", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/soymilk
name = "SoyMilk"
desc = "It's soy milk. White and nutritious goodness!"
icon_state = "soymilk"
item_state = "carton"
New()
..()
reagents.add_reagent("soymilk", 50)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/coffee
name = "Robust Coffee"
desc = "Careful, the beverage you're about to enjoy is extremely hot."
icon_state = "coffee"
New()
..()
reagents.add_reagent("coffee", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/tea
name = "Duke Purple Tea"
desc = "An insult to Duke Purple is an insult to the Space Queen! Any proper gentleman will fight you, if you sully this tea."
icon_state = "tea"
item_state = "coffee"
New()
..()
reagents.add_reagent("tea", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/ice
name = "Ice Cup"
desc = "Careful, cold ice, do not chew."
icon_state = "coffee"
New()
..()
reagents.add_reagent("ice", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/h_chocolate
name = "Dutch Hot Coco"
desc = "Made in Space South America."
icon_state = "tea"
item_state = "coffee"
New()
..()
reagents.add_reagent("hot_coco", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/dry_ramen
name = "Cup Ramen"
desc = "Just add 10ml water, self heats! A taste that reminds you of your school years."
icon_state = "ramen"
New()
..()
reagents.add_reagent("dry_ramen", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/beer
name = "Space Beer"
desc = "Beer. In space."
icon_state = "beer"
New()
..()
reagents.add_reagent("beer", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/ale
name = "Magm-Ale"
desc = "A true dorf's drink of choice."
icon_state = "alebottle"
item_state = "beer"
New()
..()
reagents.add_reagent("ale", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/sillycup
name = "Paper Cup"
desc = "A paper water cup."
icon_state = "water_cup_e"
possible_transfer_amounts = null
volume = 10
New()
..()
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
on_reagent_change()
if(reagents.total_volume)
icon_state = "water_cup"
else
icon_state = "water_cup_e"
//////////////////////////drinkingglass and shaker//
//Note by Darem: This code handles the mixing of drinks. New drinks go in three places: In Chemistry-Reagents.dm (for the drink
// itself), in Chemistry-Recipes.dm (for the reaction that changes the components into the drink), and here (for the drinking glass
// icon states.
/obj/item/weapon/reagent_containers/food/drinks/shaker
name = "Shaker"
desc = "A metal shaker to mix drinks in."
icon_state = "shaker"
amount_per_transfer_from_this = 10
volume = 100
/obj/item/weapon/reagent_containers/food/drinks/flask
name = "Captain's Flask"
desc = "A metal flask belonging to the captain"
icon_state = "flask"
volume = 60
/obj/item/weapon/reagent_containers/food/drinks/britcup
name = "cup"
desc = "A cup with the british flag emblazoned on it."
icon_state = "britcup"
volume = 30
//////////////////////////soda_cans//
//These are in their own group to be used as IED's in /obj/item/weapon/grenade/ghettobomb.dm
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/attack(mob/M, mob/user)
if(M == user && !src.reagents.total_volume && user.a_intent == "harm" && user.zone_sel.selecting == "head")
user.visible_message("<span class='notice'>[user] crushes the can of [src] on \his forehead!</span>", "<span class='notice'>You crush the can of [src] on your forehead!</span>")
playsound(user.loc,'sound/weapons/pierce.ogg', rand(10,50), 1)
var/obj/item/trash/can/crushed_can = new /obj/item/trash/can(user.loc)
crushed_can.icon_state = icon_state
qdel(src)
..()
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola
name = "Space Cola"
desc = "Cola. in space."
icon_state = "cola"
New()
..()
reagents.add_reagent("cola", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/tonic
name = "T-Borg's Tonic Water"
desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
icon_state = "tonic"
New()
..()
reagents.add_reagent("tonic", 50)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/sodawater
name = "Soda Water"
desc = "A can of soda water. Why not make a scotch and soda?"
icon_state = "sodawater"
New()
..()
reagents.add_reagent("sodawater", 50)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/lemon_lime
name = "Orange Soda"
desc = "You wanted ORANGE. It gave you Lemon Lime."
icon_state = "lemon-lime"
New()
..()
name = "Lemon-Lime Soda"
reagents.add_reagent("lemon_lime", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_up
name = "Space-Up"
desc = "Tastes like a hull breach in your mouth."
icon_state = "space-up"
New()
..()
reagents.add_reagent("space_up", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/starkist
name = "Star-kist"
desc = "The taste of a star in liquid form. And, a bit of tuna...?"
icon_state = "starkist"
New()
..()
reagents.add_reagent("cola", 15)
reagents.add_reagent("orangejuice", 15)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/space_mountain_wind
name = "Space Mountain Wind"
desc = "Blows right through you like a space wind."
icon_state = "space_mountain_wind"
New()
..()
reagents.add_reagent("spacemountainwind", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/thirteenloko
name = "Thirteen Loko"
desc = "The CMO has advised crew members that consumption of Thirteen Loko may result in seizures, blindness, drunkeness, or even death. Please Drink Responsably."
icon_state = "thirteen_loko"
New()
..()
reagents.add_reagent("thirteenloko", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/dr_gibb
name = "Dr. Gibb"
desc = "A delicious mixture of 42 different flavors."
icon_state = "dr_gibb"
New()
..()
reagents.add_reagent("dr_gibb", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
@@ -1,273 +1,273 @@
///////////////////////////////////////////////Alchohol bottles! -Agouri //////////////////////////
//Functionally identical to regular drinks. The only difference is that the default bottle size is 100. - Darem
//Bottles now weaken and break when smashed on people's heads. - Giacom
/obj/item/weapon/reagent_containers/food/drinks/bottle
amount_per_transfer_from_this = 10
volume = 100
item_state = "broken_beer" //Generic held-item sprite until unique ones are made.
var/const/duration = 13 //Directly relates to the 'weaken' duration. Lowered by armor (i.e. helmets)
var/isGlass = 1 //Whether the 'bottle' is made of glass or not so that milk cartons dont shatter when someone gets hit by it
/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/smash(mob/living/target as mob, mob/living/user as mob)
//Creates a shattering noise and replaces the bottle with a broken_bottle
user.drop_item()
var/obj/item/weapon/broken_bottle/B = new /obj/item/weapon/broken_bottle(user.loc)
user.put_in_active_hand(B)
if(prob(33))
new/obj/item/weapon/shard(target.loc) // Create a glass shard at the target's location!
B.icon_state = src.icon_state
var/icon/I = new('icons/obj/drinks.dmi', src.icon_state)
I.Blend(B.broken_outline, ICON_OVERLAY, rand(5), 1)
I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0))
B.icon = I
playsound(src, "shatter", 70, 1)
user.put_in_active_hand(B)
src.transfer_fingerprints_to(B)
qdel(src)
/obj/item/weapon/reagent_containers/food/drinks/bottle/attack(mob/living/target as mob, mob/living/user as mob)
if(!target)
return
if(user.a_intent != "harm" || !isGlass)
return ..()
force = 15 //Smashing bottles over someoen's head hurts.
var/obj/item/organ/limb/affecting = user.zone_sel.selecting //Find what the player is aiming at
var/armor_block = 0 //Get the target's armour values for normal attack damage.
var/armor_duration = 0 //The more force the bottle has, the longer the duration.
//Calculating duration and calculating damage.
if(ishuman(target))
var/mob/living/carbon/human/H = target
var/headarmor = 0 // Target's head armour
armor_block = H.run_armor_check(affecting, "melee") // For normal attack damage
//If they have a hat/helmet and the user is targeting their head.
if(istype(H.head, /obj/item/clothing/head) && affecting == "head")
// If their head has an armour value, assign headarmor to it, else give it 0.
if(H.head.armor["melee"])
headarmor = H.head.armor["melee"]
else
headarmor = 0
else
headarmor = 0
//Calculate the weakening duration for the target.
armor_duration = (duration - headarmor) + force
else
//Only humans can have armour, right?
armor_block = target.run_armor_check(affecting, "melee")
if(affecting == "head")
armor_duration = duration + force
armor_duration /= 10
//Apply the damage!
target.apply_damage(force, BRUTE, affecting, armor_block)
// You are going to knock someone out for longer if they are not wearing a helmet.
if(affecting == "head" && istype(target, /mob/living/carbon/))
//Display an attack message.
for(var/mob/O in viewers(user, null))
if(target != user) O.show_message(text("\red <B>[target] has been hit over the head with a bottle of [src.name], by [user]!</B>"), 1)
else O.show_message(text("\red <B>[target] hit himself with a bottle of [src.name] on the head!</B>"), 1)
//Weaken the target for the duration that we calculated and divide it by 5.
if(armor_duration)
target.apply_effect(min(armor_duration, 10) , WEAKEN) // Never weaken more than a flash!
else
//Default attack message and don't weaken the target.
for(var/mob/O in viewers(user, null))
if(target != user) O.show_message(text("<span class='danger'>[target] has been attacked with a bottle of [src.name], by [user]!</span>"), 1)
else O.show_message(text("<span class='danger'>[target] has attacked himself with a bottle of [src.name]!</span>"), 1)
//Attack logs
add_logs(user, target, "attacked", object="bottle")
//The reagents in the bottle splash all over the target, thanks for the idea Nodrak
if(src.reagents)
for(var/mob/O in viewers(user, null))
O.show_message(text("\blue <B>The contents of the [src] splashes all over [target]!</B>"), 1)
src.reagents.reaction(target, TOUCH)
//Finally, smash the bottle. This kills (del) the bottle.
src.smash(target, user)
return
//Keeping this here for now, I'll ask if I should keep it here.
/obj/item/weapon/broken_bottle
name = "Broken Bottle"
desc = "A bottle with a sharp broken bottom."
icon = 'icons/obj/drinks.dmi'
icon_state = "broken_bottle"
force = 9.0
throwforce = 5.0
throw_speed = 3
throw_range = 5
item_state = "beer"
hitsound = 'sound/weapons/bladeslice.ogg'
attack_verb = list("stabbed", "slashed", "attacked")
var/icon/broken_outline = icon('icons/obj/drinks.dmi', "broken")
/obj/item/weapon/reagent_containers/food/drinks/bottle/gin
name = "Griffeater Gin"
desc = "A bottle of high quality gin, produced in the New London Space Station."
icon_state = "ginbottle"
New()
..()
reagents.add_reagent("gin", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey
name = "Uncle Git's Special Reserve"
desc = "A premium single-malt whiskey, gently matured inside the tunnels of a nuclear shelter. TUNNEL WHISKEY RULES."
icon_state = "whiskeybottle"
New()
..()
reagents.add_reagent("whiskey", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka
name = "Tunguska Triple Distilled"
desc = "Aah, vodka. Prime choice of drink AND fuel by Russians worldwide."
icon_state = "vodkabottle"
New()
..()
reagents.add_reagent("vodka", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla
name = "Caccavo Guaranteed Quality Tequilla"
desc = "Made from premium petroleum distillates, pure thalidomide and other fine quality ingredients!"
icon_state = "tequillabottle"
New()
..()
reagents.add_reagent("tequilla", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing
name = "Bottle of Nothing"
desc = "A bottle filled with nothing"
icon_state = "bottleofnothing"
New()
..()
reagents.add_reagent("nothing", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/patron
name = "Wrapp Artiste Patron"
desc = "Silver laced tequilla, served in space night clubs across the galaxy."
icon_state = "patronbottle"
New()
..()
reagents.add_reagent("patron", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/rum
name = "Captain Pete's Cuban Spiced Rum"
desc = "This isn't just rum, oh no. It's practically GRIFF in a bottle."
icon_state = "rumbottle"
New()
..()
reagents.add_reagent("rum", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater
name = "Flask of Holy Water"
desc = "A flask of the chaplain's holy water."
icon_state = "holyflask"
New()
..()
reagents.add_reagent("holywater", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth
name = "Goldeneye Vermouth"
desc = "Sweet, sweet dryness~"
icon_state = "vermouthbottle"
New()
..()
reagents.add_reagent("vermouth", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua
name = "Robert Robust's Coffee Liqueur"
desc = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936, HONK"
icon_state = "kahluabottle"
New()
..()
reagents.add_reagent("kahlua", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager
name = "College Girl Goldschlager"
desc = "Because they are the only ones who will drink 100 proof cinnamon schnapps."
icon_state = "goldschlagerbottle"
New()
..()
reagents.add_reagent("goldschlager", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac
name = "Chateau De Baton Premium Cognac"
desc = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. You might as well not scream 'SHITCURITY' this time."
icon_state = "cognacbottle"
New()
..()
reagents.add_reagent("cognac", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/wine
name = "Doublebeard Bearded Special Wine"
desc = "A faint aura of unease and asspainery surrounds the bottle."
icon_state = "winebottle"
New()
..()
reagents.add_reagent("wine", 100)
//////////////////////////JUICES AND STUFF ///////////////////////
/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice
name = "Orange Juice"
desc = "Full of vitamins and deliciousness!"
icon_state = "orangejuice"
item_state = "carton"
isGlass = 0
New()
..()
reagents.add_reagent("orangejuice", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/cream
name = "Milk Cream"
desc = "It's cream. Made from milk. What else did you think you'd find in there?"
icon_state = "cream"
item_state = "carton"
isGlass = 0
New()
..()
reagents.add_reagent("cream", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice
name = "Tomato Juice"
desc = "Well, at least it LOOKS like tomato juice. You can't tell with all that redness."
icon_state = "tomatojuice"
item_state = "carton"
isGlass = 0
New()
..()
reagents.add_reagent("tomatojuice", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice
name = "Lime Juice"
desc = "Sweet-sour goodness."
icon_state = "limejuice"
item_state = "carton"
isGlass = 0
New()
..()
reagents.add_reagent("limejuice", 100)
///////////////////////////////////////////////Alchohol bottles! -Agouri //////////////////////////
//Functionally identical to regular drinks. The only difference is that the default bottle size is 100. - Darem
//Bottles now weaken and break when smashed on people's heads. - Giacom
/obj/item/weapon/reagent_containers/food/drinks/bottle
amount_per_transfer_from_this = 10
volume = 100
item_state = "broken_beer" //Generic held-item sprite until unique ones are made.
var/const/duration = 13 //Directly relates to the 'weaken' duration. Lowered by armor (i.e. helmets)
var/isGlass = 1 //Whether the 'bottle' is made of glass or not so that milk cartons dont shatter when someone gets hit by it
/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/smash(mob/living/target as mob, mob/living/user as mob)
//Creates a shattering noise and replaces the bottle with a broken_bottle
user.drop_item()
var/obj/item/weapon/broken_bottle/B = new /obj/item/weapon/broken_bottle(user.loc)
user.put_in_active_hand(B)
if(prob(33))
new/obj/item/weapon/shard(target.loc) // Create a glass shard at the target's location!
B.icon_state = src.icon_state
var/icon/I = new('icons/obj/drinks.dmi', src.icon_state)
I.Blend(B.broken_outline, ICON_OVERLAY, rand(5), 1)
I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0))
B.icon = I
playsound(src, "shatter", 70, 1)
user.put_in_active_hand(B)
src.transfer_fingerprints_to(B)
qdel(src)
/obj/item/weapon/reagent_containers/food/drinks/bottle/attack(mob/living/target as mob, mob/living/user as mob)
if(!target)
return
if(user.a_intent != "harm" || !isGlass)
return ..()
force = 15 //Smashing bottles over someoen's head hurts.
var/obj/item/organ/limb/affecting = user.zone_sel.selecting //Find what the player is aiming at
var/armor_block = 0 //Get the target's armour values for normal attack damage.
var/armor_duration = 0 //The more force the bottle has, the longer the duration.
//Calculating duration and calculating damage.
if(ishuman(target))
var/mob/living/carbon/human/H = target
var/headarmor = 0 // Target's head armour
armor_block = H.run_armor_check(affecting, "melee") // For normal attack damage
//If they have a hat/helmet and the user is targeting their head.
if(istype(H.head, /obj/item/clothing/head) && affecting == "head")
// If their head has an armour value, assign headarmor to it, else give it 0.
if(H.head.armor["melee"])
headarmor = H.head.armor["melee"]
else
headarmor = 0
else
headarmor = 0
//Calculate the weakening duration for the target.
armor_duration = (duration - headarmor) + force
else
//Only humans can have armour, right?
armor_block = target.run_armor_check(affecting, "melee")
if(affecting == "head")
armor_duration = duration + force
armor_duration /= 10
//Apply the damage!
target.apply_damage(force, BRUTE, affecting, armor_block)
// You are going to knock someone out for longer if they are not wearing a helmet.
if(affecting == "head" && istype(target, /mob/living/carbon/))
//Display an attack message.
for(var/mob/O in viewers(user, null))
if(target != user) O.show_message(text("\red <B>[target] has been hit over the head with a bottle of [src.name], by [user]!</B>"), 1)
else O.show_message(text("\red <B>[target] hit himself with a bottle of [src.name] on the head!</B>"), 1)
//Weaken the target for the duration that we calculated and divide it by 5.
if(armor_duration)
target.apply_effect(min(armor_duration, 10) , WEAKEN) // Never weaken more than a flash!
else
//Default attack message and don't weaken the target.
for(var/mob/O in viewers(user, null))
if(target != user) O.show_message(text("<span class='danger'>[target] has been attacked with a bottle of [src.name], by [user]!</span>"), 1)
else O.show_message(text("<span class='danger'>[target] has attacked himself with a bottle of [src.name]!</span>"), 1)
//Attack logs
add_logs(user, target, "attacked", object="bottle")
//The reagents in the bottle splash all over the target, thanks for the idea Nodrak
if(src.reagents)
for(var/mob/O in viewers(user, null))
O.show_message(text("\blue <B>The contents of the [src] splashes all over [target]!</B>"), 1)
src.reagents.reaction(target, TOUCH)
//Finally, smash the bottle. This kills (del) the bottle.
src.smash(target, user)
return
//Keeping this here for now, I'll ask if I should keep it here.
/obj/item/weapon/broken_bottle
name = "Broken Bottle"
desc = "A bottle with a sharp broken bottom."
icon = 'icons/obj/drinks.dmi'
icon_state = "broken_bottle"
force = 9.0
throwforce = 5.0
throw_speed = 3
throw_range = 5
item_state = "beer"
hitsound = 'sound/weapons/bladeslice.ogg'
attack_verb = list("stabbed", "slashed", "attacked")
var/icon/broken_outline = icon('icons/obj/drinks.dmi', "broken")
/obj/item/weapon/reagent_containers/food/drinks/bottle/gin
name = "Griffeater Gin"
desc = "A bottle of high quality gin, produced in the New London Space Station."
icon_state = "ginbottle"
New()
..()
reagents.add_reagent("gin", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey
name = "Uncle Git's Special Reserve"
desc = "A premium single-malt whiskey, gently matured inside the tunnels of a nuclear shelter. TUNNEL WHISKEY RULES."
icon_state = "whiskeybottle"
New()
..()
reagents.add_reagent("whiskey", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka
name = "Tunguska Triple Distilled"
desc = "Aah, vodka. Prime choice of drink AND fuel by Russians worldwide."
icon_state = "vodkabottle"
New()
..()
reagents.add_reagent("vodka", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/tequilla
name = "Caccavo Guaranteed Quality Tequilla"
desc = "Made from premium petroleum distillates, pure thalidomide and other fine quality ingredients!"
icon_state = "tequillabottle"
New()
..()
reagents.add_reagent("tequilla", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing
name = "Bottle of Nothing"
desc = "A bottle filled with nothing"
icon_state = "bottleofnothing"
New()
..()
reagents.add_reagent("nothing", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/patron
name = "Wrapp Artiste Patron"
desc = "Silver laced tequilla, served in space night clubs across the galaxy."
icon_state = "patronbottle"
New()
..()
reagents.add_reagent("patron", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/rum
name = "Captain Pete's Cuban Spiced Rum"
desc = "This isn't just rum, oh no. It's practically GRIFF in a bottle."
icon_state = "rumbottle"
New()
..()
reagents.add_reagent("rum", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater
name = "Flask of Holy Water"
desc = "A flask of the chaplain's holy water."
icon_state = "holyflask"
New()
..()
reagents.add_reagent("holywater", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth
name = "Goldeneye Vermouth"
desc = "Sweet, sweet dryness~"
icon_state = "vermouthbottle"
New()
..()
reagents.add_reagent("vermouth", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua
name = "Robert Robust's Coffee Liqueur"
desc = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936, HONK"
icon_state = "kahluabottle"
New()
..()
reagents.add_reagent("kahlua", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/goldschlager
name = "College Girl Goldschlager"
desc = "Because they are the only ones who will drink 100 proof cinnamon schnapps."
icon_state = "goldschlagerbottle"
New()
..()
reagents.add_reagent("goldschlager", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac
name = "Chateau De Baton Premium Cognac"
desc = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. You might as well not scream 'SHITCURITY' this time."
icon_state = "cognacbottle"
New()
..()
reagents.add_reagent("cognac", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/wine
name = "Doublebeard Bearded Special Wine"
desc = "A faint aura of unease and asspainery surrounds the bottle."
icon_state = "winebottle"
New()
..()
reagents.add_reagent("wine", 100)
//////////////////////////JUICES AND STUFF ///////////////////////
/obj/item/weapon/reagent_containers/food/drinks/bottle/orangejuice
name = "Orange Juice"
desc = "Full of vitamins and deliciousness!"
icon_state = "orangejuice"
item_state = "carton"
isGlass = 0
New()
..()
reagents.add_reagent("orangejuice", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/cream
name = "Milk Cream"
desc = "It's cream. Made from milk. What else did you think you'd find in there?"
icon_state = "cream"
item_state = "carton"
isGlass = 0
New()
..()
reagents.add_reagent("cream", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/tomatojuice
name = "Tomato Juice"
desc = "Well, at least it LOOKS like tomato juice. You can't tell with all that redness."
icon_state = "tomatojuice"
item_state = "carton"
isGlass = 0
New()
..()
reagents.add_reagent("tomatojuice", 100)
/obj/item/weapon/reagent_containers/food/drinks/bottle/limejuice
name = "Lime Juice"
desc = "Sweet-sour goodness."
icon_state = "limejuice"
item_state = "carton"
isGlass = 0
New()
..()
reagents.add_reagent("limejuice", 100)
@@ -1,466 +1,466 @@
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass
name = "glass"
desc = "Your standard drinking glass."
icon_state = "glass_empty"
amount_per_transfer_from_this = 10
volume = 50
on_reagent_change()
if (reagents.reagent_list.len > 0)
switch(reagents.get_master_reagent_id())
if("beer")
icon_state = "beerglass"
name = "glass of beer"
desc = "A freezing pint of beer"
if("beer2")
icon_state = "beerglass"
name = "glass of beer"
desc = "A freezing pint of beer"
if("greenbeer")
icon_state = "greenbeerglass"
name = "glass of green beer"
desc = "A freezing pint of green beer. Festive."
if("ale")
icon_state = "aleglass"
name = "glass of ale"
desc = "A freezing pint of delicious Ale"
if("milk")
icon_state = "glass_white"
name = "glass of milk"
desc = "White and nutritious goodness!"
if("cream")
icon_state = "glass_white"
name = "glass of cream"
desc = "Ewwww..."
if("hot_coco")
icon_state = "chocolateglass"
name = "glass of chocolate"
desc = "Tasty"
if("lemonjuice")
icon_state = "lemonglass"
name = "glass of lemon juice"
desc = "Sour..."
if("holywater")
icon_state = "glass_clear"
name = "glass of Holy Water"
desc = "A glass of holy water."
if("potato")
icon_state = "glass_brown"
name = "glass of potato juice"
desc = "Bleh..."
if("watermelonjuice")
icon_state = "glass_red"
name = "glass of watermelon juice"
desc = "A glass of watermelon juice."
if("cola")
icon_state = "glass_brown"
name = "glass of space Cola"
desc = "A glass of refreshing Space Cola"
if("nuka_cola")
icon_state = "nuka_colaglass"
name = "Nuka Cola"
desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland"
if("orangejuice")
icon_state = "glass_orange"
name = "glass of orange juice"
desc = "Vitamins! Yay!"
if("tomatojuice")
icon_state = "glass_red"
name = "glass of tomato juice"
desc = "Are you sure this is tomato juice?"
if("blood")
icon_state = "glass_red"
name = "glass of tomato juice"
desc = "Are you sure this is tomato juice?"
if("limejuice")
icon_state = "glass_green"
name = "glass of lime juice"
desc = "A glass of sweet-sour lime juice."
if("whiskey")
icon_state = "whiskeyglass"
name = "glass of whiskey"
desc = "The silky, smokey whiskey goodness inside the glass makes the drink look very classy."
if("gin")
icon_state = "ginvodkaglass"
name = "glass of gin"
desc = "A crystal clear glass of Griffeater gin."
if("vodka")
icon_state = "ginvodkaglass"
name = "glass of vodka"
desc = "The glass contain wodka. Xynta."
if("goldschlager")
icon_state = "ginvodkaglass"
name = "glass of Goldschlager"
desc = "100 proof that teen girls will drink anything with gold in it."
if("wine")
icon_state = "wineglass"
name = "glass of wine"
desc = "A very classy looking drink."
if("cognac")
icon_state = "cognacglass"
name = "glass of cognac"
desc = "Damn, you feel like some kind of French aristocrat just by holding this."
if ("kahlua")
icon_state = "kahluaglass"
name = "glass of RR Coffee Liquor"
desc = "DAMN, THIS THING LOOKS ROBUST"
if("vermouth")
icon_state = "vermouthglass"
name = "glass of vermouth"
desc = "You wonder why you're even drinking this straight."
if("tequilla")
icon_state = "tequillaglass"
name = "glass of tequilla"
desc = "Now all that's missing is the weird colored shades!"
if("patron")
icon_state = "patronglass"
name = "glass of patron"
desc = "Drinking patron in the bar, with all the subpar ladies."
if("rum")
icon_state = "rumglass"
name = "glass of rum"
desc = "Now you want to Pray for a pirate suit, don't you?"
if("gintonic")
icon_state = "gintonicglass"
name = "Gin and Tonic"
desc = "A mild but still great cocktail. Drink up, like a true Englishman."
if("whiskeycola")
icon_state = "whiskeycolaglass"
name = "Whiskey Cola"
desc = "An innocent-looking mixture of cola and Whiskey. Delicious."
if("whiterussian")
icon_state = "whiterussianglass"
name = "White Russian"
desc = "A very nice looking drink. But that's just, like, your opinion, man."
if("screwdrivercocktail")
icon_state = "screwdriverglass"
name = "Screwdriver"
desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer."
if("bloodymary")
icon_state = "bloodymaryglass"
name = "Bloody Mary"
desc = "Tomato juice, mixed with Vodka and a lil' bit of lime. Tastes like liquid murder."
if("martini")
icon_state = "martiniglass"
name = "Classic Martini"
desc = "Damn, the bartender even stirred it, not shook it."
if("vodkamartini")
icon_state = "martiniglass"
name = "Vodka martini"
desc ="A bastardisation of the classic martini. Still great."
if("gargleblaster")
icon_state = "gargleblasterglass"
name = "Pan-Galactic Gargle Blaster"
desc = "Does... does this mean that Arthur and Ford are on the station? Oh joy."
if("bravebull")
icon_state = "bravebullglass"
name = "Brave Bull"
desc = "Tequilla and Coffee liquor, brought together in a mouthwatering mixture. Drink up."
if("tequillasunrise")
icon_state = "tequillasunriseglass"
name = "Tequilla Sunrise"
desc = "Oh great, now you feel nostalgic about sunrises back on Terra..."
if("toxinsspecial")
icon_state = "toxinsspecialglass"
name = "Toxins Special"
desc = "Whoah, this thing is on FIRE"
if("beepskysmash")
icon_state = "beepskysmashglass"
name = "Beepsky Smash"
desc = "Heavy, hot and strong. Just like the Iron fist of the LAW."
if("doctorsdelight")
icon_state = "doctorsdelightglass"
name = "Doctor's Delight"
desc = "A healthy mixture of juices, guaranteed to keep you healthy until the next toolboxing takes place."
if("manlydorf")
icon_state = "manlydorfglass"
name = "The Manly Dorf"
desc = "A manly concotion made from Ale and Beer. Intended for true men only."
if("irishcream")
icon_state = "irishcreamglass"
name = "Irish Cream"
desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?"
if("cubalibre")
icon_state = "cubalibreglass"
name = "Cuba Libre"
desc = "A classic mix of rum and cola."
if("b52")
icon_state = "b52glass"
name = "B-52"
desc = "Kahlua, Irish Cream, and cognac. You will get bombed."
if("atomicbomb")
icon_state = "atomicbombglass"
name = "Atomic Bomb"
desc = "Nanotrasen cannot take legal responsibility for your actions after imbibing."
if("longislandicedtea")
icon_state = "longislandicedteaglass"
name = "Long Island Iced Tea"
desc = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
if("threemileisland")
icon_state = "threemileislandglass"
name = "Three Mile Island Ice Tea"
desc = "A glass of this is sure to prevent a meltdown."
if("margarita")
icon_state = "margaritaglass"
name = "Margarita"
desc = "On the rocks with salt on the rim. Arriba~!"
if("blackrussian")
icon_state = "blackrussianglass"
name = "Black Russian"
desc = "For the lactose-intolerant. Still as classy as a White Russian."
if("vodkatonic")
icon_state = "vodkatonicglass"
name = "Vodka and Tonic"
desc = "For when a gin and tonic isn't Russian enough."
if("manhattan")
icon_state = "manhattanglass"
name = "Manhattan"
desc = "The Detective's undercover drink of choice. He never could stomach gin..."
if("manhattan_proj")
icon_state = "proj_manhattanglass"
name = "Manhattan Project"
desc = "A scientist drink of choice, for thinking how to blow up the station."
if("ginfizz")
icon_state = "ginfizzglass"
name = "Gin Fizz"
desc = "Refreshingly lemony, deliciously dry."
if("irishcoffee")
icon_state = "irishcoffeeglass"
name = "Irish Coffee"
desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning."
if("hooch")
icon_state = "glass_brown2"
name = "Hooch"
desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
if("whiskeysoda")
icon_state = "whiskeysodaglass2"
name = "Whiskey Soda"
desc = "Ultimate refreshment."
if("tonic")
icon_state = "glass_clear"
name = "Glass of Tonic Water"
desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
if("sodawater")
icon_state = "glass_clear"
name = "Glass of Soda Water"
desc = "Soda water. Why not make a scotch and soda?"
if("water")
icon_state = "glass_clear"
name = "Glass of Water"
desc = "The father of all refreshments."
if("spacemountainwind")
icon_state = "Space_mountain_wind_glass"
name = "Glass of Space Mountain Wind"
desc = "Space Mountain Wind. As you know, there are no mountains in space, only wind."
if("thirteenloko")
icon_state = "thirteen_loko_glass"
name = "Glass of Thirteen Loko"
desc = "This is a glass of Thirteen Loko, it appears to be of the highest quality. The drink, not the glass"
if("dr_gibb")
icon_state = "dr_gibb_glass"
name = "Glass of Dr. Gibb"
desc = "Dr. Gibb. Not as dangerous as the name might imply."
if("space_up")
icon_state = "space-up_glass"
name = "Glass of Space-up"
desc = "Space-up. It helps keep your cool."
if("lemon_lime")
icon_state = "glass_yellow"
name = "Glass of Lemon-Lime"
desc = "You're pretty certain a real fruit has never actually touched this."
if("moonshine")
icon_state = "glass_clear"
name = "Moonshine"
desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
if("soymilk")
icon_state = "glass_white"
name = "Glass of soy milk"
desc = "White and nutritious soy goodness!"
if("berryjuice")
icon_state = "berryjuice"
name = "Glass of berry juice"
desc = "Berry juice. Or maybe it's jam. Who cares?"
if("poisonberryjuice")
icon_state = "poisonberryjuice"
name = "Glass of berry juice"
desc = "Berry juice. Or maybe it's poison. Who cares?"
if("carrotjuice")
icon_state = "carrotjuice"
name = "Glass of carrot juice"
desc = "It is just like a carrot but without crunching."
if("banana")
icon_state = "banana"
name = "Glass of banana juice"
desc = "The raw essence of a banana. HONK"
if("bahama_mama")
icon_state = "bahama_mama"
name = "Bahama Mama"
desc = "Tropic cocktail"
if("singulo")
icon_state = "singulo"
name = "Singulo"
desc = "A blue-space beverage."
if("alliescocktail")
icon_state = "alliescocktail"
name = "Allies cocktail"
desc = "A drink made from your allies."
if("antifreeze")
icon_state = "antifreeze"
name = "Anti-freeze"
desc = "The ultimate refreshment."
if("barefoot")
icon_state = "b&p"
name = "Barefoot"
desc = "Barefoot and pregnant"
if("demonsblood")
icon_state = "demonsblood"
name = "Demons Blood"
desc = "Just looking at this thing makes the hair at the back of your neck stand up."
if("booger")
icon_state = "booger"
name = "Booger"
desc = "Ewww..."
if("snowwhite")
icon_state = "snowwhite"
name = "Snow White"
desc = "A cold refreshment."
if("aloe")
icon_state = "aloe"
name = "Aloe"
desc = "Very, very, very good."
if("andalusia")
icon_state = "andalusia"
name = "Andalusia"
desc = "A nice, strange named drink."
if("sbiten")
icon_state = "sbitenglass"
name = "Sbiten"
desc = "A spicy mix of Vodka and Spice. Very hot."
if("red_mead")
icon_state = "red_meadglass"
name = "Red Mead"
desc = "A True Vikings Beverage, though its color is strange."
if("mead")
icon_state = "meadglass"
name = "Mead"
desc = "A Vikings Beverage, though a cheap one."
if("iced_beer")
icon_state = "iced_beerglass"
name = "Iced Beer"
desc = "A beer so frosty, the air around it freezes."
if("grog")
icon_state = "grogglass"
name = "Grog"
desc = "A fine and cepa drink for Space."
if("soy_latte")
icon_state = "soy_latte"
name = "Soy Latte"
desc = "A nice and refrshing beverage while you are reading."
if("cafe_latte")
icon_state = "cafe_latte"
name = "Cafe Latte"
desc = "A nice, strong and refreshing beverage while you are reading."
if("acidspit")
icon_state = "acidspitglass"
name = "Acid Spit"
desc = "A drink from Nanotrasen. Made from live aliens."
if("amasec")
icon_state = "amasecglass"
name = "Amasec"
desc = "Always handy before COMBAT!!!"
if("neurotoxin")
icon_state = "neurotoxinglass"
name = "Neurotoxin"
desc = "A drink that is guaranteed to knock you silly."
if("hippiesdelight")
icon_state = "hippiesdelightglass"
name = "Hippie's Delight"
desc = "A drink enjoyed by people during the 1960's."
if("bananahonk")
icon_state = "bananahonkglass"
name = "Banana Honk"
desc = "A drink from Clown Heaven."
if("silencer")
icon_state = "silencerglass"
name = "Silencer"
desc = "A drink from mime Heaven."
if("nothing")
icon_state = "nothing"
name = "Nothing"
desc = "Absolutely nothing."
if("devilskiss")
icon_state = "devilskiss"
name = "Devils Kiss"
desc = "Creepy time!"
if("changelingsting")
icon_state = "changelingsting"
name = "Changeling Sting"
desc = "A stingy drink."
if("irishcarbomb")
icon_state = "irishcarbomb"
name = "Irish Car Bomb"
desc = "An irish car bomb."
if("syndicatebomb")
icon_state = "syndicatebomb"
name = "Syndicate Bomb"
desc = "A syndicate bomb."
if("erikasurprise")
icon_state = "erikasurprise"
name = "Erika Surprise"
desc = "The surprise is, it's green!"
if("driestmartini")
icon_state = "driestmartiniglass"
name = "Driest Martini"
desc = "Only for the experienced. You think you see sand floating in the glass."
if("ice")
icon_state = "iceglass"
name = "Glass of ice"
desc = "Generally, you're supposed to put something else in there too..."
if("icecoffee")
icon_state = "icedcoffeeglass"
name = "Iced Coffee"
desc = "A drink to perk you up and refresh you!"
if("icetea")
icon_state = "icedteaglass"
name = "Iced Tea"
desc = "All natural, antioxidant-rich flavour sensation."
if("coffee")
icon_state = "glass_brown"
name = "Glass of coffee"
desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere."
if("tea")
icon_state = "teaglass"
name = "Glass of tea"
desc = "Drinking it from here would not seem right."
if("bilk")
icon_state = "glass_brown"
name = "Glass of bilk"
desc = "A brew of milk and beer. For those alcoholics who fear osteoporosis."
if("fuel")
icon_state = "dr_gibb_glass"
name = "Glass of welder fuel"
desc = "Unless you are an industrial tool, this is probably not safe for consumption."
else
icon_state ="glass_brown"
name = "Glass of ..what?"
desc = "You can't really tell what this is."
else
icon_state = "glass_empty"
name = "Drinking glass"
desc = "Your standard drinking glass"
return
// for /obj/machinery/vending/sovietsoda
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/soda
New()
..()
reagents.add_reagent("sodawater", 50)
on_reagent_change()
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/cola
New()
..()
reagents.add_reagent("cola", 50)
on_reagent_change()
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass
name = "glass"
desc = "Your standard drinking glass."
icon_state = "glass_empty"
amount_per_transfer_from_this = 10
volume = 50
on_reagent_change()
if (reagents.reagent_list.len > 0)
switch(reagents.get_master_reagent_id())
if("beer")
icon_state = "beerglass"
name = "glass of beer"
desc = "A freezing pint of beer"
if("beer2")
icon_state = "beerglass"
name = "glass of beer"
desc = "A freezing pint of beer"
if("greenbeer")
icon_state = "greenbeerglass"
name = "glass of green beer"
desc = "A freezing pint of green beer. Festive."
if("ale")
icon_state = "aleglass"
name = "glass of ale"
desc = "A freezing pint of delicious Ale"
if("milk")
icon_state = "glass_white"
name = "glass of milk"
desc = "White and nutritious goodness!"
if("cream")
icon_state = "glass_white"
name = "glass of cream"
desc = "Ewwww..."
if("hot_coco")
icon_state = "chocolateglass"
name = "glass of chocolate"
desc = "Tasty"
if("lemonjuice")
icon_state = "lemonglass"
name = "glass of lemon juice"
desc = "Sour..."
if("holywater")
icon_state = "glass_clear"
name = "glass of Holy Water"
desc = "A glass of holy water."
if("potato")
icon_state = "glass_brown"
name = "glass of potato juice"
desc = "Bleh..."
if("watermelonjuice")
icon_state = "glass_red"
name = "glass of watermelon juice"
desc = "A glass of watermelon juice."
if("cola")
icon_state = "glass_brown"
name = "glass of space Cola"
desc = "A glass of refreshing Space Cola"
if("nuka_cola")
icon_state = "nuka_colaglass"
name = "Nuka Cola"
desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland"
if("orangejuice")
icon_state = "glass_orange"
name = "glass of orange juice"
desc = "Vitamins! Yay!"
if("tomatojuice")
icon_state = "glass_red"
name = "glass of tomato juice"
desc = "Are you sure this is tomato juice?"
if("blood")
icon_state = "glass_red"
name = "glass of tomato juice"
desc = "Are you sure this is tomato juice?"
if("limejuice")
icon_state = "glass_green"
name = "glass of lime juice"
desc = "A glass of sweet-sour lime juice."
if("whiskey")
icon_state = "whiskeyglass"
name = "glass of whiskey"
desc = "The silky, smokey whiskey goodness inside the glass makes the drink look very classy."
if("gin")
icon_state = "ginvodkaglass"
name = "glass of gin"
desc = "A crystal clear glass of Griffeater gin."
if("vodka")
icon_state = "ginvodkaglass"
name = "glass of vodka"
desc = "The glass contain wodka. Xynta."
if("goldschlager")
icon_state = "ginvodkaglass"
name = "glass of Goldschlager"
desc = "100 proof that teen girls will drink anything with gold in it."
if("wine")
icon_state = "wineglass"
name = "glass of wine"
desc = "A very classy looking drink."
if("cognac")
icon_state = "cognacglass"
name = "glass of cognac"
desc = "Damn, you feel like some kind of French aristocrat just by holding this."
if ("kahlua")
icon_state = "kahluaglass"
name = "glass of RR Coffee Liquor"
desc = "DAMN, THIS THING LOOKS ROBUST"
if("vermouth")
icon_state = "vermouthglass"
name = "glass of vermouth"
desc = "You wonder why you're even drinking this straight."
if("tequilla")
icon_state = "tequillaglass"
name = "glass of tequilla"
desc = "Now all that's missing is the weird colored shades!"
if("patron")
icon_state = "patronglass"
name = "glass of patron"
desc = "Drinking patron in the bar, with all the subpar ladies."
if("rum")
icon_state = "rumglass"
name = "glass of rum"
desc = "Now you want to Pray for a pirate suit, don't you?"
if("gintonic")
icon_state = "gintonicglass"
name = "Gin and Tonic"
desc = "A mild but still great cocktail. Drink up, like a true Englishman."
if("whiskeycola")
icon_state = "whiskeycolaglass"
name = "Whiskey Cola"
desc = "An innocent-looking mixture of cola and Whiskey. Delicious."
if("whiterussian")
icon_state = "whiterussianglass"
name = "White Russian"
desc = "A very nice looking drink. But that's just, like, your opinion, man."
if("screwdrivercocktail")
icon_state = "screwdriverglass"
name = "Screwdriver"
desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer."
if("bloodymary")
icon_state = "bloodymaryglass"
name = "Bloody Mary"
desc = "Tomato juice, mixed with Vodka and a lil' bit of lime. Tastes like liquid murder."
if("martini")
icon_state = "martiniglass"
name = "Classic Martini"
desc = "Damn, the bartender even stirred it, not shook it."
if("vodkamartini")
icon_state = "martiniglass"
name = "Vodka martini"
desc ="A bastardisation of the classic martini. Still great."
if("gargleblaster")
icon_state = "gargleblasterglass"
name = "Pan-Galactic Gargle Blaster"
desc = "Does... does this mean that Arthur and Ford are on the station? Oh joy."
if("bravebull")
icon_state = "bravebullglass"
name = "Brave Bull"
desc = "Tequilla and Coffee liquor, brought together in a mouthwatering mixture. Drink up."
if("tequillasunrise")
icon_state = "tequillasunriseglass"
name = "Tequilla Sunrise"
desc = "Oh great, now you feel nostalgic about sunrises back on Terra..."
if("toxinsspecial")
icon_state = "toxinsspecialglass"
name = "Toxins Special"
desc = "Whoah, this thing is on FIRE"
if("beepskysmash")
icon_state = "beepskysmashglass"
name = "Beepsky Smash"
desc = "Heavy, hot and strong. Just like the Iron fist of the LAW."
if("doctorsdelight")
icon_state = "doctorsdelightglass"
name = "Doctor's Delight"
desc = "A healthy mixture of juices, guaranteed to keep you healthy until the next toolboxing takes place."
if("manlydorf")
icon_state = "manlydorfglass"
name = "The Manly Dorf"
desc = "A manly concotion made from Ale and Beer. Intended for true men only."
if("irishcream")
icon_state = "irishcreamglass"
name = "Irish Cream"
desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?"
if("cubalibre")
icon_state = "cubalibreglass"
name = "Cuba Libre"
desc = "A classic mix of rum and cola."
if("b52")
icon_state = "b52glass"
name = "B-52"
desc = "Kahlua, Irish Cream, and cognac. You will get bombed."
if("atomicbomb")
icon_state = "atomicbombglass"
name = "Atomic Bomb"
desc = "Nanotrasen cannot take legal responsibility for your actions after imbibing."
if("longislandicedtea")
icon_state = "longislandicedteaglass"
name = "Long Island Iced Tea"
desc = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
if("threemileisland")
icon_state = "threemileislandglass"
name = "Three Mile Island Ice Tea"
desc = "A glass of this is sure to prevent a meltdown."
if("margarita")
icon_state = "margaritaglass"
name = "Margarita"
desc = "On the rocks with salt on the rim. Arriba~!"
if("blackrussian")
icon_state = "blackrussianglass"
name = "Black Russian"
desc = "For the lactose-intolerant. Still as classy as a White Russian."
if("vodkatonic")
icon_state = "vodkatonicglass"
name = "Vodka and Tonic"
desc = "For when a gin and tonic isn't Russian enough."
if("manhattan")
icon_state = "manhattanglass"
name = "Manhattan"
desc = "The Detective's undercover drink of choice. He never could stomach gin..."
if("manhattan_proj")
icon_state = "proj_manhattanglass"
name = "Manhattan Project"
desc = "A scientist drink of choice, for thinking how to blow up the station."
if("ginfizz")
icon_state = "ginfizzglass"
name = "Gin Fizz"
desc = "Refreshingly lemony, deliciously dry."
if("irishcoffee")
icon_state = "irishcoffeeglass"
name = "Irish Coffee"
desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning."
if("hooch")
icon_state = "glass_brown2"
name = "Hooch"
desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
if("whiskeysoda")
icon_state = "whiskeysodaglass2"
name = "Whiskey Soda"
desc = "Ultimate refreshment."
if("tonic")
icon_state = "glass_clear"
name = "Glass of Tonic Water"
desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
if("sodawater")
icon_state = "glass_clear"
name = "Glass of Soda Water"
desc = "Soda water. Why not make a scotch and soda?"
if("water")
icon_state = "glass_clear"
name = "Glass of Water"
desc = "The father of all refreshments."
if("spacemountainwind")
icon_state = "Space_mountain_wind_glass"
name = "Glass of Space Mountain Wind"
desc = "Space Mountain Wind. As you know, there are no mountains in space, only wind."
if("thirteenloko")
icon_state = "thirteen_loko_glass"
name = "Glass of Thirteen Loko"
desc = "This is a glass of Thirteen Loko, it appears to be of the highest quality. The drink, not the glass"
if("dr_gibb")
icon_state = "dr_gibb_glass"
name = "Glass of Dr. Gibb"
desc = "Dr. Gibb. Not as dangerous as the name might imply."
if("space_up")
icon_state = "space-up_glass"
name = "Glass of Space-up"
desc = "Space-up. It helps keep your cool."
if("lemon_lime")
icon_state = "glass_yellow"
name = "Glass of Lemon-Lime"
desc = "You're pretty certain a real fruit has never actually touched this."
if("moonshine")
icon_state = "glass_clear"
name = "Moonshine"
desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
if("soymilk")
icon_state = "glass_white"
name = "Glass of soy milk"
desc = "White and nutritious soy goodness!"
if("berryjuice")
icon_state = "berryjuice"
name = "Glass of berry juice"
desc = "Berry juice. Or maybe it's jam. Who cares?"
if("poisonberryjuice")
icon_state = "poisonberryjuice"
name = "Glass of berry juice"
desc = "Berry juice. Or maybe it's poison. Who cares?"
if("carrotjuice")
icon_state = "carrotjuice"
name = "Glass of carrot juice"
desc = "It is just like a carrot but without crunching."
if("banana")
icon_state = "banana"
name = "Glass of banana juice"
desc = "The raw essence of a banana. HONK"
if("bahama_mama")
icon_state = "bahama_mama"
name = "Bahama Mama"
desc = "Tropic cocktail"
if("singulo")
icon_state = "singulo"
name = "Singulo"
desc = "A blue-space beverage."
if("alliescocktail")
icon_state = "alliescocktail"
name = "Allies cocktail"
desc = "A drink made from your allies."
if("antifreeze")
icon_state = "antifreeze"
name = "Anti-freeze"
desc = "The ultimate refreshment."
if("barefoot")
icon_state = "b&p"
name = "Barefoot"
desc = "Barefoot and pregnant"
if("demonsblood")
icon_state = "demonsblood"
name = "Demons Blood"
desc = "Just looking at this thing makes the hair at the back of your neck stand up."
if("booger")
icon_state = "booger"
name = "Booger"
desc = "Ewww..."
if("snowwhite")
icon_state = "snowwhite"
name = "Snow White"
desc = "A cold refreshment."
if("aloe")
icon_state = "aloe"
name = "Aloe"
desc = "Very, very, very good."
if("andalusia")
icon_state = "andalusia"
name = "Andalusia"
desc = "A nice, strange named drink."
if("sbiten")
icon_state = "sbitenglass"
name = "Sbiten"
desc = "A spicy mix of Vodka and Spice. Very hot."
if("red_mead")
icon_state = "red_meadglass"
name = "Red Mead"
desc = "A True Vikings Beverage, though its color is strange."
if("mead")
icon_state = "meadglass"
name = "Mead"
desc = "A Vikings Beverage, though a cheap one."
if("iced_beer")
icon_state = "iced_beerglass"
name = "Iced Beer"
desc = "A beer so frosty, the air around it freezes."
if("grog")
icon_state = "grogglass"
name = "Grog"
desc = "A fine and cepa drink for Space."
if("soy_latte")
icon_state = "soy_latte"
name = "Soy Latte"
desc = "A nice and refrshing beverage while you are reading."
if("cafe_latte")
icon_state = "cafe_latte"
name = "Cafe Latte"
desc = "A nice, strong and refreshing beverage while you are reading."
if("acidspit")
icon_state = "acidspitglass"
name = "Acid Spit"
desc = "A drink from Nanotrasen. Made from live aliens."
if("amasec")
icon_state = "amasecglass"
name = "Amasec"
desc = "Always handy before COMBAT!!!"
if("neurotoxin")
icon_state = "neurotoxinglass"
name = "Neurotoxin"
desc = "A drink that is guaranteed to knock you silly."
if("hippiesdelight")
icon_state = "hippiesdelightglass"
name = "Hippie's Delight"
desc = "A drink enjoyed by people during the 1960's."
if("bananahonk")
icon_state = "bananahonkglass"
name = "Banana Honk"
desc = "A drink from Clown Heaven."
if("silencer")
icon_state = "silencerglass"
name = "Silencer"
desc = "A drink from mime Heaven."
if("nothing")
icon_state = "nothing"
name = "Nothing"
desc = "Absolutely nothing."
if("devilskiss")
icon_state = "devilskiss"
name = "Devils Kiss"
desc = "Creepy time!"
if("changelingsting")
icon_state = "changelingsting"
name = "Changeling Sting"
desc = "A stingy drink."
if("irishcarbomb")
icon_state = "irishcarbomb"
name = "Irish Car Bomb"
desc = "An irish car bomb."
if("syndicatebomb")
icon_state = "syndicatebomb"
name = "Syndicate Bomb"
desc = "A syndicate bomb."
if("erikasurprise")
icon_state = "erikasurprise"
name = "Erika Surprise"
desc = "The surprise is, it's green!"
if("driestmartini")
icon_state = "driestmartiniglass"
name = "Driest Martini"
desc = "Only for the experienced. You think you see sand floating in the glass."
if("ice")
icon_state = "iceglass"
name = "Glass of ice"
desc = "Generally, you're supposed to put something else in there too..."
if("icecoffee")
icon_state = "icedcoffeeglass"
name = "Iced Coffee"
desc = "A drink to perk you up and refresh you!"
if("icetea")
icon_state = "icedteaglass"
name = "Iced Tea"
desc = "All natural, antioxidant-rich flavour sensation."
if("coffee")
icon_state = "glass_brown"
name = "Glass of coffee"
desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere."
if("tea")
icon_state = "teaglass"
name = "Glass of tea"
desc = "Drinking it from here would not seem right."
if("bilk")
icon_state = "glass_brown"
name = "Glass of bilk"
desc = "A brew of milk and beer. For those alcoholics who fear osteoporosis."
if("fuel")
icon_state = "dr_gibb_glass"
name = "Glass of welder fuel"
desc = "Unless you are an industrial tool, this is probably not safe for consumption."
else
icon_state ="glass_brown"
name = "Glass of ..what?"
desc = "You can't really tell what this is."
else
icon_state = "glass_empty"
name = "Drinking glass"
desc = "Your standard drinking glass"
return
// for /obj/machinery/vending/sovietsoda
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/soda
New()
..()
reagents.add_reagent("sodawater", 50)
on_reagent_change()
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/cola
New()
..()
reagents.add_reagent("cola", 50)
on_reagent_change()
@@ -1,31 +1,31 @@
/obj/item/weapon/reagent_containers/food/snacks/meat
name = "meat"
desc = "A slab of meat"
icon_state = "meat"
dried_type = /obj/item/weapon/reagent_containers/food/snacks/sosjerky
New()
..()
reagents.add_reagent("nutriment", 3)
src.bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh
name = "synthetic meat"
desc = "A synthetic slab of flesh."
/obj/item/weapon/reagent_containers/food/snacks/meat/human
name = "-meat"
var/subjectname = ""
var/subjectjob = null
/obj/item/weapon/reagent_containers/food/snacks/meat/monkey
//same as plain meat
/obj/item/weapon/reagent_containers/food/snacks/meat/corgi
name = "Corgi meat"
desc = "Tastes like... well you know..."
/obj/item/weapon/reagent_containers/food/snacks/meat/pug
name = "Pug meat"
/obj/item/weapon/reagent_containers/food/snacks/meat
name = "meat"
desc = "A slab of meat"
icon_state = "meat"
dried_type = /obj/item/weapon/reagent_containers/food/snacks/sosjerky
New()
..()
reagents.add_reagent("nutriment", 3)
src.bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh
name = "synthetic meat"
desc = "A synthetic slab of flesh."
/obj/item/weapon/reagent_containers/food/snacks/meat/human
name = "-meat"
var/subjectname = ""
var/subjectjob = null
/obj/item/weapon/reagent_containers/food/snacks/meat/monkey
//same as plain meat
/obj/item/weapon/reagent_containers/food/snacks/meat/corgi
name = "Corgi meat"
desc = "Tastes like... well you know..."
/obj/item/weapon/reagent_containers/food/snacks/meat/pug
name = "Pug meat"
desc = "Tastes like... well you know..."
@@ -0,0 +1,176 @@
/obj/machinery/gibber
name = "gibber"
desc = "The name isn't descriptive enough?"
icon = 'icons/obj/kitchen.dmi'
icon_state = "grinder"
density = 1
anchored = 1
var/operating = 0 //Is it on?
var/dirty = 0 // Does it need cleaning?
var/gibtime = 40 // Time from starting until meat appears
use_power = 1
idle_power_usage = 2
active_power_usage = 500
//auto-gibs anything that bumps into it
/obj/machinery/gibber/autogibber
var/turf/input_plate
New()
..()
spawn(5)
for(var/i in cardinal)
var/obj/machinery/mineral/input/input_obj = locate( /obj/machinery/mineral/input, get_step(src.loc, i) )
if(input_obj)
if(isturf(input_obj.loc))
input_plate = input_obj.loc
qdel(input_obj)
break
if(!input_plate)
diary << "a [src] didn't find an input plate."
return
Bumped(var/atom/A)
if(!input_plate) return
if(ismob(A))
var/mob/M = A
if(M.loc == input_plate
)
M.loc = src
M.gib()
/obj/machinery/gibber/New()
..()
src.overlays += image('icons/obj/kitchen.dmi', "grjam")
/obj/machinery/gibber/update_icon()
overlays.Cut()
if (dirty)
src.overlays += image('icons/obj/kitchen.dmi', "grbloody")
if(stat & (NOPOWER|BROKEN))
return
if (!occupant)
src.overlays += image('icons/obj/kitchen.dmi', "grjam")
else if (operating)
src.overlays += image('icons/obj/kitchen.dmi', "gruse")
else
src.overlays += image('icons/obj/kitchen.dmi', "gridle")
/obj/machinery/gibber/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/gibber/container_resist()
src.go_out()
return
/obj/machinery/gibber/attack_hand(mob/user as mob)
if(stat & (NOPOWER|BROKEN))
return
if(operating)
user << "\red It's locked and running"
return
else
src.startgibbing(user)
/obj/machinery/gibber/attackby(obj/item/weapon/grab/G as obj, mob/user as mob)
if(src.occupant)
user << "\red The gibber is full, empty it first!"
return
if(default_unfasten_wrench(user, G))
return
if (!( istype(G, /obj/item/weapon/grab)) || !(istype(G.affecting, /mob/living/carbon/human)))
user << "\red This item is not suitable for the gibber!"
return
if(G.affecting.abiotic(1))
user << "\red Subject may not have abiotic items on."
return
user.visible_message("\red [user] starts to put [G.affecting] into the gibber!")
src.add_fingerprint(user)
if(do_after(user, 30) && G && G.affecting && !occupant)
user.visible_message("\red [user] stuffs [G.affecting] into the gibber!")
var/mob/M = G.affecting
if(M.client)
M.client.perspective = EYE_PERSPECTIVE
M.client.eye = src
M.loc = src
src.occupant = M
qdel(G)
update_icon()
/obj/machinery/gibber/verb/eject()
set category = "Object"
set name = "empty gibber"
set src in oview(1)
if (usr.stat != 0)
return
src.go_out()
add_fingerprint(usr)
return
/obj/machinery/gibber/proc/go_out()
if (!src.occupant)
return
for(var/obj/O in src)
O.loc = src.loc
if (src.occupant.client)
src.occupant.client.eye = src.occupant.client.mob
src.occupant.client.perspective = MOB_PERSPECTIVE
src.occupant.loc = src.loc
src.occupant = null
update_icon()
return
/obj/machinery/gibber/proc/startgibbing(mob/user as mob)
if(src.operating)
return
if(!src.occupant)
visible_message("\red You hear a loud metallic grinding sound.")
return
use_power(1000)
visible_message("\red You hear a loud squelchy grinding sound.")
src.operating = 1
update_icon()
var/sourcename = src.occupant.real_name
var/sourcejob = src.occupant.job
var/sourcenutriment = src.occupant.nutrition / 15
var/sourcetotalreagents = src.occupant.reagents.total_volume
var/totalslabs = 3
var/obj/item/weapon/reagent_containers/food/snacks/meat/human/allmeat[totalslabs]
for (var/i=1 to totalslabs)
var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat = new
newmeat.name = sourcename + newmeat.name
newmeat.subjectname = sourcename
newmeat.subjectjob = sourcejob
newmeat.reagents.add_reagent ("nutriment", sourcenutriment / totalslabs) // Thehehe. Fat guys go first
src.occupant.reagents.trans_to (newmeat, round (sourcetotalreagents / totalslabs, 1)) // Transfer all the reagents from the
allmeat[i] = newmeat
add_logs(user, occupant, "gibbed")
src.occupant.death(1)
src.occupant.ghostize()
qdel(src.occupant)
spawn(src.gibtime)
playsound(src.loc, 'sound/effects/splat.ogg', 50, 1)
operating = 0
for (var/i=1 to totalslabs)
var/obj/item/meatslab = allmeat[i]
var/turf/Tx = locate(src.x - i, src.y, src.z)
meatslab.loc = src.loc
meatslab.throw_at(Tx,i,3)
if (!Tx.density)
new /obj/effect/decal/cleanable/blood/gibs(Tx,i)
src.operating = 0
update_icon()
@@ -0,0 +1,246 @@
#define ICECREAM_VANILLA 1
#define FLAVOUR_CHOCOLATE 2
#define FLAVOUR_STRAWBERRY 3
#define FLAVOUR_BLUE 4
#define CONE_WAFFLE 5
#define CONE_CHOC 6
#define INGR_MILK 7
#define INGR_FLOUR 8
#define INGR_SUGAR 9
#define INGR_ICE 10
#define MUCK 11
var/list/ingredients_source = list(
"berryjuice" = FLAVOUR_STRAWBERRY,\
"coco" = FLAVOUR_CHOCOLATE,\
"singulo" = FLAVOUR_BLUE,\
"milk" = INGR_MILK,\
"soymilk" = INGR_MILK,\
"ice" = INGR_ICE,\
"flour" = INGR_FLOUR,\
"sugar" = INGR_SUGAR,\
)
/proc/get_icecream_flavour_string(var/flavour_type)
switch(flavour_type)
if(FLAVOUR_CHOCOLATE)
return "chocolate"
if(FLAVOUR_STRAWBERRY)
return "strawberry"
if(FLAVOUR_BLUE)
return "blue"
if(CONE_WAFFLE)
return "waffle"
if(CONE_CHOC)
return "chocolate"
if(INGR_MILK)
return "milk"
if(INGR_FLOUR)
return "flour"
if(INGR_SUGAR)
return "sugar"
if(INGR_ICE)
return "ice"
if(MUCK)
return "muck"
else
return "vanilla"
/obj/machinery/icecream_vat
name = "icecream vat"
desc = "Ding-aling ding dong. Get your Nanotrasen-approved ice cream!"
icon = 'icons/obj/kitchen.dmi'
icon_state = "icecream_vat"
density = 1
anchored = 0
var/list/ingredients = list()
var/dispense_flavour = ICECREAM_VANILLA
var/obj/item/weapon/reagent_containers/glass/held_container
/obj/machinery/icecream_vat/New()
..()
while(ingredients.len < 11)
ingredients.Add(5)
/obj/machinery/icecream_vat/attack_hand(mob/user as mob)
user.set_machine(src)
interact(user)
/obj/machinery/icecream_vat/interact(mob/user as mob)
var/dat
dat += "<a href='?src=\ref[src];dispense=[ICECREAM_VANILLA]'><b>Dispense vanilla icecream</b></a> There is [ingredients[ICECREAM_VANILLA]] scoops of vanilla icecream left (made from milk and ice).<br>"
dat += "<a href='?src=\ref[src];dispense=[FLAVOUR_STRAWBERRY]'><b>Dispense strawberry icecream</b></a> There is [ingredients[FLAVOUR_STRAWBERRY]] dollops of strawberry flavouring left (obtained from berry juice.<br>"
dat += "<a href='?src=\ref[src];dispense=[FLAVOUR_CHOCOLATE]'><b>Dispense chocolate icecream</b></a> There is [ingredients[FLAVOUR_CHOCOLATE]] dollops of chocolate flavouring left (obtained from cocoa powder).<br>"
dat += "<a href='?src=\ref[src];dispense=[FLAVOUR_BLUE]'><b>Dispense blue icecream</b></a> There is [ingredients[FLAVOUR_BLUE]] dollops of blue flavouring left (obtained from bluespace tomato singulo).<br>"
dat += "<br>"
dat += "<a href='?src=\ref[src];cone=[CONE_WAFFLE]'><b>Dispense waffle cones</b></a> There are [ingredients[CONE_WAFFLE]] waffle cones left. <br>"
dat += "<a href='?src=\ref[src];cone=[CONE_CHOC]'><b>Dispense chocolate cones</b></a> There are [ingredients[CONE_CHOC]] chocolate cones left.<br>"
dat += "<br>"
dat += "<a href='?src=\ref[src];make=[CONE_WAFFLE]'><b>Make waffle cones</b></a> There is [ingredients[INGR_FLOUR]]/[ingredients[INGR_SUGAR]] of flour and sugar left.<br>"
dat += "<a href='?src=\ref[src];make=[CONE_CHOC]'><b>Make chocolate cones</b></a> There is [ingredients[FLAVOUR_CHOCOLATE]]/[ingredients[CONE_WAFFLE]] of chocolate flavouring and waffle cones left.<br>"
dat += "<a href='?src=\ref[src];make=[ICECREAM_VANILLA]'><b>Make vanilla icecream</b></a> There is [ingredients[INGR_MILK]]/[ingredients[INGR_ICE]] of milk and ice left.<br>"
dat += "<br>"
if(held_container)
dat += "<a href='?src=\ref[src];eject=1'>Eject [held_container]</a> "
else
dat += "No beaker inserted. "
dat += "<a href='?src=\ref[src];refresh=1'>Refresh</a> <a href='?src=\ref[src];close=1'>Close</a>"
var/datum/browser/popup = new(user, "icecreamvat","Icecream Vat", 700, 400, src)
popup.set_content(dat)
popup.open()
/obj/machinery/icecream_vat/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(istype(O, /obj/item/weapon/reagent_containers))
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/icecream))
var/obj/item/weapon/reagent_containers/food/snacks/icecream/I = O
if(!I.ice_creamed)
if(ingredients[ICECREAM_VANILLA] > 0)
var/flavour_name = get_icecream_flavour_string(dispense_flavour)
if(ingredients[dispense_flavour] > 0)
src.visible_message("\icon[src] <span class='info'>[user] scoops delicious [flavour_name] flavoured icecream into [I].</span>")
ingredients[dispense_flavour] -= 1
ingredients[ICECREAM_VANILLA] -= 1
I.add_ice_cream(dispense_flavour)
if(held_container)
held_container.reagents.trans_to(I, 10)
if(I.reagents.total_volume < 10)
I.reagents.add_reagent("sugar", 10 - I.reagents.total_volume)
else
user << "<span class='warning'>There is not enough [flavour_name] flavouring left! Insert more of the required ingredients.</span>"
else
user << "<span class='warning'>There is not enough icecream left! Insert more milk and ice.</span>"
else
user << "<span class='notice'>[O] already has icecream in it.</span>"
else if(istype(O, /obj/item/weapon/reagent_containers/glass))
if(held_container)
user << "<span class='notice'>You must remove [held_container] from [src] first.</span>"
else
user << "<span class='info'>You insert [O] into [src].</span>"
user.drop_item()
O.loc = src
held_container = O
else
var/obj/item/weapon/reagent_containers/R = O
if(R.reagents)
src.visible_message("<span class='info'>[user] has emptied all of [R] into [src].</span>")
for (var/datum/reagent/current_reagent in R.reagents.reagent_list)
if(ingredients_source[current_reagent.id])
add(ingredients_source[current_reagent.id], current_reagent.volume / 2)
else
add(MUCK, current_reagent.volume / 5)
R.reagents.clear_reagents()
return 1
else
..()
/obj/machinery/icecream_vat/proc/add(var/add_type, var/amount)
if(add_type <= ingredients.len)
ingredients[add_type] += amount
updateDialog()
/obj/machinery/icecream_vat/proc/make(var/mob/user, var/make_type)
switch(make_type)
if(CONE_WAFFLE)
if(ingredients[INGR_FLOUR] > 0 && ingredients[INGR_SUGAR] > 0)
var/amount = max( min(ingredients[INGR_FLOUR], ingredients[INGR_SUGAR]), 5)
ingredients[INGR_FLOUR] -= amount
ingredients[INGR_SUGAR] -= amount
ingredients[CONE_WAFFLE] += amount
src.visible_message("<span class='info'>[user] cooks up some waffle cones.</span>")
else
user << "<span class='notice'>You require sugar and flour to make waffle cones.</span>"
if(CONE_CHOC)
if(ingredients[FLAVOUR_CHOCOLATE] > 0 && ingredients[CONE_WAFFLE] > 0)
var/amount = min(ingredients[CONE_WAFFLE], ingredients[FLAVOUR_CHOCOLATE])
ingredients[CONE_WAFFLE] -= amount
ingredients[FLAVOUR_CHOCOLATE] -= amount
ingredients[CONE_CHOC] += amount
src.visible_message("<span class='info'>[user] cooks up some chocolate cones.</span>")
else
user << "<span class='notice'>You require waffle cones and chocolate flavouring to make chocolate cones.</span>"
if(ICECREAM_VANILLA)
if(ingredients[INGR_ICE] > 0 && ingredients[INGR_MILK] > 0)
var/amount = min(ingredients[INGR_ICE], ingredients[INGR_MILK])
ingredients[INGR_ICE] -= amount
ingredients[INGR_MILK] -= amount
ingredients[ICECREAM_VANILLA] += amount
src.visible_message("<span class='info'>[user] whips up some vanilla icecream.</span>")
else
user << "<span class='notice'>You require milk and ice to make vanilla icecream.</span>"
updateDialog()
/obj/machinery/icecream_vat/Topic(href, href_list)
if(..())
return
if(href_list["dispense"])
dispense_flavour = text2num(href_list["dispense"])
src.visible_message("\blue[usr] sets [src] to dispense [get_icecream_flavour_string(dispense_flavour)] flavoured icecream.")
if(href_list["cone"])
var/dispense_cone = text2num(href_list["cone"])
if(ingredients[dispense_cone] <= ingredients.len)
var/cone_name = get_icecream_flavour_string(dispense_cone)
if(ingredients[dispense_cone] >= 1)
ingredients[dispense_cone] -= 1
var/obj/item/weapon/reagent_containers/food/snacks/icecream/I = new(src.loc)
I.cone_type = cone_name
I.icon_state = "icecream_cone_[cone_name]"
I.desc = "Delicious [cone_name] cone, but no ice cream."
src.visible_message("<span class='info'>[usr] dispenses a crunchy [cone_name] cone from [src].</span>")
else
usr << "<span class='warning'>There are no [cone_name] cones left!</span>"
updateDialog()
if(href_list["make"])
make( usr, text2num(href_list["make"]) )
updateDialog()
if(href_list["eject"])
if(held_container)
held_container.loc = src.loc
held_container = null
updateDialog()
if(href_list["refresh"])
updateDialog()
if(href_list["close"])
usr.unset_machine()
usr << browse(null,"window=icecreamvat")
return
/obj/item/weapon/reagent_containers/food/snacks/icecream
name = "ice cream cone"
desc = "Delicious waffle cone, but no ice cream."
icon = 'icons/obj/kitchen.dmi'
icon_state = "icecream_cone_waffle" //default for admin-spawned cones, href_list["cone"] should overwrite this all the time
layer = 3.1
var/ice_creamed = 0
var/cone_type
bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/icecream/New()
create_reagents(20)
reagents.add_reagent("nutriment", 5)
/obj/item/weapon/reagent_containers/food/snacks/icecream/proc/add_ice_cream(var/flavour)
var/flavour_name = get_icecream_flavour_string(flavour)
name = "[flavour_name] icecream"
src.overlays += "icecream_[flavour_name]"
desc = "Delicious [cone_type] cone with a dollop of [flavour_name] ice cream."
ice_creamed = 1
#undef ICECREAM_VANILLA
#undef FLAVOUR_CHOCOLATE
#undef FLAVOUR_STRAWBERRY
#undef FLAVOUR_BLUE
#undef CONE_WAFFLE
#undef CONE_CHOC
#undef INGR_MILK
#undef INGR_FLOUR
#undef INGR_SUGAR
#undef INGR_ICE
#undef MUCK
@@ -0,0 +1,181 @@
/obj/machinery/juicer
name = "juicer"
icon = 'icons/obj/kitchen.dmi'
icon_state = "juicer1"
layer = 2.9
density = 1
anchored = 0
use_power = 1
idle_power_usage = 5
active_power_usage = 100
pass_flags = PASSTABLE
var/obj/item/weapon/reagent_containers/beaker = null
var/global/list/allowed_items = list (
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato = "tomatojuice",
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot = "carrotjuice",
/obj/item/weapon/reagent_containers/food/snacks/grown/berries = "berryjuice",
/obj/item/weapon/reagent_containers/food/snacks/grown/banana = "banana",
/obj/item/weapon/reagent_containers/food/snacks/grown/potato = "potato",
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon = "lemonjuice",
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange = "orangejuice",
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime = "limejuice",
/obj/item/weapon/reagent_containers/food/snacks/watermelonslice = "watermelonjuice",
/obj/item/weapon/reagent_containers/food/snacks/grown/berries/poison = "poisonberryjuice",
)
/obj/machinery/juicer/New()
beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src)
/obj/machinery/juicer/update_icon()
icon_state = "juicer"+num2text(!isnull(beaker))
return
/obj/machinery/juicer/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(default_unfasten_wrench(user, O))
return
if (istype(O,/obj/item/weapon/reagent_containers/glass) || \
istype(O,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass))
if (beaker)
return 1
else
if(!user.unEquip(O))
user << "<span class='notice'>\the [O] is stuck to your hand, you cannot put it in \the [src]</span>"
return 0
O.loc = src
beaker = O
src.verbs += /obj/machinery/juicer/verb/detach
update_icon()
src.updateUsrDialog()
return 0
if (!is_type_in_list(O, allowed_items))
user << "It looks as not containing any juice."
return 1
if(!user.unEquip(O))
user << "<span class='notice'>\the [O] is stuck to your hand, you cannot put it in \the [src]</span>"
return 0
O.loc = src
src.updateUsrDialog()
return 0
/obj/machinery/juicer/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/juicer/attack_ai(mob/user as mob)
return 0
/obj/machinery/juicer/attack_hand(mob/user as mob)
user.set_machine(src)
interact(user)
/obj/machinery/juicer/interact(mob/user as mob) // The microwave Menu
var/is_chamber_empty = 0
var/is_beaker_ready = 0
var/processing_chamber = ""
var/beaker_contents = ""
for (var/i in allowed_items)
for (var/obj/item/O in src.contents)
if (!istype(O,i))
continue
processing_chamber+= "some <B>[O]</B><BR>"
break
if (!processing_chamber)
is_chamber_empty = 1
processing_chamber = "Nothing."
if (!beaker)
beaker_contents = "\The [src] has no beaker attached."
else if (!beaker.reagents.total_volume)
beaker_contents = "\The [src] has attached an empty beaker."
is_beaker_ready = 1
else if (beaker.reagents.total_volume < beaker.reagents.maximum_volume)
beaker_contents = "\The [src] has attached a beaker with something."
is_beaker_ready = 1
else
beaker_contents = "\The [src] has attached a beaker and beaker is full!"
var/dat = {"
<b>Processing chamber contains:</b><br>
[processing_chamber]<br>
[beaker_contents]<hr>
"}
if (is_beaker_ready && !is_chamber_empty && !(stat & (NOPOWER|BROKEN)))
dat += "<A href='?src=\ref[src];action=juice'>Turn on!<BR>"
if (beaker)
dat += "<A href='?src=\ref[src];action=detach'>Detach a beaker!<BR>"
user << browse("<HEAD><TITLE>Juicer</TITLE></HEAD><TT>[dat]</TT>", "window=juicer")
onclose(user, "juicer")
return
/obj/machinery/juicer/Topic(href, href_list)
if(..())
return
usr.set_machine(src)
switch(href_list["action"])
if ("juice")
juice()
if ("detach")
detach()
src.updateUsrDialog()
return
/obj/machinery/juicer/verb/detach()
set category = "Object"
set name = "Detach Beaker from the juicer"
set src in oview(1)
if (usr.stat != 0)
return
if (!beaker)
return
src.verbs -= /obj/machinery/juicer/verb/detach
beaker.loc = src.loc
beaker = null
update_icon()
/obj/machinery/juicer/proc/get_juice_id(var/obj/item/weapon/reagent_containers/food/snacks/grown/O)
for (var/i in allowed_items)
if (istype(O, i))
return allowed_items[i]
/obj/machinery/juicer/proc/get_juice_amount(var/obj/item/weapon/reagent_containers/food/snacks/grown/O)
if (!istype(O))
return 5
else if (O.potency == -1)
return 5
else
return round(5*sqrt(O.potency))
/obj/machinery/juicer/proc/juice()
power_change() //it is a portable machine
if(stat & (NOPOWER|BROKEN))
return
if (!beaker || beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
return
playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1)
for (var/obj/item/weapon/reagent_containers/food/snacks/O in src.contents)
var/r_id = get_juice_id(O)
beaker.reagents.add_reagent(r_id,get_juice_amount(O))
qdel(O)
if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
break
/obj/structure/closet/crate/juice
New()
..()
new/obj/machinery/juicer(src)
new/obj/item/weapon/reagent_containers/food/snacks/grown/tomato(src)
new/obj/item/weapon/reagent_containers/food/snacks/grown/carrot(src)
new/obj/item/weapon/reagent_containers/food/snacks/grown/berries(src)
new/obj/item/weapon/reagent_containers/food/snacks/grown/banana(src)
new/obj/item/weapon/reagent_containers/food/snacks/grown/tomato(src)
new/obj/item/weapon/reagent_containers/food/snacks/grown/carrot(src)
new/obj/item/weapon/reagent_containers/food/snacks/grown/berries(src)
new/obj/item/weapon/reagent_containers/food/snacks/grown/banana(src)
new/obj/item/weapon/reagent_containers/food/snacks/grown/tomato(src)
new/obj/item/weapon/reagent_containers/food/snacks/grown/carrot(src)
new/obj/item/weapon/reagent_containers/food/snacks/grown/berries(src)
new/obj/item/weapon/reagent_containers/food/snacks/grown/banana(src)
@@ -0,0 +1,417 @@
/obj/machinery/microwave
name = "microwave"
icon = 'icons/obj/kitchen.dmi'
icon_state = "mw"
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 = 0
// see code/modules/food/recipes_microwave.dm for recipes
/*******************
* Initialising
********************/
/obj/machinery/microwave/New()
create_reagents(100)
if(!available_recipes)
available_recipes = new
for(var/type in (typesof(/datum/recipe) - /datum/recipe))
available_recipes += new type
acceptable_items = new
acceptable_reagents = new
for(var/datum/recipe/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/microwave(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, 2)
RefreshParts()
/obj/machinery/microwave/RefreshParts()
var/E
for(var/obj/item/weapon/stock_parts/micro_laser/M in component_parts)
E += M.rating
efficiency = E
/*******************
* Item Adding
********************/
/obj/machinery/microwave/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(operating)
return
if(!broken && dirty<100)
if(default_deconstruction_screwdriver(user, "mw-o", "mw", O))
return
if(default_unfasten_wrench(user, O))
return
if(exchange_parts(user, O))
return
default_deconstruction_crowbar(O)
if(src.broken > 0)
if(src.broken == 2 && istype(O, /obj/item/weapon/wirecutters)) // If it's broken and they're using a screwdriver
user.visible_message( \
"\blue [user] starts to fix part of the microwave.", \
"\blue You start to fix part of the microwave." \
)
if (do_after(user,20))
user.visible_message( \
"\blue [user] fixes part of the microwave.", \
"\blue You have fixed part of the microwave." \
)
src.broken = 1 // Fix it a bit
else if(src.broken == 1 && istype(O, /obj/item/weapon/weldingtool)) // If it's broken and they're doing the wrench
user.visible_message( \
"\blue [user] starts to fix part of the microwave.", \
"\blue You start to fix part of the microwave." \
)
if (do_after(user,20))
user.visible_message( \
"\blue [user] fixes the microwave.", \
"\blue You have fixed the microwave." \
)
src.icon_state = "mw"
src.broken = 0 // Fix it!
src.dirty = 0 // just to be sure
src.flags = OPENCONTAINER
return 0 //to use some fuel
else
user << "\red It's broken!"
return 1
else if(istype(O, /obj/item/weapon/reagent_containers/spray/))
var/obj/item/weapon/reagent_containers/spray/clean_spray = O
if(clean_spray.reagents.has_reagent("cleaner",clean_spray.amount_per_transfer_from_this))
clean_spray.reagents.remove_reagent("cleaner",clean_spray.amount_per_transfer_from_this,1)
playsound(loc, 'sound/effects/spray3.ogg', 50, 1, -6)
user.visible_message( \
"\blue [user] has cleaned the microwave.", \
"\blue You have cleaned the microwave." \
)
src.dirty = 0 // It's clean!
src.broken = 0 // just to be sure
src.icon_state = "mw"
src.flags = OPENCONTAINER
src.updateUsrDialog()
return 1 // Disables the after-attack so we don't spray the floor/user.
else
user << "\red You need more space cleaner!"
return 1
else if(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 microwave.", \
"\blue You start to clean the microwave." \
)
if (do_after(user,20))
user.visible_message( \
"\blue [user] has cleaned the microwave.", \
"\blue You have cleaned the microwave." \
)
src.dirty = 0 // It's clean!
src.broken = 0 // just to be sure
src.icon_state = "mw"
src.flags = OPENCONTAINER
else if(src.dirty==100) // The microwave is all dirty so can't be used!
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."
return 1
src.updateUsrDialog()
/obj/machinery/microwave/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/microwave/attack_ai(mob/user as mob)
return 0
/obj/machinery/microwave/attack_hand(mob/user as mob)
user.set_machine(src)
interact(user)
/*******************
* Microwave Menu
********************/
/obj/machinery/microwave/interact(mob/user as mob) // The microwave Menu
if(panel_open || !anchored)
return
var/dat = "<div class='statusDisplay'>"
if(src.broken > 0)
dat += "ERROR: 09734014-A2379-D18746 --Bad memory<BR>Contact your operator or use command line to rebase memory ///git checkout {HEAD} -a commit pull --rebase push {*NEW HEAD*}</div>" //Thats how all the git fiddling looks to me
else if(src.operating)
dat += "Microwaving in progress!<BR>Please wait...!</div>"
else if(src.dirty==100)
dat += "ERROR: >> 0 --Responce input zero<BR>Contact your operator of the device manifactor support.</div>"
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 = "Donk Pockets"
items_measures[display_name] = "donk pocket"
items_measures_p[display_name] = "donk pockets"
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 += "[capitalize(O)]: [N] [lowertext(O)]\s<BR>"
else
if (N==1)
dat += "[capitalize(O)]: [N] [items_measures[O]]<BR>"
else
dat += "[capitalize(O)]: [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 = "hot sauce"
if (R.id == "frostoil")
display_name = "cold sauce"
dat += "[display_name]: [R.volume] unit\s<BR>"
if (items_counts.len==0 && reagents.reagent_list.len==0)
dat += "The microwave is empty.</div>"
else
dat = "<h3>Ingredients:</h3>[dat]</div>"
dat += "<A href='?src=\ref[src];action=cook'>Turn on</A>"
dat += "<A href='?src=\ref[src];action=dispose'>Eject ingredients</A>"
var/datum/browser/popup = new(user, "microwave", name, 300, 300)
popup.set_content(dat)
popup.open()
return
/***********************************
* Microwave Menu Handling/Cooking
************************************/
/obj/machinery/microwave/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/microwave/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/microwave/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/microwave/proc/start()
src.visible_message("\blue The microwave turns on.", "\blue You hear a microwave.")
src.operating = 1
src.icon_state = "mw1"
src.updateUsrDialog()
/obj/machinery/microwave/proc/abort()
src.operating = 0 // Turn it off again aferwards
src.icon_state = "mw"
src.updateUsrDialog()
/obj/machinery/microwave/proc/stop()
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
src.operating = 0 // Turn it off again aferwards
src.icon_state = "mw"
src.updateUsrDialog()
/obj/machinery/microwave/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 microwave contents."
src.updateUsrDialog()
/obj/machinery/microwave/proc/muck_start()
playsound(src.loc, 'sound/effects/splat.ogg', 50, 1) // Play a splat sound
src.icon_state = "mwbloody1" // Make it look dirty!!
/obj/machinery/microwave/proc/muck_finish()
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
src.visible_message("\red The microwave 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 = "mwbloody" // Make it look dirty too
src.operating = 0 // Turn it off again aferwards
src.updateUsrDialog()
/obj/machinery/microwave/proc/broke()
var/datum/effect/effect/system/spark_spread/s = new
s.set_up(2, 1, src)
s.start()
src.icon_state = "mwb" // Make it look all busted up and shit
src.visible_message("\red The microwave 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/microwave/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)
qdel(O)
src.reagents.clear_reagents()
ffuu.reagents.add_reagent("carbon", amount)
ffuu.reagents.add_reagent("toxin", amount/10)
return ffuu
/obj/machinery/microwave/Topic(href, href_list)
if(..() || panel_open)
return
usr.set_machine(src)
if(src.operating)
updateUsrDialog()
return
switch(href_list["action"])
if ("cook")
cook()
if ("dispose")
dispose()
updateUsrDialog()
return
@@ -0,0 +1,52 @@
/obj/machinery/monkey_recycler
name = "monkey recycler"
desc = "A machine used for recycling dead monkeys into monkey cubes. It requires 5 monkeys per cube."
icon = 'icons/obj/kitchen.dmi'
icon_state = "grinder"
layer = 2.9
density = 1
anchored = 1
use_power = 1
idle_power_usage = 5
active_power_usage = 50
var/grinded = 0
/obj/machinery/monkey_recycler/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(default_unfasten_wrench(user, O))
return
if (src.stat != 0) //NOPOWER etc
return
if (istype(O, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = O
var/grabbed = G.affecting
if(istype(grabbed, /mob/living/carbon/monkey))
var/mob/living/carbon/monkey/target = grabbed
if(target.stat == 0)
user << "\red The monkey is struggling far too much to put it in the recycler."
else
user.drop_item()
qdel(target)
user << "\blue You stuff the monkey in the machine."
playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1)
use_power(500)
src.grinded++
user << "\blue The machine now has [grinded] monkey\s worth of material stored."
else
user << "\red The machine only accepts monkeys!"
return
/obj/machinery/monkey_recycler/attack_hand(var/mob/user as mob)
if (src.stat != 0) //NOPOWER etc
return
if(grinded >= 5)
user << "\blue The machine hisses loudly as it condenses the grinded monkey meat. After a moment, it dispenses a brand new monkey cube."
playsound(src.loc, 'sound/machines/hiss.ogg', 50, 1)
grinded -= 5
new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped(src.loc)
user << "\blue The machine's display flashes that it has [grinded] monkeys worth of material left."
else
user << "\red The machine needs at least 5 monkeys worth of material to produce a monkey cube. It only has [grinded]."
return
@@ -0,0 +1,175 @@
/obj/machinery/processor
name = "food processor"
desc = "An industrial grinder used to process meat and other foods. Keep hands clear of intake area while operating."
icon = 'icons/obj/kitchen.dmi'
icon_state = "processor"
layer = 2.9
density = 1
anchored = 1
var/broken = 0
var/processing = 0
use_power = 1
idle_power_usage = 5
active_power_usage = 50
/datum/food_processor_process
var/input
var/output
var/time = 40
proc/process(loc, what)
if (src.output && loc)
new src.output(loc)
if (what)
qdel(what) // Note to self: Make this safer
/* objs */
meat
input = /obj/item/weapon/reagent_containers/food/snacks/meat
output = /obj/item/weapon/reagent_containers/food/snacks/faggot
potato
input = /obj/item/weapon/reagent_containers/food/snacks/grown/potato
output = /obj/item/weapon/reagent_containers/food/snacks/fries
carrot
input = /obj/item/weapon/reagent_containers/food/snacks/grown/carrot
output = /obj/item/weapon/reagent_containers/food/snacks/carrotfries
soybeans
input = /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans
output = /obj/item/weapon/reagent_containers/food/snacks/soydope
/* mobs */
mob
process(loc, what)
..()
slime
process(loc, what)
var/mob/living/carbon/slime/S = what
var/C = S.cores
if(S.stat != DEAD)
S.loc = loc
S.visible_message("\blue [C] crawls free of the processor!")
return
for(var/i = 1, i <= C, i++)
new S.coretype(loc)
feedback_add_details("slime_core_harvested","[replacetext(S.colour," ","_")]")
..()
input = /mob/living/carbon/slime
output = null
monkey
process(loc, what)
var/mob/living/carbon/monkey/O = what
if (O.client) //grief-proof
O.loc = loc
O.visible_message("\blue Suddenly [O] jumps out from the processor!", \
"You jump out from the processor", \
"You hear chimpering")
return
var/obj/item/weapon/reagent_containers/glass/bucket/bucket_of_blood = new(loc)
var/datum/reagent/blood/B = new()
B.holder = bucket_of_blood
B.volume = 70
//set reagent data
B.data["donor"] = O
for(var/datum/disease/D in O.viruses)
if(D.spread_type != SPECIAL)
B.data["viruses"] += D.Copy()
if(check_dna_integrity(O))
B.data["blood_DNA"] = copytext(O.dna.unique_enzymes,1,0)
if(O.resistances&&O.resistances.len)
B.data["resistances"] = O.resistances.Copy()
bucket_of_blood.reagents.reagent_list += B
bucket_of_blood.reagents.update_total()
bucket_of_blood.on_reagent_change()
//bucket_of_blood.reagents.handle_reactions() //blood doesn't react
..()
input = /mob/living/carbon/monkey
output = null
/obj/machinery/processor/proc/select_recipe(var/X)
for (var/Type in typesof(/datum/food_processor_process) - /datum/food_processor_process - /datum/food_processor_process/mob)
var/datum/food_processor_process/P = new Type()
if (!istype(X, P.input))
continue
return P
return 0
/obj/machinery/processor/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(src.processing)
user << "\red The processor is in the process of processing."
return 1
if(src.contents.len > 0) //TODO: several items at once? several different items?
user << "\red Something is already in the processing chamber."
return 1
if(default_unfasten_wrench(user, O))
return
var/what = O
if (istype(O, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = O
what = G.affecting
var/datum/food_processor_process/P = select_recipe(what)
if (!P)
user << "\red That probably won't blend."
return 1
user.visible_message("[user] put [what] into [src].", \
"You put the [what] into [src].")
user.drop_item()
what:loc = src
return
/obj/machinery/processor/attack_hand(var/mob/user as mob)
if (src.stat != 0) //NOPOWER etc
return
if(src.processing)
user << "\red The processor is in the process of processing."
return 1
if(src.contents.len == 0)
user << "\red The processor is empty."
return 1
for(var/O in src.contents)
var/datum/food_processor_process/P = select_recipe(O)
if (!P)
log_admin("DEBUG: [O] in processor havent suitable recipe. How do you put it in?") //-rastaf0
continue
src.processing = 1
user.visible_message("\blue [user] turns on \a [src].", \
"You turn on \a [src].", \
"You hear a food processor")
playsound(src.loc, 'sound/machines/blender.ogg', 50, 1)
use_power(500)
sleep(P.time)
P.process(src.loc, O)
src.processing = 0
src.visible_message("\blue \the [src] finished processing.")
/obj/machinery/processor/verb/eject()
set category = "Object"
set name = "Eject Contents"
set src in oview(1)
if (usr.stat != 0)
return
src.empty()
add_fingerprint(usr)
return
/obj/machinery/processor/proc/empty()
for (var/obj/O in src)
O.loc = src.loc
for (var/mob/M in src)
M.loc = src.loc
return
@@ -0,0 +1,349 @@
// -------------------------
// SmartFridge. Much todo
// -------------------------
/obj/machinery/smartfridge
name = "smartfridge"
icon = 'icons/obj/vending.dmi'
icon_state = "smartfridge"
layer = 2.9
density = 1
anchored = 1
use_power = 1
idle_power_usage = 5
active_power_usage = 100
flags = NOREACT
var/global/max_n_of_items = 999 // Sorry but the BYOND infinite loop detector doesn't like things over 1000.
var/icon_on = "smartfridge"
var/icon_off = "smartfridge-off"
var/item_quants = list()
/obj/machinery/smartfridge/power_change()
..()
update_icon()
/obj/machinery/smartfridge/update_icon()
if(!stat)
icon_state = icon_on
else
icon_state = icon_off
/*******************
* Item Adding
********************/
/obj/machinery/smartfridge/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(default_unfasten_wrench(user, O))
power_change()
return
if(stat)
return 0
if(contents.len >= max_n_of_items)
user << "<span class='notice'>\The [src] is full.</span>"
return 0
if(accept_check(O))
load(O)
user.visible_message("<span class='notice'>[user] has added \the [O] to \the [src].", "<span class='notice'>You add \the [O] to \the [src].")
updateUsrDialog()
return 1
var/loaded = 0
if(istype(O, /obj/item/weapon/storage/bag))
var/obj/item/weapon/storage/P = O
for(var/obj/G in P.contents)
if(contents.len >= max_n_of_items)
break
if(accept_check(G))
load(G)
loaded++
else
user << "<span class='notice'>\The [src] smartly refuses [O].</span>"
updateUsrDialog()
return 0
// this is a little backwards but it avoids duplication.
// this code follows storage items and trays only.
if(loaded)
if(contents.len >= max_n_of_items)
user.visible_message("<span class='notice'>[user] loads \the [src] with \the [O].</span>", \
"<span class='notice'>You fill \the [src] with \the [O].</span>")
else
user.visible_message("<span class='notice'>[user] loads \the [src] with \the [O].</span>", \
"<span class='notice'>You load \the [src] with \the [O].</span>")
if(O.contents.len > 0)
user << "<span class='notice'>Some items are refused.</span>"
else
user << "There is nothing in [O] to put in [src]."
return 0
updateUsrDialog()
return 1
/obj/machinery/smartfridge/proc/accept_check(var/obj/item/O as obj)
if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown/) || istype(O,/obj/item/seeds/))
return 1
return 0
/obj/machinery/smartfridge/proc/load(var/obj/item/O as obj)
if(istype(O.loc,/mob))
var/mob/M = O.loc
if(!M.unEquip(O))
usr << "<span class='notice'>\the [O] is stuck to your hand, you cannot put it in \the [src]</span>"
return
else if(istype(O.loc,/obj/item/weapon/storage))
var/obj/item/weapon/storage/S = O.loc
S.remove_from_storage(O,src)
O.loc = src
var/n = O.name
if(item_quants[n])
item_quants[n]++
else
item_quants[n] = 1
item_quants = sortAssoc(item_quants)
/obj/machinery/smartfridge/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/smartfridge/attack_ai(mob/user as mob)
return 0
/obj/machinery/smartfridge/attack_hand(mob/user as mob)
user.set_machine(src)
interact(user)
/*******************
* SmartFridge Menu
********************/
/obj/machinery/smartfridge/interact(mob/user as mob)
if(stat)
return 0
var/dat = "<TT><b>Select an item:</b><br>"
if (contents.len == 0)
dat += "<font color = 'red'>No product loaded!</font>"
else
for (var/O in item_quants)
if(item_quants[O] > 0)
var/N = item_quants[O]
var/itemName = sanitize(O)
dat += "<FONT color = 'blue'><B>[capitalize(O)]</B>:"
dat += " [N] </font>"
dat += "<a href='byond://?src=\ref[src];vend=[itemName];amount=1'>Vend</A> "
if(N > 5)
dat += "(<a href='byond://?src=\ref[src];vend=[itemName];amount=5'>x5</A>)"
if(N > 10)
dat += "(<a href='byond://?src=\ref[src];vend=[itemName];amount=10'>x10</A>)"
if(N > 25)
dat += "(<a href='byond://?src=\ref[src];vend=[itemName];amount=25'>x25</A>)"
if(N > 1)
dat += "(<a href='?src=\ref[src];vend=[itemName];amount=[N]'>All</A>)"
dat += "<br>"
dat += "</TT>"
user << browse("<HEAD><TITLE>[src] supplies</TITLE></HEAD><TT>[dat]</TT>", "window=smartfridge")
onclose(user, "smartfridge")
return dat
/obj/machinery/smartfridge/Topic(var/href, var/list/href_list)
if(..())
return
usr.set_machine(src)
var/N = href_list["vend"]
var/amount = text2num(href_list["amount"])
if(item_quants[N] <= 0) // Sanity check, there are probably ways to press the button when it shouldn't be possible.
return
item_quants[N] = max(item_quants[N] - amount, 0)
var/i = amount
for(var/obj/O in contents)
if(O.name == N)
O.loc = src.loc
i--
if(i <= 0)
break
src.updateUsrDialog()
return
// ----------------------------
// Drying Rack 'smartfridge'
// ----------------------------
/obj/machinery/smartfridge/drying_rack
name = "drying rack"
icon = 'icons/obj/hydroponics.dmi'
icon_state = "drying_rack_on"
use_power = 1
idle_power_usage = 5
active_power_usage = 200
icon_on = "drying_rack_on"
icon_off = "drying_rack"
var/drying = 0
/obj/machinery/smartfridge/drying_rack/interact(mob/user as mob)
var/dat = ..()
if(dat)
dat += "<br>"
dat += "<a href='byond://?src=\ref[src];dry=1'>Toggle Drying</A> "
user << browse("<HEAD><TITLE>[src] supplies</TITLE></HEAD><TT>[dat]</TT>", "window=smartfridge")
onclose(user, "smartfridge")
/obj/machinery/smartfridge/drying_rack/Topic(var/href, var/list/href_list)
..()
if(href_list["dry"])
toggle_drying()
src.updateUsrDialog()
/obj/machinery/smartfridge/drying_rack/power_change()
if(powered() && anchored)
stat &= ~NOPOWER
else
stat |= NOPOWER
toggle_drying(1)
update_icon()
obj/machinery/smartfridge/drying_rack/load() //For updating the filled overlay
..()
update_icon()
/obj/machinery/smartfridge/drying_rack/update_icon()
..()
overlays = 0
if(drying)
overlays += "drying_rack_drying"
if(contents.len)
overlays += "drying_rack_filled"
/obj/machinery/smartfridge/drying_rack/process()
..()
if(drying)
if(rack_dry())//no need to update unless something got dried
update_icon()
/obj/machinery/smartfridge/drying_rack/accept_check(var/obj/item/O as obj)
if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/))
var/obj/item/weapon/reagent_containers/food/snacks/S = O
if(S.dried_type)
return 1
return 0
/obj/machinery/smartfridge/drying_rack/proc/toggle_drying(var/forceoff = 0)
if(drying || forceoff)
drying = 0
use_power = 1
else
drying = 1
use_power = 2
update_icon()
/obj/machinery/smartfridge/drying_rack/proc/rack_dry()
for(var/obj/item/weapon/reagent_containers/food/snacks/S in contents)
if(S.dried_type == S.type)//if the dried type is the same as the object's type, don't bother creating a whole new item...
S.color = "#ad7257"
S.dry = 1
S.loc = get_turf(src)
else
var/dried = S.dried_type
new dried(src.loc)
qdel(S)
return 1
return 0
/obj/machinery/smartfridge/drying_rack/emp_act(severity)
..()
atmos_spawn_air(SPAWN_HEAT, 75)
// ----------------------------
// Bar drink smartfridge
// ----------------------------
/obj/machinery/smartfridge/drinks
name = "drink showcase"
desc = "A refrigerated storage unit for tasty tasty alcohol."
/obj/machinery/smartfridge/drinks/accept_check(var/obj/item/O as obj)
if(!istype(O,/obj/item/weapon/reagent_containers) || !O.reagents || !O.reagents.reagent_list.len)
return 0
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))
return 1
// -------------------------------------
// Xenobiology Slime-Extract Smartfridge
// -------------------------------------
/obj/machinery/smartfridge/extract
name = "smart slime extract storage"
desc = "A refrigerated storage unit for slime extracts."
/obj/machinery/smartfridge/extract/accept_check(var/obj/item/O as obj)
if(istype(O,/obj/item/slime_extract))
return 1
if(istype(O,/obj/item/device/slime_scanner))
return 1
return 0
/obj/machinery/smartfridge/extract/New()
..()
var/obj/item/device/slime_scanner/I = new /obj/item/device/slime_scanner(src)
load(I)
var/obj/item/device/slime_scanner/T = new /obj/item/device/slime_scanner(src)
load(T)
// -----------------------------
// Chemistry Medical Smartfridge
// -----------------------------
/obj/machinery/smartfridge/chemistry
name = "smart chemical storage"
desc = "A refrigerated storage unit for medicine storage."
var/list/spawn_meds = list(/obj/item/weapon/reagent_containers/pill/inaprovaline = 12,/obj/item/weapon/reagent_containers/pill/antitox = 1,
/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline = 1, /obj/item/weapon/reagent_containers/glass/bottle/antitoxin = 1)
/obj/machinery/smartfridge/chemistry/New()
..()
for(var/typekey in spawn_meds)
var/amount = spawn_meds[typekey]
if(isnull(amount)) amount = 1
while(amount)
var/obj/item/I = new typekey(src)
load(I)
amount--
/obj/machinery/smartfridge/chemistry/accept_check(var/obj/item/O as obj)
if(istype(O,/obj/item/weapon/storage/pill_bottle))
if(O.contents.len)
for(var/obj/item/I in O)
if(!accept_check(I))
return 0
return 1
return 0
if(!istype(O,/obj/item/weapon/reagent_containers))
return 0
if(istype(O,/obj/item/weapon/reagent_containers/pill)) // empty pill prank ok
return 1
if(!O.reagents || !O.reagents.reagent_list.len) // other empty containers not accepted
return 0
if(istype(O,/obj/item/weapon/reagent_containers/syringe) || istype(O,/obj/item/weapon/reagent_containers/glass/bottle) || istype(O,/obj/item/weapon/reagent_containers/glass/beaker) || istype(O,/obj/item/weapon/reagent_containers/spray))
return 1
return 0
// ----------------------------
// Virology Medical Smartfridge
// ----------------------------
/obj/machinery/smartfridge/chemistry/virology
name = "smart virus storage"
desc = "A refrigerated storage unit for volatile sample storage."
spawn_meds = list(/obj/item/weapon/reagent_containers/syringe/antiviral = 4, /obj/item/weapon/reagent_containers/glass/bottle/cold = 1, /obj/item/weapon/reagent_containers/glass/bottle/flu_virion = 1, /obj/item/weapon/reagent_containers/glass/bottle/mutagen = 1, /obj/item/weapon/reagent_containers/glass/bottle/plasma = 1, /obj/item/weapon/reagent_containers/glass/bottle/synaptizine = 1)
@@ -0,0 +1,539 @@
// see code/datums/recipe.dm
////////////////////////////////////////////////EGG RECIPE's////////////////////////////////////////////////
/datum/recipe/egg/fried
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/egg/boiled
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg
)
result = /obj/item/weapon/reagent_containers/food/snacks/boiledegg
/datum/recipe/egg/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/egg/chocolate
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,
)
result = /obj/item/weapon/reagent_containers/food/snacks/chocolateegg
/datum/recipe/egg/benedict
items = list(
/obj/item/weapon/reagent_containers/food/snacks/friedegg,
/obj/item/weapon/reagent_containers/food/snacks/meatsteak,
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
)
result = /obj/item/weapon/reagent_containers/food/snacks/benedict
////////////////////////////////////////////////DONUTS////////////////////////////////////////////////
/datum/recipe/donut
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg
)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/normal
/datum/recipe/donut/jelly
reagents = list("berryjuice" = 5, "flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg
)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly
/datum/recipe/donut/jelly/slime
reagents = list("slimejelly" = 5, "flour" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly
/datum/recipe/donut/jelly/cherry
reagents = list("cherryjelly" = 5, "flour" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly
/datum/recipe/chaosdonut
reagents = list("frostoil" = 5, "capsaicin" = 5, "flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg
)
result = /obj/item/weapon/reagent_containers/food/snacks/donut/chaos
////////////////////////////////////////////////WAFFLES////////////////////////////////////////////////
/datum/recipe/waffles
reagents = list("flour" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/egg,
)
result = /obj/item/weapon/reagent_containers/food/snacks/waffles
/datum/recipe/waffles/soylenviridians
reagents = list("flour" = 15)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/soybeans
)
result = /obj/item/weapon/reagent_containers/food/snacks/soylenviridians
/datum/recipe/waffles/soylentgreen
reagents = list("flour" = 15)
items = list(
/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/soylentgreen
/datum/recipe/waffles/roffle
reagents = list("mushroomhallucinogen" = 5, "flour" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/egg,
)
result = /obj/item/weapon/reagent_containers/food/snacks/rofflewaffles
////////////////////////////////////////////////DONKPOCCKETS////////////////////////////////////////////////
/datum/recipe/donkpocket
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/faggot,
)
result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL
proc/warm_up(var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked)
being_cooked.warm = 1
being_cooked.reagents.add_reagent("tricordrazine", 5)
being_cooked.bitesize = 6
being_cooked.name = "Warm " + being_cooked.name
being_cooked.cooltime()
make_food(var/obj/container as obj)
var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked = ..(container)
warm_up(being_cooked)
return being_cooked
/datum/recipe/donkpocket/warm
reagents = list() //This is necessary since this is a child object of the above recipe and we don't want donk pockets to need flour
items = list(
/obj/item/weapon/reagent_containers/food/snacks/donkpocket
)
result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL
make_food(var/obj/container as obj)
var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked = locate() in container
if(being_cooked && !being_cooked.warm)
warm_up(being_cooked)
return being_cooked
////////////////////////////////////////////////MUFFINS////////////////////////////////////////////////
/datum/recipe/muffin
reagents = list("milk" = 5, "flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg,
)
result = /obj/item/weapon/reagent_containers/food/snacks/muffin
/datum/recipe/muffin/berry
reagents = list("milk" = 5, "flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/grown/berries
)
result = /obj/item/weapon/reagent_containers/food/snacks/muffin/berry
/datum/recipe/muffin/booberry
reagents = list("milk" = 5, "flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/grown/berries,
/obj/item/weapon/ectoplasm
)
result = /obj/item/weapon/reagent_containers/food/snacks/muffin/booberry
/datum/recipe/muffin/chawanmushi
reagents = list("water" = 5, "soysauce" = 5)
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/grown/mushroom/chanterelle,
)
result = /obj/item/weapon/reagent_containers/food/snacks/chawanmushi
////////////////////////////////////////////////KEBABS NO REMOVE////////////////////////////////////////////////
/datum/recipe/kebab/human
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/kebab
/datum/recipe/kebab/monkey
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/monkeykebab
/datum/recipe/kebab/tofu
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/tofukebab
////////////////////////////////////////////////FISH////////////////////////////////////////////////
/datum/recipe/carpmeat
reagents = list("carpotoxin" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tofu
)
result = /obj/item/weapon/reagent_containers/food/snacks/carpmeat/imitation
/datum/recipe/cubancarp
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/chili,
/obj/item/weapon/reagent_containers/food/snacks/carpmeat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/cubancarp
/datum/recipe/fishandchips
items = list(
/obj/item/weapon/reagent_containers/food/snacks/fries,
/obj/item/weapon/reagent_containers/food/snacks/carpmeat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/fishandchips
/datum/recipe/fishfingers
reagents = list("flour" = 10)
items = list(
/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/sashimi
reagents = list("soysauce" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/spidereggs,
/obj/item/weapon/reagent_containers/food/snacks/carpmeat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sashimi
////////////////////////////////////////////////PIZZA!!!////////////////////////////////////////////////
/datum/recipe/pizza/margherita
reagents = list("flour" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita
/datum/recipe/pizza/meat
reagents = list("flour" = 10)
items = list(
/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/pizza/mushroom
reagents = list("flour" = 10)
items = list(
/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,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/mushroompizza
/datum/recipe/pizza/vegetable
reagents = list("flour" = 10)
items = list(
/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,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza
////////////////////////////////////////////////SALADS////////////////////////////////////////////////
/datum/recipe/salad/herb
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,
/obj/item/weapon/reagent_containers/food/snacks/grown/apple,
)
result = /obj/item/weapon/reagent_containers/food/snacks/herbsalad
make_food(var/obj/container as obj)
var/obj/item/weapon/reagent_containers/food/snacks/herbsalad/being_cooked = ..(container)
being_cooked.reagents.del_reagent("toxin")
return being_cooked
/datum/recipe/salad/aesir
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus,
/obj/item/weapon/reagent_containers/food/snacks/grown/apple/gold,
)
result = /obj/item/weapon/reagent_containers/food/snacks/aesirsalad
/datum/recipe/salad/valid
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,
/obj/item/weapon/reagent_containers/food/snacks/grown/potato,
/obj/item/weapon/reagent_containers/food/snacks/faggot,
)
result = /obj/item/weapon/reagent_containers/food/snacks/validsalad
make_food(var/obj/container as obj)
var/obj/item/weapon/reagent_containers/food/snacks/validsalad/being_cooked = ..(container)
being_cooked.reagents.del_reagent("toxin")
return being_cooked
////////////////////////////////////////////////FOOD ADDITTIONS////////////////////////////////////////////////
/datum/recipe/wrap
reagents = list("soysauce" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/friedegg,
/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage,
)
result = /obj/item/weapon/reagent_containers/food/snacks/wrap
/datum/recipe/beans
reagents = list("ketchup" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/soybeans,
/obj/item/weapon/reagent_containers/food/snacks/grown/soybeans,
)
result = /obj/item/weapon/reagent_containers/food/snacks/beans
/datum/recipe/hotdog
reagents = list("ketchup" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
/obj/item/weapon/reagent_containers/food/snacks/sausage,
)
result = /obj/item/weapon/reagent_containers/food/snacks/hotdog
/datum/recipe/meatbun
reagents = list("soysauce" = 5, "flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/faggot,
/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage,
)
result = /obj/item/weapon/reagent_containers/food/snacks/meatbun
/datum/recipe/sugarcookie
reagents = list("flour" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sugarcookie
/datum/recipe/boiledspiderleg
reagents = list("water" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/spiderleg,
)
result = /obj/item/weapon/reagent_containers/food/snacks/boiledspiderleg
/datum/recipe/spidereggsham
reagents = list("sodiumchloride" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/spidereggs,
/obj/item/weapon/reagent_containers/food/snacks/spidermeat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/spidereggsham
////////////////////////////////////////////////MISC RECIPE's////////////////////////////////////////////////
/datum/recipe/cornedbeef
reagents = list("sodiumchloride" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage,
/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage,
)
result = /obj/item/weapon/reagent_containers/food/snacks/cornedbeef
/datum/recipe/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/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/cheesyfries
items = list(
/obj/item/weapon/reagent_containers/food/snacks/fries,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
)
result = /obj/item/weapon/reagent_containers/food/snacks/cheesyfries
/datum/recipe/popcorn
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/corn
)
result = /obj/item/weapon/reagent_containers/food/snacks/popcorn
/datum/recipe/fortunecookie
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/paper,
)
result = /obj/item/weapon/reagent_containers/food/snacks/fortunecookie
/datum/recipe/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
/datum/recipe/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/spacylibertyduff
reagents = list("water" = 5, "vodka" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap,
)
result = /obj/item/weapon/reagent_containers/food/snacks/spacylibertyduff
/datum/recipe/amanitajelly
reagents = list("water" = 5, "vodka" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita,
)
result = /obj/item/weapon/reagent_containers/food/snacks/amanitajelly
make_food(var/obj/container as obj)
var/obj/item/weapon/reagent_containers/food/snacks/amanitajelly/being_cooked = ..(container)
being_cooked.reagents.del_reagent("amatoxin")
return being_cooked
/datum/recipe/enchiladas
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/grown/chili,
/obj/item/weapon/reagent_containers/food/snacks/grown/chili,
/obj/item/weapon/reagent_containers/food/snacks/grown/corn,
)
result = /obj/item/weapon/reagent_containers/food/snacks/enchiladas
/datum/recipe/stew
reagents = list("water" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/grown/potato,
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,
/obj/item/weapon/reagent_containers/food/snacks/grown/eggplant,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom,
)
result = /obj/item/weapon/reagent_containers/food/snacks/stew
/datum/recipe/stewedsoymeat
items = list(
/obj/item/weapon/reagent_containers/food/snacks/soydope,
/obj/item/weapon/reagent_containers/food/snacks/soydope,
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
)
result = /obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat
/datum/recipe/poppypretzel
reagents = list("flour" = 5)
items = list(
/obj/item/seeds/poppyseed,
/obj/item/weapon/reagent_containers/food/snacks/egg,
)
result = /obj/item/weapon/reagent_containers/food/snacks/poppypretzel
/datum/recipe/candiedapple
reagents = list("water" = 5, "sugar" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/apple
)
result = /obj/item/weapon/reagent_containers/food/snacks/candiedapple
/datum/recipe/sausage
items = list(
/obj/item/weapon/reagent_containers/food/snacks/faggot,
/obj/item/weapon/reagent_containers/food/snacks/meat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sausage
/datum/recipe/plumphelmetbiscuit
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet,
)
result = /obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit
/datum/recipe/appletart
reagents = list("sugar" = 5, "milk" = 5, "flour" = 15)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/grown/apple/gold,
)
result = /obj/item/weapon/reagent_containers/food/snacks/appletart
/datum/recipe/cracker
reagents = list("flour" = 5, "sodiumchloride" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/cracker
@@ -0,0 +1,78 @@
// see code/datums/recipe.dm
////////////////////////////////////////////////BREAD////////////////////////////////////////////////
/datum/recipe/bread
reagents = list("flour" = 15)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/store/bread
/datum/recipe/bread/meat
reagents = list("flour" = 15)
items = list(
/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/store/meatbread
/datum/recipe/bread/xenomeat
reagents = list("flour" = 15)
items = list(
/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/store/xenomeatbread
/datum/recipe/bread/spidermeat
reagents = list("flour" = 15)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/spidermeat,
/obj/item/weapon/reagent_containers/food/snacks/spidermeat,
/obj/item/weapon/reagent_containers/food/snacks/spidermeat,
/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/store/spidermeatbread
/datum/recipe/bread/banana
reagents = list("milk" = 5, "flour" = 15)
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/egg,
/obj/item/weapon/reagent_containers/food/snacks/grown/banana,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/store/bananabread
/datum/recipe/bread/tofu
reagents = list("flour" = 15)
items = list(
/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/store/tofubread
/datum/recipe/bread/creamcheese
reagents = list("flour" = 15)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/store/creamcheesebread
/datum/recipe/bread/baguette
reagents = list("sodiumchloride" = 1, "blackpepper" = 1, "flour" = 10)
result = /obj/item/weapon/reagent_containers/food/snacks/baguette
@@ -0,0 +1,194 @@
// see code/datums/recipe.dm
////////////////////////////////////////////////BURGERS////////////////////////////////////////////////
/datum/recipe/burger/human
make_food(var/obj/container as obj)
var/human_name
var/human_job
for (var/obj/item/weapon/reagent_containers/food/snacks/meat/human/HM in container)
if (!HM.subjectname)
continue
human_name = HM.subjectname
human_job = HM.subjectjob
break
var/lastname_index = findtext(human_name, " ")
if (lastname_index)
human_name = copytext(human_name,lastname_index+1)
var/obj/item/weapon/reagent_containers/food/snacks/burger/human/HB = ..(container)
HB.name = human_name+HB.name
HB.job = human_job
return HB
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat/human
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/human
/datum/recipe/burger/plain
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat //do not place this recipe before /datum/recipe/humanburger
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger
/datum/recipe/burger/appendix
reagents = list("flour" = 5)
items = list(
/obj/item/organ/appendix
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/appendix
/datum/recipe/burger/brain
reagents = list("flour" = 5)
items = list(
/obj/item/organ/brain
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/brain
/datum/recipe/burger/xeno
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/xenomeat
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/xeno
/datum/recipe/burger/fish
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/carpmeat
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/fish
/datum/recipe/burger/tofu
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tofu
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/tofu
/datum/recipe/burger/ghost
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/ectoplasm
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/ghost
/datum/recipe/burger/clown
reagents = list("flour" = 5)
items = list(
/obj/item/clothing/mask/gas/clown_hat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/clown
/datum/recipe/burger/mime
reagents = list("flour" = 5)
items = list(
/obj/item/clothing/mask/gas/mime
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/mime
/datum/recipe/burger/red
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/toy/crayon/red,
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/red
/datum/recipe/burger/orange
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/toy/crayon/orange,
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/orange
/datum/recipe/burger/yellow
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/toy/crayon/yellow,
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/yellow
/datum/recipe/burger/green
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/toy/crayon/green,
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/green
/datum/recipe/burger/blue
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/toy/crayon/blue,
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/blue
/datum/recipe/burger/purple
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/toy/crayon/purple,
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/purple
/datum/recipe/burger/spell
reagents = list("flour" = 5)
items = list(
/obj/item/clothing/head/wizard/fake,
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/spell
/datum/recipe/burger/spell
reagents = list("flour" = 5)
items = list(
/obj/item/clothing/head/wizard,
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/spell
/datum/recipe/burger/bigbite
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/meat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/bigbite
/datum/recipe/burger/superbite
reagents = list("sodiumchloride" = 5, "blackpepper" = 5, "flour" = 15)
items = list(
/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/meat,
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
/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/egg,
/obj/item/weapon/reagent_containers/food/snacks/egg,
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/superbite
/datum/recipe/burger/slime
reagents = list("slimejelly" = 5, "flour" = 15)
items = list()
result = /obj/item/weapon/reagent_containers/food/snacks/burger/jelly/slime
/datum/recipe/burger/jelly
reagents = list("cherryjelly" = 5, "flour" = 15)
items = list()
result = /obj/item/weapon/reagent_containers/food/snacks/burger/jelly/cherry
@@ -0,0 +1,110 @@
// see code/datums/recipe.dm
////////////////////////////////////////////////CAKE////////////////////////////////////////////////
/datum/recipe/cake/carrot
reagents = list("milk" = 5, "flour" = 15)
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/egg,
/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/store/carrotcake
/datum/recipe/cake/cheese
reagents = list("milk" = 5, "flour" = 15)
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/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/sliceable/store/cheesecake
/datum/recipe/cake/plain
reagents = list("milk" = 5, "flour" = 15)
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/egg,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/store/plaincake
/datum/recipe/cake/birthday
reagents = list("milk" = 5, "flour" = 15)
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/egg,
/obj/item/clothing/head/cakehat
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/store/birthdaycake
/datum/recipe/cake/apple
reagents = list("milk" = 5, "flour" = 15)
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/egg,
/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/store/applecake
/datum/recipe/cake/orange
reagents = list("milk" = 5, "flour" = 15)
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/egg,
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange,
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/store/orangecake
/datum/recipe/cake/lime
reagents = list("milk" = 5, "flour" = 15)
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/egg,
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime,
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/store/limecake
/datum/recipe/cake/lemon
reagents = list("milk" = 5, "flour" = 15)
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/egg,
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon,
/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon,
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/store/lemoncake
/datum/recipe/cake/chocolate
reagents = list("milk" = 5, "flour" = 15)
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/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/store/chocolatecake
/datum/recipe/cake/brain
reagents = list("milk" = 5, "flour" = 15)
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/egg,
/obj/item/organ/brain
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/store/braincake
@@ -0,0 +1,76 @@
// see code/datums/recipe.dm
////////////////////////////////////////////////PIES////////////////////////////////////////////////
/datum/recipe/pie
reagents = list("flour" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/banana,
)
result = /obj/item/weapon/reagent_containers/food/snacks/pie
/datum/recipe/pie/meat
reagents = list("flour" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/meatpie
/datum/recipe/pie/tofu
reagents = list("flour" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/tofu,
)
result = /obj/item/weapon/reagent_containers/food/snacks/tofupie
/datum/recipe/pie/xemeat
reagents = list("flour" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/xenomeat,
)
result = /obj/item/weapon/reagent_containers/food/snacks/xemeatpie
/datum/recipe/pie/cherry
reagents = list("flour" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/cherries,
)
result = /obj/item/weapon/reagent_containers/food/snacks/cherrypie
/datum/recipe/pie/berryclafoutis
reagents = list("flour" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/berries,
)
result = /obj/item/weapon/reagent_containers/food/snacks/berryclafoutis
/datum/recipe/pie/amanita
reagents = list("flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita,
)
result = /obj/item/weapon/reagent_containers/food/snacks/amanita_pie
/datum/recipe/pie/plump
reagents = list("flour" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet,
)
result = /obj/item/weapon/reagent_containers/food/snacks/plump_pie
/datum/recipe/pie/apple
reagents = list("flour" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/apple,
)
result = /obj/item/weapon/reagent_containers/food/snacks/applepie
/datum/recipe/pie/pumpkin
reagents = list("milk" = 5, "sugar" = 5, "flour" = 5)
items = list(
/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
@@ -0,0 +1,82 @@
// see code/datums/recipe.dm
////////////////////////////////////////////////SANDWICHES////////////////////////////////////////////////
/datum/recipe/sandwich
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meatsteak,
/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/sandwich
/datum/recipe/sandwich/toasted
items = list(
/obj/item/weapon/reagent_containers/food/snacks/sandwich
)
result = /obj/item/weapon/reagent_containers/food/snacks/toastedsandwich
/datum/recipe/sandwich/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/sandwich/twobread
reagents = list("wine" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
)
result = /obj/item/weapon/reagent_containers/food/snacks/twobread
/datum/recipe/sandwich/slime
reagents = list("slimejelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
)
result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/slime
/datum/recipe/sandwich/cherry
reagents = list("cherryjelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
)
result = /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry
/datum/recipe/sandwich/notasandwich
items = list(
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
/obj/item/clothing/mask/fakemoustache,
)
result = /obj/item/weapon/reagent_containers/food/snacks/notasandwich
/datum/recipe/sandwich/icecream
reagents = list("ice" = 5, "cream" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/icecream,
)
result = /obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich
////////////////////////////////////////////////TOAST////////////////////////////////////////////////
/datum/recipe/toast/slime
reagents = list("slimejelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
)
result = /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/slime
/datum/recipe/toast/jellied
reagents = list("cherryjelly" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/breadslice,
)
result = /obj/item/weapon/reagent_containers/food/snacks/jelliedtoast/cherry
@@ -0,0 +1,125 @@
// see code/datums/recipe.dm
////////////////////////////////////////////////SOUP////////////////////////////////////////////////
/datum/recipe/soup/meatball
reagents = list("water" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/faggot ,
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot,
/obj/item/weapon/reagent_containers/food/snacks/grown/potato,
)
result = /obj/item/weapon/reagent_containers/food/snacks/meatballsoup
/datum/recipe/soup/vegetable
reagents = list("water" = 10)
items = list(
/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/eggplant,
/obj/item/weapon/reagent_containers/food/snacks/grown/potato,
)
result = /obj/item/weapon/reagent_containers/food/snacks/vegetablesoup
/datum/recipe/soup/nettle
reagents = list("water" = 10)
items = list(
/obj/item/weapon/grown/nettle,
/obj/item/weapon/reagent_containers/food/snacks/grown/potato,
/obj/item/weapon/reagent_containers/food/snacks/egg,
)
result = /obj/item/weapon/reagent_containers/food/snacks/nettlesoup
/datum/recipe/soup/wish
reagents = list("water" = 20)
result= /obj/item/weapon/reagent_containers/food/snacks/wishsoup
/datum/recipe/soup/hotchili
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/grown/chili,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
)
result = /obj/item/weapon/reagent_containers/food/snacks/hotchili
/datum/recipe/soup/coldchili
items = list(
/obj/item/weapon/reagent_containers/food/snacks/meat,
/obj/item/weapon/reagent_containers/food/snacks/grown/icepepper,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
)
result = /obj/item/weapon/reagent_containers/food/snacks/coldchili
/datum/recipe/soup/tomato
reagents = list("water" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
)
result = /obj/item/weapon/reagent_containers/food/snacks/tomatosoup
/datum/recipe/soup/milo
reagents = list("water" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/soydope,
/obj/item/weapon/reagent_containers/food/snacks/soydope,
/obj/item/weapon/reagent_containers/food/snacks/tofu,
/obj/item/weapon/reagent_containers/food/snacks/tofu,
)
result = /obj/item/weapon/reagent_containers/food/snacks/milosoup
/datum/recipe/soup/blood
reagents = list("blood" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato/blood,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato/blood,
)
result = /obj/item/weapon/reagent_containers/food/snacks/bloodsoup
/datum/recipe/soup/slime
reagents = list("water" = 10, "slimejelly" = 5)
items = list(
)
result = /obj/item/weapon/reagent_containers/food/snacks/slimesoup
/datum/recipe/soup/clownstears
reagents = list("water" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/banana,
/obj/item/weapon/ore/clown,
)
result = /obj/item/weapon/reagent_containers/food/snacks/clownstears
/datum/recipe/soup/mystery
reagents = list("water" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/badrecipe,
/obj/item/weapon/reagent_containers/food/snacks/tofu,
/obj/item/weapon/reagent_containers/food/snacks/egg,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
)
result = /obj/item/weapon/reagent_containers/food/snacks/mysterysoup
/datum/recipe/soup/mushroom
reagents = list("water" = 5, "milk" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle,
)
result = /obj/item/weapon/reagent_containers/food/snacks/mushroomsoup
/datum/recipe/soup/beet
reagents = list("water" = 10)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/grown/whitebeet,
/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage,
)
result = /obj/item/weapon/reagent_containers/food/snacks/beetsoup
/datum/recipe/soup/monkeysdelight
reagents = list("sodiumchloride" = 1, "blackpepper" = 1, "flour" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/monkeycube,
/obj/item/weapon/reagent_containers/food/snacks/grown/banana,
)
result = /obj/item/weapon/reagent_containers/food/snacks/monkeysdelight
@@ -0,0 +1,59 @@
// see code/datums/recipe.dm
////////////////////////////////////////////////SPAGHETTI////////////////////////////////////////////////
/datum/recipe/spaghetti
reagents = list("flour" = 5)
result= /obj/item/weapon/reagent_containers/food/snacks/spaghetti
/datum/recipe/spaghetti/boiled
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/spaghetti,
)
result = /obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti
/datum/recipe/spaghetti/pastatomato
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/spaghetti,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato,
)
result = /obj/item/weapon/reagent_containers/food/snacks/pastatomato
/datum/recipe/spaghetti/copypasta
items = list(
/obj/item/weapon/reagent_containers/food/snacks/pastatomato,
/obj/item/weapon/reagent_containers/food/snacks/pastatomato,
)
result = /obj/item/weapon/reagent_containers/food/snacks/copypasta
/datum/recipe/spaghetti/meatball
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/spaghetti,
/obj/item/weapon/reagent_containers/food/snacks/faggot,
/obj/item/weapon/reagent_containers/food/snacks/faggot,
)
result = /obj/item/weapon/reagent_containers/food/snacks/meatballspaghetti
/datum/recipe/spaghetti/spesslaw
reagents = list("water" = 5)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/spaghetti,
/obj/item/weapon/reagent_containers/food/snacks/faggot,
/obj/item/weapon/reagent_containers/food/snacks/faggot,
/obj/item/weapon/reagent_containers/food/snacks/faggot,
/obj/item/weapon/reagent_containers/food/snacks/faggot,
)
result = /obj/item/weapon/reagent_containers/food/snacks/spesslaw
/datum/recipe/spaghetti/eggplantparm
items = list(
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
/obj/item/weapon/reagent_containers/food/snacks/grown/eggplant
)
result = /obj/item/weapon/reagent_containers/food/snacks/eggplantparm
File diff suppressed because it is too large Load Diff