diff --git a/code/game/objects/items/food/donkpocket.dm b/code/game/objects/items/food/donkpocket.dm new file mode 100644 index 00000000000..3b4e9bddd37 --- /dev/null +++ b/code/game/objects/items/food/donkpocket.dm @@ -0,0 +1,138 @@ +////////////////////////////////////////////DONK POCKETS//////////////////////////////////////////// + +/obj/item/food/donkpocket + name = "\improper Donk-pocket" + desc = "The food of choice for the seasoned traitor." + icon_state = "donkpocket" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2) + microwaved_type = /obj/item/food/donkpocket/warm + tastes = list("meat" = 2, "dough" = 2, "laziness" = 1) + foodtypes = GRAIN + food_flags = FOOD_FINGER_FOOD + w_class = WEIGHT_CLASS_SMALL + +//donk pockets cook quick... try not to burn them for using an unoptimal tool +/obj/item/food/donkpocket/MakeBakeable() + AddComponent(/datum/component/bakeable, microwaved_type, rand(25 SECONDS, 30 SECONDS), TRUE, TRUE) + +/obj/item/food/donkpocket/warm + name = "warm Donk-pocket" + desc = "The heated food of choice for the seasoned traitor." + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/medicine/omnizine = 6) + microwaved_type = null + tastes = list("meat" = 2, "dough" = 2, "laziness" = 1) + foodtypes = GRAIN + +///Override for fast-burning food +/obj/item/food/donkpocket/warm/MakeBakeable() + AddComponent(/datum/component/bakeable, /obj/item/food/badrecipe, rand(10 SECONDS, 15 SECONDS), FALSE) + +/obj/item/food/dankpocket + name = "\improper Dank-pocket" + desc = "The food of choice for the seasoned botanist." + icon_state = "dankpocket" + food_reagents = list(/datum/reagent/toxin/lipolicide = 3, /datum/reagent/drug/space_drugs = 3, /datum/reagent/consumable/nutriment = 4) + tastes = list("meat" = 2, "dough" = 2) + foodtypes = GRAIN | VEGETABLES + +/obj/item/food/donkpocket/spicy + name = "\improper Spicy-pocket" + desc = "The classic snack food, now with a heat-activated spicy flair." + icon_state = "donkpocketspicy" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/capsaicin = 2) + microwaved_type = /obj/item/food/donkpocket/warm/spicy + tastes = list("meat" = 2, "dough" = 2, "spice" = 1) + foodtypes = GRAIN + +/obj/item/food/donkpocket/warm/spicy + name = "warm Spicy-pocket" + desc = "The classic snack food, now maybe a bit too spicy." + icon_state = "donkpocketspicy" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/capsaicin = 5) + tastes = list("meat" = 2, "dough" = 2, "weird spices" = 2) + foodtypes = GRAIN + +/obj/item/food/donkpocket/teriyaki + name = "\improper Teriyaki-pocket" + desc = "An east-asian take on the classic stationside snack." + icon_state = "donkpocketteriyaki" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/soysauce = 2) + microwaved_type = /obj/item/food/donkpocket/warm/teriyaki + tastes = list("meat" = 2, "dough" = 2, "soy sauce" = 2) + foodtypes = GRAIN + +/obj/item/food/donkpocket/warm/teriyaki + name = "warm Teriyaki-pocket" + desc = "An east-asian take on the classic stationside snack, now steamy and warm." + icon_state = "donkpocketteriyaki" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 3, /datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/soysauce = 2) + tastes = list("meat" = 2, "dough" = 2, "soy sauce" = 2) + foodtypes = GRAIN + +/obj/item/food/donkpocket/pizza + name = "\improper Pizza-pocket" + desc = "Delicious, cheesy and surprisingly filling." + icon_state = "donkpocketpizza" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/tomatojuice = 2) + microwaved_type = /obj/item/food/donkpocket/warm/pizza + tastes = list("meat" = 2, "dough" = 2, "cheese"= 2) + foodtypes = GRAIN + +/obj/item/food/donkpocket/warm/pizza + name = "warm Pizza-pocket" + desc = "Delicious, cheesy, and even better when hot." + icon_state = "donkpocketpizza" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/tomatojuice = 2) + tastes = list("meat" = 2, "dough" = 2, "melty cheese"= 2) + foodtypes = GRAIN + +/obj/item/food/donkpocket/honk + name = "\improper Honk-pocket" + desc = "The award-winning donk-pocket that won the hearts of clowns and humans alike." + icon_state = "donkpocketbanana" + food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/banana = 4) + microwaved_type = /obj/item/food/donkpocket/warm/honk + tastes = list("banana" = 2, "dough" = 2, "children's antibiotics" = 1) + foodtypes = GRAIN + +/obj/item/food/donkpocket/warm/honk + name = "warm Honk-pocket" + desc = "The award-winning donk-pocket, now warm and toasty." + icon_state = "donkpocketbanana" + food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/banana = 4, /datum/reagent/consumable/laughter = 6) + tastes = list("dough" = 2, "children's antibiotics" = 1) + foodtypes = GRAIN + +/obj/item/food/donkpocket/berry + name = "\improper Berry-pocket" + desc = "A relentlessly sweet donk-pocket first created for use in Operation Dessert Storm." + icon_state = "donkpocketberry" + food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/berryjuice = 3) + microwaved_type = /obj/item/food/donkpocket/warm/berry + tastes = list("dough" = 2, "jam" = 2) + foodtypes = GRAIN + +/obj/item/food/donkpocket/warm/berry + name = "warm Berry-pocket" + desc = "A relentlessly sweet donk-pocket, now warm and delicious." + icon_state = "donkpocketberry" + food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/berryjuice = 3) + tastes = list("dough" = 2, "warm jam" = 2) + foodtypes = GRAIN + +/obj/item/food/donkpocket/gondola + name = "\improper Gondola-pocket" + desc = "The choice to use real gondola meat in the recipe is controversial, to say the least." //Only a monster would craft this. + icon_state = "donkpocketgondola" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/gondola_mutation_toxin = 5) + microwaved_type = /obj/item/food/donkpocket/warm/gondola + tastes = list("meat" = 2, "dough" = 2, "inner peace" = 1) + foodtypes = GRAIN + +/obj/item/food/donkpocket/warm/gondola + name = "warm Gondola-pocket" + desc = "The choice to use real gondola meat in the recipe is controversial, to say the least." + icon_state = "donkpocketgondola" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/medicine/omnizine = 2, /datum/reagent/gondola_mutation_toxin = 10) + tastes = list("meat" = 2, "dough" = 2, "inner peace" = 1) + foodtypes = GRAIN diff --git a/code/game/objects/items/food/donuts.dm b/code/game/objects/items/food/donuts.dm new file mode 100644 index 00000000000..8b9f59bb12f --- /dev/null +++ b/code/game/objects/items/food/donuts.dm @@ -0,0 +1,330 @@ +////////////////////////////////////////////DONUTS//////////////////////////////////////////// +#define DONUT_SPRINKLE_CHANCE 30 + +/obj/item/food/donut + name = "donut" + desc = "Goes great with robust coffee." + icon = 'icons/obj/food/donuts.dmi' + bite_consumption = 5 + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3) + tastes = list("donut" = 1) + foodtypes = JUNKFOOD | GRAIN | FRIED | SUGAR | BREAKFAST + food_flags = FOOD_FINGER_FOOD + w_class = WEIGHT_CLASS_SMALL + var/decorated_icon = "donut_homer" + var/is_decorated = FALSE + var/extra_reagent = null + var/decorated_adjective = "sprinkled" + +/obj/item/food/donut/Initialize(mapload) + . = ..() + AddElement(/datum/element/dunkable, amount_per_dunk = 10) + if(prob(DONUT_SPRINKLE_CHANCE)) + decorate_donut() + +///Override for checkliked callback +/obj/item/food/donut/MakeEdible() + AddComponent(/datum/component/edible,\ + initial_reagents = food_reagents,\ + food_flags = food_flags,\ + foodtypes = foodtypes,\ + volume = max_volume,\ + eat_time = eat_time,\ + tastes = tastes,\ + eatverbs = eatverbs,\ + bite_consumption = bite_consumption,\ + microwaved_type = microwaved_type,\ + junkiness = junkiness,\ + check_liked = CALLBACK(src, .proc/check_liked)) + +/obj/item/food/donut/proc/decorate_donut() + if(is_decorated || !decorated_icon) + return + is_decorated = TRUE + name = "[decorated_adjective] [name]" + icon_state = decorated_icon //delish~! + reagents.add_reagent(/datum/reagent/consumable/sprinkles, 1) + return TRUE + +/// Returns the sprite of the donut while in a donut box +/obj/item/food/donut/proc/in_box_sprite() + return "[icon_state]_inbox" + +///Override for checkliked in edible component, because all cops LOVE donuts +/obj/item/food/donut/proc/check_liked(fraction, mob/living/carbon/human/consumer) + if(!HAS_TRAIT(consumer, TRAIT_AGEUSIA) && consumer.mind && HAS_TRAIT(consumer.mind, TRAIT_DONUT_LOVER)) + return FOOD_LIKED + +//Use this donut ingame +/obj/item/food/donut/plain + icon_state = "donut" + +/obj/item/food/donut/chaos + name = "chaos donut" + desc = "Like life, it never quite tastes the same." + icon_state = "donut_chaos" + bite_consumption = 10 + tastes = list("donut" = 3, "chaos" = 1) + is_decorated = TRUE + +/obj/item/food/donut/chaos/Initialize(mapload) + . = ..() + extra_reagent = pick(/datum/reagent/consumable/nutriment, /datum/reagent/consumable/capsaicin, /datum/reagent/consumable/frostoil, /datum/reagent/drug/krokodil, /datum/reagent/toxin/plasma, /datum/reagent/consumable/coco, /datum/reagent/toxin/slimejelly, /datum/reagent/consumable/banana, /datum/reagent/consumable/berryjuice, /datum/reagent/medicine/omnizine) + reagents.add_reagent(extra_reagent, 3) + +/obj/item/food/donut/meat + name = "Meat Donut" + desc = "Tastes as gross as it looks." + icon_state = "donut_meat" + food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/protein = 3, /datum/reagent/consumable/ketchup = 3) + tastes = list("meat" = 1) + foodtypes = JUNKFOOD | MEAT | GROSS | FRIED | BREAKFAST + is_decorated = TRUE + +/obj/item/food/donut/berry + name = "pink donut" + desc = "Goes great with a soy latte." + icon_state = "donut_pink" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/berryjuice = 3, /datum/reagent/consumable/sprinkles = 1) //Extra sprinkles to reward frosting + decorated_icon = "donut_homer" + +/obj/item/food/donut/trumpet + name = "spaceman's donut" + desc = "Goes great with a cold beaker of malk." + icon_state = "donut_purple" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/sprinkles = 1) + tastes = list("donut" = 3, "violets" = 1) + is_decorated = TRUE + +/obj/item/food/donut/apple + name = "apple donut" + desc = "Goes great with a shot of cinnamon schnapps." + icon_state = "donut_green" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/applejuice = 3, /datum/reagent/consumable/sprinkles = 1) + tastes = list("donut" = 3, "green apples" = 1) + is_decorated = TRUE + +/obj/item/food/donut/caramel + name = "caramel donut" + desc = "Goes great with a mug of hot coco." + icon_state = "donut_beige" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/caramel = 3, /datum/reagent/consumable/sprinkles = 1) + tastes = list("donut" = 3, "buttery sweetness" = 1) + is_decorated = TRUE + +/obj/item/food/donut/choco + name = "chocolate donut" + desc = "Goes great with a glass of warm milk." + icon_state = "donut_choc" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/hot_coco = 3, /datum/reagent/consumable/sprinkles = 1) //the coco reagent is just bitter. + tastes = list("donut" = 4, "bitterness" = 1) + decorated_icon = "donut_choc_sprinkles" + +/obj/item/food/donut/blumpkin + name = "blumpkin donut" + desc = "Goes great with a mug of soothing drunken blumpkin." + icon_state = "donut_blue" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/blumpkinjuice = 3, /datum/reagent/consumable/sprinkles = 1) + tastes = list("donut" = 2, "blumpkin" = 1) + is_decorated = TRUE + +/obj/item/food/donut/bungo + name = "bungo donut" + desc = "Goes great with a mason jar of hippie's delight." + icon_state = "donut_yellow" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/bungojuice = 3, /datum/reagent/consumable/sprinkles = 1) + tastes = list("donut" = 3, "tropical sweetness" = 1) + is_decorated = TRUE + +/obj/item/food/donut/matcha + name = "matcha donut" + desc = "Goes great with a cup of tea." + icon_state = "donut_olive" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/toxin/teapowder = 3, /datum/reagent/consumable/sprinkles = 1) + tastes = list("donut" = 3, "matcha" = 1) + is_decorated = TRUE + +/obj/item/food/donut/laugh + name = "sweet pea donut" + desc = "Goes great with a bottle of Bastion Burbon!" + icon_state = "donut_laugh" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/laughter = 3) + tastes = list("donut" = 3, "fizzy tutti frutti" = 1,) + is_decorated = TRUE + +//////////////////////JELLY DONUTS///////////////////////// + +/obj/item/food/donut/jelly + name = "jelly donut" + desc = "You jelly?" + icon_state = "jelly" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + extra_reagent = /datum/reagent/consumable/berryjuice + tastes = list("jelly" = 1, "donut" = 3) + foodtypes = JUNKFOOD | GRAIN | FRIED | FRUIT | SUGAR | BREAKFAST + +// Jelly donuts don't have holes, but look the same on the outside +/obj/item/food/donut/jelly/in_box_sprite() + return "[replacetext(icon_state, "jelly", "donut")]_inbox" + +/obj/item/food/donut/jelly/Initialize(mapload) + . = ..() + if(extra_reagent) + reagents.add_reagent(extra_reagent, 3) + +/obj/item/food/donut/jelly/plain //use this ingame to avoid inheritance related crafting issues. + decorated_icon = "jelly_homer" + +/obj/item/food/donut/jelly/berry + name = "pink jelly donut" + desc = "Goes great with a soy latte." + icon_state = "jelly_pink" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/berryjuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) //Extra sprinkles to reward frosting. + decorated_icon = "jelly_homer" + +/obj/item/food/donut/jelly/trumpet + name = "spaceman's jelly donut" + desc = "Goes great with a cold beaker of malk." + icon_state = "jelly_purple" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + tastes = list("jelly" = 1, "donut" = 3, "violets" = 1) + is_decorated = TRUE + +/obj/item/food/donut/jelly/apple + name = "apple jelly donut" + desc = "Goes great with a shot of cinnamon schnapps." + icon_state = "jelly_green" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/applejuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + tastes = list("jelly" = 1, "donut" = 3, "green apples" = 1) + is_decorated = TRUE + +/obj/item/food/donut/jelly/caramel + name = "caramel jelly donut" + desc = "Goes great with a mug of hot coco." + icon_state = "jelly_beige" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/caramel = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + tastes = list("jelly" = 1, "donut" = 3, "buttery sweetness" = 1) + is_decorated = TRUE + +/obj/item/food/donut/jelly/choco + name = "chocolate jelly donut" + desc = "Goes great with a glass of warm milk." + icon_state = "jelly_choc" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/hot_coco = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) //the coco reagent is just bitter. + tastes = list("jelly" = 1, "donut" = 4, "bitterness" = 1) + decorated_icon = "jelly_choc_sprinkles" + +/obj/item/food/donut/jelly/blumpkin + name = "blumpkin jelly donut" + desc = "Goes great with a mug of soothing drunken blumpkin." + icon_state = "jelly_blue" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/blumpkinjuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + tastes = list("jelly" = 1, "donut" = 2, "blumpkin" = 1) + is_decorated = TRUE + +/obj/item/food/donut/jelly/bungo + name = "bungo jelly donut" + desc = "Goes great with a mason jar of hippie's delight." + icon_state = "jelly_yellow" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/bungojuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + tastes = list("jelly" = 1, "donut" = 3, "tropical sweetness" = 1) + is_decorated = TRUE + +/obj/item/food/donut/jelly/matcha + name = "matcha jelly donut" + desc = "Goes great with a cup of tea." + icon_state = "jelly_olive" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/toxin/teapowder = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + tastes = list("jelly" = 1, "donut" = 3, "matcha" = 1) + is_decorated = TRUE + +/obj/item/food/donut/jelly/laugh + name = "sweet pea jelly donut" + desc = "Goes great with a bottle of Bastion Burbon!" + icon_state = "jelly_laugh" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/laughter = 3) + tastes = list("jelly" = 3, "donut" = 1, "fizzy tutti frutti" = 1) + is_decorated = TRUE + +//////////////////////////SLIME DONUTS///////////////////////// + +/obj/item/food/donut/jelly/slimejelly + name = "jelly donut" + desc = "You jelly?" + extra_reagent = /datum/reagent/toxin/slimejelly + foodtypes = JUNKFOOD | GRAIN | FRIED | TOXIC | SUGAR | BREAKFAST + +/obj/item/food/donut/jelly/slimejelly/plain + icon_state = "jelly" + +/obj/item/food/donut/jelly/slimejelly/berry + name = "pink jelly donut" + desc = "Goes great with a soy latte." + icon_state = "jelly_pink" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/berryjuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) //Extra sprinkles to reward frosting + +/obj/item/food/donut/jelly/slimejelly/trumpet + name = "spaceman's jelly donut" + desc = "Goes great with a cold beaker of malk." + icon_state = "jelly_purple" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + tastes = list("jelly" = 1, "donut" = 3, "violets" = 1) + is_decorated = TRUE + +/obj/item/food/donut/jelly/slimejelly/apple + name = "apple jelly donut" + desc = "Goes great with a shot of cinnamon schnapps." + icon_state = "jelly_green" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/applejuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + tastes = list("jelly" = 1, "donut" = 3, "green apples" = 1) + is_decorated = TRUE + +/obj/item/food/donut/jelly/slimejelly/caramel + name = "caramel jelly donut" + desc = "Goes great with a mug of hot coco." + icon_state = "jelly_beige" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/caramel = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + tastes = list("jelly" = 1, "donut" = 3, "buttery sweetness" = 1) + is_decorated = TRUE + +/obj/item/food/donut/jelly/slimejelly/choco + name = "chocolate jelly donut" + desc = "Goes great with a glass of warm milk." + icon_state = "jelly_choc" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/hot_coco = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) //the coco reagent is just bitter. + tastes = list("jelly" = 1, "donut" = 4, "bitterness" = 1) + decorated_icon = "jelly_choc_sprinkles" + +/obj/item/food/donut/jelly/slimejelly/blumpkin + name = "blumpkin jelly donut" + desc = "Goes great with a mug of soothing drunken blumpkin." + icon_state = "jelly_blue" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/blumpkinjuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + tastes = list("jelly" = 1, "donut" = 2, "blumpkin" = 1) + is_decorated = TRUE + +/obj/item/food/donut/jelly/slimejelly/bungo + name = "bungo jelly donut" + desc = "Goes great with a mason jar of hippie's delight." + icon_state = "jelly_yellow" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/bungojuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + tastes = list("jelly" = 1, "donut" = 3, "tropical sweetness" = 1) + is_decorated = TRUE + +/obj/item/food/donut/jelly/slimejelly/matcha + name = "matcha jelly donut" + desc = "Goes great with a cup of tea." + icon_state = "jelly_olive" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/toxin/teapowder = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + tastes = list("jelly" = 1, "donut" = 3, "matcha" = 1) + is_decorated = TRUE + +/obj/item/food/donut/jelly/slimejelly/laugh + name = "sweet pea jelly donut" + desc = "Goes great with a bottle of Bastion Burbon!" + icon_state = "jelly_laugh" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/laughter = 3) + tastes = list("jelly" = 3, "donut" = 1, "fizzy tutti frutti" = 1) + is_decorated = TRUE + +#undef DONUT_SPRINKLE_CHANCE diff --git a/code/game/objects/items/food/pancakes.dm b/code/game/objects/items/food/pancakes.dm new file mode 100644 index 00000000000..d6e2a06a1ef --- /dev/null +++ b/code/game/objects/items/food/pancakes.dm @@ -0,0 +1,150 @@ +#define PANCAKE_MAX_STACK 10 + +/obj/item/food/pancakes + name = "pancake" + desc = "A fluffy pancake. The softer, superior relative of the waffle." + icon_state = "pancakes_1" + inhand_icon_state = "pancakes" + food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2) + tastes = list("pancakes" = 1) + foodtypes = GRAIN | SUGAR | BREAKFAST + w_class = WEIGHT_CLASS_SMALL + burns_on_grill = TRUE + venue_value = FOOD_PRICE_CHEAP + +/obj/item/food/pancakes/raw + name = "goopy pancake" + desc = "A barely cooked mess that some may mistake for a pancake. It longs for the griddle." + icon_state = "rawpancakes_1" + inhand_icon_state = "rawpancakes" + food_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + tastes = list("milky batter" = 1) + burns_on_grill = FALSE + +/obj/item/food/pancakes/raw/MakeGrillable() + AddComponent(/datum/component/grillable,\ + cook_result = /obj/item/food/pancakes,\ + required_cook_time = rand(30 SECONDS, 40 SECONDS),\ + positive_result = TRUE,\ + use_large_steam_sprite = TRUE) + +/obj/item/food/pancakes/raw/attackby(obj/item/garnish, mob/living/user, params) + var/newresult + if(istype(garnish, /obj/item/food/grown/berries)) + newresult = /obj/item/food/pancakes/blueberry + name = "raw blueberry pancake" + icon_state = "rawbbpancakes_1" + inhand_icon_state = "rawbbpancakes" + else if(istype(garnish, /obj/item/food/chocolatebar)) + newresult = /obj/item/food/pancakes/chocolatechip + name = "raw chocolate chip pancake" + icon_state = "rawccpancakes_1" + inhand_icon_state = "rawccpancakes" + else + return ..() + if(newresult) + qdel(garnish) + to_chat(user, span_notice("You add [garnish] to [src].")) + AddComponent(/datum/component/grillable, cook_result = newresult) + +/obj/item/food/pancakes/raw/examine(mob/user) + . = ..() + if(name == initial(name)) + . += "You can modify the pancake by adding blueberries or chocolate before finishing the griddle." + +/obj/item/food/pancakes/blueberry + name = "blueberry pancake" + desc = "A fluffy and delicious blueberry pancake." + icon_state = "bbpancakes_1" + inhand_icon_state = "bbpancakes" + food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 5) + tastes = list("pancakes" = 1, "blueberries" = 1) + +/obj/item/food/pancakes/chocolatechip + name = "chocolate chip pancake" + desc = "A fluffy and delicious chocolate chip pancake." + icon_state = "ccpancakes_1" + inhand_icon_state = "ccpancakes" + food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 5) + tastes = list("pancakes" = 1, "chocolate" = 1) + +/obj/item/food/pancakes/Initialize(mapload) + . = ..() + update_appearance() + +/obj/item/food/pancakes/update_name() + name = contents.len ? "stack of pancakes" : initial(name) + return ..() + +/obj/item/food/pancakes/update_icon(updates = ALL) + if(!(updates & UPDATE_OVERLAYS)) + return ..() + + updates &= ~UPDATE_OVERLAYS + . = ..() // Don't update overlays. We're doing that here + + if(contents.len < LAZYLEN(overlays)) + overlays -= overlays[overlays.len] + . |= UPDATE_OVERLAYS + +/obj/item/food/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!" + . = ..() + if (pancakeCount) + for(var/obj/item/food/pancakes/ING in contents) + ingredients_listed += "[ING.name], " + . += "It contains [contents.len?"[ingredients_listed]":"no ingredient, "]on top of a [initial(name)]." + +/obj/item/food/pancakes/attackby(obj/item/item, mob/living/user, params) + if(istype(item, /obj/item/food/pancakes)) + var/obj/item/food/pancakes/pancake = item + if((contents.len >= PANCAKE_MAX_STACK) || ((pancake.contents.len + contents.len) > PANCAKE_MAX_STACK)) + to_chat(user, span_warning("You can't add that many pancakes to [src]!")) + else + if(!user.transferItemToLoc(pancake, src)) + return + to_chat(user, span_notice("You add the [pancake] to the [src].")) + pancake.name = initial(pancake.name) + contents += pancake + update_snack_overlays(pancake) + if (pancake.contents.len) + for(var/pancake_content in pancake.contents) + pancake = pancake_content + pancake.name = initial(pancake.name) + contents += pancake + update_snack_overlays(pancake) + pancake = item + pancake.contents.Cut() + return + else if(contents.len) + var/obj/O = contents[contents.len] + return O.attackby(item, user, params) + ..() + +/obj/item/food/pancakes/proc/update_snack_overlays(obj/item/pancake) + var/mutable_appearance/pancake_visual = mutable_appearance(icon, "[pancake.inhand_icon_state]_[rand(1, 3)]") + pancake_visual.pixel_x = rand(-1, 1) + pancake_visual.pixel_y = 3 * contents.len - 1 + add_overlay(pancake_visual) + update_appearance() + +/obj/item/food/pancakes/attack(mob/target, mob/living/user, params, stacked = TRUE) + if(user.combat_mode || !contents.len || !stacked) + return ..() + var/obj/item/item = contents[contents.len] + . = item.attack(target, user, params, FALSE) + update_appearance() + +#undef PANCAKE_MAX_STACK diff --git a/code/game/objects/items/food/pastries.dm b/code/game/objects/items/food/pastries.dm index e1ef4a9c3a2..9b1d97c4c72 100644 --- a/code/game/objects/items/food/pastries.dm +++ b/code/game/objects/items/food/pastries.dm @@ -1,335 +1,5 @@ //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//////////////////////////////////////////// - -#define DONUT_SPRINKLE_CHANCE 30 - -/obj/item/food/donut - name = "donut" - desc = "Goes great with robust coffee." - icon = 'icons/obj/food/donuts.dmi' - bite_consumption = 5 - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3) - tastes = list("donut" = 1) - foodtypes = JUNKFOOD | GRAIN | FRIED | SUGAR | BREAKFAST - food_flags = FOOD_FINGER_FOOD - w_class = WEIGHT_CLASS_SMALL - var/decorated_icon = "donut_homer" - var/is_decorated = FALSE - var/extra_reagent = null - var/decorated_adjective = "sprinkled" - -/obj/item/food/donut/Initialize(mapload) - . = ..() - AddElement(/datum/element/dunkable, amount_per_dunk = 10) - if(prob(DONUT_SPRINKLE_CHANCE)) - decorate_donut() - -///Override for checkliked callback -/obj/item/food/donut/MakeEdible() - AddComponent(/datum/component/edible,\ - initial_reagents = food_reagents,\ - food_flags = food_flags,\ - foodtypes = foodtypes,\ - volume = max_volume,\ - eat_time = eat_time,\ - tastes = tastes,\ - eatverbs = eatverbs,\ - bite_consumption = bite_consumption,\ - microwaved_type = microwaved_type,\ - junkiness = junkiness,\ - check_liked = CALLBACK(src, .proc/check_liked)) - -/obj/item/food/donut/proc/decorate_donut() - if(is_decorated || !decorated_icon) - return - is_decorated = TRUE - name = "[decorated_adjective] [name]" - icon_state = decorated_icon //delish~! - reagents.add_reagent(/datum/reagent/consumable/sprinkles, 1) - return TRUE - -/// Returns the sprite of the donut while in a donut box -/obj/item/food/donut/proc/in_box_sprite() - return "[icon_state]_inbox" - -///Override for checkliked in edible component, because all cops LOVE donuts -/obj/item/food/donut/proc/check_liked(fraction, mob/living/carbon/human/consumer) - if(!HAS_TRAIT(consumer, TRAIT_AGEUSIA) && consumer.mind && HAS_TRAIT(consumer.mind, TRAIT_DONUT_LOVER)) - return FOOD_LIKED - -//Use this donut ingame -/obj/item/food/donut/plain - icon_state = "donut" - -/obj/item/food/donut/chaos - name = "chaos donut" - desc = "Like life, it never quite tastes the same." - icon_state = "donut_chaos" - bite_consumption = 10 - tastes = list("donut" = 3, "chaos" = 1) - is_decorated = TRUE - -/obj/item/food/donut/chaos/Initialize(mapload) - . = ..() - extra_reagent = pick(/datum/reagent/consumable/nutriment, /datum/reagent/consumable/capsaicin, /datum/reagent/consumable/frostoil, /datum/reagent/drug/krokodil, /datum/reagent/toxin/plasma, /datum/reagent/consumable/coco, /datum/reagent/toxin/slimejelly, /datum/reagent/consumable/banana, /datum/reagent/consumable/berryjuice, /datum/reagent/medicine/omnizine) - reagents.add_reagent(extra_reagent, 3) - -/obj/item/food/donut/meat - name = "Meat Donut" - desc = "Tastes as gross as it looks." - icon_state = "donut_meat" - food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/protein = 3, /datum/reagent/consumable/ketchup = 3) - tastes = list("meat" = 1) - foodtypes = JUNKFOOD | MEAT | GROSS | FRIED | BREAKFAST - is_decorated = TRUE - -/obj/item/food/donut/berry - name = "pink donut" - desc = "Goes great with a soy latte." - icon_state = "donut_pink" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/berryjuice = 3, /datum/reagent/consumable/sprinkles = 1) //Extra sprinkles to reward frosting - decorated_icon = "donut_homer" - -/obj/item/food/donut/trumpet - name = "spaceman's donut" - desc = "Goes great with a cold beaker of malk." - icon_state = "donut_purple" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/sprinkles = 1) - tastes = list("donut" = 3, "violets" = 1) - is_decorated = TRUE - -/obj/item/food/donut/apple - name = "apple donut" - desc = "Goes great with a shot of cinnamon schnapps." - icon_state = "donut_green" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/applejuice = 3, /datum/reagent/consumable/sprinkles = 1) - tastes = list("donut" = 3, "green apples" = 1) - is_decorated = TRUE - -/obj/item/food/donut/caramel - name = "caramel donut" - desc = "Goes great with a mug of hot coco." - icon_state = "donut_beige" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/caramel = 3, /datum/reagent/consumable/sprinkles = 1) - tastes = list("donut" = 3, "buttery sweetness" = 1) - is_decorated = TRUE - -/obj/item/food/donut/choco - name = "chocolate donut" - desc = "Goes great with a glass of warm milk." - icon_state = "donut_choc" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/hot_coco = 3, /datum/reagent/consumable/sprinkles = 1) //the coco reagent is just bitter. - tastes = list("donut" = 4, "bitterness" = 1) - decorated_icon = "donut_choc_sprinkles" - -/obj/item/food/donut/blumpkin - name = "blumpkin donut" - desc = "Goes great with a mug of soothing drunken blumpkin." - icon_state = "donut_blue" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/blumpkinjuice = 3, /datum/reagent/consumable/sprinkles = 1) - tastes = list("donut" = 2, "blumpkin" = 1) - is_decorated = TRUE - -/obj/item/food/donut/bungo - name = "bungo donut" - desc = "Goes great with a mason jar of hippie's delight." - icon_state = "donut_yellow" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/bungojuice = 3, /datum/reagent/consumable/sprinkles = 1) - tastes = list("donut" = 3, "tropical sweetness" = 1) - is_decorated = TRUE - -/obj/item/food/donut/matcha - name = "matcha donut" - desc = "Goes great with a cup of tea." - icon_state = "donut_olive" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/toxin/teapowder = 3, /datum/reagent/consumable/sprinkles = 1) - tastes = list("donut" = 3, "matcha" = 1) - is_decorated = TRUE - -/obj/item/food/donut/laugh - name = "sweet pea donut" - desc = "Goes great with a bottle of Bastion Burbon!" - icon_state = "donut_laugh" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/laughter = 3) - tastes = list("donut" = 3, "fizzy tutti frutti" = 1,) - is_decorated = TRUE - -//////////////////////JELLY DONUTS///////////////////////// - -/obj/item/food/donut/jelly - name = "jelly donut" - desc = "You jelly?" - icon_state = "jelly" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/sugar = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - extra_reagent = /datum/reagent/consumable/berryjuice - tastes = list("jelly" = 1, "donut" = 3) - foodtypes = JUNKFOOD | GRAIN | FRIED | FRUIT | SUGAR | BREAKFAST - -// Jelly donuts don't have holes, but look the same on the outside -/obj/item/food/donut/jelly/in_box_sprite() - return "[replacetext(icon_state, "jelly", "donut")]_inbox" - -/obj/item/food/donut/jelly/Initialize(mapload) - . = ..() - if(extra_reagent) - reagents.add_reagent(extra_reagent, 3) - -/obj/item/food/donut/jelly/plain //use this ingame to avoid inheritance related crafting issues. - decorated_icon = "jelly_homer" - -/obj/item/food/donut/jelly/berry - name = "pink jelly donut" - desc = "Goes great with a soy latte." - icon_state = "jelly_pink" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/berryjuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) //Extra sprinkles to reward frosting. - decorated_icon = "jelly_homer" - -/obj/item/food/donut/jelly/trumpet - name = "spaceman's jelly donut" - desc = "Goes great with a cold beaker of malk." - icon_state = "jelly_purple" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("jelly" = 1, "donut" = 3, "violets" = 1) - is_decorated = TRUE - -/obj/item/food/donut/jelly/apple - name = "apple jelly donut" - desc = "Goes great with a shot of cinnamon schnapps." - icon_state = "jelly_green" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/applejuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("jelly" = 1, "donut" = 3, "green apples" = 1) - is_decorated = TRUE - -/obj/item/food/donut/jelly/caramel - name = "caramel jelly donut" - desc = "Goes great with a mug of hot coco." - icon_state = "jelly_beige" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/caramel = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("jelly" = 1, "donut" = 3, "buttery sweetness" = 1) - is_decorated = TRUE - -/obj/item/food/donut/jelly/choco - name = "chocolate jelly donut" - desc = "Goes great with a glass of warm milk." - icon_state = "jelly_choc" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/hot_coco = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) //the coco reagent is just bitter. - tastes = list("jelly" = 1, "donut" = 4, "bitterness" = 1) - decorated_icon = "jelly_choc_sprinkles" - -/obj/item/food/donut/jelly/blumpkin - name = "blumpkin jelly donut" - desc = "Goes great with a mug of soothing drunken blumpkin." - icon_state = "jelly_blue" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/blumpkinjuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("jelly" = 1, "donut" = 2, "blumpkin" = 1) - is_decorated = TRUE - -/obj/item/food/donut/jelly/bungo - name = "bungo jelly donut" - desc = "Goes great with a mason jar of hippie's delight." - icon_state = "jelly_yellow" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/bungojuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("jelly" = 1, "donut" = 3, "tropical sweetness" = 1) - is_decorated = TRUE - -/obj/item/food/donut/jelly/matcha - name = "matcha jelly donut" - desc = "Goes great with a cup of tea." - icon_state = "jelly_olive" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/toxin/teapowder = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("jelly" = 1, "donut" = 3, "matcha" = 1) - is_decorated = TRUE - -/obj/item/food/donut/jelly/laugh - name = "sweet pea jelly donut" - desc = "Goes great with a bottle of Bastion Burbon!" - icon_state = "jelly_laugh" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/laughter = 3) - tastes = list("jelly" = 3, "donut" = 1, "fizzy tutti frutti" = 1) - is_decorated = TRUE - -//////////////////////////SLIME DONUTS///////////////////////// - -/obj/item/food/donut/jelly/slimejelly - name = "jelly donut" - desc = "You jelly?" - extra_reagent = /datum/reagent/toxin/slimejelly - foodtypes = JUNKFOOD | GRAIN | FRIED | TOXIC | SUGAR | BREAKFAST - -/obj/item/food/donut/jelly/slimejelly/plain - icon_state = "jelly" - -/obj/item/food/donut/jelly/slimejelly/berry - name = "pink jelly donut" - desc = "Goes great with a soy latte." - icon_state = "jelly_pink" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/berryjuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) //Extra sprinkles to reward frosting - -/obj/item/food/donut/jelly/slimejelly/trumpet - name = "spaceman's jelly donut" - desc = "Goes great with a cold beaker of malk." - icon_state = "jelly_purple" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("jelly" = 1, "donut" = 3, "violets" = 1) - is_decorated = TRUE - -/obj/item/food/donut/jelly/slimejelly/apple - name = "apple jelly donut" - desc = "Goes great with a shot of cinnamon schnapps." - icon_state = "jelly_green" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/applejuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("jelly" = 1, "donut" = 3, "green apples" = 1) - is_decorated = TRUE - -/obj/item/food/donut/jelly/slimejelly/caramel - name = "caramel jelly donut" - desc = "Goes great with a mug of hot coco." - icon_state = "jelly_beige" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/caramel = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("jelly" = 1, "donut" = 3, "buttery sweetness" = 1) - is_decorated = TRUE - -/obj/item/food/donut/jelly/slimejelly/choco - name = "chocolate jelly donut" - desc = "Goes great with a glass of warm milk." - icon_state = "jelly_choc" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/hot_coco = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) //the coco reagent is just bitter. - tastes = list("jelly" = 1, "donut" = 4, "bitterness" = 1) - decorated_icon = "jelly_choc_sprinkles" - -/obj/item/food/donut/jelly/slimejelly/blumpkin - name = "blumpkin jelly donut" - desc = "Goes great with a mug of soothing drunken blumpkin." - icon_state = "jelly_blue" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/blumpkinjuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("jelly" = 1, "donut" = 2, "blumpkin" = 1) - is_decorated = TRUE - -/obj/item/food/donut/jelly/slimejelly/bungo - name = "bungo jelly donut" - desc = "Goes great with a mason jar of hippie's delight." - icon_state = "jelly_yellow" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/bungojuice = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("jelly" = 1, "donut" = 3, "tropical sweetness" = 1) - is_decorated = TRUE - -/obj/item/food/donut/jelly/slimejelly/matcha - name = "matcha jelly donut" - desc = "Goes great with a cup of tea." - icon_state = "jelly_olive" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/toxin/teapowder = 3, /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("jelly" = 1, "donut" = 3, "matcha" = 1) - is_decorated = TRUE - -/obj/item/food/donut/jelly/slimejelly/laugh - name = "sweet pea jelly donut" - desc = "Goes great with a bottle of Bastion Burbon!" - icon_state = "jelly_laugh" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/laughter = 3) - tastes = list("jelly" = 3, "donut" = 1, "fizzy tutti frutti" = 1) - is_decorated = TRUE - ////////////////////////////////////////////MUFFINS//////////////////////////////////////////// /obj/item/food/muffin @@ -422,145 +92,6 @@ foodtypes = GRAIN | VEGETABLES | SUGAR | BREAKFAST w_class = WEIGHT_CLASS_SMALL -////////////////////////////////////////////DONK POCKETS//////////////////////////////////////////// - -/obj/item/food/donkpocket - name = "\improper Donk-pocket" - desc = "The food of choice for the seasoned traitor." - icon_state = "donkpocket" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2) - microwaved_type = /obj/item/food/donkpocket/warm - tastes = list("meat" = 2, "dough" = 2, "laziness" = 1) - foodtypes = GRAIN - food_flags = FOOD_FINGER_FOOD - w_class = WEIGHT_CLASS_SMALL - -//donk pockets cook quick... try not to burn them for using an unoptimal tool -/obj/item/food/donkpocket/MakeBakeable() - AddComponent(/datum/component/bakeable, microwaved_type, rand(25 SECONDS, 30 SECONDS), TRUE, TRUE) - -/obj/item/food/donkpocket/warm - name = "warm Donk-pocket" - desc = "The heated food of choice for the seasoned traitor." - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/medicine/omnizine = 6) - microwaved_type = null - tastes = list("meat" = 2, "dough" = 2, "laziness" = 1) - foodtypes = GRAIN - -///Override for fast-burning food -/obj/item/food/donkpocket/warm/MakeBakeable() - AddComponent(/datum/component/bakeable, /obj/item/food/badrecipe, rand(10 SECONDS, 15 SECONDS), FALSE) - -/obj/item/food/dankpocket - name = "\improper Dank-pocket" - desc = "The food of choice for the seasoned botanist." - icon_state = "dankpocket" - food_reagents = list(/datum/reagent/toxin/lipolicide = 3, /datum/reagent/drug/space_drugs = 3, /datum/reagent/consumable/nutriment = 4) - tastes = list("meat" = 2, "dough" = 2) - foodtypes = GRAIN | VEGETABLES - -/obj/item/food/donkpocket/spicy - name = "\improper Spicy-pocket" - desc = "The classic snack food, now with a heat-activated spicy flair." - icon_state = "donkpocketspicy" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/capsaicin = 2) - microwaved_type = /obj/item/food/donkpocket/warm/spicy - tastes = list("meat" = 2, "dough" = 2, "spice" = 1) - foodtypes = GRAIN - -/obj/item/food/donkpocket/warm/spicy - name = "warm Spicy-pocket" - desc = "The classic snack food, now maybe a bit too spicy." - icon_state = "donkpocketspicy" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/capsaicin = 5) - tastes = list("meat" = 2, "dough" = 2, "weird spices" = 2) - foodtypes = GRAIN - -/obj/item/food/donkpocket/teriyaki - name = "\improper Teriyaki-pocket" - desc = "An east-asian take on the classic stationside snack." - icon_state = "donkpocketteriyaki" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/soysauce = 2) - microwaved_type = /obj/item/food/donkpocket/warm/teriyaki - tastes = list("meat" = 2, "dough" = 2, "soy sauce" = 2) - foodtypes = GRAIN - -/obj/item/food/donkpocket/warm/teriyaki - name = "warm Teriyaki-pocket" - desc = "An east-asian take on the classic stationside snack, now steamy and warm." - icon_state = "donkpocketteriyaki" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 3, /datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/soysauce = 2) - tastes = list("meat" = 2, "dough" = 2, "soy sauce" = 2) - foodtypes = GRAIN - -/obj/item/food/donkpocket/pizza - name = "\improper Pizza-pocket" - desc = "Delicious, cheesy and surprisingly filling." - icon_state = "donkpocketpizza" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/tomatojuice = 2) - microwaved_type = /obj/item/food/donkpocket/warm/pizza - tastes = list("meat" = 2, "dough" = 2, "cheese"= 2) - foodtypes = GRAIN - -/obj/item/food/donkpocket/warm/pizza - name = "warm Pizza-pocket" - desc = "Delicious, cheesy, and even better when hot." - icon_state = "donkpocketpizza" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/tomatojuice = 2) - tastes = list("meat" = 2, "dough" = 2, "melty cheese"= 2) - foodtypes = GRAIN - -/obj/item/food/donkpocket/honk - name = "\improper Honk-pocket" - desc = "The award-winning donk-pocket that won the hearts of clowns and humans alike." - icon_state = "donkpocketbanana" - food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/banana = 4) - microwaved_type = /obj/item/food/donkpocket/warm/honk - tastes = list("banana" = 2, "dough" = 2, "children's antibiotics" = 1) - foodtypes = GRAIN - -/obj/item/food/donkpocket/warm/honk - name = "warm Honk-pocket" - desc = "The award-winning donk-pocket, now warm and toasty." - icon_state = "donkpocketbanana" - food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/banana = 4, /datum/reagent/consumable/laughter = 6) - tastes = list("dough" = 2, "children's antibiotics" = 1) - foodtypes = GRAIN - -/obj/item/food/donkpocket/berry - name = "\improper Berry-pocket" - desc = "A relentlessly sweet donk-pocket first created for use in Operation Dessert Storm." - icon_state = "donkpocketberry" - food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/berryjuice = 3) - microwaved_type = /obj/item/food/donkpocket/warm/berry - tastes = list("dough" = 2, "jam" = 2) - foodtypes = GRAIN - -/obj/item/food/donkpocket/warm/berry - name = "warm Berry-pocket" - desc = "A relentlessly sweet donk-pocket, now warm and delicious." - icon_state = "donkpocketberry" - food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/berryjuice = 3) - tastes = list("dough" = 2, "warm jam" = 2) - foodtypes = GRAIN - -/obj/item/food/donkpocket/gondola - name = "\improper Gondola-pocket" - desc = "The choice to use real gondola meat in the recipe is controversial, to say the least." //Only a monster would craft this. - icon_state = "donkpocketgondola" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/gondola_mutation_toxin = 5) - microwaved_type = /obj/item/food/donkpocket/warm/gondola - tastes = list("meat" = 2, "dough" = 2, "inner peace" = 1) - foodtypes = GRAIN - -/obj/item/food/donkpocket/warm/gondola - name = "warm Gondola-pocket" - desc = "The choice to use real gondola meat in the recipe is controversial, to say the least." - icon_state = "donkpocketgondola" - food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/medicine/omnizine = 2, /datum/reagent/gondola_mutation_toxin = 10) - tastes = list("meat" = 2, "dough" = 2, "inner peace" = 1) - foodtypes = GRAIN - ////////////////////////////////////////////OTHER//////////////////////////////////////////// /obj/item/food/cookie @@ -594,7 +125,7 @@ /obj/item/food/fortunecookie/proc/get_fortune() var/atom/drop_location = drop_location() - + var/obj/item/paper/fortune = locate(/obj/item/paper) in src // If a fortune exists, use that. if (fortune) @@ -724,157 +255,6 @@ foodtypes = GRAIN | SUGAR w_class = WEIGHT_CLASS_SMALL -#define PANCAKE_MAX_STACK 10 - -/obj/item/food/pancakes - name = "pancake" - desc = "A fluffy pancake. The softer, superior relative of the waffle." - icon_state = "pancakes_1" - inhand_icon_state = "pancakes" - food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2) - tastes = list("pancakes" = 1) - foodtypes = GRAIN | SUGAR | BREAKFAST - w_class = WEIGHT_CLASS_SMALL - burns_on_grill = TRUE - venue_value = FOOD_PRICE_CHEAP - -/obj/item/food/pancakes/raw - name = "goopy pancake" - desc = "A barely cooked mess that some may mistake for a pancake. It longs for the griddle." - icon_state = "rawpancakes_1" - inhand_icon_state = "rawpancakes" - food_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) - tastes = list("milky batter" = 1) - burns_on_grill = FALSE - -/obj/item/food/pancakes/raw/MakeGrillable() - AddComponent(/datum/component/grillable,\ - cook_result = /obj/item/food/pancakes,\ - required_cook_time = rand(30 SECONDS, 40 SECONDS),\ - positive_result = TRUE,\ - use_large_steam_sprite = TRUE) - -/obj/item/food/pancakes/raw/attackby(obj/item/garnish, mob/living/user, params) - var/newresult - if(istype(garnish, /obj/item/food/grown/berries)) - newresult = /obj/item/food/pancakes/blueberry - name = "raw blueberry pancake" - icon_state = "rawbbpancakes_1" - inhand_icon_state = "rawbbpancakes" - else if(istype(garnish, /obj/item/food/chocolatebar)) - newresult = /obj/item/food/pancakes/chocolatechip - name = "raw chocolate chip pancake" - icon_state = "rawccpancakes_1" - inhand_icon_state = "rawccpancakes" - else - return ..() - if(newresult) - qdel(garnish) - to_chat(user, span_notice("You add [garnish] to [src].")) - AddComponent(/datum/component/grillable, cook_result = newresult) - -/obj/item/food/pancakes/raw/examine(mob/user) - . = ..() - if(name == initial(name)) - . += "You can modify the pancake by adding blueberries or chocolate before finishing the griddle." - -/obj/item/food/pancakes/blueberry - name = "blueberry pancake" - desc = "A fluffy and delicious blueberry pancake." - icon_state = "bbpancakes_1" - inhand_icon_state = "bbpancakes" - food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 5) - tastes = list("pancakes" = 1, "blueberries" = 1) - -/obj/item/food/pancakes/chocolatechip - name = "chocolate chip pancake" - desc = "A fluffy and delicious chocolate chip pancake." - icon_state = "ccpancakes_1" - inhand_icon_state = "ccpancakes" - food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 5) - tastes = list("pancakes" = 1, "chocolate" = 1) - -/obj/item/food/pancakes/Initialize(mapload) - . = ..() - update_appearance() - -/obj/item/food/pancakes/update_name() - name = contents.len ? "stack of pancakes" : initial(name) - return ..() - -/obj/item/food/pancakes/update_icon(updates = ALL) - if(!(updates & UPDATE_OVERLAYS)) - return ..() - - updates &= ~UPDATE_OVERLAYS - . = ..() // Don't update overlays. We're doing that here - - if(contents.len < LAZYLEN(overlays)) - overlays -= overlays[overlays.len] - . |= UPDATE_OVERLAYS - -/obj/item/food/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!" - . = ..() - if (pancakeCount) - for(var/obj/item/food/pancakes/ING in contents) - ingredients_listed += "[ING.name], " - . += "It contains [contents.len?"[ingredients_listed]":"no ingredient, "]on top of a [initial(name)]." - -/obj/item/food/pancakes/attackby(obj/item/item, mob/living/user, params) - if(istype(item, /obj/item/food/pancakes)) - var/obj/item/food/pancakes/pancake = item - if((contents.len >= PANCAKE_MAX_STACK) || ((pancake.contents.len + contents.len) > PANCAKE_MAX_STACK)) - to_chat(user, span_warning("You can't add that many pancakes to [src]!")) - else - if(!user.transferItemToLoc(pancake, src)) - return - to_chat(user, span_notice("You add the [pancake] to the [src].")) - pancake.name = initial(pancake.name) - contents += pancake - update_snack_overlays(pancake) - if (pancake.contents.len) - for(var/pancake_content in pancake.contents) - pancake = pancake_content - pancake.name = initial(pancake.name) - contents += pancake - update_snack_overlays(pancake) - pancake = item - pancake.contents.Cut() - return - else if(contents.len) - var/obj/O = contents[contents.len] - return O.attackby(item, user, params) - ..() - -/obj/item/food/pancakes/proc/update_snack_overlays(obj/item/pancake) - var/mutable_appearance/pancake_visual = mutable_appearance(icon, "[pancake.inhand_icon_state]_[rand(1, 3)]") - pancake_visual.pixel_x = rand(-1, 1) - pancake_visual.pixel_y = 3 * contents.len - 1 - add_overlay(pancake_visual) - update_appearance() - -/obj/item/food/pancakes/attack(mob/target, mob/living/user, params, stacked = TRUE) - if(user.combat_mode || !contents.len || !stacked) - return ..() - var/obj/item/item = contents[contents.len] - . = item.attack(target, user, params, FALSE) - update_appearance() - -#undef PANCAKE_MAX_STACK - /obj/item/food/cannoli name = "cannoli" desc = "A sicilian treat that makes you into a wise guy." @@ -921,5 +301,3 @@ icon_state = "icecream_cone_chocolate" food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/coco = 1) ingredients = list(/datum/reagent/consumable/flour, /datum/reagent/consumable/sugar, /datum/reagent/consumable/coco) - -#undef DONUT_SPRINKLE_CHANCE diff --git a/tgstation.dme b/tgstation.dme index dc0cdc3a887..88ee9e57507 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1610,6 +1610,8 @@ #include "code\game\objects\items\food\burgers.dm" #include "code\game\objects\items\food\cake.dm" #include "code\game\objects\items\food\deepfried.dm" +#include "code\game\objects\items\food\donkpocket.dm" +#include "code\game\objects\items\food\donuts.dm" #include "code\game\objects\items\food\dough.dm" #include "code\game\objects\items\food\egg.dm" #include "code\game\objects\items\food\frozen.dm" @@ -1618,6 +1620,7 @@ #include "code\game\objects\items\food\mexican.dm" #include "code\game\objects\items\food\misc.dm" #include "code\game\objects\items\food\moth.dm" +#include "code\game\objects\items\food\pancakes.dm" #include "code\game\objects\items\food\pastries.dm" #include "code\game\objects\items\food\pie.dm" #include "code\game\objects\items\food\pizza.dm"