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
This commit is contained in:
spessbandit
2020-03-09 15:29:58 +08:00
committed by GitHub
parent f3dc65e5f3
commit a3a3b29719
17 changed files with 252 additions and 119 deletions
@@ -537,3 +537,55 @@
to_chat(user, "<span class='info'>You snuff out the flame on [src].</span>")
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, "<span class='info'>A pungent smell emanates from [src], like fruit puking out its guts.</span>")
playsound(get_turf(src), 'sound/effects/bubbles2.ogg', 25, TRUE)
@@ -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
@@ -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."
@@ -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
@@ -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
+1
View File
@@ -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
@@ -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)
..()
@@ -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."
@@ -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."
+2 -1
View File
@@ -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,