diff --git a/code/game/machinery/vending_machines_vr.dm b/code/game/machinery/vending_machines_vr.dm index c53378411df..fbefa49966c 100644 --- a/code/game/machinery/vending_machines_vr.dm +++ b/code/game/machinery/vending_machines_vr.dm @@ -3750,10 +3750,28 @@ /obj/item/weapon/reagent_containers/food/snacks/donerkebab = 10, /obj/item/weapon/reagent_containers/food/snacks/donkpocket = 10, /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket = 10, - /obj/item/weapon/reagent_containers/food/snacks/donut = 10, - /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly = 10, - /obj/item/weapon/reagent_containers/food/snacks/donut/jelly = 10, - /obj/item/weapon/reagent_containers/food/snacks/donut/normal = 10, + /obj/item/weapon/reagent_containers/food/snacks/donut/plain = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/pink = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/pink/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/purple = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/purple/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/green = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/green/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/beige = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/beige/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/blue = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/blue/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/yellow = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/yellow/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/olive = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/olive/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/homer = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/homer/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc_sprinkles = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc_sprinkles/jelly = 2, /obj/item/weapon/reagent_containers/food/snacks/egg_pancake = 10, /obj/item/weapon/reagent_containers/food/snacks/eggbowl = 10, /obj/item/weapon/reagent_containers/food/snacks/eggplantparm = 10, @@ -3985,8 +4003,8 @@ /obj/item/weapon/reagent_containers/food/snacks/brainburger = 10, /obj/item/weapon/reagent_containers/food/snacks/chaoscakeslice = 10, /obj/item/weapon/reagent_containers/food/snacks/donut/chaos = 10, - /obj/item/weapon/reagent_containers/food/snacks/donut/poisonberry = 10, - /obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly = 10, + /obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly/poisonberry = 10, + /obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly/slimejelly = 10, /obj/item/weapon/reagent_containers/food/snacks/ghostmuffin/poison = 10, /obj/item/weapon/reagent_containers/food/snacks/old/hotdog = 10, /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice = 10, @@ -4064,7 +4082,10 @@ /obj/item/weapon/reagent_containers/food/snacks/sliceable/sharkchunk = 10, /obj/item/weapon/reagent_containers/food/snacks/spagetti = 10, /obj/item/weapon/reagent_containers/food/snacks/xenomeat = 10, - /obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat = 10) + /obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat = 10, + /obj/item/weapon/reagent_containers/food/snacks/vendor_burger = 10, + /obj/item/weapon/reagent_containers/food/snacks/vendor_hotdog = 10, + /obj/item/weapon/reagent_containers/food/snacks/vendor_burrito = 10) vend_delay = 15 /obj/machinery/vending/event/food/safe //FOR FACILITATING/OUTFITTING EVENTS, DO NOT PUT THESE ON THE MAP// @@ -4212,10 +4233,28 @@ /obj/item/weapon/reagent_containers/food/snacks/donerkebab = 10, /obj/item/weapon/reagent_containers/food/snacks/donkpocket = 10, /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket = 10, - /obj/item/weapon/reagent_containers/food/snacks/donut = 10, - /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly = 10, - /obj/item/weapon/reagent_containers/food/snacks/donut/jelly = 10, - /obj/item/weapon/reagent_containers/food/snacks/donut/normal = 10, + /obj/item/weapon/reagent_containers/food/snacks/donut/plain = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/pink = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/pink/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/purple = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/purple/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/green = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/green/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/beige = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/beige/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/blue = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/blue/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/yellow = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/yellow/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/olive = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/olive/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/homer = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/homer/jelly = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc_sprinkles = 2, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc_sprinkles/jelly = 2, /obj/item/weapon/reagent_containers/food/snacks/egg_pancake = 10, /obj/item/weapon/reagent_containers/food/snacks/eggbowl = 10, /obj/item/weapon/reagent_containers/food/snacks/eggplantparm = 10, @@ -4437,7 +4476,10 @@ /obj/item/weapon/reagent_containers/food/snacks/wingfangchu = 10, /obj/item/weapon/reagent_containers/food/snacks/wishsoup = 10, /obj/item/weapon/reagent_containers/food/snacks/yellowcurry = 10, - /obj/item/weapon/reagent_containers/food/snacks/zestfish = 10) + /obj/item/weapon/reagent_containers/food/snacks/zestfish = 10, + /obj/item/weapon/reagent_containers/food/snacks/vendor_burger = 10, + /obj/item/weapon/reagent_containers/food/snacks/vendor_hotdog = 10, + /obj/item/weapon/reagent_containers/food/snacks/vendor_burrito = 10) vend_delay = 15 /obj/machinery/vending/event/food/ingredients //FOR FACILITATING/OUTFITTING EVENTS, DO NOT PUT THESE ON THE MAP// diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index fc73b3196cc..e09c9b1e5de 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -216,154 +216,170 @@ return -/obj/item/trash/beef //ADDITION 04/11/2021 +/obj/item/trash/beef name = "empty beef can" icon_state = "beef" drop_sound = 'sound/items/drop/soda.ogg' pickup_sound = 'sound/items/pickup/soda.ogg' -/obj/item/trash/beans //ADDITION 04/11/2021 +/obj/item/trash/beans name = "empty bean can" icon_state = "beans" drop_sound = 'sound/items/drop/soda.ogg' pickup_sound = 'sound/items/pickup/soda.ogg' -/obj/item/trash/spinach //ADDITION 04/11/2021 +/obj/item/trash/spinach name = "empty spinach can" icon_state = "spinach" drop_sound = 'sound/items/drop/soda.ogg' pickup_sound = 'sound/items/pickup/soda.ogg' -/obj/item/trash/fishegg //ADDITION 04/11/2021 +/obj/item/trash/fishegg name = "empty fisheggs can" icon_state = "fisheggs" drop_sound = 'sound/items/drop/soda.ogg' pickup_sound = 'sound/items/pickup/soda.ogg' -/obj/item/trash/carpegg //ADDITION 04/11/2021 +/obj/item/trash/carpegg name = "empty carpeggs can" icon_state = "carpeggs" drop_sound = 'sound/items/drop/soda.ogg' pickup_sound = 'sound/items/pickup/soda.ogg' -/obj/item/trash/salo //ADDITION 04/11/2021 +/obj/item/trash/salo name = "salo pack" icon_state = "pigfat" -/obj/item/trash/croutons //ADDITION 04/11/2021 +/obj/item/trash/croutons name = "suhariki pack" icon_state = "croutons" -/obj/item/trash/squid //ADDITION 04/11/2021 +/obj/item/trash/squid name = "calamari pack" icon_state = "squid" -/obj/item/trash/driedfish //ADDITION 04/11/2021 +/obj/item/trash/driedfish name = "vobla pack" icon_state = "driedfish" -/obj/item/trash/lunacakewrap //ADDITION 04/11/2021 +/obj/item/trash/lunacakewrap name = "cake wrapper" icon_state = "cakewrap" -/obj/item/trash/mochicakewrap //ADDITION 04/11/2021 +/obj/item/trash/mochicakewrap name = "cake wrapper" icon_state = "mochicakewrap" -/obj/item/trash/mooncakewrap //ADDITION 04/11/2021 +/obj/item/trash/mooncakewrap name = "cake wrapper" icon_state = "mooncakewrap" -/obj/item/trash/tidegobs//ADDITION 04/11/2021 +/obj/item/trash/tidegobs name = "tide gob bag" icon_state = "tidegobs" -/obj/item/trash/saturno//ADDITION 04/11/2021 +/obj/item/trash/saturno name = "\improper saturn-Os bag" icon_state = "saturn0s" -/obj/item/trash/jupiter//ADDITION 04/11/2021 +/obj/item/trash/jupiter name = "gello cup" icon_state = "jupiter" -/obj/item/trash/pluto//ADDITION 04/11/2021 +/obj/item/trash/pluto name = "rod bag" icon_state = "pluto" -/obj/item/trash/venus//ADDITION 04/11/2021 +/obj/item/trash/venus name = "hot cakes bag" icon_state = "venus" -/obj/item/trash/mars//ADDITION 04/11/2021 +/obj/item/trash/mars name = "frouka box" icon_state = "mars" -/obj/item/trash/oort//ADDITION 04/11/2021 +/obj/item/trash/oort name = "oort rock bag" icon_state = "oort" -/obj/item/trash/weebonuts//ADDITION 04/11/2021 +/obj/item/trash/weebonuts name = "red alert nuts bag" icon_state = "weebonuts" -/obj/item/trash/stick//ADDITION 04/11/2021 +/obj/item/trash/stick name = "stick" desc = "a stick from some snack or other food item, not even useful as crafting material." icon_state = "stick" -/obj/item/trash/maps//ADDITION 04/13/2021 +/obj/item/trash/maps name = "empty MAPS can" icon_state = "maps" drop_sound = 'sound/items/drop/soda.ogg' pickup_sound = 'sound/items/pickup/soda.ogg' -/obj/item/trash/spacer_cake_wrap//ADDITION 04/14/2021 +/obj/item/trash/spacer_cake_wrap name = "snack cake wrapper" icon_state = "spacer_cake_wrap" -/obj/item/trash/sun_snax//ADDITION 04/14/2021 +/obj/item/trash/sun_snax name = "sun snax bag" icon_state = "sun_snax" -/obj/item/trash/wasabi_peas//ADDITION 04/14/2021 +/obj/item/trash/wasabi_peas name = "wasabi peas bag" icon_state = "wasabi_peas" -/obj/item/trash/namagashi//ADDITION 04/14/2021 +/obj/item/trash/namagashi name = "namagashi bag" icon_state = "namagashi" -/obj/item/trash/pocky//ADDITION 04/14/2021 +/obj/item/trash/pocky name = "pocky bag" icon_state = "pocky" -/obj/item/trash/appleberry//ADDITION 04/14/2021 +/obj/item/trash/appleberry name = "appleberry can" icon_state = "appleberry" drop_sound = 'sound/items/drop/soda.ogg' pickup_sound = 'sound/items/pickup/soda.ogg' -/obj/item/trash/hakarl//ADDITION 04/22/2021 +/obj/item/trash/hakarl name = "\improper Indigo Co. Hákarl bag" icon_state = "hakarl" -/obj/item/trash/pretzel//ADDITION 04/22/2021 +/obj/item/trash/pretzel name = "\improper Value Pretzel Snack" icon_state = "pretzel" -/obj/item/trash/sweetration//ADDITION 04/20/2021 +/obj/item/trash/sweetration name = "desert ration bag" icon_state = "baseration" -/obj/item/trash/genration//ADDITION 04/20/2021 +/obj/item/trash/genration name = "generic ration bag" icon_state = "genration" -/obj/item/trash/meatration//ADDITION 04/20/2021 +/obj/item/trash/meatration name = "meat ration bag" icon_state = "meatration" -/obj/item/trash/vegration//ADDITION 04/20/2021 +/obj/item/trash/vegration name = "veggie ration bag" icon_state = "vegration" +/obj/item/trash/tgmc_mre + name = "\improper CRS ration bag" + icon_state = "tgmc_mre_trash" + +/obj/item/trash/vendor_burger + name = "burger wrapper" + icon_state = "packburger_wrapper" + +/obj/item/trash/vendor_hotdog + name = "hotdog wrapper" + icon_state = "packhotdog_wrapper" + +/obj/item/trash/vendor_burrito + name = "burrito wrapper" + icon_state = "packburrito_wrapper" + diff --git a/code/game/objects/items/weapons/storage/misc.dm b/code/game/objects/items/weapons/storage/misc.dm index 5c9be66e260..8b6384b9cba 100644 --- a/code/game/objects/items/weapons/storage/misc.dm +++ b/code/game/objects/items/weapons/storage/misc.dm @@ -2,8 +2,34 @@ * Donut Box */ +var/list/random_weighted_donuts = list( + /obj/item/weapon/reagent_containers/food/snacks/donut/plain = 5, + /obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly = 5, + /obj/item/weapon/reagent_containers/food/snacks/donut/pink = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/pink/jelly = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/purple = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/purple/jelly = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/green = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/green/jelly = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/beige = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/beige/jelly = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc/jelly = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/blue = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/blue/jelly = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/yellow = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/yellow/jelly = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/olive = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/olive/jelly = 4, + /obj/item/weapon/reagent_containers/food/snacks/donut/homer = 3, + /obj/item/weapon/reagent_containers/food/snacks/donut/homer/jelly = 3, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc_sprinkles = 3, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc_sprinkles/jelly = 3, + /obj/item/weapon/reagent_containers/food/snacks/donut/chaos = 1 +) + /obj/item/weapon/storage/box/donut - icon = 'icons/obj/food.dmi' + icon = 'icons/obj/food_donuts.dmi' icon_state = "donutbox" name = "donut box" desc = "A box that holds tasty donuts, if you're lucky." @@ -11,18 +37,24 @@ max_storage_space = ITEMSIZE_COST_SMALL * 6 can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/donut) foldable = /obj/item/stack/material/cardboard - starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/donut/normal = 6) + //starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/donut/normal = 6) /obj/item/weapon/storage/box/donut/Initialize() + if(!empty) + for(var/i in 1 to 6) + var/type_to_spawn = pickweight(random_weighted_donuts) + new type_to_spawn(src) . = ..() update_icon() /obj/item/weapon/storage/box/donut/update_icon() cut_overlays() - var/i = 0 + var/x_offset = 0 for(var/obj/item/weapon/reagent_containers/food/snacks/donut/D in contents) - add_overlay("[i][D.overlay_state]") - i++ + var/mutable_appearance/ma = mutable_appearance(icon = icon, icon_state = D.overlay_state) + ma.pixel_x = x_offset + add_overlay(ma) + x_offset += 3 /obj/item/weapon/storage/box/donut/empty empty = TRUE diff --git a/code/game/objects/items/weapons/storage/mre.dm b/code/game/objects/items/weapons/storage/mre.dm index 50536564d3b..390d4e4e8fa 100644 --- a/code/game/objects/items/weapons/storage/mre.dm +++ b/code/game/objects/items/weapons/storage/mre.dm @@ -288,3 +288,95 @@ MRE Stuff /obj/item/weapon/storage/mrebag/dessert/menu11 starts_with = list(/obj/item/weapon/pen/crayon/rainbow) + +// TGMC MREs - Smaller, less trash +/obj/item/weapon/storage/box/tgmc_mre + name = "\improper CRS MRE" + desc = "Meal Ready-to-Eat, meant to be consumed in the field, prepared by the Commonwealth Ration Service. It says it's government property..." + icon = 'icons/obj/food.dmi' + icon_state = "tgmc_mre" + w_class = ITEMSIZE_SMALL + can_hold = list() + storage_slots = 5 + max_w_class = 0 + foldable = null + var/isopened = 0 + +/obj/item/weapon/storage/box/tgmc_mre/Initialize() + . = ..() + pickflavor() + +/obj/item/weapon/storage/box/tgmc_mre/Destroy() + var/turf/T = get_turf(src) + if(T) + new /obj/item/trash/tgmc_mre(T) + return ..() + +/obj/item/weapon/storage/box/tgmc_mre/proc/pickflavor() + var/entree = pick("boneless pork ribs", "grilled chicken", "pizza square", "spaghetti", "chicken tenders") + var/side = pick("meatballs", "cheese spread", "beef turnover", "mashed potatoes") + var/snack = pick("biscuit", "pretzels", "peanuts", "cracker") + var/desert = pick("spiced apples", "chocolate brownie", "sugar cookie", "choco bar") + + name = "[initial(name)] ([entree])" + + new /obj/item/weapon/reagent_containers/food/snacks/tgmc_mre_component(src, entree) + new /obj/item/weapon/reagent_containers/food/snacks/tgmc_mre_component(src, side) + new /obj/item/weapon/reagent_containers/food/snacks/tgmc_mre_component(src, snack) + new /obj/item/weapon/reagent_containers/food/snacks/tgmc_mre_component(src, desert) + new /obj/random/mre/drink(src) + +/obj/item/weapon/storage/box/tgmc_mre/remove_from_storage() + . = ..() + if(. && !contents.len && !gc_destroyed) + qdel(src) + +/obj/item/weapon/storage/box/tgmc_mre/update_icon() + if(!isopened) + isopened = 1 + icon_state = "tgmc_mre_opened" + +// The sneaky food-looks-like-a-package items +/obj/item/weapon/reagent_containers/food/snacks/tgmc_mre_component + name = "\improper MRE component" + package = TRUE + bitesize = 1 + icon_state = "tgmcmre_entree" + var/flavor = "boneless pork ribs" + +/obj/item/weapon/reagent_containers/food/snacks/tgmc_mre_component/Initialize(mapload, newflavor) + determinetype(newflavor) + desc = "A packaged [flavor] from a Meal Ready-to-Eat, there is a lengthy list of [pick("obscure", "arcane", "unintelligible", "revolutionary", "sophisticated", "unspellable")] ingredients and addictives printed on the back." + . = ..() + +/obj/item/weapon/reagent_containers/food/snacks/tgmc_mre_component/unpackage(mob/user as mob) + . = ..() + name = "\improper" + flavor + desc = "The contents of a standard issue CRS MRE. This one is " + flavor + "." + +/obj/item/weapon/reagent_containers/food/snacks/tgmc_mre_component/proc/determinetype(newflavor) + name = "\improper MRE component" + " (" + newflavor + ")" + flavor = newflavor + var/static/tastes = list("something scrumptious","nothing","the usual grub","something mediocre","hell","heaven","tentalization","disgust","dog food","cat food","fish food","recycled pizza","junk","trash","rubbish","sawdust","nutraloafs","gourmand food","gourmet food","moistness","squalidness","old grub","actually good food","bleach","soap","sand","synthetic grub","blandness","prison food","Discount Dan's","Discount Dan's Special","Discount Dan's leftovers","yesterday leftovers","microwaved leftovers","leftovers","UPP rations","uncooked grub","overcooked grub","not-so-bad grub","pinapple pizza flavored grub","mystery food","burnt food","frozen food","lukewarm food","rancidness","processed grub","crunchiness","faux meat","something false","low-calorie food","high-carb food","transfat-free food","gluten-free food","delictableness","acid","mintiness","sauciness","saltiness","extreme saltiness","spiced grub","crispness","questionable grub","something untastable","bitterness","savoriness","sourness","sweetness","umami","chewing gum","shoe polish","the jungle","indigestion","oldberries","butter","lard","oil","grass","cough syrup","water","iron","rubber","lead","bronze","wood","paper","plastic","kevlar","cloth","buckshot","gunpowder","black powder","petroleum","gasoline","diesel","biofuel","paint","jelly","slime","sludge","tofu","dietetic food","counterfeit food","grossness","dryness","tartiness","cryogenic juice","the secret ingredient","the ninth element","compressed matter","deep-fried food","double-fried food","a culinary apocalypse","experimental post-modern cuisine","a disaster","muckiness","mustard","mordant","citruses","crayon dust") + var/new_taste = pick(tastes) + + switch(newflavor) + if("boneless pork ribs", "grilled chicken", "pizza square", "spaghetti", "chicken tenders") + icon_state = "tgmcmre_entree" + nutriment_amt = 5 + starts_with = list("sodiumchloride" = 1) + if("meatballs", "cheese spread", "beef turnover", "mashed potatoes") + icon_state = "tgmcmre_side" + nutriment_amt = 3 + starts_with = list("sodiumchloride" = 1) + if("biscuit", "pretzels", "peanuts", "cracker") + icon_state = "tgmcmre_snack" + nutriment_amt = 2 + starts_with = list("sodiumchloride" = 1) + if("spiced apples", "chocolate brownie", "sugar cookie", "choco bar") + icon_state = "tgmcmre_dessert" + nutriment_amt = 2 + starts_with = list("sugar" = 1) + + package_open_state = "tgmcmre_[flavor]" + nutriment_desc = list("[new_taste]" = nutriment_amt) diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm index e4d18b5cc61..3183d26fe74 100644 --- a/code/game/objects/random/misc.dm +++ b/code/game/objects/random/misc.dm @@ -412,10 +412,28 @@ /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white, /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle, /obj/item/weapon/reagent_containers/food/snacks/chocolateegg, - /obj/item/weapon/reagent_containers/food/snacks/donut, - /obj/item/weapon/reagent_containers/food/snacks/donut/normal, - /obj/item/weapon/reagent_containers/food/snacks/donut/jelly, - /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly, + /obj/item/weapon/reagent_containers/food/snacks/donut/plain, + /obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly, + /obj/item/weapon/reagent_containers/food/snacks/donut/pink, + /obj/item/weapon/reagent_containers/food/snacks/donut/pink/jelly, + /obj/item/weapon/reagent_containers/food/snacks/donut/purple, + /obj/item/weapon/reagent_containers/food/snacks/donut/purple/jelly, + /obj/item/weapon/reagent_containers/food/snacks/donut/green, + /obj/item/weapon/reagent_containers/food/snacks/donut/green/jelly, + /obj/item/weapon/reagent_containers/food/snacks/donut/beige, + /obj/item/weapon/reagent_containers/food/snacks/donut/beige/jelly, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc/jelly, + /obj/item/weapon/reagent_containers/food/snacks/donut/blue, + /obj/item/weapon/reagent_containers/food/snacks/donut/blue/jelly, + /obj/item/weapon/reagent_containers/food/snacks/donut/yellow, + /obj/item/weapon/reagent_containers/food/snacks/donut/yellow/jelly, + /obj/item/weapon/reagent_containers/food/snacks/donut/olive, + /obj/item/weapon/reagent_containers/food/snacks/donut/olive/jelly, + /obj/item/weapon/reagent_containers/food/snacks/donut/homer, + /obj/item/weapon/reagent_containers/food/snacks/donut/homer/jelly, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc_sprinkles, + /obj/item/weapon/reagent_containers/food/snacks/donut/choc_sprinkles/jelly, /obj/item/weapon/reagent_containers/food/snacks/tuna, /obj/item/weapon/reagent_containers/food/snacks/pistachios, /obj/item/weapon/reagent_containers/food/snacks/semki, @@ -838,8 +856,8 @@ /obj/random/mre/dessert/item_to_spawn() return pick(/obj/item/weapon/reagent_containers/food/snacks/candy, /obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar, - /obj/item/weapon/reagent_containers/food/snacks/donut/normal, - /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly, + /obj/item/weapon/reagent_containers/food/snacks/donut/plain, + /obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly, /obj/item/weapon/reagent_containers/food/snacks/chocolatebar, /obj/item/weapon/reagent_containers/food/snacks/cookiesnack) @@ -850,7 +868,7 @@ /obj/random/mre/dessert/vegan/item_to_spawn() return pick(/obj/item/weapon/reagent_containers/food/snacks/candy, /obj/item/weapon/reagent_containers/food/snacks/chocolatebar, - /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly, + /obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly, /obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit) /obj/random/mre/drink diff --git a/code/modules/economy/vending_machines.dm b/code/modules/economy/vending_machines.dm index 60088c1e96c..d1c77d3f972 100644 --- a/code/modules/economy/vending_machines.dm +++ b/code/modules/economy/vending_machines.dm @@ -158,6 +158,9 @@ /obj/item/weapon/reagent_containers/food/snacks/pistachios = 12, /obj/item/weapon/reagent_containers/food/snacks/semki = 12, /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 12, + /obj/item/weapon/reagent_containers/food/snacks/vendor_burger = 12, + /obj/item/weapon/reagent_containers/food/snacks/vendor_hotdog = 12, + /obj/item/weapon/reagent_containers/food/snacks/vendor_burrito = 12, /obj/item/weapon/reagent_containers/food/snacks/no_raisin = 12, /obj/item/weapon/reagent_containers/food/snacks/packaged/spacetwinkie = 12, /obj/item/weapon/reagent_containers/food/snacks/tastybread = 12, @@ -188,6 +191,9 @@ /obj/item/weapon/reagent_containers/food/snacks/pistachios = 1, /obj/item/weapon/reagent_containers/food/snacks/semki = 1, /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 2, + /obj/item/weapon/reagent_containers/food/snacks/vendor_burger = 7, + /obj/item/weapon/reagent_containers/food/snacks/vendor_hotdog = 7, + /obj/item/weapon/reagent_containers/food/snacks/vendor_burrito = 7, /obj/item/weapon/reagent_containers/food/snacks/no_raisin = 1, /obj/item/weapon/reagent_containers/food/snacks/packaged/spacetwinkie = 1, /obj/item/weapon/reagent_containers/food/snacks/tastybread = 2, @@ -439,7 +445,8 @@ products = list(/obj/item/weapon/handcuffs = 8, /obj/item/weapon/grenade/flashbang = 4, /obj/item/device/flash = 5, - /obj/item/weapon/reagent_containers/food/snacks/donut/normal = 12, + /obj/item/weapon/reagent_containers/food/snacks/donut/plain = 6, + /obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly = 6, /obj/item/weapon/storage/box/evidence = 6) contraband = list(/obj/item/clothing/glasses/sunglasses = 2, /obj/item/weapon/storage/box/donut = 2) @@ -1009,6 +1016,9 @@ /obj/item/weapon/reagent_containers/food/snacks/syndicake = 8, /obj/item/weapon/reagent_containers/food/snacks/no_raisin = 8, /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 8, + /obj/item/weapon/reagent_containers/food/snacks/vendor_burger = 8, + /obj/item/weapon/reagent_containers/food/snacks/vendor_hotdog = 8, + /obj/item/weapon/reagent_containers/food/snacks/vendor_burrito = 8, /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks = 8, /obj/item/weapon/reagent_containers/food/snacks/tastybread = 8, /obj/item/weapon/reagent_containers/food/snacks/chips/bbq = 8, @@ -1027,6 +1037,9 @@ /obj/item/weapon/reagent_containers/food/snacks/syndicake = 5, /obj/item/weapon/reagent_containers/food/snacks/no_raisin = 5, /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 5, + /obj/item/weapon/reagent_containers/food/snacks/vendor_burger = 5, + /obj/item/weapon/reagent_containers/food/snacks/vendor_hotdog = 5, + /obj/item/weapon/reagent_containers/food/snacks/vendor_burrito = 5, /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks = 5, /obj/item/weapon/reagent_containers/food/snacks/tastybread = 5, /obj/item/weapon/reagent_containers/food/snacks/chips/bbq = 5, diff --git a/code/modules/food/food/lunch.dm b/code/modules/food/food/lunch.dm index 871e37e1872..6bbd434e435 100644 --- a/code/modules/food/food/lunch.dm +++ b/code/modules/food/food/lunch.dm @@ -12,8 +12,8 @@ var/list/lunchables_lunches_ = list(/obj/item/weapon/reagent_containers/food/sna /obj/item/weapon/reagent_containers/food/snacks/tossedsalad, /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/glucose) -var/list/lunchables_snacks_ = list(/obj/item/weapon/reagent_containers/food/snacks/donut/jelly, - /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly, +var/list/lunchables_snacks_ = list(/obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly, + /obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly/cherryjelly, /obj/item/weapon/reagent_containers/food/snacks/muffin, /obj/item/weapon/reagent_containers/food/snacks/popcorn, /obj/item/weapon/reagent_containers/food/snacks/sosjerky, diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm index 68a9ca739b7..5605a5a7022 100644 --- a/code/modules/food/food/snacks.dm +++ b/code/modules/food/food/snacks.dm @@ -4,6 +4,10 @@ desc = "yummy" icon = 'icons/obj/food.dmi' icon_state = null + center_of_mass = list("x"=16, "y"=16) + w_class = ITEMSIZE_SMALL + force = 0 + var/bitesize = 1 var/bitecount = 0 var/trash = null @@ -17,12 +21,18 @@ var/datum/reagent/nutriment/coating/coating = null var/icon/flat_icon = null //Used to cache a flat icon generated from dipping in batter. This is used again to make the cooked-batter-overlay var/do_coating_prefix = 1 //If 0, we wont do "battered thing" or similar prefixes. Mainly for recipes that include batter but have a special name - var/cooked_icon = null //Used for foods that are "cooked" without being made into a specific recipe or combination. - //Generally applied during modification cooking with oven/fryer - //Used to stop deepfried meat from looking like slightly tanned raw meat, and make it actually look cooked - center_of_mass = list("x"=16, "y"=16) - w_class = ITEMSIZE_SMALL - force = 0 + + /// Used for foods that are "cooked" without being made into a specific recipe or combination. + /// Generally applied during modification cooking with oven/fryer + /// Used to stop deepfried meat from looking like slightly tanned raw meat, and make it actually look cooked + var/cooked_icon = null + + /// If this has a wrapper on it. If true, it will print a message and ask you to remove it + var/package = FALSE + /// Packaged meals drop this trash type item when opened, if set + var/package_trash + /// Packaged meals switch to this state when opened, if set + var/package_open_state /obj/item/weapon/reagent_containers/food/snacks/Initialize() . = ..() @@ -47,7 +57,8 @@ return /obj/item/weapon/reagent_containers/food/snacks/attack_self(mob/user as mob) - return + if(package && !user.incapacitated()) + unpackage(user) /obj/item/weapon/reagent_containers/food/snacks/attack(mob/living/M as mob, mob/user as mob, def_zone) if(reagents && !reagents.total_volume) @@ -56,6 +67,10 @@ qdel(src) return 0 + if(package) + to_chat(M, "How do you expect to eat this with the package still on?") + return FALSE + if(istype(M, /mob/living/carbon)) //TODO: replace with standard_feed_mob() call. @@ -238,6 +253,18 @@ something.dropInto(loc) . = ..() + return + +/obj/item/weapon/reagent_containers/food/snacks/proc/unpackage(mob/user) + package = FALSE + to_chat(user, "You unwrap [src].") + playsound(user,'sound/effects/pageturn2.ogg', 15, 1) + if(package_trash) + var/obj/item/T = new package_trash + user.put_in_hands(T) + if(package_open_state) + icon_state = package_open_state + //////////////////////////////////////////////////////////////////////////////// /// FOOD END //////////////////////////////////////////////////////////////////////////////// @@ -384,43 +411,256 @@ name = "donut" desc = "Goes great with Robust Coffee." description_fluff = "These donuts claim to be made fresh daily in a boutique bakery in New Reykjavik and delivered to Nanotrasen's hardworking asset protection crew. They're probably synthesized." - icon_state = "donut1" + icon = 'icons/obj/food_donuts.dmi' + icon_state = "donut" filling_color = "#D9C386" - var/overlay_state = "box-donut1" - center_of_mass = list("x"=13, "y"=16) nutriment_desc = list("sweetness", "donut") - -/obj/item/weapon/reagent_containers/food/snacks/donut/normal - name = "donut" - desc = "Goes great with Robust Coffee." - icon_state = "donut1" nutriment_amt = 3 - bitesize = 3 + bitesize = 4 + var/overlay_state = "donut_inbox" -/obj/item/weapon/reagent_containers/food/snacks/donut/normal/Initialize() +/obj/item/weapon/reagent_containers/food/snacks/donut/plain + name = "plain donut" + icon_state = "donut" + desc = "A plain ol' donut." +/obj/item/weapon/reagent_containers/food/snacks/donut/plain/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + +/obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly + name = "plain jelly donut" + icon_state = "jelly" + desc = "At least this one has jelly!" +/obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + reagents.add_reagent("berryjuice", 5) + +/obj/item/weapon/reagent_containers/food/snacks/donut/pink + name = "pink frosted donut" + icon_state = "donut_pink" + desc = "This one has pink frosting!" + overlay_state = "donut_pink_inbox" +/obj/item/weapon/reagent_containers/food/snacks/donut/pink/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + +/obj/item/weapon/reagent_containers/food/snacks/donut/pink/jelly + name = "pink frosted jelly donut" + icon_state = "jelly_pink" + desc = "This one has pink frosting and a jelly filling!" +/obj/item/weapon/reagent_containers/food/snacks/donut/pink/jelly/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + reagents.add_reagent("berryjuice", 5) + +/obj/item/weapon/reagent_containers/food/snacks/donut/purple + name = "purple frosted donut" + icon_state = "donut_purple" + desc = "This one has purple frosting!" + overlay_state = "donut_purple_inbox" +/obj/item/weapon/reagent_containers/food/snacks/donut/purple/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + +/obj/item/weapon/reagent_containers/food/snacks/donut/purple/jelly + name = "purple frosted jelly donut" + icon_state = "jelly_purple" + desc = "This one has purple frosting and a jelly filling!" +/obj/item/weapon/reagent_containers/food/snacks/donut/purple/jelly/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + reagents.add_reagent("berryjuice", 5) + +/obj/item/weapon/reagent_containers/food/snacks/donut/green + name = "green frosted donut" + icon_state = "donut_green" + desc = "This one has green frosting!" + overlay_state = "donut_green_inbox" +/obj/item/weapon/reagent_containers/food/snacks/donut/green/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + +/obj/item/weapon/reagent_containers/food/snacks/donut/green/jelly + name = "green frosted jelly donut" + icon_state = "jelly_green" + desc = "This one has green frosting and a jelly filling!" +/obj/item/weapon/reagent_containers/food/snacks/donut/green/jelly/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + reagents.add_reagent("berryjuice", 5) + +/obj/item/weapon/reagent_containers/food/snacks/donut/beige + name = "beige frosted donut" + icon_state = "donut_beige" + desc = "This one has beige frosting!" + overlay_state = "donut_beige_inbox" +/obj/item/weapon/reagent_containers/food/snacks/donut/beige/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + +/obj/item/weapon/reagent_containers/food/snacks/donut/beige/jelly + name = "beige frosted jelly donut" + icon_state = "jelly_beige" + desc = "This one has beige frosting and a jelly filling!" +/obj/item/weapon/reagent_containers/food/snacks/donut/beige/jelly/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + reagents.add_reagent("berryjuice", 5) + +/obj/item/weapon/reagent_containers/food/snacks/donut/choc + name = "chocolate frosted donut" + icon_state = "donut_choc" + desc = "This one has chocolate frosting!" + overlay_state = "donut_choc_inbox" +/obj/item/weapon/reagent_containers/food/snacks/donut/choc/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + +/obj/item/weapon/reagent_containers/food/snacks/donut/choc/jelly + name = "chocolate frosted jelly donut" + icon_state = "jelly_choc" + desc = "This one has chocolate frosting and a jelly filling!" +/obj/item/weapon/reagent_containers/food/snacks/donut/choc/jelly/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + reagents.add_reagent("berryjuice", 5) + +/obj/item/weapon/reagent_containers/food/snacks/donut/blue + name = "blue frosted donut" + icon_state = "donut_blue" + desc = "This one has blue frosting!" + overlay_state = "donut_blue_inbox" +/obj/item/weapon/reagent_containers/food/snacks/donut/blue/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + +/obj/item/weapon/reagent_containers/food/snacks/donut/blue/jelly + name = "blue frosted jelly donut" + icon_state = "jelly_blue" + desc = "This one has blue frosting and a jelly filling!" +/obj/item/weapon/reagent_containers/food/snacks/donut/blue/jelly/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + reagents.add_reagent("berryjuice", 5) + +/obj/item/weapon/reagent_containers/food/snacks/donut/yellow + name = "yellow frosted donut" + icon_state = "donut_yellow" + desc = "This one has yellow frosting!" + overlay_state = "donut_yellow_inbox" +/obj/item/weapon/reagent_containers/food/snacks/donut/yellow/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + +/obj/item/weapon/reagent_containers/food/snacks/donut/yellow/jelly + name = "yellow frosted jelly donut" + icon_state = "jelly_yellow" + desc = "This one has yellow frosting and a jelly filling!" +/obj/item/weapon/reagent_containers/food/snacks/donut/yellow/jelly/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + reagents.add_reagent("berryjuice", 5) + +/obj/item/weapon/reagent_containers/food/snacks/donut/olive + name = "olive frosted donut" + icon_state = "donut_olive" + desc = "This one has olive frosting!" + overlay_state = "donut_olive_inbox" +/obj/item/weapon/reagent_containers/food/snacks/donut/olive/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + +/obj/item/weapon/reagent_containers/food/snacks/donut/olive/jelly + name = "olive frosted jelly donut" + icon_state = "jelly_olive" + desc = "This one has olive frosting and a jelly filling!" +/obj/item/weapon/reagent_containers/food/snacks/donut/olive/jelly/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + reagents.add_reagent("berryjuice", 5) + +/obj/item/weapon/reagent_containers/food/snacks/donut/homer + name = "frosted donut with sprinkles" + icon_state = "donut_homer" + desc = "It's a d'ohnut!" + overlay_state = "donut_homer_inbox" +/obj/item/weapon/reagent_containers/food/snacks/donut/homer/Initialize() . = ..() reagents.add_reagent("nutriment", 3, nutriment_desc) reagents.add_reagent("sprinkles", 1) - if(prob(30)) - src.icon_state = "donut2" - src.overlay_state = "box-donut2" - src.name = "frosted donut" - reagents.add_reagent("sprinkles", 2) - center_of_mass = list("x"=19, "y"=16) + +/obj/item/weapon/reagent_containers/food/snacks/donut/homer/jelly + name = "frosted jelly donut with sprinkles" + icon_state = "jelly_homer" + desc = "It's a d'ohnut with jelly filling!" +/obj/item/weapon/reagent_containers/food/snacks/donut/homer/jelly/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + reagents.add_reagent("sprinkles", 1) + reagents.add_reagent("berryjuice", 5) + +/obj/item/weapon/reagent_containers/food/snacks/donut/choc_sprinkles + name = "chocolate sprinkles donut" + icon_state = "donut_choc_sprinkles" + desc = "Mmm, chocolate with sprinkles... approaching maximum donut." + overlay_state = "donut_choc_sprinkles_inbox" +/obj/item/weapon/reagent_containers/food/snacks/donut/choc_sprinkles/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + reagents.add_reagent("sprinkles", 1) + +/obj/item/weapon/reagent_containers/food/snacks/donut/choc_sprinkles/jelly + name = "chocolate sprinkles jelly donut" + icon_state = "jelly_choc_sprinkles" + desc = "Pretty sure this is the most sugar you can pack into a donut." +/obj/item/weapon/reagent_containers/food/snacks/donut/choc_sprinkles/jelly/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + reagents.add_reagent("sprinkles", 1) + reagents.add_reagent("berryjuice", 5) + +/obj/item/weapon/reagent_containers/food/snacks/donut/meat + name = "meat donut" + icon_state = "donut_meat" + desc = "This donut has ... meat? Is it made of meat?!" + overlay_state = "donut_meat_inbox" +/obj/item/weapon/reagent_containers/food/snacks/donut/meat/Initialize() + . = ..() + reagents.add_reagent("protein", 3, nutriment_desc) + +/obj/item/weapon/reagent_containers/food/snacks/donut/laugh + name = "laugh donut" + icon_state = "donut_laugh" + desc = "Try not to laugh." + overlay_state = "donut_laugh_inbox" +/obj/item/weapon/reagent_containers/food/snacks/donut/laugh/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + +/obj/item/weapon/reagent_containers/food/snacks/donut/laugh/jelly + name = "laugh jelly donut" + icon_state = "jelly_laugh" + desc = "Try not to be jelly." +/obj/item/weapon/reagent_containers/food/snacks/donut/laugh/jelly/Initialize() + . = ..() + reagents.add_reagent("nutriment", 3, nutriment_desc) + reagents.add_reagent("berryjuice", 5) + /obj/item/weapon/reagent_containers/food/snacks/donut/chaos name = "Chaos Donut" desc = "Like life, it never quite tastes the same." - icon_state = "donut1" + icon_state = "donut_chaos" filling_color = "#ED11E6" nutriment_amt = 2 bitesize = 10 + overlay_state = "donut_chaos_inbox" /obj/item/weapon/reagent_containers/food/snacks/donut/chaos/Initialize() . = ..() reagents.add_reagent("sprinkles", 1) - var/chaosselect = pick(1,2,3,4,5,6,7,8,9,10) - switch(chaosselect) + switch(rand(1,10)) if(1) reagents.add_reagent("nutriment", 3, nutriment_desc) if(2) @@ -441,87 +681,28 @@ reagents.add_reagent("berryjuice", 3) if(10) reagents.add_reagent("tricordrazine", 3) - if(prob(30)) - src.icon_state = "donut2" - src.overlay_state = "box-donut2" - src.name = "Frosted Chaos Donut" - reagents.add_reagent("sprinkles", 2) -/obj/item/weapon/reagent_containers/food/snacks/donut/jelly - name = "Jelly Donut" - desc = "You jelly?" - icon_state = "jdonut1" +/obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly/poisonberry filling_color = "#ED1169" - center_of_mass = list("x"=16, "y"=11) - nutriment_amt = 3 - bitesize = 5 -/obj/item/weapon/reagent_containers/food/snacks/donut/jelly/Initialize() +/obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly/poisonberry/Initialize() . = ..() - reagents.add_reagent("sprinkles", 1) - reagents.add_reagent("berryjuice", 5) - if(prob(30)) - src.icon_state = "jdonut2" - src.overlay_state = "box-donut2" - src.name = "Frosted Jelly Donut" - reagents.add_reagent("sprinkles", 2) - -/obj/item/weapon/reagent_containers/food/snacks/donut/poisonberry - name = "Jelly Donut" - desc = "You jelly?" - icon_state = "jdonut1" - filling_color = "#ED1169" - center_of_mass = list("x"=16, "y"=11) - nutriment_amt = 3 - bitesize = 5 - -/obj/item/weapon/reagent_containers/food/snacks/donut/poisonberry/Initialize() - . = ..() - reagents.add_reagent("sprinkles", 1) reagents.add_reagent("poisonberryjuice", 5) - if(prob(30)) - src.icon_state = "jdonut2" - src.overlay_state = "box-donut2" - src.name = "Frosted Jelly Donut" - reagents.add_reagent("sprinkles", 2) -/obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly - name = "Jelly Donut" - desc = "You jelly?" - icon_state = "jdonut1" +/obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly/slimejelly filling_color = "#ED1169" - center_of_mass = list("x"=16, "y"=11) - nutriment_amt = 3 - bitesize = 5 -/obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly/Initialize() +/obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly/slimejelly/Initialize() . = ..() - reagents.add_reagent("sprinkles", 1) reagents.add_reagent("slimejelly", 5) - if(prob(30)) - src.icon_state = "jdonut2" - src.overlay_state = "box-donut2" - src.name = "Frosted Jelly Donut" - reagents.add_reagent("sprinkles", 2) -/obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly - name = "Jelly Donut" - desc = "You jelly?" - icon_state = "jdonut1" +/obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly/cherryjelly filling_color = "#ED1169" - center_of_mass = list("x"=16, "y"=11) - nutriment_amt = 3 - bitesize = 5 -/obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly/Initialize() +/obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly/cherryjelly/Initialize() . = ..() - reagents.add_reagent("sprinkles", 1) reagents.add_reagent("cherryjelly", 5) - if(prob(30)) - src.icon_state = "jdonut2" - src.overlay_state = "box-donut2" - src.name = "Frosted Jelly Donut" - reagents.add_reagent("sprinkles", 2) + /obj/item/weapon/reagent_containers/food/snacks/egg name = "egg" @@ -6920,3 +7101,36 @@ /obj/item/weapon/reagent_containers/food/snacks/packaged/sweetration/Initialize() . = ..() reagents.add_reagent("sugar", 6) + +/obj/item/weapon/reagent_containers/food/snacks/vendor_burger + name = "packaged burger" + icon_state = "packburger" + desc = "A burger stored in a plastic wrapping for vending machine distribution. Surely it tastes fine!" + package = TRUE + package_trash = /obj/item/trash/vendor_burger + package_open_state = "smolburger" + nutriment_amt = 3 + nutriment_desc = list("stale burger" = 3) + starts_with = list("sodiumchloride" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/vendor_hotdog + name = "packaged hotdog" + icon_state = "packhotdog" + desc = "A hotdog stored in a plastic wrapping for vending machine distribution. Surely it tastes fine!" + package = TRUE + package_trash = /obj/item/trash/vendor_hotdog + package_open_state = "smolhotdog" + nutriment_amt = 3 + nutriment_desc = list("stale hotdog" = 3) + starts_with = list("sodiumchloride" = 1) + +/obj/item/weapon/reagent_containers/food/snacks/vendor_burrito + name = "packaged burrito" + icon_state = "packburrito" + desc = "A burrito stored in a plastic wrapping for vending machine distribution. Surely it tastes fine!" + package = TRUE + package_trash = /obj/item/trash/vendor_burrito + package_open_state = "smolburrito" + nutriment_amt = 3 + nutriment_desc = list("stale burrito" = 3) + starts_with = list("sodiumchloride" = 1) diff --git a/code/modules/food/recipes_fryer.dm b/code/modules/food/recipes_fryer.dm index ba6884b10b3..bc977d8afb8 100644 --- a/code/modules/food/recipes_fryer.dm +++ b/code/modules/food/recipes_fryer.dm @@ -128,7 +128,7 @@ items = list( /obj/item/weapon/reagent_containers/food/snacks/doughslice ) - result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly + result = /obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly result_quantity = 2 /datum/recipe/jellydonut/poisonberry @@ -136,15 +136,15 @@ items = list( /obj/item/weapon/reagent_containers/food/snacks/dough ) - result = /obj/item/weapon/reagent_containers/food/snacks/donut/poisonberry + result = /obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly/poisonberry /datum/recipe/jellydonut/slime // Subtypes of jellydonut, appliance inheritance applies. reagents = list("slimejelly" = 5, "sugar" = 5) - result = /obj/item/weapon/reagent_containers/food/snacks/donut/slimejelly + result = /obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly/slimejelly /datum/recipe/jellydonut/cherry // Subtypes of jellydonut, appliance inheritance applies. reagents = list("cherryjelly" = 5, "sugar" = 5) - result = /obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly + result = /obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly/cherryjelly /datum/recipe/donut appliance = FRYER @@ -152,7 +152,7 @@ items = list( /obj/item/weapon/reagent_containers/food/snacks/doughslice ) - result = /obj/item/weapon/reagent_containers/food/snacks/donut/normal + result = /obj/item/weapon/reagent_containers/food/snacks/donut/plain result_quantity = 2 /datum/recipe/chaosdonut diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 13bc02dda48..c26629a8bb6 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -138,7 +138,7 @@ var/list/slot_equipment_priority = list( \ /mob/proc/put_in_hands(var/obj/item/W) if(!W) return 0 - W.forceMove(get_turf(src)) + W.forceMove(drop_location()) W.reset_plane_and_layer() W.dropped() return 0 diff --git a/code/modules/reagents/reagent_containers/_reagent_containers.dm b/code/modules/reagents/reagent_containers/_reagent_containers.dm index 5c61d6a5ad4..10196da040d 100644 --- a/code/modules/reagents/reagent_containers/_reagent_containers.dm +++ b/code/modules/reagents/reagent_containers/_reagent_containers.dm @@ -7,6 +7,7 @@ var/amount_per_transfer_from_this = 5 var/possible_transfer_amounts = list(5,10,15,25,30) var/volume = 30 + var/list/starts_with /obj/item/weapon/reagent_containers/verb/set_APTFT() //set amount_per_transfer_from_this set name = "Set transfer amount" @@ -21,6 +22,16 @@ if(!possible_transfer_amounts) src.verbs -= /obj/item/weapon/reagent_containers/verb/set_APTFT create_reagents(volume) + + if(starts_with) + var/total_so_far = 0 + for(var/string in starts_with) + var/amt = starts_with[string] || 1 + total_so_far += amt + reagents.add_reagent(string, amt) + if(total_so_far > volume) + warning("[src]([src.type]) starts with more reagents than it has total volume") + starts_with = null // it should gc, since it's just strings and numbers /obj/item/weapon/reagent_containers/attack_self(mob/user as mob) return diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index 618566f6e22..aac77fedc84 100644 Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ diff --git a/icons/obj/food_donuts.dmi b/icons/obj/food_donuts.dmi new file mode 100644 index 00000000000..9dfb4efb21a Binary files /dev/null and b/icons/obj/food_donuts.dmi differ diff --git a/icons/obj/food_ingredients.dmi b/icons/obj/food_ingredients.dmi index 4795180c2f4..97f47f65dc5 100644 Binary files a/icons/obj/food_ingredients.dmi and b/icons/obj/food_ingredients.dmi differ diff --git a/icons/obj/trash.dmi b/icons/obj/trash.dmi index 76f60a84ced..186a7877340 100644 Binary files a/icons/obj/trash.dmi and b/icons/obj/trash.dmi differ