@@ -0,0 +1,529 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// Drinks.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/obj/item/reagent_containers/food/drinks
|
||||
name = "drink"
|
||||
desc = "yummy"
|
||||
icon = 'icons/obj/drinks.dmi'
|
||||
icon_state = null
|
||||
lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
|
||||
reagent_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,15,20,25,30,50)
|
||||
volume = 50
|
||||
resistance_flags = NONE
|
||||
var/isGlass = TRUE //Whether the 'bottle' is made of glass or not so that milk cartons dont shatter when someone gets hit by it
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/on_reagent_change(changetype)
|
||||
if (gulp_size < 5)
|
||||
gulp_size = 5
|
||||
else
|
||||
gulp_size = max(round(reagents.total_volume / 5), 5)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/attack(mob/living/M, mob/user, def_zone)
|
||||
|
||||
if(!reagents || !reagents.total_volume)
|
||||
to_chat(user, "<span class='warning'>[src] is empty!</span>")
|
||||
return 0
|
||||
|
||||
if(!canconsume(M, user))
|
||||
return 0
|
||||
|
||||
if (!is_drainable())
|
||||
to_chat(user, "<span class='warning'>[src]'s lid hasn't been opened!</span>")
|
||||
return 0
|
||||
|
||||
if(M == user)
|
||||
user.visible_message("<span class='notice'>[user] swallows a gulp of [src].</span>", "<span class='notice'>You swallow a gulp of [src].</span>")
|
||||
if(HAS_TRAIT(M, TRAIT_VORACIOUS))
|
||||
M.changeNext_move(CLICK_CD_MELEE * 0.5) //chug! chug! chug!
|
||||
|
||||
else
|
||||
M.visible_message("<span class='danger'>[user] attempts to feed the contents of [src] to [M].</span>", "<span class='userdanger'>[user] attempts to feed the contents of [src] to [M].</span>")
|
||||
if(!do_mob(user, M))
|
||||
return
|
||||
if(!reagents || !reagents.total_volume)
|
||||
return // The drink might be empty after the delay, such as by spam-feeding
|
||||
M.visible_message("<span class='danger'>[user] feeds the contents of [src] to [M].</span>", "<span class='userdanger'>[user] feeds the contents of [src] to [M].</span>")
|
||||
log_combat(user, M, "fed", reagents.log_list())
|
||||
|
||||
var/fraction = min(gulp_size/reagents.total_volume, 1)
|
||||
checkLiked(fraction, M)
|
||||
reagents.reaction(M, INGEST, fraction)
|
||||
reagents.trans_to(M, gulp_size)
|
||||
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
|
||||
return 1
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/afterattack(obj/target, mob/user , proximity)
|
||||
. = ..()
|
||||
if(!proximity)
|
||||
return
|
||||
|
||||
if(target.is_refillable() && is_drainable()) //Something like a glass. Player probably wants to transfer TO it.
|
||||
if(!reagents.total_volume)
|
||||
to_chat(user, "<span class='warning'>[src] is empty.</span>")
|
||||
return
|
||||
|
||||
if(target.reagents.holder_full())
|
||||
to_chat(user, "<span class='warning'>[target] is full.</span>")
|
||||
return
|
||||
|
||||
var/refill = reagents.get_master_reagent_id()
|
||||
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
|
||||
to_chat(user, "<span class='notice'>You transfer [trans] units of the solution to [target].</span>")
|
||||
|
||||
if(iscyborg(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)
|
||||
addtimer(CALLBACK(reagents, /datum/reagents.proc/add_reagent, refill, trans), 600)
|
||||
|
||||
else if(target.is_drainable()) //A dispenser. Transfer FROM it TO us.
|
||||
if (!is_refillable())
|
||||
to_chat(user, "<span class='warning'>[src]'s tab isn't open!</span>")
|
||||
return
|
||||
|
||||
if(!target.reagents.total_volume)
|
||||
to_chat(user, "<span class='warning'>[target] is empty.</span>")
|
||||
return
|
||||
|
||||
if(reagents.holder_full())
|
||||
to_chat(user, "<span class='warning'>[src] is full.</span>")
|
||||
return
|
||||
|
||||
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
|
||||
to_chat(user, "<span class='notice'>You fill [src] with [trans] units of the contents of [target].</span>")
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/attackby(obj/item/I, mob/user, params)
|
||||
var/hotness = I.get_temperature()
|
||||
if(hotness && reagents)
|
||||
reagents.expose_temperature(hotness)
|
||||
to_chat(user, "<span class='notice'>You heat [name] with [I]!</span>")
|
||||
..()
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/throw_impact(atom/target, datum/thrownthing/throwinfo)
|
||||
. = ..()
|
||||
if(!.) //if the bottle wasn't caught
|
||||
smash(target, throwinfo.thrower, TRUE)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/proc/smash(atom/target, mob/thrower, ranged = FALSE)
|
||||
if(!isGlass)
|
||||
return
|
||||
if(QDELING(src) || !target) //Invalid loc
|
||||
return
|
||||
if(bartender_check(target) && ranged)
|
||||
return
|
||||
var/obj/item/broken_bottle/B = new (loc)
|
||||
B.icon_state = 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
|
||||
B.name = "broken [name]"
|
||||
if(ranged)
|
||||
var/matrix/M = matrix(B.transform)
|
||||
M.Turn(rand(-170, 170))
|
||||
B.transform = M
|
||||
B.pixel_x = rand(-12, 12)
|
||||
B.pixel_y = rand(-12, 12)
|
||||
if(prob(33))
|
||||
new/obj/item/shard(drop_location())
|
||||
playsound(src, "shatter", 70, 1)
|
||||
transfer_fingerprints_to(B)
|
||||
qdel(src)
|
||||
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// Drinks. END
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/trophy
|
||||
name = "pewter cup"
|
||||
desc = "Everyone gets a trophy."
|
||||
icon_state = "pewter_cup"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
force = 1
|
||||
throwforce = 1
|
||||
amount_per_transfer_from_this = 5
|
||||
materials = list(MAT_METAL=100)
|
||||
possible_transfer_amounts = list()
|
||||
volume = 5
|
||||
flags_1 = CONDUCT_1
|
||||
spillable = TRUE
|
||||
resistance_flags = FIRE_PROOF
|
||||
isGlass = FALSE
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/trophy/gold_cup
|
||||
name = "gold cup"
|
||||
desc = "You're winner!"
|
||||
icon_state = "golden_cup"
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
force = 14
|
||||
throwforce = 10
|
||||
amount_per_transfer_from_this = 20
|
||||
materials = list(MAT_GOLD=1000)
|
||||
volume = 150
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/trophy/silver_cup
|
||||
name = "silver cup"
|
||||
desc = "Best loser!"
|
||||
icon_state = "silver_cup"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
force = 10
|
||||
throwforce = 8
|
||||
amount_per_transfer_from_this = 15
|
||||
materials = list(MAT_SILVER=800)
|
||||
volume = 100
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/trophy/bronze_cup
|
||||
name = "bronze cup"
|
||||
desc = "At least you ranked!"
|
||||
icon_state = "bronze_cup"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
force = 5
|
||||
throwforce = 4
|
||||
amount_per_transfer_from_this = 10
|
||||
materials = list(MAT_METAL=400)
|
||||
volume = 25
|
||||
|
||||
///////////////////////////////////////////////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/reagent_containers/food/drinks/coffee
|
||||
name = "robust coffee"
|
||||
desc = "Careful, the beverage you're about to enjoy is extremely hot."
|
||||
icon_state = "coffee"
|
||||
list_reagents = list("coffee" = 30)
|
||||
spillable = TRUE
|
||||
resistance_flags = FREEZE_PROOF
|
||||
isGlass = FALSE
|
||||
|
||||
//Used by MREs
|
||||
/obj/item/reagent_containers/food/drinks/coffee/type2
|
||||
name = "\improper Coffee, instant (type 2)"
|
||||
desc = "Coffee that's been blow dried into a granulated powder. This packet includes self heating water for your nutritional pleasure."
|
||||
icon = 'icons/obj/food/containers.dmi'
|
||||
icon_state = "condi_cornoil"
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/ice
|
||||
name = "ice cup"
|
||||
desc = "Careful, cold ice, do not chew."
|
||||
icon_state = "coffee"
|
||||
list_reagents = list("ice" = 30)
|
||||
spillable = TRUE
|
||||
isGlass = FALSE
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/mug/ // parent type is literally just so empty mug sprites are a thing
|
||||
name = "mug"
|
||||
desc = "A drink served in a classy mug."
|
||||
icon_state = "tea"
|
||||
item_state = "coffee"
|
||||
spillable = TRUE
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/mug/on_reagent_change(changetype)
|
||||
if(reagents.total_volume)
|
||||
icon_state = "tea"
|
||||
else
|
||||
icon_state = "tea_empty"
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/mug/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."
|
||||
list_reagents = list("tea" = 30)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/mug/coco
|
||||
name = "Dutch hot coco"
|
||||
desc = "Made in Space South America."
|
||||
list_reagents = list("hot_coco" = 30, "sugar" = 5)
|
||||
foodtype = SUGAR
|
||||
|
||||
resistance_flags = FREEZE_PROOF
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/dry_ramen
|
||||
name = "cup ramen"
|
||||
desc = "Just add 10ml of water, self heats! A taste that reminds you of your school years."
|
||||
icon_state = "ramen"
|
||||
list_reagents = list("dry_ramen" = 30)
|
||||
foodtype = GRAIN
|
||||
isGlass = FALSE
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/beer
|
||||
name = "space beer"
|
||||
desc = "Beer. In space."
|
||||
icon_state = "beer"
|
||||
list_reagents = list("beer" = 30)
|
||||
foodtype = GRAIN | ALCOHOL
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/beer/light
|
||||
name = "Carp Lite"
|
||||
desc = "Brewed with \"Pure Ice Asteroid Spring Water\"."
|
||||
list_reagents = list("light_beer" = 30)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/ale
|
||||
name = "Magm-Ale"
|
||||
desc = "A true dorf's drink of choice."
|
||||
icon_state = "alebottle"
|
||||
item_state = "beer"
|
||||
list_reagents = list("ale" = 30)
|
||||
foodtype = GRAIN | ALCOHOL
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/sillycup
|
||||
name = "paper cup"
|
||||
desc = "A paper water cup."
|
||||
icon_state = "water_cup_e"
|
||||
possible_transfer_amounts = list()
|
||||
volume = 10
|
||||
spillable = TRUE
|
||||
isGlass = FALSE
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/sillycup/on_reagent_change(changetype)
|
||||
if(reagents.total_volume)
|
||||
icon_state = "water_cup"
|
||||
else
|
||||
icon_state = "water_cup_e"
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/sillycup/smallcarton
|
||||
name = "small carton"
|
||||
desc = "A small carton, intended for holding drinks."
|
||||
icon_state = "juicebox"
|
||||
volume = 15 //I figure if you have to craft these it should at least be slightly better than something you can get for free from a watercooler
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/sillycup/smallcarton/smash(atom/target, mob/thrower, ranged = FALSE)
|
||||
if(bartender_check(target) && ranged)
|
||||
return
|
||||
var/obj/item/broken_bottle/B = new (loc)
|
||||
B.icon_state = 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
|
||||
B.name = "broken [name]"
|
||||
B.force = 0
|
||||
B.throwforce = 0
|
||||
B.desc = "A carton with the bottom half burst open. Might give you a papercut."
|
||||
if(ranged)
|
||||
var/matrix/M = matrix(B.transform)
|
||||
M.Turn(rand(-170, 170))
|
||||
B.transform = M
|
||||
B.pixel_x = rand(-12, 12)
|
||||
B.pixel_y = rand(-12, 12)
|
||||
transfer_fingerprints_to(B)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/sillycup/smallcarton/on_reagent_change(changetype)
|
||||
if (reagents.reagent_list.len)
|
||||
switch(reagents.get_master_reagent_id())
|
||||
if("orangejuice")
|
||||
icon_state = "orangebox"
|
||||
name = "orange juice box"
|
||||
desc = "A great source of vitamins. Stay healthy!"
|
||||
foodtype = FRUIT
|
||||
if("milk")
|
||||
icon_state = "milkbox"
|
||||
name = "carton of milk"
|
||||
desc = "An excellent source of calcium for growing space explorers."
|
||||
foodtype = DAIRY
|
||||
if("applejuice")
|
||||
icon_state = "juicebox"
|
||||
name = "apple juice box"
|
||||
desc = "Sweet apple juice. Don't be late for school!"
|
||||
foodtype = FRUIT
|
||||
if("grapejuice")
|
||||
icon_state = "grapebox"
|
||||
name = "grape juice box"
|
||||
desc = "Tasty grape juice in a fun little container. Non-alcoholic!"
|
||||
foodtype = FRUIT
|
||||
if("chocolate_milk")
|
||||
icon_state = "chocolatebox"
|
||||
name = "carton of chocolate milk"
|
||||
desc = "Milk for cool kids!"
|
||||
foodtype = SUGAR
|
||||
if("eggnog")
|
||||
icon_state = "nog2"
|
||||
name = "carton of eggnog"
|
||||
desc = "For enjoying the most wonderful time of the year."
|
||||
foodtype = MEAT
|
||||
else
|
||||
icon_state = "juicebox"
|
||||
name = "small carton"
|
||||
desc = "A small carton, intended for holding drinks."
|
||||
|
||||
|
||||
|
||||
//////////////////////////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/reagent_containers/food/drinks/shaker
|
||||
name = "shaker"
|
||||
desc = "A metal shaker to mix drinks in."
|
||||
icon_state = "shaker"
|
||||
materials = list(MAT_METAL=1500)
|
||||
amount_per_transfer_from_this = 10
|
||||
volume = 100
|
||||
isGlass = FALSE
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/flask
|
||||
name = "flask"
|
||||
desc = "Every good spaceman knows it's a good idea to bring along a couple of pints of whiskey wherever they go."
|
||||
icon_state = "flask"
|
||||
materials = list(MAT_METAL=250)
|
||||
volume = 60
|
||||
isGlass = FALSE
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/flask/gold
|
||||
name = "captain's flask"
|
||||
desc = "A gold flask belonging to the captain."
|
||||
icon_state = "flask_gold"
|
||||
materials = list(MAT_GOLD=500)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/flask/det
|
||||
name = "detective's flask"
|
||||
desc = "The detective's only true friend."
|
||||
icon_state = "detflask"
|
||||
list_reagents = list("whiskey" = 30)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/britcup
|
||||
name = "cup"
|
||||
desc = "A cup with the british flag emblazoned on it."
|
||||
icon_state = "britcup"
|
||||
volume = 30
|
||||
spillable = TRUE
|
||||
|
||||
//////////////////////////soda_cans//
|
||||
//These are in their own group to be used as IED's in /obj/item/grenade/ghettobomb.dm
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans
|
||||
name = "soda can"
|
||||
lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
|
||||
reagent_flags = NONE
|
||||
spillable = FALSE
|
||||
isGlass = FALSE
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/suicide_act(mob/living/carbon/user)
|
||||
user.visible_message("<span class='suicide'>[user] is trying to eat \the [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
var/obj/item/trash/can/crushed_can = new /obj/item/trash/can(user.loc)
|
||||
crushed_can.icon_state = icon_state
|
||||
qdel(src)
|
||||
return BRUTELOSS
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/attack(mob/M, mob/user)
|
||||
if(M == user && !src.reagents.total_volume && user.a_intent == INTENT_HARM && user.zone_selected == BODY_ZONE_HEAD)
|
||||
user.visible_message("<span class='warning'>[user] crushes the can of [src] on [user.p_their()] 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/reagent_containers/food/drinks/soda_cans/attack_self(mob/user)
|
||||
if(!is_drainable())
|
||||
to_chat(user, "You pull back the tab of \the [src] with a satisfying pop.") //Ahhhhhhhh
|
||||
ENABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER)
|
||||
playsound(src, "can_open", 50, 1)
|
||||
spillable = TRUE
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/cola
|
||||
name = "Space Cola"
|
||||
desc = "Cola. in space."
|
||||
icon_state = "cola"
|
||||
list_reagents = list("cola" = 30)
|
||||
foodtype = SUGAR
|
||||
|
||||
/obj/item/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"
|
||||
list_reagents = list("tonic" = 50)
|
||||
foodtype = ALCOHOL
|
||||
|
||||
/obj/item/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"
|
||||
list_reagents = list("sodawater" = 50)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime
|
||||
name = "orange soda"
|
||||
desc = "You wanted ORANGE. It gave you Lemon Lime."
|
||||
icon_state = "lemon-lime"
|
||||
list_reagents = list("lemon_lime" = 30)
|
||||
foodtype = FRUIT
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime/Initialize()
|
||||
. = ..()
|
||||
name = "lemon-lime soda"
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/space_up
|
||||
name = "Space-Up!"
|
||||
desc = "Tastes like a hull breach in your mouth."
|
||||
icon_state = "space-up"
|
||||
list_reagents = list("space_up" = 30)
|
||||
foodtype = SUGAR | JUNKFOOD
|
||||
|
||||
/obj/item/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"
|
||||
list_reagents = list("cola" = 15, "orangejuice" = 15)
|
||||
foodtype = SUGAR | FRUIT | JUNKFOOD
|
||||
|
||||
/obj/item/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"
|
||||
list_reagents = list("spacemountainwind" = 30)
|
||||
foodtype = SUGAR | JUNKFOOD
|
||||
|
||||
/obj/item/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, drunkenness, or even death. Please Drink Responsibly."
|
||||
icon_state = "thirteen_loko"
|
||||
list_reagents = list("thirteenloko" = 30)
|
||||
foodtype = SUGAR | JUNKFOOD
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb
|
||||
name = "Dr. Gibb"
|
||||
desc = "A delicious mixture of 42 different flavors."
|
||||
icon_state = "dr_gibb"
|
||||
list_reagents = list("dr_gibb" = 30)
|
||||
foodtype = SUGAR | JUNKFOOD
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/pwr_game
|
||||
name = "Pwr Game"
|
||||
desc = "The only drink with the PWR that true gamers crave."
|
||||
icon_state = "purple_can"
|
||||
list_reagents = list("pwr_game" = 30)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/shamblers
|
||||
name = "Shambler's juice"
|
||||
desc = "~Shake me up some of that Shambler's Juice!~"
|
||||
icon_state = "shamblers"
|
||||
list_reagents = list("shamblers" = 30)
|
||||
foodtype = SUGAR | JUNKFOOD
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/grey_bull
|
||||
name = "Grey Bull"
|
||||
desc = "Grey Bull, it gives you gloves!"
|
||||
icon_state = "energy_drink"
|
||||
list_reagents = list("grey_bull" = 20)
|
||||
foodtype = SUGAR | JUNKFOOD
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/air
|
||||
name = "canned air"
|
||||
desc = "There is no air shortage. Do not drink."
|
||||
icon_state = "air"
|
||||
list_reagents = list("nitrogen" = 24, "oxygen" = 6)
|
||||
@@ -0,0 +1,681 @@
|
||||
|
||||
|
||||
///////////////////////////////////////////////Alchohol bottles! -Agouri //////////////////////////
|
||||
//Functionally identical to regular drinks. The only difference is that the default bottle size is 100. - Darem
|
||||
//Bottles now knockdown and break when smashed on people's heads. - Giacom
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle
|
||||
amount_per_transfer_from_this = 10
|
||||
volume = 100
|
||||
force = 15
|
||||
throwforce = 15
|
||||
item_state = "broken_beer" //Generic held-item sprite until unique ones are made.
|
||||
lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
|
||||
var/knockdown_duration = 13 //Directly relates to the 'knockdown' duration. Lowered by armor (i.e. helmets)
|
||||
isGlass = TRUE
|
||||
foodtype = ALCOHOL
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/smash(mob/living/target, mob/thrower, ranged = FALSE)
|
||||
//Creates a shattering noise and replaces the bottle with a broken_bottle
|
||||
if(bartender_check(target) && ranged)
|
||||
return
|
||||
var/obj/item/broken_bottle/B = new (loc)
|
||||
if(!ranged)
|
||||
thrower.put_in_hands(B)
|
||||
else
|
||||
var/matrix/M = matrix(B.transform)
|
||||
M.Turn(rand(-170, 170))
|
||||
B.transform = M
|
||||
B.pixel_x = rand(-12, 12)
|
||||
B.pixel_y = rand(-12, 12)
|
||||
B.icon_state = 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
|
||||
|
||||
if(isGlass)
|
||||
if(prob(33))
|
||||
new/obj/item/shard(drop_location())
|
||||
playsound(src, "shatter", 70, 1)
|
||||
else
|
||||
B.force = 0
|
||||
B.throwforce = 0
|
||||
B.desc = "A carton with the bottom half burst open. Might give you a papercut."
|
||||
B.name = "broken [name]"
|
||||
transfer_fingerprints_to(B)
|
||||
|
||||
qdel(src)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/attack(mob/living/target, mob/living/user)
|
||||
|
||||
if(!target)
|
||||
return
|
||||
|
||||
if(user.a_intent != INTENT_HARM || !isGlass)
|
||||
return ..()
|
||||
|
||||
if(HAS_TRAIT(user, TRAIT_PACIFISM))
|
||||
to_chat(user, "<span class='warning'>You don't want to harm [target]!</span>")
|
||||
return
|
||||
|
||||
var/obj/item/bodypart/affecting = user.zone_selected //Find what the player is aiming at
|
||||
|
||||
var/headarmor = 0 // Target's head armor
|
||||
var/armor_block = min(90, target.run_armor_check(affecting, "melee", null, null,armour_penetration)) // For normal attack damage
|
||||
|
||||
//If they have a hat/helmet and the user is targeting their head.
|
||||
if(affecting == BODY_ZONE_HEAD)
|
||||
var/obj/item/I = target.get_item_by_slot(SLOT_HEAD)
|
||||
if(I)
|
||||
headarmor = I.armor.melee
|
||||
|
||||
//Calculate the knockdown duration for the target.
|
||||
var/armor_duration = (knockdown_duration - headarmor) + force
|
||||
|
||||
//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.
|
||||
var/head_attack_message = ""
|
||||
if(affecting == BODY_ZONE_HEAD && iscarbon(target))
|
||||
head_attack_message = " on the head"
|
||||
//Knockdown the target for the duration that we calculated and divide it by 5.
|
||||
if(armor_duration)
|
||||
target.Knockdown(min(armor_duration, 200)) // Never knockdown more than a flash!
|
||||
|
||||
//Display an attack message.
|
||||
if(target != user)
|
||||
target.visible_message("<span class='danger'>[user] has hit [target][head_attack_message] with a bottle of [src.name]!</span>", \
|
||||
"<span class='userdanger'>[user] has hit [target][head_attack_message] with a bottle of [src.name]!</span>")
|
||||
else
|
||||
user.visible_message("<span class='danger'>[target] hits [target.p_them()]self with a bottle of [src.name][head_attack_message]!</span>", \
|
||||
"<span class='userdanger'>[target] hits [target.p_them()]self with a bottle of [src.name][head_attack_message]!</span>")
|
||||
|
||||
//Attack logs
|
||||
log_combat(user, target, "attacked", src)
|
||||
|
||||
//The reagents in the bottle splash all over the target, thanks for the idea Nodrak
|
||||
SplashReagents(target)
|
||||
|
||||
//Finally, smash the bottle. This kills (del) the bottle.
|
||||
smash(target, user)
|
||||
|
||||
return
|
||||
|
||||
//Keeping this here for now, I'll ask if I should keep it here.
|
||||
/obj/item/broken_bottle
|
||||
name = "broken bottle"
|
||||
desc = "A bottle with a sharp broken bottom."
|
||||
icon = 'icons/obj/drinks.dmi'
|
||||
icon_state = "broken_bottle"
|
||||
force = 9
|
||||
throwforce = 5
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
item_state = "beer"
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
attack_verb = list("stabbed", "slashed", "attacked")
|
||||
var/icon/broken_outline = icon('icons/obj/drinks.dmi', "broken")
|
||||
sharpness = IS_SHARP
|
||||
|
||||
/obj/item/broken_bottle/Initialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/butchering, 200, 55)
|
||||
|
||||
/obj/item/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"
|
||||
list_reagents = list("gin" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/gin/empty
|
||||
list_reagents = list("gin" = 0)
|
||||
|
||||
/obj/item/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"
|
||||
list_reagents = list("whiskey" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/whiskey/empty
|
||||
list_reagents = list("whiskey" = 0)
|
||||
|
||||
/obj/item/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"
|
||||
list_reagents = list("vodka" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/vodka/empty
|
||||
list_reagents = list("vodka" = 0)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka
|
||||
name = "Badminka vodka"
|
||||
desc = "The label's written in Cyrillic. All you can make out is the name and a word that looks vaguely like 'Vodka'."
|
||||
icon_state = "badminka"
|
||||
list_reagents = list("vodka" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/tequila
|
||||
name = "Caccavo guaranteed quality tequila"
|
||||
desc = "Made from premium petroleum distillates, pure thalidomide and other fine quality ingredients!"
|
||||
icon_state = "tequilabottle"
|
||||
list_reagents = list("tequila" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/tequila/empty
|
||||
list_reagents = list("tequila" = 0)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/bottleofnothing
|
||||
name = "bottle of nothing"
|
||||
desc = "A bottle filled with nothing."
|
||||
icon_state = "bottleofnothing"
|
||||
list_reagents = list("nothing" = 100)
|
||||
foodtype = NONE
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/bottleofnothing/empty
|
||||
list_reagents = list("nothing" = 0)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/patron
|
||||
name = "Wrapp Artiste Patron"
|
||||
desc = "Silver laced tequila, served in space night clubs across the galaxy."
|
||||
icon_state = "patronbottle"
|
||||
list_reagents = list("patron" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/patron/empty
|
||||
list_reagents = list("patron" = 0)
|
||||
|
||||
/obj/item/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"
|
||||
list_reagents = list("rum" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/rum/empty
|
||||
list_reagents = list("rum" = 0)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/holywater
|
||||
name = "flask of holy water"
|
||||
desc = "A flask of the chaplain's holy water."
|
||||
icon_state = "holyflask"
|
||||
list_reagents = list("holywater" = 100)
|
||||
foodtype = NONE
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/holywater/hell
|
||||
desc = "A flask of holy water...it's been sitting in the Necropolis a while though."
|
||||
list_reagents = list("hell_water" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/holyoil
|
||||
name = "flask of zelus oil"
|
||||
desc = "A brass flask of Zelus oil, a viscous fluid scenting of brass. Can be thrown to deal damage from afar."
|
||||
icon_state = "zelusflask"
|
||||
list_reagents = list("holyoil" = 30)
|
||||
volume = 30
|
||||
foodtype = NONE
|
||||
force = 18
|
||||
throwforce = 18
|
||||
knockdown_duration = 18
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/holyoil/empty
|
||||
list_reagents = list("holyoil" = 0)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/vermouth
|
||||
name = "Goldeneye vermouth"
|
||||
desc = "Sweet, sweet dryness~"
|
||||
icon_state = "vermouthbottle"
|
||||
list_reagents = list("vermouth" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/vermouth/empty
|
||||
list_reagents = list("vermouth" = 0)
|
||||
|
||||
/obj/item/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"
|
||||
list_reagents = list("kahlua" = 100)
|
||||
foodtype = VEGETABLES
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/kahlua/empty
|
||||
list_reagents = list("kahlua" = 0)
|
||||
|
||||
/obj/item/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"
|
||||
list_reagents = list("goldschlager" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/goldschlager/empty
|
||||
list_reagents = list("goldschlager" = 0)
|
||||
|
||||
/obj/item/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"
|
||||
list_reagents = list("cognac" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/cognac/empty
|
||||
list_reagents = list("cognac" = 0)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/wine
|
||||
name = "Doublebeard's bearded special wine"
|
||||
desc = "A faint aura of unease and asspainery surrounds the bottle."
|
||||
icon_state = "winebottle"
|
||||
list_reagents = list("wine" = 100)
|
||||
foodtype = FRUIT | ALCOHOL
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/wine/empty
|
||||
list_reagents = list("wine" = 0)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/absinthe
|
||||
name = "extra-strong absinthe"
|
||||
desc = "An strong alcoholic drink brewed and distributed by"
|
||||
icon_state = "absinthebottle"
|
||||
list_reagents = list("absinthe" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/absinthe/empty
|
||||
list_reagents = list("absinthe" = 0)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/absinthe/Initialize()
|
||||
. = ..()
|
||||
redact()
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/absinthe/proc/redact()
|
||||
// There was a large fight in the coderbus about a player reference
|
||||
// in absinthe. Ergo, this is why the name generation is now so
|
||||
// complicated. Judge us kindly.
|
||||
var/shortname = pickweight(
|
||||
list("T&T" = 1, "A&A" = 1, "Generic" = 1))
|
||||
var/fullname
|
||||
switch(shortname)
|
||||
if("T&T")
|
||||
fullname = "Teal and Tealer"
|
||||
if("A&A")
|
||||
fullname = "Ash and Asher"
|
||||
if("Generic")
|
||||
fullname = "Nanotrasen Cheap Imitations"
|
||||
var/removals = list("\[REDACTED\]", "\[EXPLETIVE DELETED\]",
|
||||
"\[EXPUNGED\]", "\[INFORMATION ABOVE YOUR SECURITY CLEARANCE\]",
|
||||
"\[MOVE ALONG CITIZEN\]", "\[NOTHING TO SEE HERE\]")
|
||||
var/chance = 50
|
||||
|
||||
if(prob(chance))
|
||||
shortname = pick_n_take(removals)
|
||||
|
||||
var/list/final_fullname = list()
|
||||
for(var/word in splittext(fullname, " "))
|
||||
if(prob(chance))
|
||||
word = pick_n_take(removals)
|
||||
final_fullname += word
|
||||
|
||||
fullname = jointext(final_fullname, " ")
|
||||
|
||||
// Actually finally setting the new name and desc
|
||||
name = "[shortname] [name]"
|
||||
desc = "[desc] [fullname] Inc."
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/absinthe/premium
|
||||
name = "Gwyn's premium absinthe"
|
||||
desc = "A potent alcoholic beverage, almost makes you forget the ash in your lungs."
|
||||
icon_state = "absinthepremium"
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/absinthe/premium/redact()
|
||||
return
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/lizardwine
|
||||
name = "bottle of lizard wine"
|
||||
desc = "An alcoholic beverage from Space China, made by infusing lizard tails in ethanol. Inexplicably popular among command staff."
|
||||
icon_state = "lizardwine"
|
||||
list_reagents = list("lizardwine" = 100)
|
||||
foodtype = FRUIT | ALCOHOL
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/hcider
|
||||
name = "Jian Hard Cider"
|
||||
desc = "Apple juice for adults."
|
||||
icon_state = "hcider"
|
||||
volume = 50
|
||||
list_reagents = list("hcider" = 50)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/hcider/empty
|
||||
list_reagents = list("hcider" = 0)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/grappa
|
||||
name = "Phillipes well-aged Grappa"
|
||||
desc = "Bottle of Grappa."
|
||||
icon_state = "grappabottle"
|
||||
list_reagents = list("grappa" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/grappa/empty
|
||||
list_reagents = list("grappa" = 0)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/sake
|
||||
name = "Ryo's traditional sake"
|
||||
desc = "Sweet as can be, and burns like fire going down."
|
||||
icon_state = "sakebottle"
|
||||
list_reagents = list("sake" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/sake/empty
|
||||
list_reagents = list("sake" = 0)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/sake/Initialize()
|
||||
. = ..()
|
||||
if(prob(10))
|
||||
name = "Fluffy Tail Sake"
|
||||
desc += " On the bottle is a picture of a kitsune with nine touchable tails."
|
||||
icon_state = "sakebottle_k"
|
||||
else if(prob(10))
|
||||
name = "Inubashiri's Home Brew"
|
||||
desc += " Awoo."
|
||||
icon_state = "sakebottle_i"
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/fernet
|
||||
name = "Fernet Bronca"
|
||||
desc = "A bottle of pure Fernet Bronca, produced in Cordoba Space Station"
|
||||
icon_state = "fernetbottle"
|
||||
list_reagents = list("fernet" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/fernet/empty
|
||||
list_reagents = list("fernet" = 0)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/applejack
|
||||
name = "Buckin' Bronco's Applejack"
|
||||
desc = "Kicks like a horse, tastes like an apple!"
|
||||
icon_state = "applejack_bottle"
|
||||
list_reagents = list("applejack" = 100)
|
||||
foodtype = FRUIT
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/applejack/empty
|
||||
list_reagents = list("applejack" = 0)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/champagne
|
||||
name = "Eau d' Dandy Brut Champagne"
|
||||
desc = "Finely sourced from only the most pretentious French vineyards."
|
||||
icon_state = "champagne_bottle"
|
||||
list_reagents = list("champagne" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/champagne/empty
|
||||
list_reagents = list("champagne" = 0)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/blazaam
|
||||
name = "Ginbad's Blazaam"
|
||||
desc = "You feel like you should give the bottle a good rub before opening."
|
||||
icon_state = "blazaambottle"
|
||||
list_reagents = list("blazaam" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/blazaam/empty
|
||||
list_reagents = list("blazaam" = 0)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/trappist
|
||||
name = "Mont de Requin Trappistes Bleu"
|
||||
desc = "Brewed in space-Belgium. Fancy!"
|
||||
icon_state = "trappistbottle"
|
||||
volume = 50
|
||||
list_reagents = list("trappist" = 50)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/trappist/empty
|
||||
list_reagents = list("trappist" = 0)
|
||||
|
||||
//////////////////////////JUICES AND STUFF ///////////////////////
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/orangejuice
|
||||
name = "orange juice"
|
||||
desc = "Full of vitamins and deliciousness!"
|
||||
icon_state = "orangejuice"
|
||||
item_state = "carton"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
|
||||
isGlass = FALSE
|
||||
list_reagents = list("orangejuice" = 100)
|
||||
foodtype = FRUIT
|
||||
|
||||
/obj/item/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"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
|
||||
isGlass = FALSE
|
||||
list_reagents = list("cream" = 100)
|
||||
foodtype = DAIRY
|
||||
|
||||
/obj/item/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"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
|
||||
isGlass = FALSE
|
||||
list_reagents = list("tomatojuice" = 100)
|
||||
foodtype = VEGETABLES
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/limejuice
|
||||
name = "lime juice"
|
||||
desc = "Sweet-sour goodness."
|
||||
icon_state = "limejuice"
|
||||
item_state = "carton"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
|
||||
isGlass = FALSE
|
||||
list_reagents = list("limejuice" = 100)
|
||||
foodtype = FRUIT
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/menthol
|
||||
name = "menthol"
|
||||
desc = "Tastes naturally minty, and imparts a very mild numbing sensation."
|
||||
icon_state = "mentholbox"
|
||||
item_state = "carton"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
|
||||
isGlass = FALSE
|
||||
list_reagents = list("menthol" = 100)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/grenadine
|
||||
name = "Jester Grenadine"
|
||||
desc = "Contains 0% real cherries!"
|
||||
icon_state = "grenadine"
|
||||
isGlass = TRUE
|
||||
list_reagents = list("grenadine" = 100)
|
||||
foodtype = FRUIT
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/grenadine/empty
|
||||
list_reagents = list("grenadine" = 0)
|
||||
|
||||
////////////////////////// MOLOTOV ///////////////////////
|
||||
/obj/item/reagent_containers/food/drinks/bottle/molotov
|
||||
name = "molotov cocktail"
|
||||
desc = "A throwing weapon used to ignite things, typically filled with an accelerant. Recommended highly by rioters and revolutionaries. Light and toss."
|
||||
icon_state = "vodkabottle"
|
||||
list_reagents = list()
|
||||
var/list/accelerants = list( /datum/reagent/consumable/ethanol, /datum/reagent/fuel, /datum/reagent/clf3, /datum/reagent/phlogiston,
|
||||
/datum/reagent/napalm, /datum/reagent/hellwater, /datum/reagent/toxin/plasma, /datum/reagent/toxin/spore_burning)
|
||||
var/active = 0
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/molotov/CheckParts(list/parts_list)
|
||||
..()
|
||||
var/obj/item/reagent_containers/food/drinks/bottle/B = locate() in contents
|
||||
if(B)
|
||||
icon_state = B.icon_state
|
||||
B.reagents.copy_to(src,100)
|
||||
if(!B.isGlass)
|
||||
desc += " You're not sure if making this out of a carton was the brightest idea."
|
||||
isGlass = FALSE
|
||||
return
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/molotov/throw_impact(atom/target,datum/thrownthing/throwdata)
|
||||
var/firestarter = 0
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
for(var/A in accelerants)
|
||||
if(istype(R,A))
|
||||
firestarter = 1
|
||||
break
|
||||
if(firestarter && active)
|
||||
target.fire_act()
|
||||
new /obj/effect/hotspot(get_turf(target))
|
||||
..()
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/molotov/attackby(obj/item/I, mob/user, params)
|
||||
if(I.get_temperature() && !active)
|
||||
active = 1
|
||||
var/message = "[ADMIN_LOOKUP(user)] has primed a [name] for detonation at [ADMIN_VERBOSEJMP(user)]."
|
||||
GLOB.bombers += message
|
||||
message_admins(message)
|
||||
log_game("[key_name(user)] has primed a [name] for detonation at [AREACOORD(user)].")
|
||||
|
||||
to_chat(user, "<span class='info'>You light [src] on fire.</span>")
|
||||
add_overlay(GLOB.fire_overlay)
|
||||
if(!isGlass)
|
||||
spawn(50)
|
||||
if(active)
|
||||
var/counter
|
||||
var/target = src.loc
|
||||
for(counter = 0, counter<2, counter++)
|
||||
if(istype(target, /obj/item/storage))
|
||||
var/obj/item/storage/S = target
|
||||
target = S.loc
|
||||
if(istype(target, /atom))
|
||||
var/atom/A = target
|
||||
SplashReagents(A)
|
||||
A.fire_act()
|
||||
qdel(src)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/bottle/molotov/attack_self(mob/user)
|
||||
if(active)
|
||||
if(!isGlass)
|
||||
to_chat(user, "<span class='danger'>The flame's spread too far on it!</span>")
|
||||
return
|
||||
to_chat(user, "<span class='info'>You snuff out the flame on [src].</span>")
|
||||
cut_overlay(GLOB.fire_overlay)
|
||||
active = 0
|
||||
|
||||
/obj/item/export/bottle/attack_self(mob/user)
|
||||
to_chat(user, "<span class='danger'>The seal seems fine. Best to not open it.</span>")
|
||||
return
|
||||
|
||||
/obj/item/export/bottle
|
||||
name = "Report this please"
|
||||
desc = "A sealed bottle of alcohol, ready to be exported"
|
||||
icon = 'icons/obj/drinks.dmi'
|
||||
force = 0
|
||||
throwforce = 0
|
||||
throw_speed = 0
|
||||
throw_range = 0
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
item_state = "beer"
|
||||
attack_verb = list("boop", "thunked", "shown")
|
||||
|
||||
/obj/item/export/bottle/gin
|
||||
icon_state = "ginbottle"
|
||||
name = "Sealed Gin"
|
||||
|
||||
/obj/item/export/bottle/wine
|
||||
icon_state = "winebottle"
|
||||
name = "Sealed Wine"
|
||||
|
||||
/obj/item/export/bottle/whiskey
|
||||
icon_state = "whiskeybottle"
|
||||
name = "Sealed Whiskey"
|
||||
|
||||
/obj/item/export/bottle/vodka
|
||||
icon_state = "vodkabottle"
|
||||
name = "Sealed Vodka"
|
||||
|
||||
/obj/item/export/bottle/tequila
|
||||
icon_state = "tequilabottle"
|
||||
name = "Sealed Tequila"
|
||||
|
||||
/obj/item/export/bottle/patron
|
||||
icon_state = "patronbottle"
|
||||
name = "Sealed Patron"
|
||||
|
||||
/obj/item/export/bottle/rum
|
||||
icon_state = "rumbottle"
|
||||
name = "Sealed Rum"
|
||||
|
||||
/obj/item/export/bottle/vermouth
|
||||
icon_state = "vermouthbottle"
|
||||
name = "Sealed Vermouth"
|
||||
|
||||
/obj/item/export/bottle/kahlua
|
||||
icon_state = "kahluabottle"
|
||||
name = "Sealed Kahlua"
|
||||
|
||||
/obj/item/export/bottle/goldschlager
|
||||
icon_state = "goldschlagerbottle"
|
||||
name = "Sealed Goldschlager"
|
||||
|
||||
/obj/item/export/bottle/hcider
|
||||
icon_state = "hcider"
|
||||
name = "Sealed Cider"
|
||||
|
||||
/obj/item/export/bottle/cognac
|
||||
icon_state = "cognacbottle"
|
||||
name = "Sealed Cognac"
|
||||
|
||||
/obj/item/export/bottle/absinthe
|
||||
icon_state = "absinthebottle"
|
||||
name = "Sealed Unmarked Absinthe"
|
||||
|
||||
/obj/item/export/bottle/grappa
|
||||
icon_state = "grappabottle"
|
||||
name = "Sealed Grappa"
|
||||
|
||||
/obj/item/export/bottle/sake
|
||||
icon_state = "sakebottle"
|
||||
name = "Sealed Sake"
|
||||
|
||||
/obj/item/export/bottle/fernet
|
||||
icon_state = "fernetbottle"
|
||||
name = "Sealed Fernet"
|
||||
|
||||
/obj/item/export/bottle/applejack
|
||||
icon_state = "applejack_bottle"
|
||||
name = "Sealed Applejack"
|
||||
|
||||
/obj/item/export/bottle/champagne
|
||||
icon_state = "champagne_bottle"
|
||||
name = "Sealed Champagne"
|
||||
|
||||
/obj/item/export/bottle/blazaam
|
||||
icon_state = "blazaambottle"
|
||||
name = "Sealed Blazaam"
|
||||
|
||||
/obj/item/export/bottle/trappist
|
||||
icon_state = "trappistbottle"
|
||||
name = "Sealed Trappist"
|
||||
|
||||
/obj/item/export/bottle/grenadine
|
||||
icon_state = "grenadine"
|
||||
name = "Sealed Grenadine"
|
||||
|
||||
/obj/item/export/bottle/minikeg
|
||||
name = "Mini-Beer Keg"
|
||||
icon_state = "keggy"
|
||||
desc = "A small wooden barrle with metal rings, untapped beer inside."
|
||||
|
||||
/obj/item/export/bottle/blooddrop
|
||||
icon_state = "champagne_selling_bottle"
|
||||
name = "Blood Drop"
|
||||
desc = "Large red bottle filled with a mix of wine and other named brands."
|
||||
|
||||
/obj/item/export/bottle/slim_gold
|
||||
name = "Slim Gold "
|
||||
icon_state = "selling_bottle_alt"
|
||||
desc = "A gold looking yellow bottle that has a mix of different named brands."
|
||||
|
||||
/obj/item/export/bottle/white_bloodmoon
|
||||
name = "White Bloodmoon"
|
||||
icon_state = "selling_bottle_basic"
|
||||
desc = "Rather simple bottle for this kind of drink."
|
||||
|
||||
/obj/item/export/bottle/greenroad
|
||||
name = "Green Road"
|
||||
icon_state = "selling_bottle"
|
||||
desc = "Ironic name as the fruit used is from ashy plants."
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,362 @@
|
||||
/** # Snacks
|
||||
|
||||
Items in the "Snacks" subcategory are food items that people actually eat. The key points are that they are created
|
||||
already filled with reagents and are destroyed when empty. Additionally, they make a "munching" noise when eaten.
|
||||
|
||||
Notes by Darem: Food in the "snacks" subtype can hold a maximum of 50 units. Generally speaking, you don't want to go over 40
|
||||
total for the item because you want to leave space for extra condiments. If you want effect besides healing, add a reagent for
|
||||
it. Try to stick to existing reagents when possible (so if you want a stronger healing effect, just use omnizine). On use
|
||||
effect (such as the old officer eating a donut code) requires a unique reagent (unless you can figure out a better way).
|
||||
|
||||
The nutriment reagent and bitesize variable replace the old heal_amt and amount variables. Each unit of nutriment is equal to
|
||||
2 of the old heal_amt variable. Bitesize is the rate at which the reagents are consumed. So if you have 6 nutriment and a
|
||||
bitesize of 2, then it'll take 3 bites to eat. Unlike the old system, the contained reagents are evenly spread among all
|
||||
the bites. No more contained reagents = no more bites.
|
||||
|
||||
Here is an example of the new formatting for anyone who wants to add more food items.
|
||||
```
|
||||
/obj/item/reagent_containers/food/snacks/xenoburger //Identification path for the object.
|
||||
name = "Xenoburger" //Name that displays in the UI.
|
||||
desc = "Smells caustic. Tastes like heresy." //Duh
|
||||
icon_state = "xburger" //Refers to an icon in food.dmi
|
||||
/obj/item/reagent_containers/food/snacks/xenoburger/Initialize() //Don't mess with this. | nO I WILL MESS WITH THIS
|
||||
. = ..() //Same here.
|
||||
reagents.add_reagent("xenomicrobes", 10) //This is what is in the food item. you may copy/paste
|
||||
reagents.add_reagent("nutriment", 2) //this line of code for all the contents.
|
||||
bitesize = 3 //This is the amount each bite consumes.
|
||||
```
|
||||
|
||||
All foods are distributed among various categories. Use common sense.
|
||||
*/
|
||||
/obj/item/reagent_containers/food/snacks
|
||||
name = "snack"
|
||||
desc = "Yummy."
|
||||
icon = 'icons/obj/food/food.dmi'
|
||||
icon_state = null
|
||||
lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
|
||||
obj_flags = UNIQUE_RENAME
|
||||
grind_results = list() //To let them be ground up to transfer their reagents
|
||||
var/bitesize = 2
|
||||
var/bitecount = 0
|
||||
var/trash = null
|
||||
var/slice_path // for sliceable food. path of the item resulting from the slicing
|
||||
var/slices_num
|
||||
var/eatverb
|
||||
var/dried_type = null
|
||||
var/dry = 0
|
||||
var/cooked_type = null //for microwave cooking. path of the resulting item after microwaving
|
||||
var/filling_color = "#FFFFFF" //color to use when added to custom food.
|
||||
var/custom_food_type = null //for food customizing. path of the custom food to create
|
||||
var/junkiness = 0 //for junk food. used to lower human satiety.
|
||||
var/list/bonus_reagents //the amount of reagents (usually nutriment and vitamin) added to crafted/cooked snacks, on top of the ingredients reagents.
|
||||
var/customfoodfilling = 1 // whether it can be used as filling in custom food
|
||||
var/list/tastes // for example list("crisps" = 2, "salt" = 1)
|
||||
|
||||
//Placeholder for effect that trigger on eating that aren't tied to reagents.
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/add_initial_reagents()
|
||||
if(tastes && tastes.len)
|
||||
if(list_reagents)
|
||||
for(var/rid in list_reagents)
|
||||
var/amount = list_reagents[rid]
|
||||
if(rid == "nutriment" || rid == "vitamin")
|
||||
reagents.add_reagent(rid, amount, tastes.Copy())
|
||||
else
|
||||
reagents.add_reagent(rid, amount)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/proc/On_Consume(mob/living/eater)
|
||||
if(!eater)
|
||||
return
|
||||
if(!reagents.total_volume)
|
||||
var/obj/item/trash_item = generate_trash(eater)
|
||||
qdel(src)
|
||||
eater.put_in_hands(trash_item)
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/attack_self(mob/user)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/attack(mob/living/M, mob/living/user, def_zone)
|
||||
if(user.a_intent == INTENT_HARM)
|
||||
return ..()
|
||||
if(!eatverb)
|
||||
eatverb = pick("bite","chew","nibble","gnaw","gobble","chomp")
|
||||
if(!reagents.total_volume) //Shouldn't be needed but it checks to see if it has anything left in it.
|
||||
to_chat(user, "<span class='notice'>None of [src] left, oh no!</span>")
|
||||
qdel(src)
|
||||
return 0
|
||||
if(iscarbon(M))
|
||||
if(!canconsume(M, user))
|
||||
return 0
|
||||
|
||||
var/fullness = M.nutrition + 10
|
||||
for(var/datum/reagent/consumable/C in M.reagents.reagent_list) //we add the nutrition value of what we're currently digesting
|
||||
fullness += C.nutriment_factor * C.volume / C.metabolization_rate
|
||||
|
||||
if(M == user) //If you're eating it yourself.
|
||||
if(junkiness && M.satiety < -150 && M.nutrition > NUTRITION_LEVEL_STARVING + 50 )
|
||||
to_chat(M, "<span class='notice'>You don't feel like eating any more junk food at the moment.</span>")
|
||||
return 0
|
||||
else if(fullness <= 50)
|
||||
user.visible_message("<span class='notice'>[user] hungrily takes a [eatverb] from \the [src], gobbling it down!</span>", "<span class='notice'>You hungrily take a [eatverb] from \the [src], gobbling it down!</span>")
|
||||
else if(fullness > 50 && fullness < 150)
|
||||
user.visible_message("<span class='notice'>[user] hungrily takes a [eatverb] from \the [src].</span>", "<span class='notice'>You hungrily take a [eatverb] from \the [src].</span>")
|
||||
else if(fullness > 150 && fullness < 500)
|
||||
user.visible_message("<span class='notice'>[user] takes a [eatverb] from \the [src].</span>", "<span class='notice'>You take a [eatverb] from \the [src].</span>")
|
||||
else if(fullness > 500 && fullness < 600)
|
||||
user.visible_message("<span class='notice'>[user] unwillingly takes a [eatverb] of a bit of \the [src].</span>", "<span class='warning'>You unwillingly take a [eatverb] of a bit of \the [src].</span>")
|
||||
else if(fullness > (600 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
|
||||
user.visible_message("<span class='warning'>[user] cannot force any more of \the [src] to go down [user.p_their()] throat!</span>", "<span class='danger'>You cannot force any more of \the [src] to go down your throat!</span>")
|
||||
return 0
|
||||
if(HAS_TRAIT(M, TRAIT_VORACIOUS))
|
||||
M.changeNext_move(CLICK_CD_MELEE * 0.5) //nom nom nom
|
||||
else
|
||||
if(!isbrain(M)) //If you're feeding it to someone else.
|
||||
if(fullness <= (600 * (1 + M.overeatduration / 1000)))
|
||||
M.visible_message("<span class='danger'>[user] attempts to feed [M] [src].</span>", \
|
||||
"<span class='userdanger'>[user] attempts to feed [M] [src].</span>")
|
||||
else
|
||||
M.visible_message("<span class='warning'>[user] cannot force any more of [src] down [M]'s throat!</span>", \
|
||||
"<span class='warning'>[user] cannot force any more of [src] down [M]'s throat!</span>")
|
||||
return 0
|
||||
|
||||
if(!do_mob(user, M))
|
||||
return
|
||||
log_combat(user, M, "fed", reagents.log_list())
|
||||
M.visible_message("<span class='danger'>[user] forces [M] to eat [src].</span>", \
|
||||
"<span class='userdanger'>[user] forces [M] to eat [src].</span>")
|
||||
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[M] doesn't seem to have a mouth!</span>")
|
||||
return
|
||||
|
||||
if(reagents) //Handle ingestion of the reagent.
|
||||
if(M.satiety > -200)
|
||||
M.satiety -= junkiness
|
||||
playsound(M.loc,'sound/items/eatfood.ogg', rand(10,50), 1)
|
||||
if(reagents.total_volume)
|
||||
SEND_SIGNAL(src, COMSIG_FOOD_EATEN, M, user)
|
||||
var/fraction = min(bitesize / reagents.total_volume, 1)
|
||||
reagents.reaction(M, INGEST, fraction)
|
||||
reagents.trans_to(M, bitesize)
|
||||
bitecount++
|
||||
On_Consume(M)
|
||||
checkLiked(fraction, M)
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/examine(mob/user)
|
||||
..()
|
||||
if(bitecount == 0)
|
||||
return
|
||||
else if(bitecount == 1)
|
||||
to_chat(user, "[src] was bitten by someone!")
|
||||
else if(bitecount <= 3)
|
||||
to_chat(user, "[src] was bitten [bitecount] times!")
|
||||
else
|
||||
to_chat(user, "[src] was bitten multiple times!")
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/storage))
|
||||
..() // -> item/attackby()
|
||||
return 0
|
||||
if(istype(W, /obj/item/reagent_containers/food/snacks))
|
||||
var/obj/item/reagent_containers/food/snacks/S = W
|
||||
if(custom_food_type && ispath(custom_food_type))
|
||||
if(S.w_class > WEIGHT_CLASS_SMALL)
|
||||
to_chat(user, "<span class='warning'>[S] is too big for [src]!</span>")
|
||||
return 0
|
||||
if(!S.customfoodfilling || istype(W, /obj/item/reagent_containers/food/snacks/customizable) || istype(W, /obj/item/reagent_containers/food/snacks/pizzaslice/custom) || istype(W, /obj/item/reagent_containers/food/snacks/cakeslice/custom))
|
||||
to_chat(user, "<span class='warning'>[src] can't be filled with [S]!</span>")
|
||||
return 0
|
||||
if(contents.len >= 20)
|
||||
to_chat(user, "<span class='warning'>You can't add more ingredients to [src]!</span>")
|
||||
return 0
|
||||
var/obj/item/reagent_containers/food/snacks/customizable/C = new custom_food_type(get_turf(src))
|
||||
C.initialize_custom_food(src, S, user)
|
||||
return 0
|
||||
var/sharp = W.get_sharpness()
|
||||
if(sharp)
|
||||
if(slice(sharp, W, user))
|
||||
return 1
|
||||
else
|
||||
..()
|
||||
|
||||
//Called when you finish tablecrafting a snack.
|
||||
/obj/item/reagent_containers/food/snacks/CheckParts(list/parts_list, datum/crafting_recipe/food/R)
|
||||
..()
|
||||
reagents.clear_reagents()
|
||||
for(var/obj/item/reagent_containers/RC in contents)
|
||||
RC.reagents.trans_to(reagents, RC.reagents.maximum_volume)
|
||||
if(istype(R))
|
||||
contents_loop:
|
||||
for(var/A in contents)
|
||||
for(var/B in R.real_parts)
|
||||
if(istype(A, B))
|
||||
continue contents_loop
|
||||
qdel(A)
|
||||
SSblackbox.record_feedback("tally", "food_made", 1, type)
|
||||
|
||||
if(bonus_reagents && bonus_reagents.len)
|
||||
for(var/r_id in bonus_reagents)
|
||||
var/amount = bonus_reagents[r_id]
|
||||
if(r_id == "nutriment" || r_id == "vitamin")
|
||||
reagents.add_reagent(r_id, amount, tastes)
|
||||
else
|
||||
reagents.add_reagent(r_id, amount)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/proc/slice(accuracy, obj/item/W, mob/user)
|
||||
if((slices_num <= 0 || !slices_num) || !slice_path) //is the food sliceable?
|
||||
return FALSE
|
||||
|
||||
if ( \
|
||||
!isturf(src.loc) || \
|
||||
!(locate(/obj/structure/table) in src.loc) && \
|
||||
!(locate(/obj/structure/table/optable) in src.loc) && \
|
||||
!(locate(/obj/item/storage/bag/tray) in src.loc) \
|
||||
)
|
||||
to_chat(user, "<span class='warning'>You cannot slice [src] here! You need a table or at least a tray.</span>")
|
||||
return FALSE
|
||||
|
||||
var/slices_lost = 0
|
||||
if (accuracy >= IS_SHARP_ACCURATE)
|
||||
user.visible_message( \
|
||||
"[user] slices [src].", \
|
||||
"<span class='notice'>You slice [src].</span>" \
|
||||
)
|
||||
else
|
||||
user.visible_message( \
|
||||
"[user] inaccurately slices [src] with [W]!", \
|
||||
"<span class='notice'>You inaccurately slice [src] with your [W]!</span>" \
|
||||
)
|
||||
slices_lost = rand(1,min(1,round(slices_num/2)))
|
||||
|
||||
var/reagents_per_slice = reagents.total_volume/slices_num
|
||||
for(var/i=1 to (slices_num-slices_lost))
|
||||
var/obj/item/reagent_containers/food/snacks/slice = new slice_path (loc)
|
||||
initialize_slice(slice, reagents_per_slice)
|
||||
qdel(src)
|
||||
return TRUE
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/proc/initialize_slice(obj/item/reagent_containers/food/snacks/slice, reagents_per_slice)
|
||||
slice.create_reagents(slice.volume)
|
||||
reagents.trans_to(slice,reagents_per_slice)
|
||||
if(name != initial(name))
|
||||
slice.name = "slice of [name]"
|
||||
if(desc != initial(desc))
|
||||
slice.desc = "[desc]"
|
||||
if(foodtype != initial(foodtype))
|
||||
slice.foodtype = foodtype //if something happens that overrode our food type, make sure the slice carries that over
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/proc/generate_trash(atom/location)
|
||||
if(trash)
|
||||
if(ispath(trash, /obj/item))
|
||||
. = new trash(location)
|
||||
trash = null
|
||||
return
|
||||
else if(isitem(trash))
|
||||
var/obj/item/trash_item = trash
|
||||
trash_item.forceMove(location)
|
||||
. = trash
|
||||
trash = null
|
||||
return
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/proc/update_overlays(obj/item/reagent_containers/food/snacks/S)
|
||||
cut_overlays()
|
||||
var/mutable_appearance/filling = mutable_appearance(icon, "[initial(icon_state)]_filling")
|
||||
if(S.filling_color == "#FFFFFF")
|
||||
filling.color = pick("#FF0000","#0000FF","#008000","#FFFF00")
|
||||
else
|
||||
filling.color = S.filling_color
|
||||
|
||||
add_overlay(filling)
|
||||
|
||||
// initialize_cooked_food() is called when microwaving the food
|
||||
/obj/item/reagent_containers/food/snacks/proc/initialize_cooked_food(obj/item/reagent_containers/food/snacks/S, cooking_efficiency = 1)
|
||||
S.create_reagents(S.volume)
|
||||
if(reagents)
|
||||
reagents.trans_to(S, reagents.total_volume)
|
||||
if(S.bonus_reagents && S.bonus_reagents.len)
|
||||
for(var/r_id in S.bonus_reagents)
|
||||
var/amount = S.bonus_reagents[r_id] * cooking_efficiency
|
||||
if(r_id == "nutriment" || r_id == "vitamin")
|
||||
S.reagents.add_reagent(r_id, amount, tastes)
|
||||
else
|
||||
S.reagents.add_reagent(r_id, amount)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/microwave_act(obj/machinery/microwave/M)
|
||||
var/turf/T = get_turf(src)
|
||||
var/obj/item/result
|
||||
if(cooked_type)
|
||||
result = new cooked_type(T)
|
||||
if(istype(M))
|
||||
initialize_cooked_food(result, M.efficiency)
|
||||
else
|
||||
initialize_cooked_food(result, 1)
|
||||
SSblackbox.record_feedback("tally", "food_made", 1, result.type)
|
||||
else
|
||||
result = new /obj/item/reagent_containers/food/snacks/badrecipe(T)
|
||||
if(istype(M) && M.dirty < 100)
|
||||
M.dirty++
|
||||
qdel(src)
|
||||
|
||||
return result
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/Destroy()
|
||||
if(contents)
|
||||
for(var/atom/movable/something in contents)
|
||||
something.forceMove(drop_location())
|
||||
return ..()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/attack_animal(mob/M)
|
||||
if(isanimal(M))
|
||||
if(iscorgi(M))
|
||||
var/mob/living/L = M
|
||||
if(bitecount == 0 || prob(50))
|
||||
M.emote("me", 1, "nibbles away at \the [src]")
|
||||
bitecount++
|
||||
L.taste(reagents) // why should carbons get all the fun?
|
||||
if(bitecount >= 5)
|
||||
var/sattisfaction_text = pick("burps from enjoyment", "yaps for more", "woofs twice", "looks at the area where \the [src] was")
|
||||
if(sattisfaction_text)
|
||||
M.emote("me", 1, "[sattisfaction_text]")
|
||||
qdel(src)
|
||||
|
||||
// //////////////////////////////////////////////Store////////////////////////////////////////
|
||||
/// All the food items that can store an item inside itself, like bread or cake.
|
||||
/obj/item/reagent_containers/food/snacks/store
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
var/stored_item = 0
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/attackby(obj/item/W, mob/user, params)
|
||||
..()
|
||||
if(W.w_class <= WEIGHT_CLASS_SMALL & !istype(W, /obj/item/reagent_containers/food/snacks)) //can't slip snacks inside, they're used for custom foods.
|
||||
if(W.get_sharpness())
|
||||
return 0
|
||||
if(stored_item)
|
||||
return 0
|
||||
if(!iscarbon(user))
|
||||
return 0
|
||||
if(contents.len >= 20)
|
||||
to_chat(user, "<span class='warning'>[src] is full.</span>")
|
||||
return 0
|
||||
to_chat(user, "<span class='notice'>You slip [W] inside [src].</span>")
|
||||
user.transferItemToLoc(W, src)
|
||||
add_fingerprint(user)
|
||||
contents += W
|
||||
stored_item = 1
|
||||
return 1 // no afterattack here
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/MouseDrop(atom/over)
|
||||
var/turf/T = get_turf(src)
|
||||
var/obj/structure/table/TB = locate(/obj/structure/table) in T
|
||||
if(TB)
|
||||
TB.MouseDrop(over)
|
||||
else
|
||||
return ..()
|
||||
@@ -0,0 +1,421 @@
|
||||
/obj/item/reagent_containers/food/snacks/meat
|
||||
var/subjectname = ""
|
||||
var/subjectjob = null
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab
|
||||
name = "meat"
|
||||
desc = "A slab of meat."
|
||||
icon_state = "meat"
|
||||
dried_type = /obj/item/reagent_containers/food/snacks/sosjerky/healthy
|
||||
bitesize = 3
|
||||
list_reagents = list("nutriment" = 3, "cooking_oil" = 2) //Meat has fats that a food processor can process into cooking oil
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/plain
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/plain
|
||||
slices_num = 3
|
||||
filling_color = "#FF0000"
|
||||
tastes = list("meat" = 1)
|
||||
foodtype = MEAT | RAW
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/initialize_slice(obj/item/reagent_containers/food/snacks/meat/rawcutlet/slice, reagents_per_slice)
|
||||
..()
|
||||
var/mutable_appearance/filling = mutable_appearance(icon, "rawcutlet_coloration")
|
||||
filling.color = filling_color
|
||||
slice.add_overlay(filling)
|
||||
slice.filling_color = filling_color
|
||||
slice.name = "raw [name] cutlet"
|
||||
slice.meat_type = name
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/initialize_cooked_food(obj/item/reagent_containers/food/snacks/S, cooking_efficiency)
|
||||
..()
|
||||
S.name = "[name] steak"
|
||||
|
||||
///////////////////////////////////// HUMAN MEATS //////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human
|
||||
name = "meat"
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/plain/human
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/plain/human
|
||||
tastes = list("tender meat" = 1)
|
||||
foodtype = MEAT | RAW | GROSS
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/initialize_slice(obj/item/reagent_containers/food/snacks/meat/rawcutlet/plain/human/slice, reagents_per_slice)
|
||||
..()
|
||||
slice.subjectname = subjectname
|
||||
slice.subjectjob = subjectjob
|
||||
if(subjectname)
|
||||
slice.name = "raw [subjectname] cutlet"
|
||||
else if(subjectjob)
|
||||
slice.name = "raw [subjectjob] cutlet"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/initialize_cooked_food(obj/item/reagent_containers/food/snacks/meat/S, cooking_efficiency)
|
||||
..()
|
||||
S.subjectname = subjectname
|
||||
S.subjectjob = subjectjob
|
||||
if(subjectname)
|
||||
S.name = "[subjectname] meatsteak"
|
||||
else if(subjectjob)
|
||||
S.name = "[subjectjob] meatsteak"
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime
|
||||
icon_state = "slimemeat"
|
||||
desc = "Because jello wasn't offensive enough to vegans."
|
||||
list_reagents = list("nutriment" = 3, "slimejelly" = 3)
|
||||
filling_color = "#00FFFF"
|
||||
tastes = list("slime" = 1, "jelly" = 1)
|
||||
foodtype = MEAT | RAW | TOXIC
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/golem
|
||||
icon_state = "golemmeat"
|
||||
desc = "Edible rocks, welcome to the future."
|
||||
list_reagents = list("nutriment" = 3, "iron" = 3)
|
||||
filling_color = "#A9A9A9"
|
||||
tastes = list("rock" = 1)
|
||||
foodtype = MEAT | RAW | GROSS
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine
|
||||
icon_state = "agolemmeat"
|
||||
desc = "From the slime pen to the rune to the kitchen, science."
|
||||
filling_color = "#66CDAA"
|
||||
foodtype = MEAT | RAW | GROSS
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard
|
||||
icon_state = "lizardmeat"
|
||||
desc = "Delicious dino damage."
|
||||
filling_color = "#6B8E23"
|
||||
tastes = list("meat" = 4, "scales" = 1)
|
||||
foodtype = MEAT | RAW
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/plant
|
||||
icon_state = "plantmeat"
|
||||
desc = "All the joys of healthy eating with all the fun of cannibalism."
|
||||
filling_color = "#E9967A"
|
||||
tastes = list("salad" = 1, "wood" = 1)
|
||||
foodtype = VEGETABLES
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/shadow
|
||||
icon_state = "shadowmeat"
|
||||
desc = "Ow, the edge."
|
||||
filling_color = "#202020"
|
||||
tastes = list("darkness" = 1, "meat" = 1)
|
||||
foodtype = MEAT | RAW
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/fly
|
||||
icon_state = "flymeat"
|
||||
desc = "Nothing says tasty like maggot filled radioactive mutant flesh."
|
||||
list_reagents = list("nutriment" = 3, "uranium" = 3)
|
||||
tastes = list("maggots" = 1, "the inside of a reactor" = 1)
|
||||
foodtype = MEAT | RAW | GROSS
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/insect
|
||||
icon_state = "mothmeat"
|
||||
desc = "Unpleasantly powdery and dry. Kind of pretty, though."
|
||||
filling_color = "#BF896B"
|
||||
tastes = list("dust" = 1, "powder" = 1, "meat" = 2)
|
||||
foodtype = MEAT | RAW
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton
|
||||
name = "bone"
|
||||
icon_state = "skeletonmeat"
|
||||
desc = "There's a point where this needs to stop, and clearly we have passed it."
|
||||
filling_color = "#F0F0F0"
|
||||
tastes = list("bone" = 1)
|
||||
slice_path = null //can't slice a bone into cutlets
|
||||
foodtype = GROSS
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie
|
||||
name = " meat (rotten)"
|
||||
icon_state = "rottenmeat"
|
||||
desc = "Halfway to becoming fertilizer for your garden."
|
||||
filling_color = "#6B8E23"
|
||||
tastes = list("brains" = 1, "meat" = 1)
|
||||
foodtype = RAW | MEAT | TOXIC
|
||||
|
||||
|
||||
////////////////////////////////////// OTHER MEATS ////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/synthmeat
|
||||
name = "synthmeat"
|
||||
desc = "A synthetic slab of meat."
|
||||
foodtype = RAW | MEAT //hurr durr chemicals we're harmed in the production of this meat thus its non-vegan.
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct
|
||||
name = "meat product"
|
||||
desc = "A slab of station reclaimed and chemically processed meat product."
|
||||
foodtype = RAW | MEAT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/monkey
|
||||
name = "monkey meat"
|
||||
foodtype = RAW | MEAT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/corgi
|
||||
name = "corgi meat"
|
||||
desc = "Tastes like... well you know..."
|
||||
tastes = list("meat" = 4, "a fondness for wearing hats" = 1)
|
||||
foodtype = RAW | MEAT | GROSS
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/pug
|
||||
name = "pug meat"
|
||||
desc = "Tastes like... well you know..."
|
||||
foodtype = RAW | MEAT | GROSS
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/killertomato
|
||||
name = "killer tomato meat"
|
||||
desc = "A slice from a huge tomato."
|
||||
icon_state = "tomatomeat"
|
||||
list_reagents = list("nutriment" = 2)
|
||||
filling_color = "#FF0000"
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/killertomato
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/killertomato
|
||||
tastes = list("tomato" = 1)
|
||||
foodtype = FRUIT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/bear
|
||||
name = "bear meat"
|
||||
desc = "A very manly slab of meat."
|
||||
icon_state = "bearmeat"
|
||||
list_reagents = list("nutriment" = 12, "morphine" = 5, "vitamin" = 2, "cooking_oil" = 6)
|
||||
filling_color = "#FFB6C1"
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/bear
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/bear
|
||||
tastes = list("meat" = 1, "salmon" = 1)
|
||||
foodtype = RAW | MEAT
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/xeno
|
||||
name = "xeno meat"
|
||||
desc = "A slab of meat."
|
||||
icon_state = "xenomeat"
|
||||
list_reagents = list("nutriment" = 3, "vitamin" = 1)
|
||||
bitesize = 4
|
||||
filling_color = "#32CD32"
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/xeno
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/xeno
|
||||
tastes = list("meat" = 1, "acid" = 1)
|
||||
foodtype = RAW | MEAT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/spider
|
||||
name = "spider meat"
|
||||
desc = "A slab of spider meat."
|
||||
icon_state = "spidermeat"
|
||||
list_reagents = list("nutriment" = 3, "toxin" = 3, "vitamin" = 1)
|
||||
filling_color = "#7CFC00"
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/spider
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/spider
|
||||
tastes = list("cobwebs" = 1)
|
||||
foodtype = RAW | MEAT | TOXIC
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/goliath
|
||||
name = "goliath meat"
|
||||
desc = "A slab of goliath meat. It's not very edible now, but it cooks great in lava."
|
||||
list_reagents = list("nutriment" = 3, "toxin" = 5, "cooking_oil" = 3)
|
||||
icon_state = "goliathmeat"
|
||||
tastes = list("meat" = 1)
|
||||
foodtype = RAW | MEAT | TOXIC
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/goliath/burn()
|
||||
visible_message("[src] finishes cooking!")
|
||||
new /obj/item/reagent_containers/food/snacks/meat/steak/goliath(loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/meatwheat
|
||||
name = "meatwheat clump"
|
||||
desc = "This doesn't look like meat, but your standards aren't <i>that</i> high to begin with."
|
||||
list_reagents = list("nutriment" = 3, "vitamin" = 2, "blood" = 5, "cooking_oil" = 1)
|
||||
filling_color = rgb(150, 0, 0)
|
||||
icon_state = "meatwheat_clump"
|
||||
bitesize = 4
|
||||
tastes = list("meat" = 1, "wheat" = 1)
|
||||
foodtype = GRAIN
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/gorilla
|
||||
name = "gorilla meat"
|
||||
desc = "Much meatier than monkey meat."
|
||||
list_reagents = list("nutriment" = 5, "vitamin" = 1, "cooking_oil" = 5) //Plenty of fat!
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/rawbacon
|
||||
name = "raw piece of bacon"
|
||||
desc = "A raw piece of bacon."
|
||||
icon_state = "bacon"
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/meat/bacon
|
||||
bitesize = 2
|
||||
list_reagents = list("nutriment" = 1, "cooking_oil" = 3)
|
||||
filling_color = "#B22222"
|
||||
tastes = list("bacon" = 1)
|
||||
foodtype = RAW | MEAT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/bacon
|
||||
name = "piece of bacon"
|
||||
desc = "A delicious piece of bacon."
|
||||
icon_state = "baconcooked"
|
||||
list_reagents = list("nutriment" = 2)
|
||||
bonus_reagents = list("nutriment" = 1, "vitamin" = 1, "cooking_oil" = 2)
|
||||
filling_color = "#854817"
|
||||
tastes = list("bacon" = 1)
|
||||
foodtype = MEAT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/gondola
|
||||
name = "gondola meat"
|
||||
desc = "According to legends of old, consuming raw gondola flesh grants one inner peace."
|
||||
list_reagents = list("nutriment" = 3, "tranquility" = 5, "cooking_oil" = 3)
|
||||
tastes = list("meat" = 4, "tranquility" = 1)
|
||||
filling_color = "#9A6750"
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/gondola
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/gondola
|
||||
foodtype = RAW | MEAT
|
||||
|
||||
////////////////////////////////////// MEAT STEAKS ///////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/steak
|
||||
name = "steak"
|
||||
desc = "A piece of hot spicy meat."
|
||||
icon_state = "meatsteak"
|
||||
list_reagents = list("nutriment" = 5)
|
||||
bonus_reagents = list("nutriment" = 2, "vitamin" = 1)
|
||||
trash = /obj/item/trash/plate
|
||||
filling_color = "#B22222"
|
||||
foodtype = MEAT
|
||||
tastes = list("meat" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/steak/plain
|
||||
foodtype = MEAT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/steak/plain/human
|
||||
tastes = list("tender meat" = 1)
|
||||
foodtype = MEAT | GROSS
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/steak/killertomato
|
||||
name = "killer tomato steak"
|
||||
tastes = list("tomato" = 1)
|
||||
foodtype = FRUIT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/steak/bear
|
||||
name = "bear steak"
|
||||
tastes = list("meat" = 1, "salmon" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/steak/xeno
|
||||
name = "xeno steak"
|
||||
tastes = list("meat" = 1, "acid" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/steak/spider
|
||||
name = "spider steak"
|
||||
tastes = list("cobwebs" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/steak/goliath
|
||||
name = "goliath steak"
|
||||
desc = "A delicious, lava cooked steak."
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF
|
||||
icon_state = "goliathsteak"
|
||||
trash = null
|
||||
tastes = list("meat" = 1, "rock" = 1)
|
||||
foodtype = MEAT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/steak/gondola
|
||||
name = "gondola steak"
|
||||
tastes = list("meat" = 1, "tranquility" = 1)
|
||||
|
||||
//////////////////////////////// MEAT CUTLETS ///////////////////////////////////////////////////////
|
||||
|
||||
//Raw cutlets
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/rawcutlet
|
||||
name = "raw cutlet"
|
||||
desc = "A raw meat cutlet."
|
||||
icon_state = "rawcutlet"
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/meat/cutlet/plain
|
||||
bitesize = 2
|
||||
list_reagents = list("nutriment" = 1)
|
||||
filling_color = "#B22222"
|
||||
tastes = list("meat" = 1)
|
||||
var/meat_type = "meat"
|
||||
foodtype = MEAT | RAW
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/rawcutlet/initialize_cooked_food(obj/item/reagent_containers/food/snacks/S, cooking_efficiency)
|
||||
..()
|
||||
S.name = "[meat_type] cutlet"
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/rawcutlet/plain
|
||||
foodtype = MEAT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/rawcutlet/plain/human
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/meat/cutlet/plain/human
|
||||
tastes = list("tender meat" = 1)
|
||||
foodtype = MEAT | RAW | GROSS
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/rawcutlet/plain/human/initialize_cooked_food(obj/item/reagent_containers/food/snacks/S, cooking_efficiency)
|
||||
..()
|
||||
if(subjectname)
|
||||
S.name = "[subjectname] [initial(S.name)]"
|
||||
else if(subjectjob)
|
||||
S.name = "[subjectjob] [initial(S.name)]"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/rawcutlet/killertomato
|
||||
name = "raw killer tomato cutlet"
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/meat/cutlet/killertomato
|
||||
tastes = list("tomato" = 1)
|
||||
foodtype = FRUIT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/rawcutlet/bear
|
||||
name = "raw bear cutlet"
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/meat/cutlet/bear
|
||||
tastes = list("meat" = 1, "salmon" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/rawcutlet/xeno
|
||||
name = "raw xeno cutlet"
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/meat/cutlet/xeno
|
||||
tastes = list("meat" = 1, "acid" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/rawcutlet/spider
|
||||
name = "raw spider cutlet"
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/meat/cutlet/spider
|
||||
tastes = list("cobwebs" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/rawcutlet/gondola
|
||||
name = "raw gondola cutlet"
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/meat/cutlet/gondola
|
||||
tastes = list("meat" = 1, "tranquility" = 1)
|
||||
|
||||
//Cooked cutlets
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/cutlet
|
||||
name = "cutlet"
|
||||
desc = "A cooked meat cutlet."
|
||||
icon_state = "cutlet"
|
||||
bitesize = 2
|
||||
list_reagents = list("nutriment" = 2)
|
||||
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
|
||||
filling_color = "#B22222"
|
||||
tastes = list("meat" = 1)
|
||||
foodtype = MEAT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/cutlet/plain
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/cutlet/plain/human
|
||||
tastes = list("tender meat" = 1)
|
||||
foodtype = MEAT | GROSS
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/cutlet/killertomato
|
||||
name = "killer tomato cutlet"
|
||||
tastes = list("tomato" = 1)
|
||||
foodtype = FRUIT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/cutlet/bear
|
||||
name = "bear cutlet"
|
||||
tastes = list("meat" = 1, "salmon" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/cutlet/xeno
|
||||
name = "xeno cutlet"
|
||||
tastes = list("meat" = 1, "acid" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/cutlet/spider
|
||||
name = "spider cutlet"
|
||||
tastes = list("cobwebs" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meat/cutlet/gondola
|
||||
name = "gondola cutlet"
|
||||
tastes = list("meat" = 1, "tranquility" = 1)
|
||||
@@ -0,0 +1,381 @@
|
||||
/obj/item/reagent_containers/food/snacks/store/cake
|
||||
icon = 'icons/obj/food/piecake.dmi'
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/plain
|
||||
slices_num = 5
|
||||
bitesize = 3
|
||||
volume = 80
|
||||
list_reagents = list("nutriment" = 20, "vitamin" = 5)
|
||||
tastes = list("cake" = 1)
|
||||
foodtype = GRAIN | DAIRY
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice
|
||||
icon = 'icons/obj/food/piecake.dmi'
|
||||
trash = /obj/item/trash/plate
|
||||
list_reagents = list("nutriment" = 4, "vitamin" = 1)
|
||||
customfoodfilling = 0 //to avoid infinite cake-ception
|
||||
tastes = list("cake" = 1)
|
||||
foodtype = GRAIN | DAIRY
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain
|
||||
name = "plain cake"
|
||||
desc = "A plain cake, not a lie."
|
||||
icon_state = "plaincake"
|
||||
custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/cake
|
||||
bonus_reagents = list("nutriment" = 10, "vitamin" = 2)
|
||||
tastes = list("sweetness" = 2,"cake" = 5)
|
||||
foodtype = GRAIN | DAIRY | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/plain
|
||||
name = "plain cake slice"
|
||||
desc = "Just a slice of cake, it is enough for everyone."
|
||||
icon_state = "plaincake_slice"
|
||||
filling_color = "#FFD700"
|
||||
customfoodfilling = 1
|
||||
tastes = list("sweetness" = 2,"cake" = 5)
|
||||
foodtype = GRAIN | DAIRY | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/carrot
|
||||
name = "carrot cake"
|
||||
desc = "A favorite desert of a certain wascally wabbit. Not a lie."
|
||||
icon_state = "carrotcake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/carrot
|
||||
slices_num = 5
|
||||
bonus_reagents = list("nutriment" = 3, "oculine" = 5, "vitamin" = 10)
|
||||
list_reagents = list("nutriment" = 20, "oculine" = 10, "vitamin" = 5)
|
||||
tastes = list("cake" = 5, "sweetness" = 2, "carrot" = 1)
|
||||
foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/carrot
|
||||
name = "carrot cake slice"
|
||||
desc = "Carrotty slice of Carrot Cake, carrots are good for your eyes! Also not a lie."
|
||||
icon_state = "carrotcake_slice"
|
||||
filling_color = "#FFA500"
|
||||
list_reagents = list("nutriment" = 4, "oculine" = 2, "vitamin" = 1)
|
||||
tastes = list("cake" = 5, "sweetness" = 2, "carrot" = 1)
|
||||
foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/brain
|
||||
name = "brain cake"
|
||||
desc = "A squishy cake-thing."
|
||||
icon_state = "braincake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/brain
|
||||
slices_num = 5
|
||||
bonus_reagents = list("nutriment" = 5, "mannitol" = 10, "vitamin" = 10)
|
||||
list_reagents = list("nutriment" = 20, "mannitol" = 10, "vitamin" = 5)
|
||||
tastes = list("cake" = 5, "sweetness" = 2, "brains" = 1)
|
||||
foodtype = GRAIN | DAIRY | MEAT | GROSS | SUGAR
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/brain
|
||||
name = "brain cake slice"
|
||||
desc = "Lemme tell you something about prions. THEY'RE DELICIOUS."
|
||||
icon_state = "braincakeslice"
|
||||
filling_color = "#FF69B4"
|
||||
list_reagents = list("nutriment" = 4, "mannitol" = 2, "vitamin" = 1)
|
||||
tastes = list("cake" = 5, "sweetness" = 2, "brains" = 1)
|
||||
foodtype = GRAIN | DAIRY | MEAT | GROSS | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/cheese
|
||||
name = "cheese cake"
|
||||
desc = "DANGEROUSLY cheesy."
|
||||
icon_state = "cheesecake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/cheese
|
||||
slices_num = 5
|
||||
bonus_reagents = list("vitamin" = 10)
|
||||
tastes = list("cake" = 4, "cream cheese" = 3)
|
||||
foodtype = GRAIN | DAIRY
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/cheese
|
||||
name = "cheese cake slice"
|
||||
desc = "Slice of pure cheestisfaction."
|
||||
icon_state = "cheesecake_slice"
|
||||
filling_color = "#FFFACD"
|
||||
tastes = list("cake" = 4, "cream cheese" = 3)
|
||||
foodtype = GRAIN | DAIRY
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/orange
|
||||
name = "orange cake"
|
||||
desc = "A cake with added orange."
|
||||
icon_state = "orangecake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/orange
|
||||
slices_num = 5
|
||||
bonus_reagents = list("nutriment" = 3, "vitamin" = 10)
|
||||
tastes = list("cake" = 5, "sweetness" = 2, "oranges" = 2)
|
||||
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/orange
|
||||
name = "orange cake slice"
|
||||
desc = "Just a slice of cake, it is enough for everyone."
|
||||
icon_state = "orangecake_slice"
|
||||
filling_color = "#FFA500"
|
||||
tastes = list("cake" = 5, "sweetness" = 2, "oranges" = 2)
|
||||
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/lime
|
||||
name = "lime cake"
|
||||
desc = "A cake with added lime."
|
||||
icon_state = "limecake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/lime
|
||||
slices_num = 5
|
||||
bonus_reagents = list("nutriment" = 3, "vitamin" = 10)
|
||||
tastes = list("cake" = 5, "sweetness" = 2, "unbearable sourness" = 2)
|
||||
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/lime
|
||||
name = "lime cake slice"
|
||||
desc = "Just a slice of cake, it is enough for everyone."
|
||||
icon_state = "limecake_slice"
|
||||
filling_color = "#00FF00"
|
||||
tastes = list("cake" = 5, "sweetness" = 2, "unbearable sourness" = 2)
|
||||
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/lemon
|
||||
name = "lemon cake"
|
||||
desc = "A cake with added lemon."
|
||||
icon_state = "lemoncake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/lemon
|
||||
slices_num = 5
|
||||
bonus_reagents = list("nutriment" = 3, "vitamin" = 10)
|
||||
tastes = list("cake" = 5, "sweetness" = 2, "sourness" = 2)
|
||||
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/lemon
|
||||
name = "lemon cake slice"
|
||||
desc = "Just a slice of cake, it is enough for everyone."
|
||||
icon_state = "lemoncake_slice"
|
||||
filling_color = "#FFEE00"
|
||||
tastes = list("cake" = 5, "sweetness" = 2, "sourness" = 2)
|
||||
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/chocolate
|
||||
name = "chocolate cake"
|
||||
desc = "A cake with added chocolate."
|
||||
icon_state = "chocolatecake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/chocolate
|
||||
slices_num = 5
|
||||
bonus_reagents = list("nutriment" = 3, "vitamin" = 10)
|
||||
tastes = list("cake" = 5, "sweetness" = 1, "chocolate" = 4)
|
||||
foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/chocolate
|
||||
name = "chocolate cake slice"
|
||||
desc = "Just a slice of cake, it is enough for everyone."
|
||||
icon_state = "chocolatecake_slice"
|
||||
filling_color = "#A0522D"
|
||||
tastes = list("cake" = 5, "sweetness" = 1, "chocolate" = 4)
|
||||
foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/birthday
|
||||
name = "birthday cake"
|
||||
desc = "Happy Birthday little clown..."
|
||||
icon_state = "birthdaycake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/birthday
|
||||
slices_num = 5
|
||||
bonus_reagents = list("nutriment" = 7, "sprinkles" = 10, "vitamin" = 5)
|
||||
list_reagents = list("nutriment" = 20, "sprinkles" = 10, "vitamin" = 5)
|
||||
tastes = list("cake" = 5, "sweetness" = 1)
|
||||
foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/birthday
|
||||
name = "birthday cake slice"
|
||||
desc = "A slice of your birthday."
|
||||
icon_state = "birthdaycakeslice"
|
||||
filling_color = "#DC143C"
|
||||
list_reagents = list("nutriment" = 4, "sprinkles" = 2, "vitamin" = 1)
|
||||
tastes = list("cake" = 5, "sweetness" = 1)
|
||||
foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/apple
|
||||
name = "apple cake"
|
||||
desc = "A cake centred with Apple."
|
||||
icon_state = "applecake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/apple
|
||||
slices_num = 5
|
||||
bonus_reagents = list("nutriment" = 3, "vitamin" = 10)
|
||||
tastes = list("cake" = 5, "sweetness" = 1, "apple" = 1)
|
||||
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/apple
|
||||
name = "apple cake slice"
|
||||
desc = "A slice of heavenly cake."
|
||||
icon_state = "applecakeslice"
|
||||
filling_color = "#FF4500"
|
||||
tastes = list("cake" = 5, "sweetness" = 1, "apple" = 1)
|
||||
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/custom
|
||||
name = "cake slice"
|
||||
icon_state = "plaincake_slice"
|
||||
filling_color = "#FFFFFF"
|
||||
foodtype = GRAIN | DAIRY
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/slimecake
|
||||
name = "Slime cake"
|
||||
desc = "A cake made of slimes. Probably not electrified."
|
||||
icon_state = "slimecake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/slimecake
|
||||
bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
|
||||
tastes = list("cake" = 5, "sweetness" = 1, "slime" = 1)
|
||||
foodtype = GRAIN | DAIRY | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/slimecake
|
||||
name = "slime cake slice"
|
||||
desc = "A slice of slime cake."
|
||||
icon_state = "slimecake_slice"
|
||||
filling_color = "#00FFFF"
|
||||
tastes = list("cake" = 5, "sweetness" = 1, "slime" = 1)
|
||||
foodtype = GRAIN | DAIRY | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/pumpkinspice
|
||||
name = "pumpkin spice cake"
|
||||
desc = "A hollow cake with real pumpkin."
|
||||
icon_state = "pumpkinspicecake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/pumpkinspice
|
||||
bonus_reagents = list("nutriment" = 3, "vitamin" = 5)
|
||||
tastes = list("cake" = 5, "sweetness" = 1, "pumpkin" = 1)
|
||||
foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/pumpkinspice
|
||||
name = "pumpkin spice cake slice"
|
||||
desc = "A spicy slice of pumpkin goodness."
|
||||
icon_state = "pumpkinspicecakeslice"
|
||||
filling_color = "#FFD700"
|
||||
tastes = list("cake" = 5, "sweetness" = 1, "pumpkin" = 1)
|
||||
foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/bsvc // blackberry strawberries vanilla cake
|
||||
name = "blackberry and strawberry vanilla cake"
|
||||
desc = "A plain cake, filled with assortment of blackberries and strawberries!"
|
||||
icon_state = "blackbarry_strawberries_cake_vanilla_cake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/bsvc
|
||||
bonus_reagents = list("nutriment" = 14, "vitamin" = 4)
|
||||
tastes = list("blackbarry" = 2, "strawberries" = 2, "vanilla" = 2, "sweetness" = 2, "cake" = 3)
|
||||
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/bsvc
|
||||
name = "blackberry and strawberry vanilla cake slice"
|
||||
desc = "Just a slice of cake filled with assortment of blackberries and strawberries!"
|
||||
icon_state = "blackbarry_strawberries_cake_vanilla_slice"
|
||||
filling_color = "#FFD700"
|
||||
tastes = list("blackbarry" = 2, "strawberries" = 2, "vanilla" = 2, "sweetness" = 2,"cake" = 3)
|
||||
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/bscc // blackbarry strawberries chocolate cake
|
||||
name = "blackberry and strawberry chocolate cake"
|
||||
desc = "A plain cake, filled with assortment of blackberries and strawberries!"
|
||||
icon_state = "blackbarry_strawberries_cake_coco_cake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/bscc
|
||||
bonus_reagents = list("nutriment" = 14, "vitamin" = 4, "cocoa" = 5)
|
||||
tastes = list("blackberry" = 2, "strawberries" = 2, "chocolate" = 2, "sweetness" = 2,"cake" = 3)
|
||||
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/bscc
|
||||
name = "blackberry and strawberry chocolate cake slice"
|
||||
desc = "Just a slice of cake filled with assortment of blackberries and strawberries!"
|
||||
icon_state = "blackbarry_strawberries_cake_coco_slice"
|
||||
filling_color = "#FFD700"
|
||||
tastes = list("blackberry" = 2, "strawberries" = 2, "chocolate" = 2, "sweetness" = 2,"cake" = 3)
|
||||
foodtype = GRAIN | DAIRY | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/holy_cake
|
||||
name = "angel food cake"
|
||||
desc = "A cake made for angels and chaplains alike! Contains holy water."
|
||||
icon_state = "holy_cake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/holy_cake_slice
|
||||
bonus_reagents = list("nutriment" = 1, "vitamin" = 3, "holy_water" = 10)
|
||||
tastes = list("cake" = 5, "sweetness" = 1, "clouds" = 1)
|
||||
foodtype = GRAIN | DAIRY | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/holy_cake_slice
|
||||
name = "angel food cake slice"
|
||||
desc = "A slice of heavenly cake."
|
||||
icon_state = "holy_cake_slice"
|
||||
filling_color = "#00FFFF"
|
||||
tastes = list("cake" = 5, "sweetness" = 1, "clouds" = 1)
|
||||
foodtype = GRAIN | DAIRY | SUGAR
|
||||
|
||||
obj/item/reagent_containers/food/snacks/store/cake/pound_cake
|
||||
name = "pound cake"
|
||||
desc = "A condensed cake made for filling people up quickly."
|
||||
icon_state = "pound_cake"
|
||||
slices_num = 7 //Its ment to feed the party
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/pound_cake_slice
|
||||
bonus_reagents = list("nutriment" = 60)
|
||||
tastes = list("cake" = 5, "sweetness" = 1, "batter" = 1)
|
||||
foodtype = GRAIN | DAIRY | SUGAR | JUNKFOOD
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/pound_cake_slice
|
||||
name = "pound cake slice"
|
||||
desc = "A slice of condensed cake made for filling people up quickly."
|
||||
icon_state = "pound_cake_slice"
|
||||
filling_color = "#00FFFF"
|
||||
tastes = list("cake" = 5, "sweetness" = 5, "batter" = 1)
|
||||
foodtype = GRAIN | DAIRY | SUGAR | JUNKFOOD
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/hardware_cake
|
||||
name = "hardware cake"
|
||||
desc = "A cake that is made with electronic boards and leaks acid..."
|
||||
icon_state = "hardware_cake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/hardware_cake_slice
|
||||
bonus_reagents = list("sacid" = 15, "oil" = 15)
|
||||
tastes = list("acid" = 1, "metal" = 1, "regret" = 10)
|
||||
foodtype = GRAIN | GROSS
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/hardware_cake_slice
|
||||
name = "hardware cake slice"
|
||||
desc = "A slice of electronic boards and some acid."
|
||||
icon_state = "hardware_cake_slice"
|
||||
filling_color = "#00FFFF"
|
||||
tastes = list("acid" = 1, "metal" = 1, "regret" = 10)
|
||||
foodtype = GRAIN | GROSS
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/vanilla_cake
|
||||
name = "vanilla cake"
|
||||
desc = "A vanilla frosted cake."
|
||||
icon_state = "vanillacake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/vanilla_slice
|
||||
bonus_reagents = list("sugar" = 15, "vanilla" = 15)
|
||||
tastes = list("cake" = 1, "sugar" = 1, "vanilla" = 10)
|
||||
foodtype = GRAIN | SUGAR | DAIRY
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/vanilla_slice
|
||||
name = "vanilla cake slice"
|
||||
desc = "A slice of vanilla frosted cake."
|
||||
icon_state = "vanillacake_slice"
|
||||
filling_color = "#00FFFF"
|
||||
tastes = list("cake" = 1, "sugar" = 1, "vanilla" = 10)
|
||||
foodtype = GRAIN | SUGAR | DAIRY
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/clown_cake
|
||||
name = "clown cake"
|
||||
desc = "A funny cake with a clown face on it."
|
||||
icon_state = "clowncake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/clown_slice
|
||||
bonus_reagents = list("sugar" = 15, "laugher" = 15)
|
||||
tastes = list("cake" = 1, "sugar" = 1, "joy" = 10)
|
||||
foodtype = GRAIN | SUGAR | DAIRY
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/clown_slice
|
||||
name = "clown cake slice"
|
||||
desc = "A slice of bad jokes, and silly props."
|
||||
icon_state = "clowncake_slice"
|
||||
filling_color = "#00FFFF"
|
||||
tastes = list("cake" = 1, "sugar" = 1, "joy" = 10)
|
||||
foodtype = GRAIN | SUGAR | DAIRY
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/peach_cake
|
||||
name = "peach cake"
|
||||
desc = "A peach filled cake."
|
||||
icon_state = "peachcake"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/peach_slice
|
||||
bonus_reagents = list("sugar" = 5, "peachjuice" = 15)
|
||||
tastes = list("cake" = 1, "sugar" = 1, "peachjuice" = 10)
|
||||
foodtype = GRAIN | SUGAR | DAIRY
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice/peach_slice
|
||||
name = "peach cake slice"
|
||||
desc = "A slice of peach cake."
|
||||
icon_state = "peach_slice"
|
||||
filling_color = "#00FFFF"
|
||||
tastes = list("cake" = 1, "sugar" = 1, "peachjuice" = 10)
|
||||
foodtype = GRAIN | SUGAR | DAIRY
|
||||
@@ -0,0 +1,497 @@
|
||||
//Pastry is a food that is made from dough which is made from wheat or rye flour.
|
||||
//This file contains pastries that don't fit any existing categories.
|
||||
////////////////////////////////////////////DONUTS////////////////////////////////////////////
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut
|
||||
name = "donut"
|
||||
desc = "Goes great with robust coffee."
|
||||
icon_state = "donut1"
|
||||
bitesize = 5
|
||||
bonus_reagents = list("sugar" = 1)
|
||||
list_reagents = list("nutriment" = 3, "sprinkles" = 1, "sugar" = 2)
|
||||
filling_color = "#D2691E"
|
||||
tastes = list("donut" = 1)
|
||||
foodtype = JUNKFOOD | GRAIN | FRIED | SUGAR
|
||||
var/frosted_icon = "donut2"
|
||||
var/is_frosted = FALSE
|
||||
var/extra_reagent = null
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/Initialize()
|
||||
. = ..()
|
||||
if(prob(30))
|
||||
frost_donut()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/proc/frost_donut()
|
||||
if(is_frosted || !frosted_icon)
|
||||
return
|
||||
is_frosted = TRUE
|
||||
name = "frosted [name]"
|
||||
icon_state = frosted_icon //delish~!
|
||||
reagents.add_reagent("sprinkles", 1)
|
||||
filling_color = "#FF69B4"
|
||||
return TRUE
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/checkLiked(fraction, mob/M) //Sec officers always love donuts
|
||||
if(last_check_time + 50 < world.time)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(M.mind && HAS_TRAIT(M.mind, TRAIT_LAW_ENFORCEMENT_METABOLISM) && !HAS_TRAIT(H, TRAIT_AGEUSIA))
|
||||
to_chat(H,"<span class='notice'>I love this taste!</span>")
|
||||
H.adjust_disgust(-5 + -2.5 * fraction)
|
||||
SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "fav_food", /datum/mood_event/favorite_food)
|
||||
last_check_time = world.time
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/chaos
|
||||
name = "chaos donut"
|
||||
desc = "Like life, it never quite tastes the same."
|
||||
bitesize = 10
|
||||
tastes = list("donut" = 3, "chaos" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/chaos/Initialize()
|
||||
. = ..()
|
||||
extra_reagent = pick("nutriment", "capsaicin", "frostoil", "krokodil", "plasma", "cocoa", "slimejelly", "banana", "berryjuice", "omnizine")
|
||||
reagents.add_reagent("[extra_reagent]", 3)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/jelly
|
||||
name = "jelly donut"
|
||||
desc = "You jelly?"
|
||||
icon_state = "jdonut1"
|
||||
frosted_icon = "jdonut2"
|
||||
bonus_reagents = list("sugar" = 1, "vitamin" = 1)
|
||||
extra_reagent = "berryjuice"
|
||||
tastes = list("jelly" = 1, "donut" = 3)
|
||||
foodtype = JUNKFOOD | GRAIN | FRIED | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/jelly/Initialize()
|
||||
. = ..()
|
||||
if(extra_reagent)
|
||||
reagents.add_reagent("[extra_reagent]", 3)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly
|
||||
name = "jelly donut"
|
||||
desc = "You jelly?"
|
||||
icon_state = "jdonut1"
|
||||
extra_reagent = "slimejelly"
|
||||
foodtype = JUNKFOOD | GRAIN | FRIED | TOXIC | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/jelly/cherryjelly
|
||||
name = "jelly donut"
|
||||
desc = "You jelly?"
|
||||
icon_state = "jdonut1"
|
||||
extra_reagent = "cherryjelly"
|
||||
foodtype = JUNKFOOD | GRAIN | FRIED | FRUIT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/meat
|
||||
bonus_reagents = list("ketchup" = 1)
|
||||
list_reagents = list("nutriment" = 3, "ketchup" = 2)
|
||||
tastes = list("meat" = 1)
|
||||
foodtype = JUNKFOOD | MEAT | GROSS | FRIED
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/semen
|
||||
name = "\"cream\" donut"
|
||||
desc = "That cream looks a little runny..."
|
||||
icon_state = "donut3"
|
||||
bitesize = 10
|
||||
bonus_reagents = list("semen" = 1)
|
||||
list_reagents = list("nutriment" = 3, "sugar" = 2, "semen" = 5)
|
||||
filling_color = "#FFFFFF"
|
||||
tastes = list("donut" = 1, "salt" = 3)
|
||||
foodtype = JUNKFOOD | GRAIN | FRIED | SUGAR
|
||||
|
||||
|
||||
////////////////////////////////////////////MUFFINS////////////////////////////////////////////
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/muffin
|
||||
name = "muffin"
|
||||
desc = "A delicious and spongy little cake."
|
||||
icon_state = "muffin"
|
||||
bonus_reagents = list("vitamin" = 1)
|
||||
list_reagents = list("nutriment" = 6)
|
||||
filling_color = "#F4A460"
|
||||
tastes = list("muffin" = 1)
|
||||
foodtype = GRAIN | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/muffin/berry
|
||||
name = "berry muffin"
|
||||
icon_state = "berrymuffin"
|
||||
desc = "A delicious and spongy little cake, with berries."
|
||||
tastes = list("muffin" = 3, "berry" = 1)
|
||||
foodtype = GRAIN | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/muffin/booberry
|
||||
name = "booberry muffin"
|
||||
icon_state = "berrymuffin"
|
||||
alpha = 125
|
||||
desc = "My stomach is a graveyard! No living being can quench my bloodthirst!"
|
||||
tastes = list("muffin" = 3, "spookiness" = 1)
|
||||
foodtype = GRAIN | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/chawanmushi
|
||||
name = "chawanmushi"
|
||||
desc = "A legendary egg custard that makes friends out of enemies. Probably too hot for a cat to eat."
|
||||
icon_state = "chawanmushi"
|
||||
bonus_reagents = list("vitamin" = 1)
|
||||
list_reagents = list("nutriment" = 5)
|
||||
filling_color = "#FFE4E1"
|
||||
tastes = list("custard" = 1)
|
||||
foodtype = GRAIN | MEAT | VEGETABLES
|
||||
|
||||
////////////////////////////////////////////WAFFLES////////////////////////////////////////////
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/waffles
|
||||
name = "waffles"
|
||||
desc = "Mmm, waffles."
|
||||
icon_state = "waffles"
|
||||
trash = /obj/item/trash/waffles
|
||||
bonus_reagents = list("vitamin" = 1)
|
||||
list_reagents = list("nutriment" = 8, "vitamin" = 1)
|
||||
filling_color = "#D2691E"
|
||||
tastes = list("waffles" = 1)
|
||||
foodtype = GRAIN | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/soylentgreen
|
||||
name = "\improper Soylent Green"
|
||||
desc = "Not made of people. Honest." //Totally people.
|
||||
icon_state = "soylent_green"
|
||||
trash = /obj/item/trash/waffles
|
||||
bonus_reagents = list("vitamin" = 1)
|
||||
list_reagents = list("nutriment" = 10, "vitamin" = 1)
|
||||
filling_color = "#9ACD32"
|
||||
tastes = list("waffles" = 7, "people" = 1)
|
||||
foodtype = GRAIN | GROSS | MEAT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/soylenviridians
|
||||
name = "\improper Soylent Virdians"
|
||||
desc = "Not made of people. Honest." //Actually honest for once.
|
||||
icon_state = "soylent_yellow"
|
||||
trash = /obj/item/trash/waffles
|
||||
bonus_reagents = list("vitamin" = 1)
|
||||
list_reagents = list("nutriment" = 10, "vitamin" = 1)
|
||||
filling_color = "#9ACD32"
|
||||
tastes = list("waffles" = 7, "the colour green" = 1)
|
||||
foodtype = GRAIN
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/rofflewaffles
|
||||
name = "roffle waffles"
|
||||
desc = "Waffles from Roffle. Co."
|
||||
icon_state = "rofflewaffles"
|
||||
trash = /obj/item/trash/waffles
|
||||
bitesize = 4
|
||||
bonus_reagents = list("vitamin" = 2)
|
||||
list_reagents = list("nutriment" = 8, "mushroomhallucinogen" = 2, "vitamin" = 2)
|
||||
filling_color = "#00BFFF"
|
||||
tastes = list("waffle" = 1, "mushrooms" = 1)
|
||||
foodtype = GRAIN | VEGETABLES | TOXIC | SUGAR
|
||||
|
||||
////////////////////////////////////////////OTHER////////////////////////////////////////////
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cookie
|
||||
name = "cookie"
|
||||
desc = "COOKIE!!!"
|
||||
icon_state = "COOKIE!!!"
|
||||
bitesize = 1
|
||||
bonus_reagents = list("nutriment" = 1)
|
||||
list_reagents = list("nutriment" = 1)
|
||||
filling_color = "#F0E68C"
|
||||
tastes = list("cookie" = 1)
|
||||
foodtype = SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donkpocket
|
||||
name = "\improper Donk-pocket"
|
||||
desc = "The food of choice for the seasoned traitor."
|
||||
icon_state = "donkpocket"
|
||||
list_reagents = list("nutriment" = 4)
|
||||
cooked_type = /obj/item/reagent_containers/food/snacks/donkpocket/warm
|
||||
filling_color = "#CD853F"
|
||||
tastes = list("meat" = 2, "dough" = 2, "laziness" = 1)
|
||||
foodtype = GRAIN
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donkpocket/warm
|
||||
name = "warm Donk-pocket"
|
||||
desc = "The heated food of choice for the seasoned traitor."
|
||||
bonus_reagents = list("omnizine" = 3)
|
||||
list_reagents = list("nutriment" = 4, "omnizine" = 3)
|
||||
tastes = list("meat" = 2, "dough" = 2, "laziness" = 1)
|
||||
foodtype = GRAIN
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/dankpocket
|
||||
name = "\improper Dank-pocket"
|
||||
desc = "The food of choice for the seasoned botanist."
|
||||
icon_state = "dankpocket"
|
||||
list_reagents = list("lipolicide" = 3, "space_drugs" = 3, "nutriment" = 4)
|
||||
filling_color = "#00FF00"
|
||||
tastes = list("meat" = 2, "dough" = 2)
|
||||
foodtype = GRAIN | VEGETABLES
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/fortunecookie
|
||||
name = "fortune cookie"
|
||||
desc = "A true prophecy in each cookie!"
|
||||
icon_state = "fortune_cookie"
|
||||
bonus_reagents = list("nutriment" = 2)
|
||||
list_reagents = list("nutriment" = 3)
|
||||
filling_color = "#F4A460"
|
||||
tastes = list("cookie" = 1)
|
||||
foodtype = GRAIN | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/poppypretzel
|
||||
name = "poppy pretzel"
|
||||
desc = "It's all twisted up!"
|
||||
icon_state = "poppypretzel"
|
||||
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
|
||||
list_reagents = list("nutriment" = 5)
|
||||
filling_color = "#F0E68C"
|
||||
tastes = list("pretzel" = 1)
|
||||
foodtype = GRAIN | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/plumphelmetbiscuit
|
||||
name = "plump helmet biscuit"
|
||||
desc = "This is a finely-prepared plump helmet biscuit. The ingredients are exceptionally minced plump helmet, and well-minced dwarven wheat flour."
|
||||
icon_state = "phelmbiscuit"
|
||||
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
|
||||
list_reagents = list("nutriment" = 5)
|
||||
filling_color = "#F0E68C"
|
||||
tastes = list("mushroom" = 1, "biscuit" = 1)
|
||||
foodtype = GRAIN | VEGETABLES
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/plumphelmetbiscuit/Initialize()
|
||||
var/fey = prob(10)
|
||||
if(fey)
|
||||
name = "exceptional plump helmet biscuit"
|
||||
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!"
|
||||
bonus_reagents = list("omnizine" = 5, "nutriment" = 1, "vitamin" = 1)
|
||||
. = ..()
|
||||
if(fey)
|
||||
reagents.add_reagent("omnizine", 5)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cracker
|
||||
name = "cracker"
|
||||
desc = "It's a salted cracker."
|
||||
icon_state = "cracker"
|
||||
bitesize = 1
|
||||
bonus_reagents = list("nutriment" = 1)
|
||||
list_reagents = list("nutriment" = 1)
|
||||
filling_color = "#F0E68C"
|
||||
tastes = list("cracker" = 1)
|
||||
foodtype = GRAIN
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/hotdog
|
||||
name = "hotdog"
|
||||
desc = "Fresh footlong ready to go down on."
|
||||
icon_state = "hotdog"
|
||||
bitesize = 3
|
||||
bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
|
||||
list_reagents = list("nutriment" = 6, "ketchup" = 3, "vitamin" = 3)
|
||||
filling_color = "#8B0000"
|
||||
tastes = list("bun" = 3, "meat" = 2)
|
||||
foodtype = GRAIN | MEAT | VEGETABLES
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/meatbun
|
||||
name = "meat bun"
|
||||
desc = "Has the potential to not be Dog."
|
||||
icon_state = "meatbun"
|
||||
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
|
||||
list_reagents = list("nutriment" = 6, "vitamin" = 2)
|
||||
filling_color = "#8B0000"
|
||||
tastes = list("bun" = 3, "meat" = 2)
|
||||
foodtype = GRAIN | MEAT | VEGETABLES
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/khachapuri
|
||||
name = "khachapuri"
|
||||
desc = "Bread with egg and cheese?"
|
||||
icon_state = "khachapuri"
|
||||
list_reagents = list("nutriment" = 12, "vitamin" = 2)
|
||||
filling_color = "#FFFF4D"
|
||||
tastes = list("bread" = 1, "egg" = 1, "cheese" = 1)
|
||||
foodtype = GRAIN | MEAT | DAIRY
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/sugarcookie
|
||||
name = "sugar cookie"
|
||||
desc = "Just like your little sister used to make."
|
||||
icon_state = "sugarcookie"
|
||||
bonus_reagents = list("nutriment" = 1, "sugar" = 3)
|
||||
list_reagents = list("nutriment" = 3, "sugar" = 3)
|
||||
filling_color = "#CD853F"
|
||||
tastes = list("sweetness" = 1)
|
||||
foodtype = GRAIN | JUNKFOOD | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/chococornet
|
||||
name = "chocolate cornet"
|
||||
desc = "Which side's the head, the fat end or the thin end?"
|
||||
icon_state = "chococornet"
|
||||
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
|
||||
list_reagents = list("nutriment" = 5, "vitamin" = 1)
|
||||
filling_color = "#FFE4C4"
|
||||
tastes = list("biscuit" = 3, "chocolate" = 1)
|
||||
foodtype = GRAIN | JUNKFOOD
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/oatmealcookie
|
||||
name = "oatmeal cookie"
|
||||
desc = "The best of both cookie and oat."
|
||||
icon_state = "oatmealcookie"
|
||||
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
|
||||
list_reagents = list("nutriment" = 5, "vitamin" = 1)
|
||||
filling_color = "#D2691E"
|
||||
tastes = list("cookie" = 2, "oat" = 1)
|
||||
foodtype = GRAIN
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/raisincookie
|
||||
name = "raisin cookie"
|
||||
desc = "Why would you put raisins on a cookie?"
|
||||
icon_state = "raisincookie"
|
||||
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
|
||||
list_reagents = list("nutriment" = 5, "vitamin" = 1)
|
||||
filling_color = "#F0E68C"
|
||||
tastes = list("cookie" = 1, "raisins" = 1)
|
||||
foodtype = GRAIN | FRUIT
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/cherrycupcake
|
||||
name = "cherry cupcake"
|
||||
desc = "A sweet cupcake with cherry bits."
|
||||
icon_state = "cherrycupcake"
|
||||
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
|
||||
list_reagents = list("nutriment" = 5, "vitamin" = 1)
|
||||
filling_color = "#F0E68C"
|
||||
tastes = list("cake" = 3, "cherry" = 1)
|
||||
foodtype = GRAIN | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/bluecherrycupcake
|
||||
name = "blue cherry cupcake"
|
||||
desc = "Blue cherries inside a delicious cupcake."
|
||||
icon_state = "bluecherrycupcake"
|
||||
bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
|
||||
list_reagents = list("nutriment" = 5, "vitamin" = 1)
|
||||
filling_color = "#F0E68C"
|
||||
tastes = list("cake" = 3, "blue cherry" = 1)
|
||||
foodtype = GRAIN | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/strawberrycupcake
|
||||
name = "Strawberry cupcake"
|
||||
desc = "Strawberry inside a delicious cupcake."
|
||||
icon_state = "strawberrycupcake"
|
||||
bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
|
||||
list_reagents = list("nutriment" = 5, "vitamin" = 1)
|
||||
filling_color = "#F0E68C"
|
||||
tastes = list("cake" = 2, "strawberry" = 1)
|
||||
foodtype = GRAIN | FRUIT | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/honeybun
|
||||
name = "honey bun"
|
||||
desc = "A sticky pastry bun glazed with honey."
|
||||
icon_state = "honeybun"
|
||||
bonus_reagents = list("nutriment" = 1, "honey" = 1)
|
||||
list_reagents = list("nutriment" = 5, "honey" = 5)
|
||||
filling_color = "#F2CE91"
|
||||
tastes = list("pastry" = 1, "sweetness" = 1)
|
||||
foodtype = GRAIN
|
||||
|
||||
#define PANCAKE_MAX_STACK 10
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pancakes
|
||||
name = "pancake"
|
||||
desc = "A fluffy pancake. The softer, superior relative of the waffle."
|
||||
icon_state = "pancakes_1"
|
||||
item_state = "pancakes"
|
||||
bonus_reagents = list("vitamin" = 1)
|
||||
list_reagents = list("nutriment" = 4, "vitamin" = 1)
|
||||
filling_color = "#D2691E"
|
||||
tastes = list("pancakes" = 1)
|
||||
foodtype = GRAIN | SUGAR
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pancakes/blueberry
|
||||
name = "blueberry pancake"
|
||||
desc = "A fluffy and delicious blueberry pancake."
|
||||
icon_state = "bbpancakes_1"
|
||||
item_state = "bbpancakes"
|
||||
bonus_reagents = list("vitamin" = 2)
|
||||
list_reagents = list("nutriment" = 6, "vitamin" = 3)
|
||||
tastes = list("pancakes" = 1, "blueberries" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pancakes/chocolatechip
|
||||
name = "chocolate chip pancake"
|
||||
desc = "A fluffy and delicious chocolate chip pancake."
|
||||
icon_state = "ccpancakes_1"
|
||||
item_state = "ccpancakes"
|
||||
bonus_reagents = list("vitamin" = 2)
|
||||
list_reagents = list("nutriment" = 6, "vitamin" = 3)
|
||||
tastes = list("pancakes" = 1, "chocolate" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pancakes/Initialize()
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pancakes/update_icon()
|
||||
if(contents.len)
|
||||
name = "stack of pancakes"
|
||||
else
|
||||
name = initial(name)
|
||||
if(contents.len < LAZYLEN(overlays))
|
||||
overlays-=overlays[overlays.len]
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pancakes/examine(mob/user)
|
||||
var/ingredients_listed = ""
|
||||
var/pancakeCount = contents.len
|
||||
switch(pancakeCount)
|
||||
if(0)
|
||||
desc = initial(desc)
|
||||
if(1 to 2)
|
||||
desc = "A stack of fluffy pancakes."
|
||||
if(3 to 6)
|
||||
desc = "A fat stack of fluffy pancakes!"
|
||||
if(7 to 9)
|
||||
desc = "A grand tower of fluffy, delicious pancakes!"
|
||||
if(PANCAKE_MAX_STACK to INFINITY)
|
||||
desc = "A massive towering spire of fluffy, delicious pancakes. It looks like it could tumble over!"
|
||||
var/originalBites = bitecount
|
||||
if (pancakeCount)
|
||||
var/obj/item/reagent_containers/food/snacks/S = contents[pancakeCount]
|
||||
bitecount = S.bitecount
|
||||
..()
|
||||
if (pancakeCount)
|
||||
for(var/obj/item/reagent_containers/food/snacks/pancakes/ING in contents)
|
||||
ingredients_listed += "[ING.name], "
|
||||
to_chat(user, "It contains [contents.len?"[ingredients_listed]":"no ingredient, "]on top of a [initial(name)].")
|
||||
bitecount = originalBites
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pancakes/attackby(obj/item/I, mob/living/user, params)
|
||||
if(istype(I, /obj/item/reagent_containers/food/snacks/pancakes/))
|
||||
var/obj/item/reagent_containers/food/snacks/pancakes/P = I
|
||||
if((contents.len >= PANCAKE_MAX_STACK) || ((P.contents.len + contents.len) > PANCAKE_MAX_STACK) || (reagents.total_volume >= volume))
|
||||
to_chat(user, "<span class='warning'>You can't add that many pancakes to [src]!</span>")
|
||||
else
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You add the [I] to the [name].</span>")
|
||||
P.name = initial(P.name)
|
||||
contents += P
|
||||
update_overlays(P)
|
||||
if (P.contents.len)
|
||||
for(var/V in P.contents)
|
||||
P = V
|
||||
P.name = initial(P.name)
|
||||
contents += P
|
||||
update_overlays(P)
|
||||
P = I
|
||||
clearlist(P.contents)
|
||||
return
|
||||
else if(contents.len)
|
||||
var/obj/O = contents[contents.len]
|
||||
return O.attackby(I, user, params)
|
||||
..()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pancakes/update_overlays(obj/item/reagent_containers/food/snacks/P)
|
||||
var/mutable_appearance/pancake = mutable_appearance(icon, "[P.item_state]_[rand(1,3)]")
|
||||
pancake.pixel_x = rand(-1,1)
|
||||
pancake.pixel_y = 3 * contents.len - 1
|
||||
add_overlay(pancake)
|
||||
update_icon()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/pancakes/attack(mob/M, mob/user, def_zone, stacked = TRUE)
|
||||
if(user.a_intent == INTENT_HARM || !contents.len || !stacked)
|
||||
return ..()
|
||||
var/obj/item/O = contents[contents.len]
|
||||
. = O.attack(M, user, def_zone, FALSE)
|
||||
update_icon()
|
||||
|
||||
#undef PANCAKE_MAX_STACK
|
||||
@@ -0,0 +1,346 @@
|
||||
/obj/item/bombcore/miniature/pizza
|
||||
name = "pizza bomb"
|
||||
desc = "Special delivery!"
|
||||
icon_state = "pizzabomb_inactive"
|
||||
item_state = "eshield0"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi'
|
||||
|
||||
/obj/item/pizzabox
|
||||
name = "pizza box"
|
||||
desc = "A box suited for pizzas."
|
||||
icon = 'icons/obj/food/containers.dmi'
|
||||
icon_state = "pizzabox"
|
||||
item_state = "pizzabox"
|
||||
lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
|
||||
|
||||
var/open = FALSE
|
||||
var/can_open_on_fall = TRUE //if FALSE, this pizza box will never open if it falls from a stack
|
||||
var/boxtag = ""
|
||||
var/list/boxes = list()
|
||||
|
||||
var/obj/item/reagent_containers/food/snacks/pizza/pizza
|
||||
|
||||
var/obj/item/bombcore/miniature/pizza/bomb
|
||||
var/bomb_active = FALSE // If the bomb is counting down.
|
||||
var/bomb_defused = TRUE // If the bomb is inert.
|
||||
var/bomb_timer = 1 // How long before blowing the bomb.
|
||||
var/const/BOMB_TIMER_MIN = 1
|
||||
var/const/BOMB_TIMER_MAX = 10
|
||||
|
||||
/obj/item/pizzabox/Initialize()
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/pizzabox/Destroy()
|
||||
unprocess()
|
||||
return ..()
|
||||
|
||||
/obj/item/pizzabox/update_icon()
|
||||
// Description
|
||||
desc = initial(desc)
|
||||
if(open)
|
||||
if(pizza)
|
||||
desc = "[desc] It appears to have \a [pizza] inside. Use your other hand to take it out."
|
||||
if(bomb)
|
||||
desc = "[desc] Wait, what?! It has \a [bomb] inside!"
|
||||
if(bomb_defused)
|
||||
desc = "[desc] The bomb seems inert. Use your other hand to activate it."
|
||||
if(bomb_active)
|
||||
desc = "[desc] It looks like it's about to go off!"
|
||||
else
|
||||
var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src
|
||||
if(boxes.len)
|
||||
desc = "A pile of boxes suited for pizzas. There appear to be [boxes.len + 1] boxes in the pile."
|
||||
if(box.boxtag != "")
|
||||
desc = "[desc] The [boxes.len ? "top box" : "box"]'s tag reads: [box.boxtag]"
|
||||
|
||||
// Icon/Overlays
|
||||
cut_overlays()
|
||||
if(open)
|
||||
icon_state = "pizzabox_open"
|
||||
if(pizza)
|
||||
icon_state = "pizzabox_messy"
|
||||
var/mutable_appearance/pizza_overlay = mutable_appearance(pizza.icon, pizza.icon_state)
|
||||
pizza_overlay.pixel_y = -3
|
||||
add_overlay(pizza_overlay)
|
||||
if(bomb)
|
||||
bomb.icon_state = "pizzabomb_[bomb_active ? "active" : "inactive"]"
|
||||
var/mutable_appearance/bomb_overlay = mutable_appearance(bomb.icon, bomb.icon_state)
|
||||
bomb_overlay.pixel_y = 5
|
||||
add_overlay(bomb_overlay)
|
||||
else
|
||||
icon_state = "pizzabox"
|
||||
var/current_offset = 3
|
||||
for(var/V in boxes)
|
||||
var/obj/item/pizzabox/P = V
|
||||
var/mutable_appearance/box_overlay = mutable_appearance(P.icon, P.icon_state)
|
||||
box_overlay.pixel_y = current_offset
|
||||
add_overlay(box_overlay)
|
||||
current_offset += 3
|
||||
var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src
|
||||
if(box.boxtag != "")
|
||||
var/mutable_appearance/tag_overlay = mutable_appearance(icon, "pizzabox_tag")
|
||||
tag_overlay.pixel_y = boxes.len * 3
|
||||
add_overlay(tag_overlay)
|
||||
|
||||
/obj/item/pizzabox/worn_overlays(isinhands, icon_file)
|
||||
. = list()
|
||||
var/current_offset = 2
|
||||
if(isinhands)
|
||||
for(var/V in boxes) //add EXTRA BOX per box
|
||||
var/mutable_appearance/M = mutable_appearance(icon_file, item_state)
|
||||
M.pixel_y = current_offset
|
||||
current_offset += 2
|
||||
. += M
|
||||
|
||||
/obj/item/pizzabox/attack_self(mob/user)
|
||||
if(boxes.len > 0)
|
||||
return
|
||||
open = !open
|
||||
if(open && !bomb_defused)
|
||||
audible_message("<span class='warning'>[icon2html(src, hearers(src))] *beep*</span>")
|
||||
bomb_active = TRUE
|
||||
START_PROCESSING(SSobj, src)
|
||||
update_icon()
|
||||
|
||||
//ATTACK HAND IGNORING PARENT RETURN VALUE
|
||||
/obj/item/pizzabox/attack_hand(mob/user)
|
||||
if(user.get_inactive_held_item() != src)
|
||||
return ..()
|
||||
if(open)
|
||||
if(pizza)
|
||||
user.put_in_hands(pizza)
|
||||
to_chat(user, "<span class='notice'>You take [pizza] out of [src].</span>")
|
||||
pizza = null
|
||||
update_icon()
|
||||
else if(bomb)
|
||||
if(wires.is_all_cut() && bomb_defused)
|
||||
user.put_in_hands(bomb)
|
||||
to_chat(user, "<span class='notice'>You carefully remove the [bomb] from [src].</span>")
|
||||
bomb = null
|
||||
update_icon()
|
||||
return
|
||||
else
|
||||
bomb_timer = input(user, "Set the [bomb] timer from [BOMB_TIMER_MIN] to [BOMB_TIMER_MAX].", bomb, bomb_timer) as num
|
||||
bomb_timer = CLAMP(CEILING(bomb_timer / 2, 1), BOMB_TIMER_MIN, BOMB_TIMER_MAX)
|
||||
bomb_defused = FALSE
|
||||
|
||||
var/message = "[ADMIN_LOOKUPFLW(user)] has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds."
|
||||
GLOB.bombers += message
|
||||
message_admins(message)
|
||||
log_game("[key_name(user)] has trapped a [src] with [bomb] set to [bomb_timer * 2] seconds.")
|
||||
bomb.adminlog = "The [bomb.name] in [src.name] that [key_name(user)] activated has detonated!"
|
||||
|
||||
to_chat(user, "<span class='warning'>You trap [src] with [bomb].</span>")
|
||||
update_icon()
|
||||
else if(boxes.len)
|
||||
var/obj/item/pizzabox/topbox = boxes[boxes.len]
|
||||
boxes -= topbox
|
||||
user.put_in_hands(topbox)
|
||||
to_chat(user, "<span class='notice'>You remove the topmost [name] from the stack.</span>")
|
||||
topbox.update_icon()
|
||||
update_icon()
|
||||
user.regenerate_icons()
|
||||
|
||||
/obj/item/pizzabox/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/pizzabox))
|
||||
var/obj/item/pizzabox/newbox = I
|
||||
if(!open && !newbox.open)
|
||||
var/list/add = list()
|
||||
add += newbox
|
||||
add += newbox.boxes
|
||||
if(!user.transferItemToLoc(newbox, src))
|
||||
return
|
||||
boxes += add
|
||||
newbox.boxes.Cut()
|
||||
to_chat(user, "<span class='notice'>You put [newbox] on top of [src]!</span>")
|
||||
newbox.update_icon()
|
||||
update_icon()
|
||||
user.regenerate_icons()
|
||||
if(boxes.len >= 5)
|
||||
if(prob(10 * boxes.len))
|
||||
to_chat(user, "<span class='danger'>You can't keep holding the stack!</span>")
|
||||
disperse_pizzas()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>The stack is getting a little high...</span>")
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>Close [open ? src : newbox] first!</span>")
|
||||
else if(istype(I, /obj/item/reagent_containers/food/snacks/pizza) || istype(I, /obj/item/reagent_containers/food/snacks/customizable/pizza))
|
||||
if(open)
|
||||
if(pizza)
|
||||
to_chat(user, "<span class='warning'>[src] already has \a [pizza.name]!</span>")
|
||||
return
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
pizza = I
|
||||
to_chat(user, "<span class='notice'>You put [I] in [src].</span>")
|
||||
update_icon()
|
||||
return
|
||||
else if(istype(I, /obj/item/bombcore/miniature/pizza))
|
||||
if(open && !bomb)
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
wires = new /datum/wires/explosive/pizza(src)
|
||||
bomb = I
|
||||
to_chat(user, "<span class='notice'>You put [I] in [src]. Sneeki breeki...</span>")
|
||||
update_icon()
|
||||
return
|
||||
else if(bomb)
|
||||
to_chat(user, "<span class='notice'>[src] already has a bomb in it!</span>")
|
||||
else if(istype(I, /obj/item/pen))
|
||||
if(!open)
|
||||
if(!user.is_literate())
|
||||
to_chat(user, "<span class='notice'>You scribble illegibly on [src]!</span>")
|
||||
return
|
||||
var/obj/item/pizzabox/box = boxes.len ? boxes[boxes.len] : src
|
||||
box.boxtag += stripped_input(user, "Write on [box]'s tag:", box, "", 30)
|
||||
if(!user.canUseTopic(src, BE_CLOSE))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You write with [I] on [src].</span>")
|
||||
update_icon()
|
||||
return
|
||||
else if(is_wire_tool(I))
|
||||
if(wires && bomb)
|
||||
wires.interact(user)
|
||||
else if(istype(I, /obj/item/reagent_containers/food))
|
||||
to_chat(user, "<span class='warning'>That's not a pizza!</span>")
|
||||
..()
|
||||
|
||||
/obj/item/pizzabox/process()
|
||||
if(bomb_active && !bomb_defused && (bomb_timer > 0))
|
||||
playsound(loc, 'sound/items/timer.ogg', 50, 0)
|
||||
bomb_timer--
|
||||
if(bomb_active && !bomb_defused && (bomb_timer <= 0))
|
||||
if(bomb in src)
|
||||
bomb.detonate()
|
||||
unprocess()
|
||||
qdel(src)
|
||||
if(!bomb_active || bomb_defused)
|
||||
if(bomb_defused && bomb in src)
|
||||
bomb.defuse()
|
||||
bomb_active = FALSE
|
||||
unprocess()
|
||||
return
|
||||
|
||||
/obj/item/pizzabox/attack(mob/living/target, mob/living/user, def_zone)
|
||||
. = ..()
|
||||
if(boxes.len >= 3 && prob(25 * boxes.len))
|
||||
disperse_pizzas()
|
||||
|
||||
/obj/item/pizzabox/throw_impact(atom/movable/AM)
|
||||
if(boxes.len >= 2 && prob(20 * boxes.len))
|
||||
disperse_pizzas()
|
||||
|
||||
/obj/item/pizzabox/proc/disperse_pizzas()
|
||||
visible_message("<span class='warning'>The pizzas fall everywhere!</span>")
|
||||
for(var/V in boxes)
|
||||
var/obj/item/pizzabox/P = V
|
||||
var/fall_dir = pick(GLOB.alldirs)
|
||||
step(P, fall_dir)
|
||||
if(P.pizza && P.can_open_on_fall && prob(50)) //rip pizza
|
||||
P.open = TRUE
|
||||
P.pizza.forceMove(get_turf(P))
|
||||
fall_dir = pick(GLOB.alldirs)
|
||||
step(P.pizza, fall_dir)
|
||||
P.pizza = null
|
||||
P.update_icon()
|
||||
boxes -= P
|
||||
update_icon()
|
||||
if(isliving(loc))
|
||||
var/mob/living/L = loc
|
||||
L.regenerate_icons()
|
||||
|
||||
/obj/item/pizzabox/proc/unprocess()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
qdel(wires)
|
||||
wires = null
|
||||
update_icon()
|
||||
|
||||
/obj/item/pizzabox/bomb/Initialize()
|
||||
. = ..()
|
||||
var/randompizza = pick(subtypesof(/obj/item/reagent_containers/food/snacks/pizza))
|
||||
pizza = new randompizza(src)
|
||||
bomb = new(src)
|
||||
wires = new /datum/wires/explosive/pizza(src)
|
||||
|
||||
/obj/item/pizzabox/margherita/Initialize()
|
||||
. = ..()
|
||||
AddPizza()
|
||||
boxtag = "Margherita Deluxe"
|
||||
|
||||
/obj/item/pizzabox/margherita/proc/AddPizza()
|
||||
pizza = new /obj/item/reagent_containers/food/snacks/pizza/margherita(src)
|
||||
|
||||
/obj/item/pizzabox/margherita/robo/AddPizza()
|
||||
pizza = new /obj/item/reagent_containers/food/snacks/pizza/margherita/robo(src)
|
||||
|
||||
/obj/item/pizzabox/vegetable/Initialize()
|
||||
. = ..()
|
||||
pizza = new /obj/item/reagent_containers/food/snacks/pizza/vegetable(src)
|
||||
boxtag = "Gourmet Vegatable"
|
||||
|
||||
/obj/item/pizzabox/mushroom/Initialize()
|
||||
. = ..()
|
||||
pizza = new /obj/item/reagent_containers/food/snacks/pizza/mushroom(src)
|
||||
boxtag = "Mushroom Special"
|
||||
|
||||
/obj/item/pizzabox/meat/Initialize()
|
||||
. = ..()
|
||||
pizza = new /obj/item/reagent_containers/food/snacks/pizza/meat(src)
|
||||
boxtag = "Meatlover's Supreme"
|
||||
|
||||
/obj/item/pizzabox/pineapple/Initialize()
|
||||
. = ..()
|
||||
pizza = new /obj/item/reagent_containers/food/snacks/pizza/pineapple(src)
|
||||
boxtag = "Honolulu Chew"
|
||||
|
||||
//An anomalous pizza box that, when opened, produces the opener's favorite kind of pizza.
|
||||
/obj/item/pizzabox/infinite
|
||||
resistance_flags = FIRE_PROOF | LAVA_PROOF | ACID_PROOF //hard to destroy
|
||||
can_open_on_fall = FALSE
|
||||
var/list/pizza_types = list(
|
||||
/obj/item/reagent_containers/food/snacks/pizza/meat = 1,
|
||||
/obj/item/reagent_containers/food/snacks/pizza/mushroom = 1,
|
||||
/obj/item/reagent_containers/food/snacks/pizza/margherita = 1,
|
||||
/obj/item/reagent_containers/food/snacks/pizza/sassysage = 0.8,
|
||||
/obj/item/reagent_containers/food/snacks/pizza/vegetable = 0.8,
|
||||
/obj/item/reagent_containers/food/snacks/pizza/pineapple = 0.5,
|
||||
/obj/item/reagent_containers/food/snacks/pizza/donkpocket = 0.3,
|
||||
/obj/item/reagent_containers/food/snacks/pizza/dank = 0.1) //pizzas here are weighted by chance to be someone's favorite
|
||||
var/static/list/pizza_preferences
|
||||
|
||||
/obj/item/pizzabox/infinite/Initialize()
|
||||
. = ..()
|
||||
if(!pizza_preferences)
|
||||
pizza_preferences = list()
|
||||
|
||||
/obj/item/pizzabox/infinite/examine(mob/user)
|
||||
..()
|
||||
if(isobserver(user))
|
||||
to_chat(user, "<span class='deadsay'>This pizza box is anomalous, and will produce infinite pizza.</span>")
|
||||
|
||||
/obj/item/pizzabox/infinite/attack_self(mob/living/user)
|
||||
QDEL_NULL(pizza)
|
||||
if(ishuman(user))
|
||||
attune_pizza(user)
|
||||
. = ..()
|
||||
|
||||
/obj/item/pizzabox/infinite/proc/attune_pizza(mob/living/carbon/human/noms) //tonight on "proc names I never thought I'd type"
|
||||
if(!pizza_preferences[noms.ckey])
|
||||
pizza_preferences[noms.ckey] = pickweight(pizza_types)
|
||||
if(noms.has_quirk(/datum/quirk/pineapple_liker))
|
||||
pizza_preferences[noms.ckey] = /obj/item/reagent_containers/food/snacks/pizza/pineapple
|
||||
else if(noms.has_quirk(/datum/quirk/pineapple_hater))
|
||||
var/list/pineapple_pizza_liker = pizza_types.Copy()
|
||||
pineapple_pizza_liker -= /obj/item/reagent_containers/food/snacks/pizza/pineapple
|
||||
pizza_preferences[noms.ckey] = pickweight(pineapple_pizza_liker)
|
||||
if(noms.mind && noms.mind.assigned_role == "Botanist")
|
||||
pizza_preferences[noms.ckey] = /obj/item/reagent_containers/food/snacks/pizza/dank
|
||||
|
||||
var/obj/item/pizza_type = pizza_preferences[noms.ckey]
|
||||
pizza = new pizza_type (src)
|
||||
pizza.foodtype = noms.dna.species.liked_food //it's our favorite!
|
||||
@@ -382,7 +382,7 @@
|
||||
results = list("neurotoxin" = 2)
|
||||
required_reagents = list("gargleblaster" = 1, "morphine" = 1)
|
||||
//FermiChem vars: Easy to make, but hard to make potent
|
||||
OptimalTempMin = 200 // Lower area of bell curve for determining heat based rate reactions
|
||||
OptimalTempMin = 100 // Lower area of bell curve for determining heat based rate reactions
|
||||
OptimalTempMax = 950 // Upper end for above
|
||||
ExplodeTemp = 999 //Temperature at which reaction explodes
|
||||
OptimalpHMin = 4.6 // Lowest value of pH determining pH a 1 value for pH based rate reactions (Plateu phase)
|
||||
|
||||
@@ -0,0 +1,195 @@
|
||||
|
||||
// see code/module/crafting/table.dm
|
||||
|
||||
////////////////////////////////////////////////CAKE////////////////////////////////////////////////
|
||||
|
||||
/datum/crafting_recipe/food/carrotcake
|
||||
name = "Carrot cake"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/carrot = 2
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/carrot
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/cheesecake
|
||||
name = "Cheese cake"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/cheesewedge = 2
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/cheese
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/applecake
|
||||
name = "Apple cake"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/apple = 2
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/apple
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/orangecake
|
||||
name = "Orange cake"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/citrus/orange = 2
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/orange
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/limecake
|
||||
name = "Lime cake"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/citrus/lime = 2
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/lime
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/lemoncake
|
||||
name = "Lemon cake"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/citrus/lemon = 2
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/lemon
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/chocolatecake
|
||||
name = "Chocolate cake"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/chocolatebar = 2
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/chocolate
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/birthdaycake
|
||||
name = "Birthday cake"
|
||||
reqs = list(
|
||||
/datum/reagent/consumable/sugar = 10,
|
||||
/obj/item/candle = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/vanillapod = 2,
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/birthday
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/braincake
|
||||
name = "Brain cake"
|
||||
reqs = list(
|
||||
/obj/item/organ/brain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/brain
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/slimecake
|
||||
name = "Slime cake"
|
||||
reqs = list(
|
||||
/obj/item/slime_extract = 1,
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/slimecake
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/pumpkinspicecake
|
||||
name = "Pumpkin spice cake"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/pumpkin = 2
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/pumpkinspice
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/holycake
|
||||
name = "Angel food cake"
|
||||
reqs = list(
|
||||
/datum/reagent/water/holywater = 15,
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/holy_cake
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/poundcake
|
||||
name = "Pound cake"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 4
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/pound_cake
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/hardwarecake
|
||||
name = "Hardware cake"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1,
|
||||
/obj/item/circuitboard = 2,
|
||||
/datum/reagent/toxin/acid = 5
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/hardware_cake
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/bscccake
|
||||
name = "blackberry and strawberry chocolate cake"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/chocolatebar = 2,
|
||||
/obj/item/reagent_containers/food/snacks/grown/berries = 5
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/bscc
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/bscvcake
|
||||
name = "blackberry and strawberry vanilla cake"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/berries = 5
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/bsvc
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/clowncake
|
||||
name = "clown cake"
|
||||
always_availible = FALSE
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/sundae = 2,
|
||||
/obj/item/reagent_containers/food/snacks/grown/banana = 5
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/clown_cake
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/vanillacake
|
||||
name = "vanilla cake"
|
||||
always_availible = FALSE
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/vanillapod = 2
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/vanilla_cake
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/peachcake
|
||||
name = "Peach cake"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/peach = 5
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/store/cake/peach_cake
|
||||
subcategory = CAT_CAKE
|
||||
|
||||
/datum/crafting_recipe/food/cak
|
||||
name = "Living cat/cake hybrid"
|
||||
reqs = list(
|
||||
/obj/item/organ/brain = 1,
|
||||
/obj/item/organ/heart = 1,
|
||||
/obj/item/reagent_containers/food/snacks/store/cake/birthday = 1,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab = 3,
|
||||
/datum/reagent/blood = 30,
|
||||
/datum/reagent/consumable/sprinkles = 5,
|
||||
/datum/reagent/teslium = 1 //To shock the whole thing into life
|
||||
)
|
||||
result = /mob/living/simple_animal/pet/cat/cak
|
||||
subcategory = CAT_CAKE //Cat! Haha, get it? CAT? GET IT? We get it - Love Catpeople
|
||||
@@ -0,0 +1,226 @@
|
||||
|
||||
// see code/module/crafting/table.dm
|
||||
|
||||
////////////////////////////////////////////////PIES////////////////////////////////////////////////
|
||||
|
||||
/datum/crafting_recipe/food/bananacreampie
|
||||
name = "Banana cream pie"
|
||||
reqs = list(
|
||||
/datum/reagent/consumable/milk = 5,
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/banana = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/cream
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/meatpie
|
||||
name = "Meat pie"
|
||||
reqs = list(
|
||||
/datum/reagent/consumable/blackpepper = 1,
|
||||
/datum/reagent/consumable/sodiumchloride = 1,
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/meat/steak/plain = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/meatpie
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/tofupie
|
||||
name = "Tofu pie"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/tofu = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/tofupie
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/xenopie
|
||||
name = "Xeno pie"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/meat/cutlet/xeno = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/xemeatpie
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/cherrypie
|
||||
name = "Cherry pie"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/cherries = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/cherrypie
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/berryclafoutis
|
||||
name = "Berry clafoutis"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/berries = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/berryclafoutis
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/bearypie
|
||||
name = "Beary Pie"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/berries = 1,
|
||||
/obj/item/reagent_containers/food/snacks/meat/steak/bear = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/bearypie
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/amanitapie
|
||||
name = "Amanita pie"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/mushroom/amanita = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/amanita_pie
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/plumppie
|
||||
name = "Plump pie"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/mushroom/plumphelmet = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/plump_pie
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/applepie
|
||||
name = "Apple pie"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/apple = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/applepie
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/pumpkinpie
|
||||
name = "Pumpkin pie"
|
||||
reqs = list(
|
||||
/datum/reagent/consumable/milk = 5,
|
||||
/datum/reagent/consumable/sugar = 5,
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/pumpkin = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/pumpkinpie
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/goldenappletart
|
||||
name = "Golden apple tart"
|
||||
reqs = list(
|
||||
/datum/reagent/consumable/milk = 5,
|
||||
/datum/reagent/consumable/sugar = 5,
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/apple/gold = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/appletart
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/grapetart
|
||||
name = "Grape tart"
|
||||
reqs = list(
|
||||
/datum/reagent/consumable/milk = 5,
|
||||
/datum/reagent/consumable/sugar = 5,
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/grapes = 3
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/grapetart
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/blumpkinpie
|
||||
name = "Blumpkin pie"
|
||||
reqs = list(
|
||||
/datum/reagent/consumable/milk = 5,
|
||||
/datum/reagent/consumable/sugar = 5,
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/blumpkin = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/blumpkinpie
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/dulcedebatata
|
||||
name = "Dulce de batata"
|
||||
reqs = list(
|
||||
/datum/reagent/consumable/vanilla = 5,
|
||||
/datum/reagent/water = 5,
|
||||
/obj/item/reagent_containers/food/snacks/grown/potato/sweet = 2
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/dulcedebatata
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/frostypie
|
||||
name = "Frosty pie"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/bluecherries = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/frostypie
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/strawberrypie
|
||||
name = "Strawberry pie"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/strawberry = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/strawberrypie
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/baklava
|
||||
name = "Baklava pie"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/butter = 1,
|
||||
/obj/item/reagent_containers/food/snacks/tortilla = 4, //Layers
|
||||
/obj/item/seeds/wheat/oat = 3
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/baklava
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/mimetart
|
||||
name = "Mime tart"
|
||||
always_availible = FALSE
|
||||
reqs = list(
|
||||
/datum/reagent/consumable/milk = 5,
|
||||
/datum/reagent/consumable/sugar = 5,
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/datum/reagent/consumable/nothing = 5
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/mimetart
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/berrytart
|
||||
name = "Berry tart"
|
||||
always_availible = FALSE
|
||||
reqs = list(
|
||||
/datum/reagent/consumable/milk = 5,
|
||||
/datum/reagent/consumable/sugar = 5,
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/berries = 3
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/berrytart
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/cocolavatart
|
||||
name = "Chocolate Lava tart"
|
||||
always_availible = FALSE
|
||||
reqs = list(
|
||||
/datum/reagent/consumable/milk = 5,
|
||||
/datum/reagent/consumable/sugar = 5,
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/chocolatebar = 3,
|
||||
/obj/item/slime_extract = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/cocolavatart
|
||||
subcategory = CAT_PIE
|
||||
|
||||
/datum/crafting_recipe/food/peachpie
|
||||
name = "Peach Pie"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/peach = 3
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/pie/peachpie
|
||||
subcategory = CAT_PIE
|
||||
Reference in New Issue
Block a user