From a3a3b29719e2debb36d1aee54551c29df2373497 Mon Sep 17 00:00:00 2001 From: spessbandit <55415991+spessbandit@users.noreply.github.com> Date: Mon, 9 Mar 2020 03:29:58 -0400 Subject: [PATCH] Adds pruno, aka prison wine, to the game. (#49615) * adds pruno; adds garbage bags to all map permas for pruno; adds moldy bread for pruno * tells travis to eat shit * ups time to make pruno; tweaks recipe * changes moodlet, breaks mold into separate reagent, slightly tweaks recipe display * travis please eat every dick in existence except for one and then continuously clone-a-willy that dick so you can continue this task for all eternity * changes disgust, adjusts comments * does this fix the shit * does THIS work * spooky's edits --- _maps/map_files/BoxStation/BoxStation.dmm | 6 +- .../map_files/Deltastation/DeltaStation2.dmm | 5 +- _maps/map_files/Donutstation/Donutstation.dmm | 73 ++++---- _maps/map_files/KiloStation/KiloStation.dmm | 7 + _maps/map_files/MetaStation/MetaStation.dmm | 163 +++++++++--------- _maps/map_files/PubbyStation/PubbyStation.dmm | 1 + .../food_and_drinks/drinks/drinks/bottle.dm | 52 ++++++ .../modules/food_and_drinks/food/condiment.dm | 2 - .../food_and_drinks/food/snacks_bread.dm | 9 + .../recipes/tablecraft/recipes_bread.dm | 9 + .../recipes/tablecraft/recipes_drink.dm | 10 ++ code/modules/hydroponics/grown.dm | 1 + .../chemistry/reagents/alcohol_reagents.dm | 15 ++ .../chemistry/reagents/drink_reagents.dm | 9 + .../chemistry/reagents/food_reagents.dm | 6 + code/modules/vending/sustenance.dm | 3 +- icons/obj/food/burgerbread.dmi | Bin 34266 -> 35050 bytes 17 files changed, 252 insertions(+), 119 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 909aae3b51f..7b6d2790f6d 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -114,6 +114,7 @@ pixel_y = 23 }, /obj/structure/cable, +/obj/item/storage/bag/trash, /turf/open/floor/plating, /area/security/prison) "aap" = ( @@ -1365,7 +1366,10 @@ /area/security/prison) "adf" = ( /obj/structure/toilet{ - dir = 1 + cistern = 1; + dir = 1; + icon_state = "toilet01"; + open = 0 }, /turf/open/floor/plasteel/freezer, /area/security/prison/toilet) diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 70684d07872..c75362bab0e 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -75,7 +75,9 @@ /area/security/prison/toilet) "aak" = ( /obj/structure/toilet{ - dir = 4 + cistern = 1; + dir = 4; + icon_state = "toilet01" }, /obj/machinery/light/small{ dir = 8 @@ -14742,6 +14744,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/item/storage/bag/trash, /turf/open/floor/plasteel, /area/security/prison) "aGK" = ( diff --git a/_maps/map_files/Donutstation/Donutstation.dmm b/_maps/map_files/Donutstation/Donutstation.dmm index ed697a692c7..451b187a05d 100644 --- a/_maps/map_files/Donutstation/Donutstation.dmm +++ b/_maps/map_files/Donutstation/Donutstation.dmm @@ -8093,6 +8093,18 @@ /obj/machinery/atmospherics/pipe/simple/multiz, /turf/open/floor/plasteel, /area/hallway/primary/central) +"asv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Security - Prison Rec Room"; + dir = 9; + network = list("ss13","Security","Prison") + }, +/obj/item/storage/bag/trash, +/turf/open/floor/plasteel, +/area/security/prison/rec) "asw" = ( /obj/machinery/vending/snack/random, /obj/effect/turf_decal/trimline/white/filled/line{ @@ -8141,6 +8153,15 @@ /obj/structure/cable, /turf/open/floor/plating, /area/maintenance/aft) +"asC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/toilet{ + cistern = 1; + dir = 4; + icon_state = "toilet01" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "asD" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -13153,6 +13174,15 @@ }, /turf/open/floor/plasteel, /area/security/processing) +"aEd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/toilet{ + cistern = 1; + dir = 8; + icon_state = "toilet01" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "aEe" = ( /obj/structure/sink{ dir = 8; @@ -35723,13 +35753,6 @@ "bAT" = ( /turf/open/floor/carpet, /area/chapel/main) -"bAU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/toilet{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "bAV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -35910,13 +35933,6 @@ /obj/structure/cable, /turf/open/floor/plasteel, /area/quartermaster/office) -"bBm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/toilet{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "bBn" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 8 @@ -40758,17 +40774,6 @@ /obj/machinery/light, /turf/open/floor/plasteel, /area/security/prison/visit) -"bLc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Security - Prison Rec Room"; - dir = 9; - network = list("ss13","Security","Prison") - }, -/turf/open/floor/plasteel, -/area/security/prison/rec) "bLd" = ( /obj/machinery/light/small, /obj/machinery/power/deck_relay, @@ -103764,13 +103769,13 @@ aiy bDN aMc aeZ -bAU +asC aiN bCt bCX bEf aiN -bAU +asC ajR bJx bJM @@ -104535,13 +104540,13 @@ bBP bDY aMc afy -bAU +asC aiN bCx bCW bEE aiN -bAU +asC ajS bJx bLs @@ -106334,13 +106339,13 @@ bAd bzl aPt ajF -bBm +aEd aiN bCD bCW bEW aiN -bBm +aEd ajX aiN bGM @@ -107105,13 +107110,13 @@ bCP bES aPt ajG -bBm +aEd aiN bCH bDH bFb aiN -bBm +aEd akg aiN aij @@ -107359,7 +107364,7 @@ aYw bjv bAb bCQ -bLc +asv aPt aiN aiN diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index b9a2222b395..f739061cf53 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -8054,6 +8054,8 @@ pixel_y = 2 }, /obj/structure/toilet{ + cistern = 1; + icon_state = "toilet01"; pixel_y = 16 }, /obj/effect/turf_decal/tile/neutral{ @@ -86854,6 +86856,8 @@ pixel_y = 2 }, /obj/structure/toilet{ + cistern = 1; + icon_state = "toilet01"; pixel_y = 16 }, /obj/effect/turf_decal/tile/neutral{ @@ -90447,6 +90451,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/item/storage/bag/trash, /turf/open/floor/plasteel/dark, /area/security/prison) "cIq" = ( @@ -93621,6 +93626,8 @@ pixel_y = 2 }, /obj/structure/toilet{ + cistern = 1; + icon_state = "toilet01"; pixel_y = 16 }, /obj/effect/turf_decal/tile/neutral{ diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index c7f7d627adb..a9bd16f285a 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -223,6 +223,7 @@ name = "old sink"; pixel_y = 28 }, +/obj/item/storage/bag/trash, /turf/open/floor/plating{ icon_state = "platingdmg3" }, @@ -925,6 +926,17 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/space/nearstation) +"acl" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/toilet{ + cistern = 1; + dir = 4; + icon_state = "toilet01" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison/toilet) "acm" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -952,14 +964,25 @@ /turf/open/floor/plasteel/dark, /area/security/execution/education) "acp" = ( -/obj/machinery/light/small{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/toilet{ +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/turf/open/floor/plasteel/freezer, -/area/security/prison/toilet) +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/mob/living/simple_animal/bot/medbot{ + auto_patrol = 1; + desc = "A little medical robot, officially part of the Nanotrasen medical inspectorate. He looks somewhat underwhelmed."; + name = "Inspector Johnson" + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/medical/medbay/central) "acq" = ( /obj/structure/table, /obj/item/storage/box/donkpockets{ @@ -1258,6 +1281,43 @@ }, /turf/open/floor/plasteel/white, /area/security/prison) +"acS" = ( +/obj/structure/closet/crate/necropolis{ + desc = "Presumably placed here by top men."; + name = "\improper Ark of the Covenant" + }, +/obj/item/toy/clockwork_watch{ + desc = "An ancient piece of machinery, made from an unknown metal by an unknown maker."; + name = "\improper Ancient Relic" + }, +/mob/living/simple_animal/pet/dog/corgi{ + desc = "Make sure you give him plenty of bellyrubs, or he'll melt your skin off."; + name = "\improper Keeper of the Ark" + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) +"acT" = ( +/obj/structure/bed/dogbed/runtime, +/obj/item/toy/cattoy, +/obj/structure/disposalpipe/segment, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/mob/living/simple_animal/pet/cat/Runtime, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/cmo) +"acU" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/virology) "acV" = ( /obj/structure/table, /obj/item/reagent_containers/glass/bottle/morphine{ @@ -1580,6 +1640,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/security/prison) +"adv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/virology) "adw" = ( /obj/structure/chair/stool, /obj/machinery/light/small{ @@ -1636,6 +1703,11 @@ }, /turf/open/floor/plasteel/white, /area/security/prison) +"adB" = ( +/obj/structure/cable, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/virology) "adC" = ( /obj/machinery/flasher{ id = "insaneflash"; @@ -47859,26 +47931,6 @@ /obj/effect/landmark/start/paramedic, /turf/open/floor/plasteel/white, /area/medical/medbay/central) -"cdB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/mob/living/simple_animal/bot/medbot{ - auto_patrol = 1; - desc = "A little medical robot, officially part of the Nanotrasen medical inspectorate. He looks somewhat underwhelmed."; - name = "Inspector Johnson" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 8 - }, -/area/medical/medbay/central) "cdC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -54049,20 +54101,6 @@ /obj/structure/cable, /turf/open/floor/plasteel/white, /area/crew_quarters/heads/cmo) -"crC" = ( -/obj/structure/bed/dogbed/runtime, -/mob/living/simple_animal/pet/cat/Runtime, -/obj/item/toy/cattoy, -/obj/structure/disposalpipe/segment, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/cmo) "crD" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -68475,13 +68513,6 @@ /obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"dzq" = ( -/mob/living/carbon/monkey, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/grass, -/area/medical/virology) "dzI" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ @@ -72989,11 +73020,6 @@ }, /turf/open/floor/plasteel/white, /area/medical/chemistry) -"mfI" = ( -/mob/living/carbon/monkey, -/obj/structure/cable, -/turf/open/floor/grass, -/area/medical/virology) "mha" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -76421,14 +76447,6 @@ }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) -"ubW" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/mob/living/carbon/monkey, -/obj/machinery/airalarm{ - pixel_y = 22 - }, -/turf/open/floor/grass, -/area/medical/virology) "ueg" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -77165,21 +77183,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space) -"vLX" = ( -/obj/structure/closet/crate/necropolis{ - desc = "Presumably placed here by top men."; - name = "\improper Ark of the Covenant" - }, -/mob/living/simple_animal/pet/dog/corgi{ - desc = "Make sure you give him plenty of bellyrubs, or he'll melt your skin off."; - name = "\improper Keeper of the Ark" - }, -/obj/item/toy/clockwork_watch{ - desc = "An ancient piece of machinery, made from an unknown metal by an unknown maker."; - name = "\improper Ancient Relic" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) "vNJ" = ( /obj/structure/cable, /obj/machinery/door/airlock/virology/glass{ @@ -93619,7 +93622,7 @@ vHP dux mnS dux -vLX +acS dux pLU uzM @@ -94153,7 +94156,7 @@ nrc jwJ sfD pwT -dzq +adv ngK dBN aaa @@ -94406,12 +94409,12 @@ gxl lMJ lMJ cBR -ubW +acU qTL qAX uFb tgQ -mfI +adB dBN lMJ fwb @@ -99699,7 +99702,7 @@ aay abh abA abY -acp +acl aax acZ adq @@ -102872,7 +102875,7 @@ cmu cnG coS cqn -crC +acT csB rAF cCf @@ -103889,7 +103892,7 @@ bXO bZc fmC cbW -cdB +acp ceG cfW chb diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 4dd4fc1301e..156ef59c0d5 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -1892,6 +1892,7 @@ /obj/structure/window/reinforced{ dir = 8 }, +/obj/item/storage/bag/trash, /turf/open/floor/plasteel/freezer, /area/security/prison) "agd" = ( diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 8b571819641..252e312405e 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -537,3 +537,55 @@ to_chat(user, "You snuff out the flame on [src].") cut_overlay(GLOB.fire_overlay) active = 0 + +/obj/item/reagent_containers/food/drinks/bottle/pruno + name = "pruno mix" + desc = "A trash bag filled with fruit, sugar, yeast, and water, pulped together into a pungent slurry to be fermented in an enclosed space, traditionally the toilet. Security would love to confiscate this, one of the many things wrong with them." + icon = 'icons/obj/janitor.dmi' + icon_state = "trashbag" + list_reagents = list(/datum/reagent/consumable/prunomix = 50) + var/fermentation_time = 30 SECONDS /// time it takes to ferment + var/fermentation_time_remaining /// for partial fermentation + var/fermentation_timer /// store the timer id of fermentation + +/obj/item/reagent_containers/food/drinks/bottle/pruno/Initialize() + . = ..() + RegisterSignal(src, COMSIG_MOVABLE_MOVED, .proc/check_fermentation) + +/obj/item/reagent_containers/food/drinks/bottle/pruno/Destroy() + UnregisterSignal(src, COMSIG_MOVABLE_MOVED) + return ..() + +// Checks to see if the pruno can ferment, i.e. is it inside a structure (e.g. toilet), or a machine (e.g. washer)? +// TODO: make it so the washer spills reagents if a reagent container is in there, for now, you can wash pruno + +/obj/item/reagent_containers/food/drinks/bottle/pruno/proc/check_fermentation() + if (!(istype(loc, /obj/machinery) || istype(loc, /obj/structure))) + if(fermentation_timer) + fermentation_time_remaining = timeleft(fermentation_timer) + deltimer(fermentation_timer) + fermentation_timer = null + return + if(fermentation_timer) + return + if(!fermentation_time_remaining) + fermentation_time_remaining = fermentation_time + fermentation_timer = addtimer(CALLBACK(src, .proc/do_fermentation), fermentation_time_remaining, TIMER_UNIQUE|TIMER_STOPPABLE) + fermentation_time_remaining = null + +// actually ferment + +/obj/item/reagent_containers/food/drinks/bottle/pruno/proc/do_fermentation() + fermentation_time_remaining = null + fermentation_timer = null + if(prob(10)) + reagents.add_reagent(/datum/reagent/toxin/bad_food, 15) // closest thing we have to botulism + reagents.add_reagent(/datum/reagent/consumable/ethanol/pruno, 35) + else + reagents.add_reagent(/datum/reagent/consumable/ethanol/pruno, 50) + name = "bag of pruno" + desc = "Fermented prison wine made from fruit, sugar, and despair. You probably shouldn't drink this around Security." + icon_state = "trashbag1" // pruno releases air as it ferments, we don't want to simulate this in atmos, but we can make it look like it did + for (var/mob/living/M in view(2, get_turf(src))) // letting people and/or narcs know when the pruno is done + to_chat(M, "A pungent smell emanates from [src], like fruit puking out its guts.") + playsound(get_turf(src), 'sound/effects/bubbles2.ogg', 25, TRUE) diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 2dfe521ff5a..09227e2c3d2 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -227,8 +227,6 @@ icon_state = "mayonnaise" list_reagents = list(/datum/reagent/consumable/mayonnaise = 50) - - //Food packs. To easily apply deadly toxi... delicious sauces to your food! /obj/item/reagent_containers/food/condiment/pack diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index 8f49b5286e6..841fb121686 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -42,6 +42,15 @@ customfoodfilling = 1 foodtype = GRAIN +/obj/item/reagent_containers/food/snacks/breadslice/moldy + name = "moldy bread slice" + desc = "Entire stations have been ripped apart over arguing whether this is still good to eat." + icon_state = "moldybreadslice" + customfoodfilling = 0 + bonus_reagents = list(/datum/reagent/consumable/mold = 10) + tastes = list("decaying fungus" = 1) + foodtype = GROSS + /obj/item/reagent_containers/food/snacks/store/bread/meat name = "meatbread loaf" desc = "The culinary base of every self-respecting eloquen/tg/entleman." diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm index 39589e8fa3b..f29e948adf4 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm @@ -102,3 +102,12 @@ ) result = /obj/item/reagent_containers/food/snacks/butterdog subcategory = CAT_BREAD + +/datum/crafting_recipe/food/moldybread // why would you make this? + name = "Moldy Bread" + reqs = list( + /obj/item/reagent_containers/food/snacks/breadslice/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/mushroom/amanita = 1 + ) + result = /obj/item/reagent_containers/food/snacks/breadslice/moldy + subcategory = CAT_BREAD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm index dbc46ea5ac8..e89bfa8d0fc 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm @@ -133,3 +133,13 @@ /obj/item/reagent_containers/food/drinks/bottle = 1) category = CAT_DRINK +/datum/crafting_recipe/pruno + name = "pruno mix" + result = /obj/item/reagent_containers/food/drinks/bottle/pruno + time = 30 + reqs = list(/obj/item/storage/bag/trash = 1, + /obj/item/reagent_containers/food/snacks/breadslice/moldy = 1, + /obj/item/reagent_containers/food/snacks/grown = 4, + /obj/item/reagent_containers/food/snacks/candy_corn = 2, + /datum/reagent/water = 15) + category = CAT_DRINK diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 3e3d61e03a2..312660bc93f 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -6,6 +6,7 @@ // Base type. Subtypes are found in /grown dir. Lavaland-based subtypes can be found in mining/ash_flora.dm /obj/item/reagent_containers/food/snacks/grown icon = 'icons/obj/hydroponics/harvest.dmi' + name = "fresh produce" // so recipe text doesn't say 'snack' var/obj/item/seeds/seed = null // type path, gets converted to item on New(). It's safe to assume it's always a seed item. var/plantname = "" var/bitesize_mod = 0 diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index d95cd03347d..6629e8f6cd9 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -2216,3 +2216,18 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "pina_colada" glass_name = "Pina Colada" glass_desc = "If you like pina coladas, and getting caught in the rain... well, you'll like this drink." + + +/datum/reagent/consumable/ethanol/pruno // pruno mix is in drink_reagents + name = "pruno" + color = "#E78108" + description = "Fermented prison wine made from fruit, sugar, and despair. Security loves to confiscate this, which is the only kind thing Security has ever done." + boozepwr = 85 + taste_description = "your tastebuds being individually shanked" + glass_icon_state = "glass_orange" + glass_name = "glass of pruno" + glass_desc = "Fermented prison wine made from fruit, sugar, and despair. Security loves to confiscate this, which is the only kind thing Security has ever done." + +/datum/reagent/consumable/ethanol/pruno/on_mob_life(mob/living/carbon/M) + M.adjust_disgust(5) + ..() diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index 5754b2f7c5a..8755b256b3d 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -890,3 +890,12 @@ glass_icon_state = "glass_yellow" glass_name = "glass of bungo juice" glass_desc = "Exotic! You feel like you are on vactation already." + +/datum/reagent/consumable/prunomix + name = "pruno mixture" + color = "#E78108" + description = "Fruit, sugar, yeast, and water pulped together into a pungent slurry." + taste_description = "garbage" + glass_icon_state = "glass_orange" + glass_name = "glass of pruno mixture" + glass_desc = "Fruit, sugar, yeast, and water pulped together into a pungent slurry." diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 1125bb3f68d..0a9eb9b7b3f 100755 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -562,6 +562,12 @@ color = "#DFDFDF" taste_description = "mayonnaise" +/datum/reagent/consumable/mold // yeah, ok, togopal, I guess you could call that a condiment + name = "Mold" + description = "This condiment will make any food break the mold. Or your stomach." + color ="#708a88" + taste_description = "rancid fungus" + /datum/reagent/consumable/tearjuice name = "Tear Juice" description = "A blinding substance extracted from certain onions." diff --git a/code/modules/vending/sustenance.dm b/code/modules/vending/sustenance.dm index 266a58e10ab..606ea8c7ca1 100644 --- a/code/modules/vending/sustenance.dm +++ b/code/modules/vending/sustenance.dm @@ -2,9 +2,10 @@ name = "\improper Sustenance Vendor" desc = "A vending machine which vends food, as required by section 47-C of the NT's Prisoner Ethical Treatment Agreement." product_slogans = "Enjoy your meal.;Enough calories to support strenuous labor." - product_ads = "Sufficiently healthy.;Efficiently produced tofu!;Mmm! So good!;Have a meal.;You need food to live!;Have some more candy corn!;Try our new ice cups!" + product_ads = "Sufficiently healthy.;Efficiently produced tofu!;Mmm! So good!;Have a meal.;You need food to live!;Even prisoners deserve their daily bread!;Have some more candy corn!;Try our new ice cups!" icon_state = "sustenance" products = list(/obj/item/reagent_containers/food/snacks/tofu/prison = 24, + /obj/item/reagent_containers/food/snacks/breadslice/moldy = 15, /obj/item/reagent_containers/food/drinks/ice/prison = 12, /obj/item/reagent_containers/food/snacks/candy_corn/prison = 6) contraband = list(/obj/item/kitchen/knife = 6, diff --git a/icons/obj/food/burgerbread.dmi b/icons/obj/food/burgerbread.dmi index 62ebffdf9edab0e76f2e65367177a9cb88441c9b..ee90f5ee2a3a7b11134e2819b3616c9a23672475 100644 GIT binary patch delta 17263 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 V{F09I4hH%oBdPeQLfkmue*w9?d|3bh