diff --git a/baystation12.dme b/baystation12.dme index ff4a65ab5c702..e1990fc8f6bc0 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -2947,7 +2947,6 @@ #include "code\modules\reagents\reagent_containers\food\snacks.dm" #include "code\modules\reagents\reagent_containers\food\sushi.dm" #include "code\modules\reagents\reagent_containers\food\drinks\bottle.dm" -#include "code\modules\reagents\reagent_containers\food\drinks\jar.dm" #include "code\modules\reagents\reagent_containers\food\snacks\bugmeat.dm" #include "code\modules\reagents\reagent_containers\food\snacks\cheese.dm" #include "code\modules\reagents\reagent_containers\food\snacks\donkpocket.dm" diff --git a/code/_global_vars/edible.dm b/code/_global_vars/edible.dm index 185ab9e0cd3ae..9129b082bdf6a 100644 --- a/code/_global_vars/edible.dm +++ b/code/_global_vars/edible.dm @@ -4,7 +4,10 @@ GLOBAL_LIST_INIT(proteinbar_flavors, list( /datum/reagent/drink/juice/apple, /datum/reagent/drink/juice/pear ), - "banana nut" = /datum/reagent/drink/juice/banana, + "banana nut" = list( + /datum/reagent/drink/juice/banana, + /datum/reagent/nutriment/almondmeal + ), "cappuccino" = list( /datum/reagent/nutriment/coffee, /datum/reagent/drink/milk @@ -34,5 +37,9 @@ GLOBAL_LIST_INIT(proteinbar_flavors, list( "magical melons" = list( /datum/reagent/drink/juice/melon ), - "mixed berry" = /datum/reagent/drink/juice/berry + "mixed berry" = /datum/reagent/drink/juice/berry, + "peanut crunch" = list( + /datum/reagent/nutriment/peanutbutter, + /datum/reagent/nutriment/groundpeanuts + ) )) diff --git a/code/game/machinery/vending/boda.dm b/code/game/machinery/vending/boda.dm index ab2a4749c3aeb..059063d750e1a 100644 --- a/code/game/machinery/vending/boda.dm +++ b/code/game/machinery/vending/boda.dm @@ -31,7 +31,7 @@ /obj/item/reagent_containers/food/drinks/cans/artbru = 0, /obj/item/reagent_containers/food/drinks/glass2/square/boda = 0, /obj/item/reagent_containers/food/drinks/glass2/square/bodaplus = 0, - /obj/item/reagent_containers/food/drinks/bottle/space_up = 0 + /obj/item/reagent_containers/food/drinks/bottle/small/space_up = 0 ) contraband = list( /obj/item/clothing/under/soviet = 1, @@ -39,7 +39,7 @@ ) rare_products = list( - /obj/item/reagent_containers/food/drinks/bottle/space_up = 50, + /obj/item/reagent_containers/food/drinks/bottle/small/space_up = 50, /obj/item/card/id/syndicate = 25, /obj/item/storage/box/syndie_kit/spy = 50 ) diff --git a/code/game/machinery/vending/boozeomat.dm b/code/game/machinery/vending/boozeomat.dm index 57b8fa6e67c11..64ba0ae3fc76e 100644 --- a/code/game/machinery/vending/boozeomat.dm +++ b/code/game/machinery/vending/boozeomat.dm @@ -77,11 +77,11 @@ /obj/item/reagent_containers/food/drinks/cans/rootbeer = 15, /obj/item/reagent_containers/food/drinks/cans/speer = 10, /obj/item/reagent_containers/food/drinks/cans/ale = 10, - /obj/item/reagent_containers/food/drinks/bottle/cola = 5, + /obj/item/reagent_containers/food/drinks/bottle/small/cola = 10, + /obj/item/reagent_containers/food/drinks/bottle/small/space_up = 10, + /obj/item/reagent_containers/food/drinks/bottle/small/space_mountain_wind = 10, /obj/item/reagent_containers/food/drinks/cans/cola_diet = 5, /obj/item/reagent_containers/food/drinks/cans/ionbru = 5, - /obj/item/reagent_containers/food/drinks/bottle/space_up = 5, - /obj/item/reagent_containers/food/drinks/bottle/space_mountain_wind = 5, /obj/item/reagent_containers/food/drinks/cans/beastenergy = 5, /obj/item/reagent_containers/food/drinks/tea/black = 15, /obj/item/reagent_containers/food/drinks/bottle/orangejuice = 2, diff --git a/code/game/machinery/vending/props.dm b/code/game/machinery/vending/props.dm index 7e55aff9f3189..9df10aa019c6c 100644 --- a/code/game/machinery/vending/props.dm +++ b/code/game/machinery/vending/props.dm @@ -8,7 +8,7 @@ /obj/structure/flora/pottedplant = 2, /obj/item/device/flashlight/lamp = 2, /obj/item/device/flashlight/lamp/green = 2, - /obj/item/reagent_containers/food/drinks/jar = 1, + /obj/item/glass_jar = 1, /obj/item/nullrod = 1, /obj/item/toy/cultsword = 4, /obj/item/toy/katana = 2 diff --git a/code/game/objects/items/weapons/storage/fancy/crackers.dm b/code/game/objects/items/weapons/storage/fancy/crackers.dm index f74a1227cda89..a14136f8beb14 100644 --- a/code/game/objects/items/weapons/storage/fancy/crackers.dm +++ b/code/game/objects/items/weapons/storage/fancy/crackers.dm @@ -1,6 +1,6 @@ /obj/item/storage/fancy/crackers name = "\improper Getmore Crackers" - icon = 'icons/obj/food/food.dmi' + icon = 'icons/obj/food/food_storage.dmi' icon_state = "crackerbag" open_sound = 'sound/effects/crinkle.ogg' storage_slots = 6 diff --git a/code/game/objects/items/weapons/storage/fancy/egg_box.dm b/code/game/objects/items/weapons/storage/fancy/egg_box.dm index 98bba63e50cea..9310fba7c5426 100644 --- a/code/game/objects/items/weapons/storage/fancy/egg_box.dm +++ b/code/game/objects/items/weapons/storage/fancy/egg_box.dm @@ -1,6 +1,6 @@ /obj/item/storage/fancy/egg_box name = "egg box" - icon = 'icons/obj/food/food.dmi' + icon = 'icons/obj/food/food_storage.dmi' icon_state = "eggbox" open_sound = 'sound/effects/storage/smallbox.ogg' storage_slots = 12 diff --git a/code/game/objects/items/weapons/storage/misc.dm b/code/game/objects/items/weapons/storage/misc.dm index dd2e85f5be7c7..7b737df38b217 100644 --- a/code/game/objects/items/weapons/storage/misc.dm +++ b/code/game/objects/items/weapons/storage/misc.dm @@ -34,7 +34,7 @@ /obj/item/storage/box/donut - icon = 'icons/obj/food/food.dmi' + icon = 'icons/obj/food/food_storage.dmi' icon_state = "donutbox" name = "donut box" contents_allowed = list(/obj/item/reagent_containers/food/snacks/donut) diff --git a/code/game/objects/items/weapons/storage/mre.dm b/code/game/objects/items/weapons/storage/mre.dm index 3f5f56c13baeb..01e20cf49666e 100644 --- a/code/game/objects/items/weapons/storage/mre.dm +++ b/code/game/objects/items/weapons/storage/mre.dm @@ -5,7 +5,7 @@ MRE Stuff /obj/item/storage/mre name = "MRE, Menu 1" desc = "A vacuum-sealed bag containing a day's worth of nutrients for an adult in strenuous situations. There is no visible expiration date on the package." - icon = 'icons/obj/food/food.dmi' + icon = 'icons/obj/food/mre.dmi' icon_state = "mre" storage_slots = 7 max_w_class = ITEM_SIZE_SMALL diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm index bc973d916c870..bf375df98f85e 100644 --- a/code/game/objects/random/random.dm +++ b/code/game/objects/random/random.dm @@ -264,7 +264,7 @@ /obj/random/drinkbottle name = "random drink" desc = "This is a random drink." - icon = 'icons/obj/food/drinks.dmi' + icon = 'icons/obj/food/drinks/bottles.dmi' icon_state = "whiskeybottle" /obj/random/drinkbottle/spawn_choices() @@ -1285,7 +1285,7 @@ var/global/list/multi_point_spawns /obj/random/mre name = "random MRE" desc = "This is a random single MRE." - icon = 'icons/obj/food/food.dmi' + icon = 'icons/obj/food/mre.dmi' icon_state = "mre" /obj/random/mre/spawn_choices() @@ -1344,6 +1344,7 @@ var/global/list/multi_point_spawns /obj/random/mre/drink name = "random MRE drink" desc = "This is a random drink for MREs." + icon = 'icons/obj/food/condiment.dmi' icon_state = "packet_small" /obj/random/mre/drink/spawn_choices() @@ -1358,22 +1359,28 @@ var/global/list/multi_point_spawns /obj/random/mre/spread name = "random MRE spread" desc = "This is a random spread packet for MREs." + icon = 'icons/obj/food/condiment.dmi' icon_state = "packet_small" /obj/random/mre/spread/spawn_choices() return list(/obj/item/reagent_containers/food/condiment/small/packet/jelly, - /obj/item/reagent_containers/food/condiment/small/packet/honey) + /obj/item/reagent_containers/food/condiment/small/packet/honey, + /obj/item/reagent_containers/food/condiment/small/packet/peanutbutter, + /obj/item/reagent_containers/food/condiment/small/packet/choconutspread) /obj/random/mre/spread/vegan name = "random vegan MRE spread" desc = "This is a random vegan spread packet for MREs." /obj/random/mre/spread/vegan/spawn_choices() - return list(/obj/item/reagent_containers/food/condiment/small/packet/jelly) + return list(/obj/item/reagent_containers/food/condiment/small/packet/jelly, + /obj/item/reagent_containers/food/condiment/small/packet/peanutbutter, + /obj/item/reagent_containers/food/condiment/small/packet/choconutspread) /obj/random/mre/sauce name = "random MRE sauce" desc = "This is a random sauce packet for MREs." + icon = 'icons/obj/food/condiment.dmi' icon_state = "packet_small" /obj/random/mre/sauce/spawn_choices() @@ -1437,7 +1444,7 @@ var/global/list/multi_point_spawns /obj/random/single/cola name = "randomly spawned cola" - icon = 'icons/obj/food/drinks.dmi' + icon = 'icons/obj/food/drinks/cans.dmi' icon_state = "cola" spawn_object = /obj/item/reagent_containers/food/drinks/cans/cola diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm index cb097d1c72a3b..367f6119e0cbc 100644 --- a/code/modules/food/recipes_microwave.dm +++ b/code/modules/food/recipes_microwave.dm @@ -885,6 +885,26 @@ result_path = /obj/item/reagent_containers/food/snacks/jelliedtoast/cherry +/datum/microwave_recipe/pbtoast + required_reagents = list( + /datum/reagent/nutriment/peanutbutter = 5 + ) + required_items = list( + /obj/item/reagent_containers/food/snacks/slice/bread + ) + result_path = /obj/item/reagent_containers/food/snacks/pbtoast + + +/datum/microwave_recipe/ntella_bread + required_reagents = list( + /datum/reagent/nutriment/choconutspread = 5 + ) + required_items = list( + /obj/item/reagent_containers/food/snacks/slice/bread + ) + result_path = /obj/item/reagent_containers/food/snacks/ntella_bread + + /datum/microwave_recipe/milosoup required_reagents = list( /datum/reagent/water = 10 @@ -1120,6 +1140,30 @@ result_path = /obj/item/reagent_containers/food/snacks/jellysandwich/cherry +/datum/microwave_recipe/pbjsandwich_cherry + required_reagents = list( + /datum/reagent/nutriment/cherryjelly = 5, + /datum/reagent/nutriment/peanutbutter = 5 + ) + required_items = list( + /obj/item/reagent_containers/food/snacks/slice/bread, + /obj/item/reagent_containers/food/snacks/slice/bread + ) + result_path = /obj/item/reagent_containers/food/snacks/pbjsandwich/cherry + + +/datum/microwave_recipe/pbjsandwich_slime + required_reagents = list( + /datum/reagent/slimejelly = 5, + /datum/reagent/nutriment/peanutbutter = 5 + ) + required_items = list( + /obj/item/reagent_containers/food/snacks/slice/bread, + /obj/item/reagent_containers/food/snacks/slice/bread + ) + result_path = /obj/item/reagent_containers/food/snacks/pbjsandwich/slime + + /datum/microwave_recipe/bloodsoup required_reagents = list( /datum/reagent/blood = 30 @@ -1431,6 +1475,17 @@ result_path = /obj/item/reagent_containers/food/snacks/sliceable/cheesecake +/datum/microwave_recipe/cake/ntella_cheesecake + required_reagents = list(/datum/reagent/drink/milk = 5, /datum/reagent/nutriment/choconutspread = 15, /datum/reagent/sugar = 10) + required_items = list( + /obj/item/reagent_containers/food/snacks/cheesewedge, + /obj/item/reagent_containers/food/snacks/cookie, + /obj/item/reagent_containers/food/snacks/cookie, + /obj/item/reagent_containers/food/snacks/cookie + ) + result_path = /obj/item/reagent_containers/food/snacks/sliceable/ntella_cheesecake + + /datum/microwave_recipe/cake/orange required_produce = list( "orange" = 1 diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm index 7f901689c8ea8..8f35782ba3522 100644 --- a/code/modules/hydroponics/seed_datums.dm +++ b/code/modules/hydroponics/seed_datums.dm @@ -648,7 +648,7 @@ name = "peanut" seed_name = "peanut" display_name = "peanut plant" - chems = list(/datum/reagent/nutriment = list(1,10)) + chems = list(/datum/reagent/nutriment/groundpeanuts = list(3,5)) kitchen_tag = "peanut" /datum/seed/peanuts/New() @@ -1823,7 +1823,7 @@ name = "almond" seed_name = "almond" display_name = "almond plant" - chems = list(/datum/reagent/nutriment = list(1,10)) + chems = list(/datum/reagent/nutriment/almondmeal = list(4,7)) kitchen_tag = "almond" /datum/seed/almond/New() diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 28dfbd72aae46..503650efed85d 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -38,6 +38,10 @@ var/glass_desc = "It's a glass of... what, exactly?" var/list/glass_special = null // null equivalent to list() + var/condiment_icon_state + var/condiment_name + var/condiment_desc + // GAS DATA, generic values copied from base XGM datum type. var/gas_specific_heat = 20 var/gas_molar_mass = 0.032 diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm index 3762a30055edf..d499c5eefd7d2 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm @@ -431,6 +431,10 @@ glass_icon = DRINK_ICON_NOISY value = DISPENSER_REAGENT_VALUE + condiment_name = "sugar sack" + condiment_desc = "Cavities in a bag." + condiment_icon_state = "sugar" + /datum/reagent/sugar/affect_blood(mob/living/carbon/human/M, removed) handle_sugar(M, src) M.adjust_nutrition(removed * 3) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drinks.dm index d3db451086ccd..7c8127b935b79 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drinks.dm @@ -497,6 +497,15 @@ glass_name = "hot chocolate" glass_desc = "Made with love! And cocoa beans." +/datum/reagent/drink/hot_coco/ntella + name = "NTella Hot Chocolate" + description = "It's like a cup of hot chocolate except... More everything." + color = "#63432e" + taste_description = "hazelnutty, creamy chocolate" + + glass_name = "NTella hot chocolate" + glass_desc = "A very chocolatey drink for the days so rough, so cold, or so celebratory that a regular hot chocolate just won't cut it. It has marshmallows!" + /datum/reagent/drink/sodawater name = "Soda Water" description = "A can of club soda. Why not make a scotch and soda?" @@ -533,6 +542,7 @@ glass_name = "tonic water" glass_desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away." + glass_special = list(DRINK_FIZZ) /datum/reagent/drink/lemonade name = "Lemonade" @@ -634,6 +644,15 @@ glass_name = "milkshake" glass_desc = "Glorious brainfreezing mixture." +/datum/reagent/drink/milkshake/ntella + name = "NTella Milkshake" + description = "An intensely sweet chocolatey concoction with whipped cream on top." + color = "#6d4124" + taste_description = "overwhelmingly sweet chocolate" + + glass_name = "NTella milkshake" + glass_desc = "Oh look, it's that thing you actually want to get but probably shouldn't." + /datum/reagent/drink/rewriter name = "Rewriter" description = "The secret of the sanctuary of the Libarian..." @@ -723,6 +742,7 @@ glass_name = "Dr. Gibb" glass_desc = "Dr. Gibb. Not as dangerous as the name might imply." + glass_special = list(DRINK_FIZZ) /datum/reagent/drink/space_up name = "Space-Up" @@ -774,14 +794,14 @@ taste_description = "dry and cheap noodles" reagent_state = SOLID nutrition = 1 - color = "#302000" + color = "#dec85d" /datum/reagent/drink/hot_ramen name = "Hot Ramen" description = "The noodles are boiled, the flavors are artificial, just like being back in school." taste_description = "wet and cheap noodles" reagent_state = LIQUID - color = "#302000" + color = "#c28f19" nutrition = 5 adj_temp = 5 @@ -790,7 +810,7 @@ description = "The noodles are boiled, the flavors are artificial, just like being back in school." taste_description = "wet and cheap noodles on fire" reagent_state = LIQUID - color = "#302000" + color = "#c93f04" nutrition = 5 /datum/reagent/drink/hell_ramen/affect_ingest(mob/living/carbon/M, removed) @@ -836,9 +856,11 @@ name = "Ginger Beer" description = "A hearty, non-alcoholic beverage extremely popular around the SCG." taste_description = "carbonated ginger" - color = "#44371f" + color = "#f5f3c6" + glass_name = "ginger beer" glass_desc = "A hearty, non-alcoholic beverage extremely popular around the SCG." + glass_special = list(DRINK_FIZZ) /datum/reagent/drink/beastenergy name = "Beast Energy" @@ -919,7 +941,7 @@ /datum/reagent/cinnamon name = "Cinnamon" - description = "Delicious ground cinnamon spice. " + description = "Delicious ground cinnamon spice." taste_description = "cinnamon" reagent_state = SOLID color = "#cd6139" @@ -928,6 +950,9 @@ glass_name = "cinnamon" glass_desc = "Delicious ground cinnamon spice, why would you drink this?" + condiment_icon_state = "cinnamonbottle" + condiment_name = "bottle of cinnamon" + /datum/reagent/oliveoil name = "Olive Oil" description = "Olive oil, an essential part of cooking." @@ -937,6 +962,10 @@ glass_name = "olive oil" glass_desc = "Oily." + condiment_icon_state = "oliveoil" + condiment_name = "olive oil" + condiment_desc = "Used in food preparation and flavoring." + /datum/reagent/drink/affelerin name = "Affelerin Nectar" description = "A thick syrup-like nectar from the Affelerin, common across many desert worlds." @@ -1060,6 +1089,7 @@ glass_name = "Dandelion and Burdock" glass_desc = "A tall glass of DnB" + glass_special = list(DRINK_FIZZ) /datum/reagent/drink/doogh name = "Doogh" @@ -1184,7 +1214,7 @@ name = "Green Tea" description = "Subtle green tea, it has antioxidants, it's good for you!" taste_description = "subtle green tea" - color = "#b4cd94" + color = "#8bbf49" glass_name = "green tea" glass_desc = "Subtle green tea, it has antioxidants, it's good for you!" @@ -1193,7 +1223,7 @@ name = "Iced Green Tea" description = "It's the green tea you know and love, but now it's cold." taste_description = "cold green tea" - color = "#b4cd94" + color = "#8bbf49" glass_name = "iced green tea" glass_desc = "It's the green tea you know and love, but now it's cold." @@ -1202,7 +1232,7 @@ name = "Sweet Green Tea" description = "It's the green tea you know and love, but now it's cold. And sweet." taste_description = "sweet green tea" - color = "#b4cd94" + color = "#8bbf49" glass_name = "sweet green tea" glass_desc = "It's the green tea you know and love, but now it's cold. And sweet." diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food.dm index 7201714303c4e..2e3c3654f12be 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food.dm @@ -85,6 +85,10 @@ taste_description = "egg" color = "#ffffaa" + condiment_icon_state = "eggyolk" + condiment_name = "egg yolk carton" + condiment_desc = "A carton full of egg yolk." + //vegetamarian alternative that is safe for skrell to ingest//rewired it from its intended nutriment/protein/egg/softtofu because it would not actually work, going with plan B, more recipes. /datum/reagent/nutriment/softtofu @@ -101,6 +105,10 @@ color = "#ffff00" sugar_amount = 1 + condiment_icon_state = "honey" + condiment_name = "honey" + condiment_desc = "A jar of sweet and viscous honey." + /datum/reagent/nutriment/flour name = "flour" description = "This is what you rub all over yourself to pretend to be a ghost." @@ -109,6 +117,10 @@ nutriment_factor = 1 color = "#ffffff" + condiment_icon_state = "flour" + condiment_name = "flour sack" + condiment_desc = "A big bag of flour. Good for baking!" + /datum/reagent/nutriment/flour/touch_turf(turf/simulated/T) if(istype(T)) new /obj/decal/cleanable/flour(T) @@ -126,6 +138,10 @@ color = "#ffd592" protein_amount = 0.4 + condiment_icon_state = "batter" + condiment_name = "batter mix" + condiment_desc = "A gooey mixture of eggs and flour in a vat. Delicious!" + /datum/reagent/nutriment/batter/touch_turf(turf/simulated/T) if(!istype(T, /turf/space)) new /obj/decal/cleanable/pie_smudge(T) @@ -136,11 +152,13 @@ /datum/reagent/nutriment/batter/cakebatter name = "Cake Batter" - description = "A gooey mixture of eggs, flour and sugar, a important precursor to cake!" + description = "A gooey mixture of eggs, flour and sugar, an important precursor to cake!" taste_description = "sweetness" color = "#ffe992" protein_amount = 0.3 + condiment_name = "cake batter mix" + /datum/reagent/nutriment/coffee name = "Coffee Powder" description = "A bitter powder made by grinding coffee beans." @@ -149,10 +167,16 @@ nutriment_factor = 1 color = "#482000" + condiment_icon_state = "coffee" + condiment_name = "coffee powder" + /datum/reagent/nutriment/coffee/instant name = "Instant Coffee Powder" description = "A bitter powder made by processing coffee beans." + condiment_name = "instant coffee powder" + condiment_desc = "A sack of instant coffee powder, now 50% more caffeinated!" + /datum/reagent/nutriment/tea name = "Tea Powder" description = "A dark, tart powder made from black tea leaves." @@ -161,18 +185,28 @@ nutriment_factor = 1 color = "#101000" + condiment_icon_state = "tea" + condiment_name = "tea powder" + /datum/reagent/nutriment/tea/instant name = "Instant Tea Powder" + condiment_name = "instant tea powder" + condiment_desc = "A sack of instant tea powder, now 50% less caffeinated!" + /datum/reagent/nutriment/coco - name = "Coco Powder" - description = "A fatty, bitter paste made from coco beans." + name = "Cocoa Powder" + description = "A fatty, bitter paste made from cocoa beans." taste_description = "bitterness" taste_mult = 1.3 reagent_state = SOLID nutriment_factor = 5 color = "#302000" + condiment_icon_state = "cocoapowder" + condiment_name = "cocoa powder" + condiment_desc = "A can full of chocolately powder. Not very tasty by itself." + /datum/reagent/nutriment/instantjuice name = "Juice Powder" description = "Dehydrated, powdered juice of some kind." @@ -210,7 +244,11 @@ taste_mult = 1.1 reagent_state = LIQUID nutriment_factor = 2 + color = "#792300" + condiment_icon_state = "soysauce" + condiment_name = "soy sauce" + condiment_desc = "A dark, salty, savoury flavoring." /datum/reagent/nutriment/ketchup name = "Ketchup" @@ -220,6 +258,10 @@ nutriment_factor = 5 color = "#731008" + condiment_icon_state = "ketchup" + condiment_name = "ketchup" + condiment_desc = "Tomato, but more liquid, stronger, better." + /datum/reagent/nutriment/barbecue name = "Barbecue Sauce" description = "Barbecue sauce for barbecues and long shifts." @@ -228,6 +270,10 @@ nutriment_factor = 5 color = "#4f330f" + condiment_icon_state = "barbecue" + condiment_name = "barbecue sauce" + condiment_desc = "A bottle of barbecue sauce. It's labeled 'sweet and spicy'." + /datum/reagent/nutriment/garlicsauce name = "Garlic Sauce" description = "Garlic sauce, perfect for spicing up a plate of garlic." @@ -236,6 +282,10 @@ nutriment_factor = 4 color = "#d8c045" + condiment_icon_state = "garlic_sauce" + condiment_name = "garlic sauce" + condiment_desc = "Perfect for repelling vampires and/or potential dates." + /datum/reagent/nutriment/rice name = "Rice" description = "Enjoy the great taste of nothing." @@ -245,6 +295,10 @@ nutriment_factor = 1 color = "#ffffff" + condiment_icon_state = "rice" + condiment_name = "rice sack" + condiment_desc = "A big bag of rice for cooking." + /datum/reagent/nutriment/rice/chazuke name = "Chazuke" description = "Green tea over rice. How rustic!" @@ -263,6 +317,10 @@ nutriment_factor = 1 color = "#801e28" + condiment_icon_state = "jellyjar" + condiment_name = "cherry jelly jar" + condiment_desc = "Great with peanut butter!" + /datum/reagent/nutriment/cornoil name = "Corn Oil" description = "An oil derived from various types of corn." @@ -270,7 +328,11 @@ taste_mult = 0.1 reagent_state = LIQUID nutriment_factor = 20 - color = "#302000" + color = "#c9bb1e" + + condiment_icon_state = "cooking_oil" + condiment_name = "corn oil" + condiment_desc = "A delicious oil used in cooking. Made from corn." /datum/reagent/nutriment/cornoil/touch_turf(turf/simulated/T) if(!istype(T)) @@ -294,6 +356,9 @@ nutriment_factor = 1 color = "#ff00ff" + condiment_icon_state = "sprinklesbottle" + condiment_name = "bottle of sprinkles" + /datum/reagent/nutriment/mint name = "Mint" description = "Also known as Mentha." @@ -301,6 +366,10 @@ reagent_state = LIQUID color = "#07aab2" + condiment_icon_state = "mint_syrup" + condiment_name = "mint essential oil" + condiment_desc = "A small bottle of the essential oil of some kind of mint plant." + /datum/reagent/lipozine // The anti-nutriment. name = "Lipozine" description = "A chemical compound that causes a powerful fat-burning reaction." @@ -324,6 +393,10 @@ overdose = REAGENTS_OVERDOSE value = 0.11 + condiment_icon_state = "saltshaker" + condiment_name = "salt shaker" + condiment_desc = "Salt. From space oceans, presumably." + /datum/reagent/blackpepper name = "Black Pepper" description = "A powder ground from peppercorns. *AAAACHOOO*" @@ -332,6 +405,10 @@ color = "#000000" value = 0.1 + condiment_icon_state = "peppermill" + condiment_name = "pepper shaker" + condiment_desc = "Often used to flavor food or make people sneeze." + /datum/reagent/enzyme name = "Universal Enzyme" description = "A universal enzyme used in the preperation of certain chemicals and foods." @@ -342,6 +419,10 @@ overdose = REAGENTS_OVERDOSE value = 0.2 + condiment_icon_state = "enzyme" + condiment_name = "universal enzyme" + condiment_desc = "Used in cooking various dishes." + /datum/reagent/frostoil name = "Chilly Oil" description = "An oil harvested from a mutant form of chili peppers, it has a chilling effect on the body." @@ -351,6 +432,10 @@ color = "#07aab2" value = 0.2 + condiment_icon_state = "coldsauce" + condiment_name = "cold sauce" + condiment_desc = "Leaves the tongue numb in its passage." + /datum/reagent/frostoil/affect_blood(mob/living/carbon/M, removed) if (IS_METABOLICALLY_INERT(M)) return @@ -374,6 +459,10 @@ var/slime_temp_adj = 10 value = 0.2 + condiment_icon_state= "hotsauce" + condiment_name = "hot sauce" + condiment_desc = "You can almost TASTE the stomach ulcers now!" + /datum/reagent/capsaicin/affect_blood(mob/living/carbon/M, removed) if (IS_METABOLICALLY_INERT(M)) return @@ -504,3 +593,53 @@ color = "#efede8" taste_mult = 2 protein_amount = 0.7 + + condiment_icon_state = "mayonnaise" + condiment_name = "mayonnaise" + condiment_desc = "Mayonnaise, used for centuries to make things edible." + +/datum/reagent/nutriment/groundpeanuts + name = "Ground Peanuts" + description = "Roughly ground peanuts." + taste_description = "peanut" + reagent_state = SOLID + color = "#ad7937" + taste_mult = 2 + + condiment_icon_state = "peanut" + condiment_name = "sack of ground peanuts" + condiment_desc = "A sack full of crunchy ground peanuts." + +/datum/reagent/nutriment/peanutbutter + name = "Peanut Butter" + description = "Clearer the better spread, exception for those who are deathly allergic." + taste_description = "peanut butter" + reagent_state = LIQUID + color = "#ad7937" + taste_mult = 2 + sugar_amount = 0.1 + + condiment_icon_state = "pbjar" + condiment_name = "peanut butter jar" + condiment_desc = "Great with jelly!" + +/datum/reagent/nutriment/almondmeal + name = "Almond Meal" + description = "Finely ground almonds." + taste_description = "nuts" + reagent_state = SOLID + color = "#c9a275" + taste_mult = 2 + +/datum/reagent/nutriment/choconutspread + name = "Choco-Nut Spread" + description = "Creamy chocolate spread with a nutty undertone." + taste_description = "nutty chocolate" + reagent_state = LIQUID + color = "#2c1000" + taste_mult = 2 + sugar_amount = 0.5 + + condiment_name = "NTella jar" + condiment_desc = "Originally called 'Entella', it was rebranded after being bought by NanoTrasen. Some humans insist this nutty chocolate spread might be the best thing they've ever created." + condiment_icon_state = "NTellajar" \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index fcd2fe2d6323f..b2ad009a9b8d1 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -1473,6 +1473,12 @@ maximum_temperature = (70 CELSIUS) + 100 mix_message = "The solution thickens into a steaming brown beverage." +/datum/chemical_reaction/ntella_hot_chocolate + name = "NTella hot chocolate" + result = /datum/reagent/drink/hot_coco/ntella + required_reagents = list(/datum/reagent/drink/milk = 1, /datum/reagent/nutriment/choconutspread = 1, /datum/reagent/drink/milk/cream = 1) + result_amount = 3 + /datum/chemical_reaction/grapejuice name = "Grape Juice" result = /datum/reagent/drink/juice/grape @@ -1641,6 +1647,28 @@ result_amount = 6 mix_message = "The broth of the noodles takes on a hellish red gleam." +/datum/chemical_reaction/peanutbutter + name = "Peanut Butter" + result = /datum/reagent/nutriment/peanutbutter + required_reagents = list(/datum/reagent/nutriment/groundpeanuts = 5, /datum/reagent/sugar = 1, /datum/reagent/sodiumchloride = 1) + result_amount = 5 + mix_message = "The solution thickens into a creamy, nutty spread." + +/datum/chemical_reaction/choconutspread + name = "Choco-Nut Spread" + result = /datum/reagent/nutriment/choconutspread + required_reagents = list(/datum/reagent/nutriment/almondmeal = 1, /datum/reagent/sugar = 2, /datum/reagent/nutriment/coco = 1, /datum/reagent/drink/milk/soymilk = 1) + result_amount = 4 + mix_message = "The solution thickens into a creamy, chocolate-y spread." + +/datum/chemical_reaction/sprinkles + name = "Sprinkles" + result = /datum/reagent/nutriment/sprinkles + required_reagents = list(/datum/reagent/sugar = 3, /datum/reagent/drink/syrup_vanilla = 1, /datum/reagent/nutriment/cornoil = 1) + result_amount = 5 + mix_message = "The solution thickens and hardens into sugary sprinkles." + + /* Alcohol */ /datum/chemical_reaction/goldschlager @@ -1715,6 +1743,14 @@ result_amount = 10 mix_message = "The solution roils as it rapidly ferments into a rich red liquid." +/datum/chemical_reaction/whitewine + name = "White Wine" + result = /datum/reagent/ethanol/wine/premium + required_reagents = list(/datum/reagent/drink/juice/grape/white = 10) + catalysts = list(/datum/reagent/enzyme = 5) + result_amount = 10 + mix_message = "The solution roils as it rapidly ferments into a pale gold liquid." + /datum/chemical_reaction/pwine name = "Poison Wine" result = /datum/reagent/ethanol/pwine @@ -2258,6 +2294,12 @@ required_reagents = list(/datum/reagent/drink/milk/cream = 1, /datum/reagent/drink/ice = 2, /datum/reagent/drink/milk = 2) result_amount = 5 +/datum/chemical_reaction/ntella_shake + name = "NTella milkshake" + result = /datum/reagent/drink/milkshake/ntella + required_reagents = list(/datum/reagent/drink/milkshake = 5, /datum/reagent/nutriment/choconutspread = 1) + result_amount = 6 + /datum/chemical_reaction/rewriter name = "Rewriter" result = /datum/reagent/drink/rewriter diff --git a/code/modules/reagents/reagent_containers/borghypo.dm b/code/modules/reagents/reagent_containers/borghypo.dm index f2842eb5a3b58..70237cd96edc1 100644 --- a/code/modules/reagents/reagent_containers/borghypo.dm +++ b/code/modules/reagents/reagent_containers/borghypo.dm @@ -207,7 +207,7 @@ /obj/item/reagent_containers/borghypo/service name = "cyborg drink synthesizer" desc = "A portable drink dispencer." - icon = 'icons/obj/food/drinks.dmi' + icon = 'icons/obj/food/drinks/misc.dmi' icon_state = "shaker" charge_cost = 5 recharge_time = 3 diff --git a/code/modules/reagents/reagent_containers/food/cans.dm b/code/modules/reagents/reagent_containers/food/cans.dm index 44c27b60ef28e..eb6157f2c2e84 100644 --- a/code/modules/reagents/reagent_containers/food/cans.dm +++ b/code/modules/reagents/reagent_containers/food/cans.dm @@ -1,8 +1,10 @@ /obj/item/reagent_containers/food/drinks/cans + icon = 'icons/obj/food/drinks/cans.dmi' volume = 40 //just over one and a half cups amount_per_transfer_from_this = 5 atom_flags = 0 //starts closed matter = list(MATERIAL_ALUMINIUM = 30) + drink_offset_y = 10 //DRINKS @@ -22,6 +24,9 @@ icon_state = "waterbottle" center_of_mass = "x=15;y=8" matter = list(MATERIAL_PLASTIC = 40) + filling_states = "-10;10;25;50;75;80;90;100" + base_name = "bottle" + base_icon = "waterbottle" /obj/item/reagent_containers/food/drinks/cans/waterbottle/Initialize() . = ..() @@ -224,7 +229,7 @@ /obj/item/reagent_containers/food/drinks/cans/cola_diet name = "diet space cola" desc = "Cola... in space! Now with extra self-confidence." - icon_state = "cola-blue" + icon_state = "cola-diet" /obj/item/reagent_containers/food/drinks/cans/cola_diet/Initialize() . = ..() @@ -298,7 +303,7 @@ /obj/item/reagent_containers/food/drinks/cans/vanillacola name = "vanilla cola" desc = "Delicious vanilla cola in a can." - icon_state = "vcola" + icon_state = "v-cola" center_of_mass = "x=16;y=6" /obj/item/reagent_containers/food/drinks/cans/vanillacola/Initialize() @@ -308,7 +313,7 @@ /obj/item/reagent_containers/food/drinks/cans/cherrycola name = "cherry cola" desc = "Delicious cherry cola in a can." - icon_state = "ccola" + icon_state = "ch-cola" center_of_mass = "x=16;y=6" /obj/item/reagent_containers/food/drinks/cans/cherrycola/Initialize() @@ -318,7 +323,7 @@ /obj/item/reagent_containers/food/drinks/cans/orangecola name = "orange cola" desc = "Delicious orange cola in a can." - icon_state = "ocola" + icon_state = "o-cola" center_of_mass = "x=16;y=6" /obj/item/reagent_containers/food/drinks/cans/orangecola/Initialize() @@ -328,7 +333,7 @@ /obj/item/reagent_containers/food/drinks/cans/coffeecola name = "coffee cola" desc = "Delicious coffee cola in a can." - icon_state = "ccola" + icon_state = "c-cola" center_of_mass = "x=16;y=6" /obj/item/reagent_containers/food/drinks/cans/coffeecola/Initialize() diff --git a/code/modules/reagents/reagent_containers/food/condiment.dm b/code/modules/reagents/reagent_containers/food/condiment.dm index f2da546a5ccd5..fe2ca6b5b4fe5 100644 --- a/code/modules/reagents/reagent_containers/food/condiment.dm +++ b/code/modules/reagents/reagent_containers/food/condiment.dm @@ -6,34 +6,25 @@ //Food items that aren't eaten normally and leave an empty container behind. /obj/item/reagent_containers/food/condiment - name = "Condiment Container" + name = "condiment container" desc = "Just your average condiment container." - icon = 'icons/obj/food/food.dmi' - icon_state = "emptycondiment" + icon = 'icons/obj/food/condiment.dmi' + icon_state = "condiment" atom_flags = ATOM_FLAG_OPEN_CONTAINER possible_transfer_amounts = "1;5;10" center_of_mass = "x=16;y=6" volume = 50 var/list/starting_reagents - var/static/list/special_bottles = list( - /datum/reagent/nutriment/ketchup = /obj/item/reagent_containers/food/condiment/ketchup, - /datum/reagent/nutriment/barbecue = /obj/item/reagent_containers/food/condiment/barbecue, - /datum/reagent/capsaicin = /obj/item/reagent_containers/food/condiment/capsaicin, - /datum/reagent/enzyme = /obj/item/reagent_containers/food/condiment/enzyme, - /datum/reagent/nutriment/soysauce = /obj/item/reagent_containers/food/condiment/soysauce, - /datum/reagent/frostoil = /obj/item/reagent_containers/food/condiment/frostoil, - /datum/reagent/sodiumchloride = /obj/item/reagent_containers/food/condiment/small/saltshaker, - /datum/reagent/blackpepper = /obj/item/reagent_containers/food/condiment/small/peppermill, - /datum/reagent/nutriment/cornoil = /obj/item/reagent_containers/food/condiment/cornoil, - /datum/reagent/sugar = /obj/item/reagent_containers/food/condiment/sugar, - /datum/reagent/nutriment/mayo = /obj/item/reagent_containers/food/condiment/mayo, - /datum/reagent/nutriment/vinegar = /obj/item/reagent_containers/food/condiment/vinegar, - /datum/reagent/oliveoil = /obj/item/reagent_containers/food/condiment/small/oliveoil - ) + var/fixed_state = FALSE + +/obj/item/reagent_containers/food/condiment/Initialize() + . = ..() + for(var/R in starting_reagents) + reagents.add_reagent(R, starting_reagents[R]) /obj/item/reagent_containers/food/condiment/use_tool(obj/item/W, mob/living/user, list/click_params) if(istype(W, /obj/item/pen) || istype(W, /obj/item/device/flashlight/pen)) - var/label = sanitizeSafe(input(user, "Enter a label for [name]", "Label", label_text), MAX_NAME_LEN) + var/label = sanitizeSafe(input(user, "Enter a label for \the [name]", "Label", label_text), MAX_NAME_LEN) if (!label) return TRUE AddLabel(label, user) @@ -72,110 +63,129 @@ /obj/item/reagent_containers/food/condiment/self_feed_message(mob/user) to_chat(user, SPAN_NOTICE("You swallow some of contents of \the [src].")) -/obj/item/reagent_containers/food/condiment/Initialize() - . = ..() - for(var/R in starting_reagents) - reagents.add_reagent(R, starting_reagents[R]) /obj/item/reagent_containers/food/condiment/on_reagent_change() - var/reagent = reagents.get_master_reagent_type() - if(reagent in special_bottles) - var/obj/item/reagent_containers/food/condiment/special_bottle = special_bottles[reagent] - SetName(initial(special_bottle.name)) - desc = initial(special_bottle.desc) - icon_state = initial(special_bottle.icon_state) - center_of_mass = initial(special_bottle.center_of_mass) + if(fixed_state) + return + + ClearOverlays() + + if(!reagents.total_volume) + name = "condiment bottle" + desc = "An empty condiment bottle." + return + + var/datum/reagent/master = reagents.get_master_reagent() + icon_state = master.condiment_icon_state || initial(icon_state) + name = master.condiment_name || (length(reagents.reagent_list) == 1 ? "[lowertext(master.name)] bottle" : "condiment bottle") + desc = master.condiment_desc || (length(reagents.reagent_list) == 1 ? master.description : "A mixture of various condiments. [master.name] is one of them.") + if(icon_state == "condiment") + var/image/filling = image(icon, "condiment_overlay") + filling.color = reagents.get_color() + AddOverlays(filling) + +/obj/item/reagent_containers/food/condiment/examine(mob/user, distance) + . = ..() + if(distance > 1) + return + if(!reagents || reagents.total_volume == 0) + to_chat(user, SPAN_NOTICE("\The [src] is empty!")) + else if (reagents.total_volume <= volume * 0.25) + to_chat(user, SPAN_NOTICE("\The [src] is almost empty!")) + else if (reagents.total_volume <= volume * 0.66) + to_chat(user, SPAN_NOTICE("\The [src] is half full!")) + else if (reagents.total_volume <= volume * 0.90) + to_chat(user, SPAN_NOTICE("\The [src] is almost full!")) else - SetName(initial(name)) - desc = initial(desc) - center_of_mass = initial(center_of_mass) - if(length(reagents.reagent_list) > 0) - icon_state = "mixedcondiments" - else - icon_state = "emptycondiment" + to_chat(user, SPAN_NOTICE("\The [src] is full!")) + /obj/item/reagent_containers/food/condiment/enzyme - name = "universal enzyme" - desc = "Used in cooking various dishes." - icon_state = "enzyme" starting_reagents = list(/datum/reagent/enzyme = 50) /obj/item/reagent_containers/food/condiment/barbecue - name = "barbecue sauce" - desc = "Barbecue sauce, it's labeled 'sweet and spicy'" - icon_state = "barbecue" starting_reagents = list(/datum/reagent/nutriment/barbecue = 50) /obj/item/reagent_containers/food/condiment/sugar - name = "sugar" - desc = "Cavities in a bottle." starting_reagents = list(/datum/reagent/sugar = 50) /obj/item/reagent_containers/food/condiment/ketchup - name = "ketchup" - desc = "Tomato, but more liquid, stronger, better." - icon_state = "ketchup" starting_reagents = list(/datum/reagent/nutriment/ketchup = 50) /obj/item/reagent_containers/food/condiment/cornoil - name = "corn oil" - desc = "A delicious oil used in cooking. Made from corn." - icon_state = "oliveoil" starting_reagents = list(/datum/reagent/nutriment/cornoil = 50) /obj/item/reagent_containers/food/condiment/vinegar - name = "vinegar" - icon_state = "vinegar" - desc = "As acidic as it gets in the kitchen." starting_reagents = list(/datum/reagent/nutriment/vinegar = 50) /obj/item/reagent_containers/food/condiment/mayo - name = "mayonnaise" - icon_state = "mayo" - desc = "Mayonnaise, used for centuries to make things edible." starting_reagents = list(/datum/reagent/nutriment/mayo = 50) /obj/item/reagent_containers/food/condiment/frostoil - name = "coldsauce" - desc = "Leaves the tongue numb in its passage." - icon_state = "coldsauce" starting_reagents = list(/datum/reagent/frostoil = 50) /obj/item/reagent_containers/food/condiment/capsaicin - name = "hotsauce" - desc = "You can almost TASTE the stomach ulcers now!" - icon_state = "hotsauce" starting_reagents = list(/datum/reagent/capsaicin = 50) +/obj/item/reagent_containers/food/condiment/flour + randpixel = 10 + starting_reagents = list(/datum/reagent/nutriment/flour = 50) + +/obj/item/reagent_containers/food/condiment/mint + starting_reagents = list(/datum/reagent/nutriment/mint = 15) + +/obj/item/reagent_containers/food/condiment/soysauce + starting_reagents = list(/datum/reagent/nutriment/soysauce = 50) + +/obj/item/reagent_containers/food/condiment/oliveoil + starting_reagents = list(/datum/reagent/oliveoil = 50) + +/obj/item/reagent_containers/food/condiment/peanutbutter + starting_reagents = list(/datum/reagent/nutriment/peanutbutter = 50) + +/obj/item/reagent_containers/food/condiment/choconutspread + starting_reagents = list(/datum/reagent/nutriment/choconutspread = 50) + /obj/item/reagent_containers/food/condiment/small possible_transfer_amounts = "1;20" amount_per_transfer_from_this = 1 volume = 20 - -/obj/item/reagent_containers/food/condiment/small/on_reagent_change() - return + fixed_state = TRUE /obj/item/reagent_containers/food/condiment/small/saltshaker name = "salt shaker" desc = "Salt. From space oceans, presumably." - icon_state = "saltshakersmall" + icon_state = "saltshaker" center_of_mass = "x=16;y=9" starting_reagents = list(/datum/reagent/sodiumchloride = 20) /obj/item/reagent_containers/food/condiment/small/peppermill name = "pepper mill" desc = "Often used to flavor food or make people sneeze." - icon_state = "peppermillsmall" + icon_state = "peppermill" center_of_mass = "x=16;y=8" starting_reagents = list(/datum/reagent/blackpepper = 20) /obj/item/reagent_containers/food/condiment/small/sugar name = "sugar" desc = "Sweetness in a bottle." - icon_state = "sugarsmall" + icon_state = "sugarbottle" center_of_mass = "x=17;y=9" starting_reagents = list(/datum/reagent/sugar = 20) + +/obj/item/reagent_containers/food/condiment/salt + name = "big bag of salt" + desc = "A nonsensically large bag of salt. Carefully refined from countless shifts." + icon_state = "salt" + item_state = "flour" + randpixel = 10 + volume = 500 + w_class = ITEM_SIZE_LARGE + starting_reagents = list(/datum/reagent/sodiumchloride = 500) + fixed_state = TRUE + + //MRE condiments and drinks. /obj/item/reagent_containers/food/condiment/small/packet @@ -215,6 +225,18 @@ starting_reagents = list(/datum/reagent/sugar = 10) icon_state = "packet_medium" +/obj/item/reagent_containers/food/condiment/small/packet/peanutbutter + name = "peanut butter packet" + desc = "Contains 10u of peanut butter." + icon_state = "packet_medium" + starting_reagents = list(/datum/reagent/nutriment/peanutbutter = 10) + +/obj/item/reagent_containers/food/condiment/small/packet/choconutspread + name = "NTella packet" + desc = "Contains 10u of NTella." + icon_state = "packet_medium" + starting_reagents = list(/datum/reagent/nutriment/choconutspread = 10) + /obj/item/reagent_containers/food/condiment/small/packet/capsaicin name = "hot sauce packet" desc = "Contains 5u of hot sauce. Enjoy in moderation." @@ -301,55 +323,4 @@ /obj/item/reagent_containers/food/condiment/small/packet/crayon/brown starting_reagents = list(/datum/reagent/crayon_dust/brown = 10) -//End of MRE stuff. - -/obj/item/reagent_containers/food/condiment/flour - name = "flour sack" - desc = "A big bag of flour. Good for baking!" - icon = 'icons/obj/food/food.dmi' - icon_state = "flour" - item_state = "flour" - randpixel = 10 - starting_reagents = list(/datum/reagent/nutriment/flour = 50) - -/obj/item/reagent_containers/food/condiment/flour/on_reagent_change() - return - -/obj/item/reagent_containers/food/condiment/salt - name = "big bag of salt" - desc = "A nonsensically large bag of salt. Carefully refined from countless shifts." - icon = 'icons/obj/food/food.dmi' - icon_state = "salt" - item_state = "flour" - randpixel = 10 - volume = 500 - w_class = ITEM_SIZE_LARGE - starting_reagents = list(/datum/reagent/sodiumchloride = 500) - -/obj/item/reagent_containers/food/condiment/salt/on_reagent_change() - return - -/obj/item/reagent_containers/food/condiment/mint - name = "mint essential oil" - desc = "A small bottle of the essential oil of some kind of mint plant." - icon = 'icons/obj/food/food.dmi' - icon_state = "coldsauce" - starting_reagents = list(/datum/reagent/nutriment/mint = 15) - -/obj/item/reagent_containers/food/condiment/mint/on_reagent_change() - return - -/obj/item/reagent_containers/food/condiment/soysauce - name = "soy sauce" - desc = "A dark, salty, savoury flavoring." - icon_state = "soysauce" - amount_per_transfer_from_this = 1 - volume = 20 - starting_reagents = list(/datum/reagent/nutriment/soysauce = 20) - -/obj/item/reagent_containers/food/condiment/small/oliveoil - name = "olive oil" - desc = "Used in food preparation and flavoring." - icon_state = "oliveoilsmall" - center_of_mass = "x=16;y=8" - starting_reagents = list(/datum/reagent/oliveoil = 20) +//End of MRE stuff. \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index 3d820e911c689..d0ec6d3c13ed6 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -4,7 +4,7 @@ /obj/item/reagent_containers/food/drinks name = "drink" desc = "Yummy!" - icon = 'icons/obj/food/drinks.dmi' + icon = 'icons/obj/food/drinks/misc.dmi' icon_state = null atom_flags = ATOM_FLAG_OPEN_CONTAINER amount_per_transfer_from_this = 5 @@ -12,6 +12,9 @@ var/filling_states // List of percentages full that have icons var/base_name = null // Name to put in front of drinks, i.e. "[base_name] of [contents]" var/base_icon = null // Base icon name for fill states + var/drink_offset_x = 0 + var/drink_offset_y = 0 + var/shaken = FALSE /obj/item/reagent_containers/food/drinks/on_reagent_change() update_icon() @@ -20,14 +23,25 @@ /obj/item/reagent_containers/food/drinks/on_color_transfer_reagent_change() return + /obj/item/reagent_containers/food/drinks/attack_self(mob/user as mob) if(!is_open_container()) + if(user.a_intent == I_HURT) + shaken = TRUE + user.visible_message("\The [user] shakes \the [src]!", "You shake \the [src]!") + playsound(loc,'sound/items/soda_shaking.ogg', rand(10,50), 1) + shake_animation(20) + return + if(shaken) + for(var/datum/reagent/R in reagents.reagent_list) + if("fizz" in R.glass_special) + boom(user) + return open(user) /obj/item/reagent_containers/food/drinks/proc/open(mob/user) playsound(loc,'sound/effects/canopen.ogg', rand(10,50), 1) to_chat(user, SPAN_NOTICE("You open \the [src] with an audible pop!")) - atom_flags |= ATOM_FLAG_OPEN_CONTAINER /obj/item/reagent_containers/food/drinks/proc/boom(mob/user as mob) user.visible_message( @@ -35,6 +49,33 @@ SPAN_DANGER("\The [src] explodes all over you as you open it!") ) atom_flags |= ATOM_FLAG_OPEN_CONTAINER + make_froth(drink_offset_x, drink_offset_y, 2) + playsound(loc,'sound/items/soda_burst.ogg', rand(20,50), 1) + reagents.splash(user, reagents.total_volume) + shaken = FALSE + + +/obj/item/reagent_containers/food/drinks/proc/make_froth(intensity) + if(!intensity) + return + + if(!reagents.total_volume) + return + + var/intensity_state = null + switch(intensity) + if(1) + intensity_state = "low" + if(2) + intensity_state = "medium" + if(3) + intensity_state = "high" + var/mutable_appearance/froth = mutable_appearance('icons/obj/food/drinks/drink_effects.dmi', "froth_[intensity_state]") + froth.pixel_x = drink_offset_x + froth.pixel_y = drink_offset_y + AddOverlays(froth) + spawn(2 SECONDS) + CutOverlays(froth) /obj/item/reagent_containers/food/drinks/use_before(mob/M as mob, mob/user as mob) . = FALSE @@ -114,7 +155,7 @@ desc = initial(desc) -//////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// /// Drinks. END //////////////////////////////////////////////////////////////////////////////// @@ -189,7 +230,7 @@ /obj/item/reagent_containers/food/drinks/small_milk_choc name = "small chocolate milk carton" desc = "It's milk! This one is in delicious chocolate flavour." - icon_state = "mini-milk" + icon_state = "mini-milk_choco" item_state = "carton" center_of_mass = "x=16;y=9" volume = 30 @@ -214,6 +255,9 @@ desc = "Careful, cold ice, do not chew." icon_state = "coffee" center_of_mass = "x=15;y=10" + filling_states = "100" + base_name = "cup" + base_icon = "cup" /obj/item/reagent_containers/food/drinks/ice/Initialize() . = ..() @@ -225,6 +269,9 @@ icon_state = "coffee" item_state = "coffee" center_of_mass = "x=15;y=13" + filling_states = "100" + base_name = "cup" + base_icon = "cup" /obj/item/reagent_containers/food/drinks/h_chocolate/Initialize() . = ..() @@ -236,25 +283,38 @@ desc = "Just add 10ml water, self heats! A taste that reminds you of your school years." icon_state = "ramen" center_of_mass = "x=16;y=11" + atom_flags = 0 //starts closed + filling_states = "100" + base_icon = "cup" /obj/item/reagent_containers/food/drinks/dry_ramen/Initialize() . = ..() reagents.add_reagent(/datum/reagent/drink/dry_ramen, 30) +/obj/item/reagent_containers/food/drinks/dry_ramen/on_update_icon() + ClearOverlays() + if(length(reagents.reagent_list) > 0) + if(filling_states && HAS_FLAGS(atom_flags, ATOM_FLAG_OPEN_CONTAINER)) + var/image/filling = image(icon, src, "[base_icon][get_filling_state()]") + filling.color = reagents.get_color() + AddOverlays(filling) + +/obj/item/reagent_containers/food/drinks/dry_ramen/open(mob/user) + playsound(loc,'sound/effects/rip1.ogg', rand(10,50), 1) + to_chat(user, SPAN_NOTICE("You tear open \the [src], breaking the seal.")) + atom_flags |= ATOM_FLAG_OPEN_CONTAINER + icon_state = "ramen_open" + update_icon() /obj/item/reagent_containers/food/drinks/sillycup name = "paper cup" desc = "A paper water cup." - icon_state = "water_cup_e" + icon_state = "water_cup" possible_transfer_amounts = null volume = 10 center_of_mass = "x=16;y=12" - -/obj/item/reagent_containers/food/drinks/sillycup/on_reagent_change() - if(reagents.total_volume) - icon_state = "water_cup" - else - icon_state = "water_cup_e" + filling_states = "100" + base_icon = "water_cup" //////////////////////////pitchers, pots, flasks and cups // @@ -284,6 +344,7 @@ /obj/item/reagent_containers/food/drinks/flask name = "\improper Captain's flask" desc = "A metal flask belonging to the captain." + icon = 'icons/obj/food/drinks/flasks.dmi' icon_state = "flask" volume = 60 center_of_mass = "x=17;y=7" @@ -293,11 +354,6 @@ desc = "A shiny metal flask. It appears to have a Greek symbol inscribed on it." icon_state = "shinyflask" -/obj/item/reagent_containers/food/drinks/flask/lithium - name = "lithium flask" - desc = "A flask with a Lithium Atom symbol on it." - icon_state = "lithiumflask" - /obj/item/reagent_containers/food/drinks/flask/detflask name = "\improper Detective's flask" desc = "A metal flask with a leather band and golden badge belonging to the detective." @@ -318,6 +374,48 @@ icon_state = "vacuumflask" volume = 60 center_of_mass = "x=15;y=4" + var/obj/item/reagent_containers/food/drinks/flask/flask_cup/cup = /obj/item/reagent_containers/food/drinks/flask/flask_cup + +/obj/item/reagent_containers/food/drinks/flask/vacuumflask/Initialize() + . = ..() + cup = new cup(src) + atom_flags ^= ATOM_FLAG_OPEN_CONTAINER + +/obj/item/reagent_containers/food/drinks/flask/vacuumflask/attack_self(mob/user) + if(cup) + to_chat(user, SPAN_NOTICE("You remove \the [src]'s cap.")) + user.put_in_hands(cup) + atom_flags |= ATOM_FLAG_OPEN_CONTAINER + cup = null + update_icon() + +/obj/item/reagent_containers/food/drinks/flask/vacuumflask/use_tool(obj/item/attacking_item, mob/user) + if(istype(attacking_item, /obj/item/reagent_containers/food/drinks/flask/flask_cup)) + if(cup) + to_chat(user, SPAN_WARNING("\The [src] already has a cap.")) + return TRUE + if(attacking_item.reagents.total_volume + reagents.total_volume > volume) + to_chat(user, SPAN_WARNING("There's too much fluid in both the cap and \the [src]!")) + return TRUE + to_chat(user, SPAN_NOTICE("You put the cap onto \the [src].")) + user.unEquip(attacking_item, src) + atom_flags ^= ATOM_FLAG_OPEN_CONTAINER + cup = attacking_item + cup.reagents.trans_to_holder(reagents, cup.reagents.total_volume) + update_icon() + return TRUE + return ..() + +/obj/item/reagent_containers/food/drinks/flask/vacuumflask/on_update_icon() + icon_state = cup ? initial(icon_state) : "[initial(icon_state)]-nobrim" + +/obj/item/reagent_containers/food/drinks/flask/flask_cup + name = "vacuum flask cup" + desc = "The cup that appears in your hands after you unscrew the cap of the flask and turn it over. Magic!" + icon_state = "vacuumflask-brim" + volume = 10 + center_of_mass = "x=16;y=6" + //tea and tea accessories /obj/item/reagent_containers/food/drinks/tea @@ -326,7 +424,7 @@ icon_state = "coffee" item_state = "coffee" center_of_mass = "x=16;y=14" - //filling_states = "100" + filling_states = "100" base_name = "cup" base_icon = "cup" @@ -360,7 +458,7 @@ icon_state = "coffee" item_state = "coffee" center_of_mass = "x=16;y=14" - //filling_states = "100" + filling_states = "100" base_name = "cup" base_icon = "cup" diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index 93770d5a1016a..e4a51a0daefac 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -1,8 +1,10 @@ /obj/item/reagent_containers/food/drinks/bottle + icon = 'icons/obj/food/drinks/bottles.dmi' amount_per_transfer_from_this = 10 volume = 100 item_state = "broken_beer" force = 5 + drink_offset_y = 15 var/can_shatter = TRUE var/obj/item/reagent_containers/glass/rag/rag var/rag_underlay = "rag" @@ -52,20 +54,28 @@ return prob(chance_table[idx]) -/obj/item/reagent_containers/food/drinks/bottle/proc/smash(newloc, atom/against) +/obj/item/reagent_containers/food/drinks/bottle/proc/smash(newloc, atom/against, break_top) var/obj/item/broken_bottle/B = new (newloc) if (prob(33)) new /obj/item/material/shard (newloc) B.icon_state = icon_state - var/icon/I = new ('icons/obj/food/drinks.dmi', icon_state) - I.Blend(B.broken_outline, ICON_OVERLAY, rand(5), 1) + + var/icon/I = new ('icons/obj/food/drinks/bottles.dmi', icon_state) + if(break_top) + desc = "A bottle with its neck smashed off." + I.Blend(B.flipped_broken_outline, ICON_OVERLAY, rand(5), 0) + else + I.Blend(B.broken_outline, ICON_OVERLAY, rand(5), 1) I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0)) B.icon = I + if (rag && rag.on_fire && isliving(against)) var/mob/living/L = against L.IgniteMob() + playsound(src, "shatter", 70, 1) transfer_fingerprints_to(B) + qdel(src) return B @@ -117,7 +127,7 @@ /obj/item/reagent_containers/food/drinks/bottle/on_update_icon() underlays.Cut() if (rag) - var/underlay_image = image(icon='icons/obj/food/drinks.dmi', icon_state=rag.on_fire? "[rag_underlay]_lit" : rag_underlay) + var/underlay_image = image(icon='icons/obj/food/drinks/drink_effects.dmi', icon_state=rag.on_fire? "[rag_underlay]_lit" : rag_underlay) underlays += underlay_image set_light(rag.light_range, rag.light_power, rag.light_color) else @@ -329,7 +339,7 @@ /obj/item/reagent_containers/food/drinks/bottle/melonliquor name = "Emeraldine Melon Liquor" desc = "A bottle of 46 proof Emeraldine Melon Liquor. Sweet and light." - icon_state = "alco-green" + icon_state = "melonliquor" center_of_mass = "x=16;y=6" @@ -341,7 +351,7 @@ /obj/item/reagent_containers/food/drinks/bottle/bluecuracao name = "Miss Blue Curacao" desc = "A fruity, exceptionally azure drink. Does not allow the imbiber to use the fifth magic." - icon_state = "alco-blue" + icon_state = "curacaobottle" center_of_mass = "x=16;y=6" @@ -374,42 +384,6 @@ reagents.add_reagent(/datum/reagent/drink/grenadine, 100) -/obj/item/reagent_containers/food/drinks/bottle/cola - name = "\improper Space Cola" - desc = "Cola. in space." - icon_state = "colabottle" - center_of_mass = "x=16;y=6" - - -/obj/item/reagent_containers/food/drinks/bottle/cola/Initialize() - . = ..() - reagents.add_reagent(/datum/reagent/drink/space_cola, 100) - - -/obj/item/reagent_containers/food/drinks/bottle/space_up - name = "\improper Space-Up" - desc = "Tastes like a hull breach in your mouth." - icon_state = "space-up_bottle" - center_of_mass = "x=16;y=6" - - -/obj/item/reagent_containers/food/drinks/bottle/space_up/Initialize() - . = ..() - reagents.add_reagent(/datum/reagent/drink/space_up, 100) - - -/obj/item/reagent_containers/food/drinks/bottle/space_mountain_wind - name = "\improper Space Mountain Wind" - desc = "Blows right through you like a space wind." - icon_state = "space_mountain_wind_bottle" - center_of_mass = "x=16;y=6" - - -/obj/item/reagent_containers/food/drinks/bottle/space_mountain_wind/Initialize() - . = ..() - reagents.add_reagent(/datum/reagent/drink/spacemountainwind, 100) - - /obj/item/reagent_containers/food/drinks/bottle/pwine name = "Warlock's Velvet" desc = "What a delightful packaging for a surely high quality wine! The vintage must be amazing!" @@ -463,6 +437,8 @@ desc = "The regal drink of celebrities and royalty." icon_state = "champagne" center_of_mass = "x=16;y=4" + atom_flags = 0 + var/sabraged = FALSE /obj/item/reagent_containers/food/drinks/bottle/champagne/Initialize() @@ -470,6 +446,98 @@ reagents.add_reagent(/datum/reagent/ethanol/champagne, 100) +/obj/item/reagent_containers/food/drinks/bottle/champagne/attack_self(mob/user) + if(is_open_container()) + return ..() + user.visible_message( + SPAN_NOTICE("\The [user] begins fiddling with \the [src]'s cork."), + SPAN_NOTICE("You begin fiddling with \the [src]'s cork.") + ) + if(do_after(user, 1 SECOND, src, DO_PUBLIC_UNIQUE)) + return open(user, sabrage = FALSE, froth_severity = pick(1,2)) + +/obj/item/reagent_containers/food/drinks/bottle/champagne/use_tool(obj/item/attacking_item, mob/user) + . = ..() + + if(is_open_container()) + return ..() + + if(!has_edge(attacking_item) && !istype(attacking_item, /obj/item/material/sword)) + return + + if((attacking_item.force < 4)) + USE_FEEDBACK_FAILURE("\The [attacking_item] is not strong enough to open \the [src].") + return TRUE + + playsound(user, 'sound/effects/holster/sheathout.ogg', 25, TRUE) + user.visible_message( + SPAN_NOTICE("\The [user] prepares to swing \the [attacking_item] at \the [src]."), + SPAN_NOTICE("You prepare to swing \the [attacking_item] at \the [src].") + ) + + if (!user.do_skilled(2 SECONDS, SKILL_COOKING, user)) + return TRUE + if(!prob(user.skill_fail_chance(SKILL_COOKING, 80, SKILL_EXPERIENCED))) + return open(user, sabrage = TRUE, froth_severity = 3) + else + var/datum/pronouns/pronouns = user.choose_from_pronouns() + user.visible_message( + SPAN_WARNING("\The [user] fumbles and cuts \the [src] in half, spilling it over [pronouns.self]!"), + SPAN_WARNING("You fumble and cut \the [src] in half, spilling it over yourself!"), + SPAN_NOTICE("You hear spilling.") + ) + if (user.isEquipped(src)) + user.drop_from_inventory(src) + return smash(loc, user, break_top = TRUE) + + +/obj/item/reagent_containers/food/drinks/bottle/champagne/on_update_icon() + . = ..() + if(is_open_container()) + if(sabraged) + icon_state = "[initial(icon_state)]_sabrage" + else + icon_state = "[initial(icon_state)]_popped" + else + icon_state = initial(icon_state) + + +/obj/item/reagent_containers/food/drinks/bottle/champagne/open(mob/user, sabrage, froth_severity) + if(!sabrage) + visible_message( + SPAN_WARNING("The cork flies off of \the [src]!"), + SPAN_NOTICE("You can hear a pop.") + ) + else + sabraged = TRUE + drink_offset_y = 13 + user.visible_message( + SPAN_WARNING("\The [user] cleanly slices off the cork of \the [src]!"), + SPAN_WARNING("You elegantly slice the cork off of \the [src]!"), + SPAN_NOTICE("You can hear a pop.") + ) + playsound(src, 'sound/items/champagne_pop.ogg', 70, TRUE) + atom_flags |= ATOM_FLAG_OPEN_CONTAINER + update_icon() + make_froth(froth_severity) + var/obj/item/trash/cork_to_fire = sabraged ? /obj/item/trash/champagne_cork/sabrage : /obj/item/trash/champagne_cork + var/obj/item/trash/champagne_cork/popped_cork = new cork_to_fire(loc) + if (user.isEquipped(src)) + user.drop_from_inventory(popped_cork) + popped_cork.throw_at_random(include_own_turf = FALSE, maxrange = 4, speed = 4) + + +/obj/item/trash/champagne_cork + name = "champagne cork" + icon = 'icons/obj/food/drinks/bottles.dmi' + icon_state = "champagne_cork" + w_class = ITEM_SIZE_TINY + + +/obj/item/trash/champagne_cork/sabrage + icon_state = "champagne_cork_sabrage" + + /obj/item/reagent_containers/food/drinks/bottle/prosecco name = "2280 Vintage Prosecco." desc = "A delicious prosecco, ideal for long days at work. This one proudly advertises itself as 2280 Vintage. Must have been a special year." @@ -497,7 +565,7 @@ /obj/item/reagent_containers/food/drinks/bottle/jagermeister name = "Kaisermeister Deluxe Jagermeister" desc = "Jagermeister. This drink just demands a party." - icon_state = "herbal" + icon_state = "jagermeister" center_of_mass = "x=16;y=6" @@ -572,7 +640,7 @@ /obj/item/reagent_containers/food/drinks/bottle/premiumwine name = "Uve De Blanc" desc = "You feel pretentious just looking at it." - icon_state = "premiumwine" + icon_state = "whitewinebottle" center_of_mass = "x=16;y=4" @@ -703,6 +771,7 @@ smash_duration = 1 atom_flags = 0 rag_underlay = "rag_small" + drink_offset_y = 13 /obj/item/reagent_containers/food/drinks/bottle/small/beer @@ -798,6 +867,45 @@ reagents.add_reagent(/datum/reagent/ethanol/lager, 50) +/obj/item/reagent_containers/food/drinks/bottle/small/cola + name = "\improper Space Cola" + desc = "Cola. in space." + icon_state = "colabottle" + center_of_mass = "x=16;y=6" + drink_offset_y = 11 + + +/obj/item/reagent_containers/food/drinks/bottle/small/cola/Initialize() + . = ..() + reagents.add_reagent(/datum/reagent/drink/space_cola, 50) + + +/obj/item/reagent_containers/food/drinks/bottle/small/space_up + name = "\improper Space-Up" + desc = "Tastes like a hull breach in your mouth." + icon_state = "space-up_bottle" + center_of_mass = "x=16;y=6" + drink_offset_y = 11 + + +/obj/item/reagent_containers/food/drinks/bottle/small/space_up/Initialize() + . = ..() + reagents.add_reagent(/datum/reagent/drink/space_up, 50) + + +/obj/item/reagent_containers/food/drinks/bottle/small/space_mountain_wind + name = "\improper Space Mountain Wind" + desc = "Blows right through you like a space wind." + icon_state = "space_mountain_wind_bottle" + center_of_mass = "x=16;y=6" + drink_offset_y = 11 + + +/obj/item/reagent_containers/food/drinks/bottle/small/space_mountain_wind/Initialize() + . = ..() + reagents.add_reagent(/datum/reagent/drink/spacemountainwind, 50) + + /obj/item/reagent_containers/food/drinks/bottle/oiljug name = "oil jug" desc = "A plastic jug of engine oil. Not for human consumption." @@ -813,7 +921,7 @@ /obj/item/broken_bottle name = "Broken Bottle" desc = "A bottle with a sharp broken bottom." - icon = 'icons/obj/food/drinks.dmi' + icon = 'icons/obj/food/drinks/bottles.dmi' icon_state = "broken_bottle" force = 9 throwforce = 5 @@ -823,4 +931,5 @@ hitsound = 'sound/weapons/bladeslice.ogg' attack_verb = list("stabbed", "slashed", "attacked") sharp = TRUE - var/icon/broken_outline = icon('icons/obj/food/drinks.dmi', "broken") + var/icon/broken_outline = icon('icons/obj/food/drinks/drink_effects.dmi', "broken") + var/icon/flipped_broken_outline = icon('icons/obj/food/drinks/drink_effects.dmi', "broken-flipped") diff --git a/code/modules/reagents/reagent_containers/food/drinks/jar.dm b/code/modules/reagents/reagent_containers/food/drinks/jar.dm deleted file mode 100644 index 91f905c0a7f0a..0000000000000 --- a/code/modules/reagents/reagent_containers/food/drinks/jar.dm +++ /dev/null @@ -1,22 +0,0 @@ - - -///jar - -/obj/item/reagent_containers/food/drinks/jar - name = "empty jar" - desc = "A jar. You're not sure what it's supposed to hold." - icon_state = "jar" - item_state = "beaker" - center_of_mass = "x=15;y=8" - unacidable = TRUE - -/obj/item/reagent_containers/food/drinks/jar/on_reagent_change() - if (length(reagents.reagent_list) > 0) - icon_state ="jar_what" - SetName("jar of something") - desc = "You can't really tell what this is." - else - icon_state = initial(icon_state) - SetName(initial(name)) - desc = "A jar. You're not sure what it's supposed to hold." - return diff --git a/code/modules/reagents/reagent_containers/food/shaker.dm b/code/modules/reagents/reagent_containers/food/shaker.dm index 02121045c2d2a..cf077ae57ba1c 100644 --- a/code/modules/reagents/reagent_containers/food/shaker.dm +++ b/code/modules/reagents/reagent_containers/food/shaker.dm @@ -9,6 +9,10 @@ atom_flags = ATOM_FLAG_OPEN_CONTAINER | ATOM_FLAG_NO_REACT /obj/item/reagent_containers/food/drinks/shaker/attack_self(mob/user as mob) + if(!reagents.total_volume) + return + playsound(loc,'sound/items/soda_shaking.ogg', rand(10,50), 1) + shake_animation(20) if(user.skill_check(SKILL_COOKING, SKILL_MASTER)) user.visible_message(SPAN_CLASS("rose", "\The [user] shakes \the [src] briskly in one hand, with supreme confidence and competence."), SPAN_CLASS("rose", "You shake \the [src] briskly with one hand.")) mix() diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 5d0d97a9db876..7bae32eae921e 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -801,7 +801,7 @@ /obj/item/reagent_containers/food/snacks/pancakesblu name = "blueberry pancakes" desc = "Pancakes with blueberries, delicious." - icon_state = "pancakes" + icon_state = "pancakes_berry" trash = /obj/item/trash/plate center_of_mass = "x=15;y=11" nutriment_desc = list("pancake" = 8) @@ -1733,6 +1733,34 @@ .=..() reagents.add_reagent(/datum/reagent/slimejelly, 5) +/obj/item/reagent_containers/food/snacks/pbtoast + name = "peanut butter toast" + desc = "A slice of bread covered with peanut butter." + icon_state = "pbtoast" + filling_color = "#b572ab" + center_of_mass = "x=16;y=8" + nutriment_desc = list("toasted bread" = 2) + nutriment_amt = 1 + bitesize = 3 + +/obj/item/reagent_containers/food/snacks/pbtoast/Initialize() + .=..() + reagents.add_reagent(/datum/reagent/nutriment/peanutbutter, 5) + +/obj/item/reagent_containers/food/snacks/ntella_bread + name = "NTella bread slice" + desc = "A slice of bread covered with delicious chocolate-nut spread." + icon_state = "chocobread" + filling_color = "#4b270f" + center_of_mass = "x=16;y=8" + nutriment_desc = list("bread" = 2) + nutriment_amt = 1 + bitesize = 3 + +/obj/item/reagent_containers/food/snacks/ntella_bread/Initialize() + .=..() + reagents.add_reagent(/datum/reagent/nutriment/choconutspread, 5) + /obj/item/reagent_containers/food/snacks/jellyburger name = "jelly burger" desc = "Culinary delight..?" @@ -1989,6 +2017,31 @@ .=..() reagents.add_reagent(/datum/reagent/nutriment/cherryjelly, 5) +/obj/item/reagent_containers/food/snacks/pbjsandwich + name = "pbj sandwich" + desc = "A staple classic lunch of gooey jelly and peanut butter." + icon_state = "pbjsandwich" + trash = /obj/item/trash/plate + filling_color = "#bb6a54" + center_of_mass = "x=16;y=8" + nutriment_desc = list("bread" = 2) + nutriment_amt = 2 + bitesize = 3 + +/obj/item/reagent_containers/food/snacks/pbjsandwich/Initialize() + .=..() + reagents.add_reagent(/datum/reagent/nutriment/peanutbutter, 5) + +/obj/item/reagent_containers/food/snacks/pbjsandwich/slime +/obj/item/reagent_containers/food/snacks/pbjsandwich/slime/Initialize() + .=..() + reagents.add_reagent(/datum/reagent/slimejelly, 5) + +/obj/item/reagent_containers/food/snacks/pbjsandwich/cherry +/obj/item/reagent_containers/food/snacks/pbjsandwich/cherry/Initialize() + .=..() + reagents.add_reagent(/datum/reagent/nutriment/cherryjelly, 5) + /obj/item/reagent_containers/food/snacks/boiledslimecore name = "boiled slime core" desc = "A boiled red thing." @@ -2201,7 +2254,7 @@ filled = TRUE /obj/item/reagent_containers/food/snacks/sliceable/bananabread - name = "banana-nut bread" + name = "banana bread" desc = "A heavenly and filling treat." icon_state = "bananabread" slice_path = /obj/item/reagent_containers/food/snacks/slice/bananabread @@ -2216,7 +2269,7 @@ reagents.add_reagent(/datum/reagent/drink/juice/banana, 20) /obj/item/reagent_containers/food/snacks/slice/bananabread - name = "banana-nut bread slice" + name = "banana bread slice" desc = "A slice of delicious banana bread." icon_state = "bananabreadslice" filling_color = "#ede5ad" @@ -2336,6 +2389,34 @@ /obj/item/reagent_containers/food/snacks/slice/cheesecake/filled filled = TRUE +/obj/item/reagent_containers/food/snacks/sliceable/ntella_cheesecake + name = "NTella cheesecake" + desc = "An elaborate layered cheesecake made with chocolate hazelnut spread. You gain calories just by looking at it for too long." + icon_state = "NTellacheesecake" + slice_path = /obj/item/reagent_containers/food/snacks/slice/ntella_cheesecake + slices_num = 5 + filling_color = "#331c03" + center_of_mass = "x=16;y=10" + nutriment_desc = list("hazelnut chocolate" = 15, "creamy cheese" = 10, "crunchy cookie base" = 5) + nutriment_amt = 20 + bitesize = 2 +/obj/item/reagent_containers/food/snacks/sliceable/ntella_cheesecake/Initialize() + .=..() + reagents.add_reagent(/datum/reagent/nutriment/choconutspread, 15) + +/obj/item/reagent_containers/food/snacks/slice/ntella_cheesecake + name = "NTella cheesecake slice" + desc = "A slice of cake marrying the chocolate taste of NTella with the creamy smoothness of cheesecake, all on a cookie crumble base." + icon_state = "NTellacheesecake_slice" + trash = /obj/item/trash/plate + filling_color = "#331c03" + bitesize = 2 + center_of_mass = "x=16;y=14" + whole_path = /obj/item/reagent_containers/food/snacks/sliceable/ntella_cheesecake + +/obj/item/reagent_containers/food/snacks/slice/ntella_cheesecake/filled + filled = TRUE + /obj/item/reagent_containers/food/snacks/sliceable/plaincake name = "vanilla cake" desc = "A plain cake, not a lie." @@ -2757,7 +2838,7 @@ /obj/item/pizzabox name = "pizza box" desc = "A box suited for pizzas." - icon = 'icons/obj/food/food.dmi' + icon = 'icons/obj/food/food_storage.dmi' icon_state = "pizzabox1" var/open = 0 // Is the box open? @@ -3467,9 +3548,10 @@ trash = /obj/item/trash/pistachios filling_color = "#825d26" center_of_mass = "x=15;y=9" - nutriment_desc = list("nuts" = 1) - nutriment_amt = 3 bitesize = 0.5 +/obj/item/reagent_containers/food/snacks/pistachios/Initialize() + .=..() + reagents.add_reagent(/datum/reagent/nutriment/almondmeal, 3) /obj/item/reagent_containers/food/snacks/semki name = "semki" @@ -4075,10 +4157,15 @@ trash = /obj/item/trash/saturno filling_color = "#dca319" center_of_mass = "x=15;y=9" - nutriment_desc = list("salt" = 4, "peanut" = 2, "wood?" = 1) - nutriment_amt = 5 + nutriment_desc = list("salt" = 4, "wood?" = 1) + nutriment_amt = 3 bitesize = 2 +/obj/item/reagent_containers/food/snacks/saturn/Initialize() + .=..() + reagents.add_reagent(/datum/reagent/nutriment/groundpeanuts, 3) + + /obj/item/reagent_containers/food/snacks/jupiter name = "jove gello" icon_state = "jupiter" @@ -4163,12 +4250,13 @@ icon_state = "weebonuts" trash = /obj/item/trash/weebonuts desc = "A bag of Red Alert! brand spicy nuts. Goes well with your beer!" - nutriment_desc = list("nuts" = 4, "spicy!" = 1) - nutriment_amt = 5 + nutriment_desc = list("spicy!" = 1) + nutriment_amt = 2 bitesize = 2 /obj/item/reagent_containers/food/snacks/weebonuts/Initialize() .=..() reagents.add_reagent(/datum/reagent/capsaicin = 1) + reagents.add_reagent(/datum/reagent/nutriment/groundpeanuts, 4) /obj/item/reagent_containers/food/snacks/chocobanana name = "choco banang" diff --git a/code/modules/reagents/reagent_containers/glass/bottle.dm b/code/modules/reagents/reagent_containers/glass/bottle.dm index df85553bac931..4e67a38319489 100644 --- a/code/modules/reagents/reagent_containers/glass/bottle.dm +++ b/code/modules/reagents/reagent_containers/glass/bottle.dm @@ -263,7 +263,7 @@ /obj/item/reagent_containers/glass/bottle/adminordrazine name = "Adminordrazine Bottle" desc = "A small bottle. Contains the liquid essence of the gods." - icon = 'icons/obj/food/drinks.dmi' + icon = 'icons/obj/food/drinks/bottles.dmi' icon_state = "holyflask" diff --git a/icons/obj/crafting_icons.dmi b/icons/obj/crafting_icons.dmi index 09747aff34516..a07b567af262b 100644 Binary files a/icons/obj/crafting_icons.dmi and b/icons/obj/crafting_icons.dmi differ diff --git a/icons/obj/food/condiment.dmi b/icons/obj/food/condiment.dmi new file mode 100644 index 0000000000000..f23c40e51e83a Binary files /dev/null and b/icons/obj/food/condiment.dmi differ diff --git a/icons/obj/food/drinks.dmi b/icons/obj/food/drinks.dmi deleted file mode 100644 index bd5a827d91e81..0000000000000 Binary files a/icons/obj/food/drinks.dmi and /dev/null differ diff --git a/icons/obj/food/drinks/bottles.dmi b/icons/obj/food/drinks/bottles.dmi new file mode 100644 index 0000000000000..9fae04141aa4a Binary files /dev/null and b/icons/obj/food/drinks/bottles.dmi differ diff --git a/icons/obj/food/drinks/cans.dmi b/icons/obj/food/drinks/cans.dmi new file mode 100644 index 0000000000000..c7604eec2d9a3 Binary files /dev/null and b/icons/obj/food/drinks/cans.dmi differ diff --git a/icons/obj/food/drinks/drink_effects.dmi b/icons/obj/food/drinks/drink_effects.dmi new file mode 100644 index 0000000000000..385bab0445f09 Binary files /dev/null and b/icons/obj/food/drinks/drink_effects.dmi differ diff --git a/icons/obj/food/drinks/flasks.dmi b/icons/obj/food/drinks/flasks.dmi new file mode 100644 index 0000000000000..a279b94392a92 Binary files /dev/null and b/icons/obj/food/drinks/flasks.dmi differ diff --git a/icons/obj/food/drinks/misc.dmi b/icons/obj/food/drinks/misc.dmi new file mode 100644 index 0000000000000..6602c02d3d188 Binary files /dev/null and b/icons/obj/food/drinks/misc.dmi differ diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index 892ce98048655..60902033327b5 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ diff --git a/icons/obj/food/food_custom.dmi b/icons/obj/food/food_custom.dmi index cd51bb7d194db..2551af39b05e2 100644 Binary files a/icons/obj/food/food_custom.dmi and b/icons/obj/food/food_custom.dmi differ diff --git a/icons/obj/food/food_storage.dmi b/icons/obj/food/food_storage.dmi new file mode 100644 index 0000000000000..176da1eea212e Binary files /dev/null and b/icons/obj/food/food_storage.dmi differ diff --git a/icons/obj/food/mre.dmi b/icons/obj/food/mre.dmi new file mode 100644 index 0000000000000..990f2bad5bdf1 Binary files /dev/null and b/icons/obj/food/mre.dmi differ diff --git a/icons/obj/weapons/grenade.dmi b/icons/obj/weapons/grenade.dmi index 49444c39529ba..8729a21f6e2e4 100644 Binary files a/icons/obj/weapons/grenade.dmi and b/icons/obj/weapons/grenade.dmi differ diff --git a/maps/away/skrellscoutship/skrellscoutship.dm b/maps/away/skrellscoutship/skrellscoutship.dm index 9eb6b2208d592..57fc07d8eed63 100644 --- a/maps/away/skrellscoutship/skrellscoutship.dm +++ b/maps/away/skrellscoutship/skrellscoutship.dm @@ -148,17 +148,14 @@ var/global/const/access_skrellscoutship = "ACCESS_SKRELLSCOUT" /obj/item/reagent_containers/food/condiment/psilocybin - label_text = "Psilocybin" starting_reagents = list(/datum/reagent/drugs/psilocybin = 50) /obj/item/reagent_containers/food/condiment/mindbreaker - label_text = "Mindbreaker" starting_reagents = list(/datum/reagent/drugs/mindbreaker = 50) /obj/item/reagent_containers/food/condiment/hextro - label_text = "Ambrosia" starting_reagents = list(/datum/reagent/drugs/hextro = 50) diff --git a/maps/sierra/z6_admin.dmm b/maps/sierra/z6_admin.dmm index 46dc0f1209bb8..6461d4938a7db 100644 --- a/maps/sierra/z6_admin.dmm +++ b/maps/sierra/z6_admin.dmm @@ -72,7 +72,7 @@ /obj/floor_decal/corner/red/border{ dir = 1 }, -/obj/item/reagent_containers/food/drinks/bottle/cola, +/obj/item/reagent_containers/food/drinks/bottle/small/cola, /turf/unsimulated/floor/techfloor{ icon_state = "dark"; icon = 'icons/turf/flooring/tiles.dmi' @@ -3430,7 +3430,7 @@ /obj/floor_decal/carpet{ dir = 8 }, -/obj/item/reagent_containers/food/condiment/small/oliveoil{ +/obj/item/reagent_containers/food/condiment/oliveoil{ name = "vaseline"; pixel_y = 17 }, @@ -16218,7 +16218,7 @@ /area/centcom/holding) "rgh" = ( /obj/structure/table/woodentable_reinforced/walnut, -/obj/item/reagent_containers/food/drinks/bottle/cola, +/obj/item/reagent_containers/food/drinks/bottle/small/cola, /turf/unsimulated/floor{ icon = 'icons/turf/flooring/carpet.dmi'; icon_state = "purple"; diff --git a/sound/items/champagne_pop.ogg b/sound/items/champagne_pop.ogg new file mode 100644 index 0000000000000..41737839826af Binary files /dev/null and b/sound/items/champagne_pop.ogg differ diff --git a/sound/items/soda_burst.ogg b/sound/items/soda_burst.ogg new file mode 100644 index 0000000000000..58e7257181b65 Binary files /dev/null and b/sound/items/soda_burst.ogg differ diff --git a/sound/items/soda_shaking.ogg b/sound/items/soda_shaking.ogg new file mode 100644 index 0000000000000..ae3437003898a Binary files /dev/null and b/sound/items/soda_shaking.ogg differ