diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index 53389837a37..c9d0189719e 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -76,11 +76,11 @@ else if(fullness > 50 && fullness < 150) user.visible_message("[user] hungrily takes a [eatverb] from \the [src].", "You hungrily take a [eatverb] from \the [src].") else if(fullness > 150 && fullness < 500) - user.visible_message("[user] takes a [eatverb] from \the [src].", "You take a [eatverb] from \the [src].") + user.visible_message("[user] takes a [eatverb] from \the [src].", "You take a [eatverb] from \the [src].") else if(fullness > 500 && fullness < 600) user.visible_message("[user] unwillingly takes a [eatverb] of a bit of \the [src].", "You unwillingly take a [eatverb] of a bit of \the [src].") else if(fullness > (600 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat - user.visible_message("[user] cannot force any more of \the [src] to go down [user.p_their()] throat!", "You cannot force any more of \the [src] to go down your throat!") + user.visible_message("[user] cannot force any more of \the [src] to go down [user.p_their()] throat!", "You cannot force any more of \the [src] to go down your throat!") return 0 if(M.has_trait(TRAIT_VORACIOUS)) M.changeNext_move(CLICK_CD_MELEE * 0.5) //nom nom nom diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm new file mode 100644 index 00000000000..b88e6e1ebb3 --- /dev/null +++ b/code/modules/hydroponics/fermenting_barrel.dm @@ -0,0 +1,77 @@ +/obj/structure/fermenting_barrel + name = "wooden barrel" + desc = "A large wooden barrel. You can ferment fruits and such inside it, or just use it to hold liquid." + icon = 'icons/obj/objects.dmi' + icon_state = "barrel" + density = TRUE + anchored = FALSE + container_type = DRAINABLE | AMOUNT_VISIBLE + pressure_resistance = 2 * ONE_ATMOSPHERE + max_integrity = 300 + var/open = FALSE + var/speed_multiplier = 1 //How fast it distills. Defaults to 100% (1.0). Lower is better. + +/obj/structure/fermenting_barrel/Initialize() + create_reagents(300) //Bluespace beakers, but without the portability or efficiency in circuits. + . = ..() + +/obj/structure/fermenting_barrel/examine(mob/user) + . = ..() + to_chat(user, "It is currently [open?"open, letting you pour liquids in.":"closed, letting you draw liquids from the tap."]") + +/obj/structure/fermenting_barrel/proc/makeWine(obj/item/reagent_containers/food/snacks/grown/fruit) + if(fruit.reagents) + fruit.reagents.trans_to(src, fruit.reagents.total_volume) + var/amount = fruit.seed.potency / 4 + if(fruit.distill_reagent) + reagents.add_reagent(fruit.distill_reagent, amount) + else + var/data = list() + data["names"] = list("[initial(fruit.name)]" = 1) + data["color"] = fruit.filling_color + data["boozepwr"] = fruit.wine_power + if(fruit.wine_flavor) + data["tastes"] = list(fruit.wine_flavor = 1) + else + data["tastes"] = list(fruit.tastes[1] = 1) + reagents.add_reagent("fruit_wine", amount, data) + qdel(fruit) + playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE) + +/obj/structure/fermenting_barrel/attackby(obj/item/I, mob/user, params) + var/obj/item/reagent_containers/food/snacks/grown/fruit = I + if(istype(fruit)) + if(!fruit.can_distill) + to_chat(user, "You can't distill this into anything...") + return TRUE + else if(!user.transferItemToLoc(I,src)) + to_chat(user, "[I] is stuck to your hand!") + return TRUE + to_chat(user, "You place [I] into [src] to start the fermentation process.") + addtimer(CALLBACK(src, .proc/makeWine, fruit), rand(80, 120) * speed_multiplier) + return TRUE + else + return ..() + +/obj/structure/fermenting_barrel/attack_hand(mob/user) + open = !open + if(open) + container_type = REFILLABLE | AMOUNT_VISIBLE + to_chat(user, "You open [src], letting you fill it.") + else + container_type = DRAINABLE | AMOUNT_VISIBLE + to_chat(user, "You close [src], letting you draw from its tap.") + update_icon() + +/obj/structure/fermenting_barrel/update_icon() + if(open) + icon_state = "barrel_open" + else + icon_state = "barrel" + +/datum/crafting_recipe/fermenting_barrel + name = "Wooden Barrel" + result = /obj/structure/fermenting_barrel + reqs = list(/obj/item/stack/sheet/mineral/wood = 30) + time = 50 + category = CAT_PRIMAL diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 5b9c1f4e70f..096c7b5b2ba 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -16,6 +16,10 @@ // If you don't want a plant to be driable (watermelons) set this to null in the time definition. resistance_flags = FLAMMABLE var/dry_grind = FALSE //If TRUE, this object needs to be dry to be ground up + var/can_distill = TRUE //If FALSE, this object cannot be distilled into an alcohol. + var/distill_reagent //If NULL and this object can be distilled, it uses a generic fruit_wine reagent and adjusts its variables. + var/wine_flavor //If NULL, this is automatically set to the fruit's flavor. Determines the flavor of the wine if distill_reagent is NULL. + var/wine_power = 10 //Determines the boozepwr of the wine if distill_reagent is NULL. /obj/item/reagent_containers/food/snacks/grown/Initialize(mapload, obj/item/seeds/new_seed) . = ..() diff --git a/code/modules/hydroponics/grown/ambrosia.dm b/code/modules/hydroponics/grown/ambrosia.dm index 5883b4dd64a..a3b93db1ea2 100644 --- a/code/modules/hydroponics/grown/ambrosia.dm +++ b/code/modules/hydroponics/grown/ambrosia.dm @@ -31,6 +31,7 @@ seed = /obj/item/seeds/ambrosia name = "ambrosia vulgaris branch" desc = "This is a plant containing various healing chemicals." + wine_power = 30 // Ambrosia Deus /obj/item/seeds/ambrosia/deus @@ -50,6 +51,7 @@ desc = "Eating this makes you feel immortal!" icon_state = "ambrosiadeus" filling_color = "#008B8B" + wine_power = 50 //Ambrosia Gaia /obj/item/seeds/ambrosia/gaia @@ -73,3 +75,5 @@ filling_color = rgb(255, 175, 0) light_range = 3 seed = /obj/item/seeds/ambrosia/gaia + wine_power = 70 + wine_flavor = "the earthmother's blessing" diff --git a/code/modules/hydroponics/grown/apple.dm b/code/modules/hydroponics/grown/apple.dm index 47d288b6696..007c0b24542 100644 --- a/code/modules/hydroponics/grown/apple.dm +++ b/code/modules/hydroponics/grown/apple.dm @@ -26,6 +26,7 @@ foodtype = FRUIT juice_results = list("applejuice" = 0) tastes = list("apple" = 1) + distill_reagent = "hcider" // Gold Apple /obj/item/seeds/apple/gold @@ -47,3 +48,5 @@ desc = "Emblazoned upon the apple is the word 'Kallisti'." icon_state = "goldapple" filling_color = "#FFD700" + distill_reagent = null + wine_power = 50 diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index 4e29094df4d..166731accf9 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -25,6 +25,7 @@ bitesize = 5 foodtype = FRUIT juice_results = list("banana" = 0) + distill_reagent = "bananahonk" /obj/item/reagent_containers/food/snacks/grown/banana/suicide_act(mob/user) user.visible_message("[user] is aiming [src] at [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!") @@ -79,6 +80,7 @@ icon_state = "mimana" trash = /obj/item/grown/bananapeel/mimanapeel filling_color = "#FFFFEE" + distill_reagent = "silencer" /obj/item/grown/bananapeel/mimanapeel seed = /obj/item/seeds/banana/mime @@ -109,6 +111,8 @@ trash = /obj/item/grown/bananapeel/bluespace filling_color = "#0000FF" tastes = list("banana" = 1) + wine_power = 60 + wine_flavor = "slippery hypercubes" /obj/item/grown/bananapeel/bluespace seed = /obj/item/seeds/banana/bluespace diff --git a/code/modules/hydroponics/grown/beans.dm b/code/modules/hydroponics/grown/beans.dm index b9363d5a121..4338e3b0700 100644 --- a/code/modules/hydroponics/grown/beans.dm +++ b/code/modules/hydroponics/grown/beans.dm @@ -28,6 +28,7 @@ foodtype = VEGETABLES grind_results = list("soymilk" = 0) tastes = list("soy" = 1) + wine_power = 20 // Koibean /obj/item/seeds/soya/koi @@ -51,3 +52,4 @@ bitesize_mod = 2 foodtype = VEGETABLES tastes = list("koi" = 1) + wine_power = 40 diff --git a/code/modules/hydroponics/grown/berries.dm b/code/modules/hydroponics/grown/berries.dm index e8e6c52b7ac..19abdacf3ae 100644 --- a/code/modules/hydroponics/grown/berries.dm +++ b/code/modules/hydroponics/grown/berries.dm @@ -28,6 +28,7 @@ foodtype = FRUIT juice_results = list("berryjuice" = 0) tastes = list("berry" = 1) + distill_reagent = "gin" // Poison Berries /obj/item/seeds/berry/poison @@ -50,6 +51,8 @@ foodtype = FRUIT | TOXIC juice_results = list("poisonberryjuice" = 0) tastes = list("poison-berry" = 1) + distill_reagent = null + wine_power = 35 // Death Berries /obj/item/seeds/berry/death @@ -73,6 +76,8 @@ filling_color = "#708090" foodtype = FRUIT | TOXIC tastes = list("death-berry" = 1) + distill_reagent = null + wine_power = 50 // Glow Berries /obj/item/seeds/berry/glow @@ -97,6 +102,8 @@ filling_color = "#7CFC00" foodtype = FRUIT tastes = list("glow-berry" = 1) + distill_reagent = null + wine_power = 60 // Cherries /obj/item/seeds/cherry @@ -129,6 +136,7 @@ foodtype = FRUIT grind_results = list("cherryjelly" = 0) tastes = list("cherry" = 1) + wine_power = 30 // Blue Cherries /obj/item/seeds/cherry/blue @@ -152,6 +160,7 @@ foodtype = FRUIT grind_results = list("bluecherryjelly" = 0) tastes = list("blue cherry" = 1) + wine_power = 50 // Grapes /obj/item/seeds/grape @@ -185,6 +194,7 @@ foodtype = FRUIT juice_results = list("grapejuice" = 0) tastes = list("grape" = 1) + distill_reagent = "wine" // Green Grapes /obj/item/seeds/grape/green @@ -204,3 +214,4 @@ icon_state = "greengrapes" filling_color = "#7FFF00" tastes = list("green grape" = 1) + distill_reagent = "cognac" diff --git a/code/modules/hydroponics/grown/cannabis.dm b/code/modules/hydroponics/grown/cannabis.dm index c5bf77f6f9d..67c5e61dcf5 100644 --- a/code/modules/hydroponics/grown/cannabis.dm +++ b/code/modules/hydroponics/grown/cannabis.dm @@ -92,25 +92,28 @@ bitesize_mod = 2 foodtype = VEGETABLES //i dont really know what else weed could be to be honest tastes = list("cannabis" = 1) - + wine_power = 20 /obj/item/reagent_containers/food/snacks/grown/cannabis/rainbow seed = /obj/item/seeds/cannabis/rainbow name = "rainbow cannabis leaf" desc = "Is it supposed to be glowing like that...?" icon_state = "megacannabis" + wine_power = 60 /obj/item/reagent_containers/food/snacks/grown/cannabis/death seed = /obj/item/seeds/cannabis/death name = "death cannabis leaf" desc = "Looks a bit dark. Oh well." icon_state = "blackcannabis" + wine_power = 40 /obj/item/reagent_containers/food/snacks/grown/cannabis/white seed = /obj/item/seeds/cannabis/white name = "white cannabis leaf" desc = "It feels smooth and nice to the touch." icon_state = "whitecannabis" + wine_power = 10 /obj/item/reagent_containers/food/snacks/grown/cannabis/ultimate seed = /obj/item/seeds/cannabis/ultimate @@ -118,3 +121,4 @@ desc = "You feel dizzy looking at it. What the fuck?" icon_state = "ocannabis" volume = 420 + wine_power = 90 diff --git a/code/modules/hydroponics/grown/cereals.dm b/code/modules/hydroponics/grown/cereals.dm index acd3203ecc0..c53cd6718ac 100644 --- a/code/modules/hydroponics/grown/cereals.dm +++ b/code/modules/hydroponics/grown/cereals.dm @@ -24,6 +24,7 @@ foodtype = GRAIN grind_results = list("flour" = 0) tastes = list("wheat" = 1) + distill_reagent = "beer" // Oat /obj/item/seeds/wheat/oat @@ -46,6 +47,7 @@ foodtype = GRAIN grind_results = list("flour" = 0) tastes = list("oat" = 1) + distill_reagent = "ale" // Rice /obj/item/seeds/wheat/rice @@ -69,6 +71,7 @@ foodtype = GRAIN grind_results = list("rice" = 0) tastes = list("rice" = 1) + distill_reagent = "sake" //Meatwheat - grows into synthetic meat /obj/item/seeds/wheat/meat @@ -91,6 +94,7 @@ foodtype = MEAT | GRAIN grind_results = list("flour" = 0, "blood" = 0) tastes = list("meatwheat" = 1) + can_distill = FALSE /obj/item/reagent_containers/food/snacks/grown/meatwheat/attack_self(mob/living/user) user.visible_message("[user] crushes [src] into meat.", "You crush [src] into something that resembles meat.") diff --git a/code/modules/hydroponics/grown/chili.dm b/code/modules/hydroponics/grown/chili.dm index c01f3ba6efd..6325daacdcc 100644 --- a/code/modules/hydroponics/grown/chili.dm +++ b/code/modules/hydroponics/grown/chili.dm @@ -26,6 +26,7 @@ filling_color = "#FF0000" bitesize_mod = 2 foodtype = FRUIT + wine_power = 20 // Ice Chili /obj/item/seeds/chili/ice @@ -50,6 +51,7 @@ filling_color = "#0000CD" bitesize_mod = 2 foodtype = FRUIT + wine_power = 30 // Ghost Chili /obj/item/seeds/chili/ghost @@ -76,6 +78,7 @@ filling_color = "#F8F8FF" bitesize_mod = 4 foodtype = FRUIT + wine_power = 50 /obj/item/reagent_containers/food/snacks/grown/ghost_chili/attack_hand(mob/user) . = ..() diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index 30b4865a9d6..97b30aec062 100644 --- a/code/modules/hydroponics/grown/citrus.dm +++ b/code/modules/hydroponics/grown/citrus.dm @@ -6,6 +6,7 @@ icon_state = "lime" bitesize_mod = 2 foodtype = FRUIT + wine_power = 30 // Lime /obj/item/seeds/lime @@ -58,6 +59,7 @@ icon_state = "orange" filling_color = "#FFA500" juice_results = list("orangejuice" = 0) + distill_reagent = "triple_sec" // Lemon /obj/item/seeds/lemon @@ -109,6 +111,7 @@ icon_state = "firelemon" bitesize_mod = 2 foodtype = FRUIT + wine_power = 70 /obj/item/reagent_containers/food/snacks/grown/firelemon/attack_self(mob/living/user) user.visible_message("[user] primes [src]!", "You prime [src]!") diff --git a/code/modules/hydroponics/grown/cocoa_vanilla.dm b/code/modules/hydroponics/grown/cocoa_vanilla.dm index 12e235b1c33..ea1b9716bd1 100644 --- a/code/modules/hydroponics/grown/cocoa_vanilla.dm +++ b/code/modules/hydroponics/grown/cocoa_vanilla.dm @@ -27,6 +27,7 @@ bitesize_mod = 2 foodtype = FRUIT tastes = list("cocoa" = 1) + distill_reagent = "creme_de_cacao" // Vanilla Pod /obj/item/seeds/cocoapod/vanillapod @@ -48,3 +49,4 @@ filling_color = "#FFD700" foodtype = FRUIT tastes = list("vanilla" = 1) + distill_reagent = "vanilla" //Takes longer, but you can get even more vanilla from it. diff --git a/code/modules/hydroponics/grown/corn.dm b/code/modules/hydroponics/grown/corn.dm index 312dda8c26a..c259baaf2df 100644 --- a/code/modules/hydroponics/grown/corn.dm +++ b/code/modules/hydroponics/grown/corn.dm @@ -27,6 +27,7 @@ foodtype = VEGETABLES juice_results = list("corn_starch" = 0) tastes = list("corn" = 1) + distill_reagent = "whiskey" /obj/item/grown/corncob name = "corn cob" diff --git a/code/modules/hydroponics/grown/eggplant.dm b/code/modules/hydroponics/grown/eggplant.dm index 9615b7acb28..0e16b02e66c 100644 --- a/code/modules/hydroponics/grown/eggplant.dm +++ b/code/modules/hydroponics/grown/eggplant.dm @@ -23,6 +23,7 @@ filling_color = "#800080" bitesize_mod = 2 foodtype = FRUIT + wine_power = 20 // Egg-Plant /obj/item/seeds/eggplant/eggy @@ -44,3 +45,4 @@ filling_color = "#F8F8FF" bitesize_mod = 2 foodtype = MEAT + distill_reagent = "eggnog" diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm index c2698c13672..4e1718f853e 100644 --- a/code/modules/hydroponics/grown/flowers.dm +++ b/code/modules/hydroponics/grown/flowers.dm @@ -26,6 +26,7 @@ filling_color = "#FF6347" bitesize_mod = 3 foodtype = VEGETABLES | GROSS + distill_reagent = "vermouth" // Lily /obj/item/seeds/poppy/lily @@ -61,7 +62,6 @@ icon_state = "geranium" filling_color = "#008B8B" - // Harebell /obj/item/seeds/harebell name = "pack of harebell seeds" @@ -89,7 +89,7 @@ slot_flags = ITEM_SLOT_HEAD filling_color = "#E6E6FA" bitesize_mod = 3 - + distill_reagent = "vermouth" // Sunflower /obj/item/seeds/sunflower @@ -152,6 +152,7 @@ slot_flags = ITEM_SLOT_HEAD filling_color = "#E6E6FA" bitesize_mod = 2 + distill_reagent = "absinthe" //It's made from flowers. // Novaflower /obj/item/seeds/sunflower/novaflower diff --git a/code/modules/hydroponics/grown/grass_carpet.dm b/code/modules/hydroponics/grown/grass_carpet.dm index 8e55f8a15d9..1a1c2ac07fa 100644 --- a/code/modules/hydroponics/grown/grass_carpet.dm +++ b/code/modules/hydroponics/grown/grass_carpet.dm @@ -27,6 +27,7 @@ bitesize_mod = 2 var/stacktype = /obj/item/stack/tile/grass var/tile_coefficient = 0.02 // 1/50 + wine_power = 15 /obj/item/reagent_containers/food/snacks/grown/grass/attack_self(mob/user) to_chat(user, "You prepare the astroturf.") @@ -56,3 +57,4 @@ desc = "The textile industry's dark secret." icon_state = "carpetclump" stacktype = /obj/item/stack/tile/carpet + can_distill = FALSE diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm index e9dec09799d..6ceb69536dc 100644 --- a/code/modules/hydroponics/grown/kudzu.dm +++ b/code/modules/hydroponics/grown/kudzu.dm @@ -104,3 +104,4 @@ bitesize_mod = 2 foodtype = VEGETABLES | GROSS tastes = list("kudzu" = 1) + wine_power = 20 diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm index 7497a10ffbf..29691c32891 100644 --- a/code/modules/hydroponics/grown/melon.dm +++ b/code/modules/hydroponics/grown/melon.dm @@ -34,6 +34,7 @@ bitesize_mod = 3 foodtype = FRUIT juice_results = list("watermelonjuice" = 0) + wine_power = 40 // Holymelon /obj/item/seeds/watermelon/holy @@ -54,6 +55,8 @@ icon_state = "holymelon" filling_color = "#FFD700" dried_type = null + wine_power = 70 //Water to wine, baby. + wine_flavor = "divinity" /obj/item/reagent_containers/food/snacks/grown/holymelon/Initialize() . = ..() diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index 82ff56e7c93..107a6a94f94 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -55,7 +55,7 @@ filling_color = "#90EE90" bitesize_mod = 2 foodtype = VEGETABLES - + wine_power = 20 // Sugarcane /obj/item/seeds/sugarcane @@ -81,7 +81,7 @@ filling_color = "#FFD700" bitesize_mod = 2 foodtype = VEGETABLES | SUGAR - + distill_reagent = "rum" // Gatfruit /obj/item/seeds/gatfruit @@ -112,6 +112,7 @@ bitesize_mod = 2 foodtype = FRUIT tastes = list("gunpowder" = 1) + wine_power = 90 //It burns going down, too. //Cherry Bombs /obj/item/seeds/cherry/bomb @@ -134,6 +135,7 @@ bitesize_mod = 2 volume = 125 //Gives enough room for the black powder at max potency max_integrity = 40 + wine_power = 80 /obj/item/reagent_containers/food/snacks/grown/cherry_bomb/attack_self(mob/living/user) user.visible_message("[user] plucks the stem from [src]!", "You pluck the stem from [src], which begins to hiss loudly!") diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm index fddcb5b1fce..fe2beb896c5 100644 --- a/code/modules/hydroponics/grown/mushrooms.dm +++ b/code/modules/hydroponics/grown/mushrooms.dm @@ -2,7 +2,7 @@ name = "mushroom" bitesize_mod = 2 foodtype = VEGETABLES - + wine_power = 40 // Reishi /obj/item/seeds/reishi @@ -56,7 +56,6 @@ icon_state = "amanita" filling_color = "#FF0000" - // Destroying Angel /obj/item/seeds/angel name = "pack of destroying angel mycelium" @@ -83,7 +82,7 @@ desc = "Amanita Virosa: Deadly poisonous basidiomycete fungus filled with alpha amatoxins." icon_state = "angel" filling_color = "#C0C0C0" - + wine_power = 60 // Liberty Cap /obj/item/seeds/liberty @@ -108,7 +107,7 @@ desc = "Psilocybe Semilanceata: Liberate yourself!" icon_state = "libertycap" filling_color = "#DAA520" - + wine_power = 80 // Plump Helmet /obj/item/seeds/plump @@ -134,7 +133,7 @@ desc = "Plumus Hellmus: Plump, soft and s-so inviting~" icon_state = "plumphelmet" filling_color = "#9370DB" - + distill_reagent = "manlydorf" // Walking Mushroom /obj/item/seeds/plump/walkingmushroom @@ -159,6 +158,7 @@ desc = "Plumus Locomotus: The beginning of the great walk." icon_state = "walkingmushroom" filling_color = "#9370DB" + can_distill = FALSE /obj/item/reagent_containers/food/snacks/grown/mushroom/walkingmushroom/attack_self(mob/user) if(isspaceturf(user.loc)) @@ -228,6 +228,7 @@ icon_state = "glowshroom" filling_color = "#00FA9A" var/effect_path = /obj/structure/glowshroom + wine_power = 50 /obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom/attack_self(mob/user) if(isspaceturf(user.loc)) @@ -298,6 +299,7 @@ icon_state = "shadowshroom" effect_path = /obj/structure/glowshroom/shadowshroom tastes = list("shadow" = 1, "mushroom" = 1) + wine_power = 60 /obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom/shadowshroom/attack_self(mob/user) . = ..() diff --git a/code/modules/hydroponics/grown/onion.dm b/code/modules/hydroponics/grown/onion.dm index 9b957ae7449..9cb8d1a63c6 100644 --- a/code/modules/hydroponics/grown/onion.dm +++ b/code/modules/hydroponics/grown/onion.dm @@ -26,6 +26,7 @@ tastes = list("onions" = 1) slice_path = /obj/item/reagent_containers/food/snacks/onion_slice slices_num = 2 + wine_power = 30 /obj/item/seeds/onion/red name = "pack of red onion seeds" @@ -44,6 +45,7 @@ icon_state = "onion_red" filling_color = "#C29ACF" slice_path = /obj/item/reagent_containers/food/snacks/onion_slice/red + wine_power = 60 /obj/item/reagent_containers/food/snacks/grown/onion/slice(accuracy, obj/item/W, mob/user) var/datum/effect_system/smoke_spread/chem/S = new //Since the onion is destroyed when it's sliced, diff --git a/code/modules/hydroponics/grown/pineapple.dm b/code/modules/hydroponics/grown/pineapple.dm index 7b58c7553d8..e52c261217b 100644 --- a/code/modules/hydroponics/grown/pineapple.dm +++ b/code/modules/hydroponics/grown/pineapple.dm @@ -31,3 +31,4 @@ w_class = WEIGHT_CLASS_NORMAL foodtype = FRUIT | PINEAPPLE tastes = list("pineapple" = 1) + wine_power = 40 diff --git a/code/modules/hydroponics/grown/potato.dm b/code/modules/hydroponics/grown/potato.dm index 4d1d916572b..15378b368e7 100644 --- a/code/modules/hydroponics/grown/potato.dm +++ b/code/modules/hydroponics/grown/potato.dm @@ -27,7 +27,7 @@ bitesize = 100 foodtype = VEGETABLES juice_results = list("potato" = 0) - + distill_reagent = "vodka" /obj/item/reagent_containers/food/snacks/grown/potato/wedges name = "potato wedges" @@ -64,3 +64,4 @@ name = "sweet potato" desc = "It's sweet." icon_state = "sweetpotato" + distill_reagent = "sbiten" diff --git a/code/modules/hydroponics/grown/pumpkin.dm b/code/modules/hydroponics/grown/pumpkin.dm index 2b0ffddfe74..644dedff3d0 100644 --- a/code/modules/hydroponics/grown/pumpkin.dm +++ b/code/modules/hydroponics/grown/pumpkin.dm @@ -25,6 +25,7 @@ bitesize_mod = 2 foodtype = FRUIT juice_results = list("pumpkinjuice" = 0) + wine_power = 20 /obj/item/reagent_containers/food/snacks/grown/pumpkin/attackby(obj/item/W as obj, mob/user as mob, params) if(W.is_sharp()) @@ -56,3 +57,4 @@ bitesize_mod = 2 foodtype = FRUIT juice_results = list("blumpkinjuice" = 0) + wine_power = 50 diff --git a/code/modules/hydroponics/grown/random.dm b/code/modules/hydroponics/grown/random.dm index 04b3ff29fa9..75505202da1 100644 --- a/code/modules/hydroponics/grown/random.dm +++ b/code/modules/hydroponics/grown/random.dm @@ -26,4 +26,10 @@ name = "strange plant" desc = "What could this even be?" icon_state = "crunchy" - bitesize_mod = 2 \ No newline at end of file + bitesize_mod = 2 + +/obj/item/reagent_containers/food/snacks/grown/random/Initialize() + . = ..() + wine_power = rand(10,150) + if(prob(1)) + wine_power = 200 diff --git a/code/modules/hydroponics/grown/root.dm b/code/modules/hydroponics/grown/root.dm index fd78fa6ffae..be0a209c9f9 100644 --- a/code/modules/hydroponics/grown/root.dm +++ b/code/modules/hydroponics/grown/root.dm @@ -23,6 +23,7 @@ bitesize_mod = 2 foodtype = VEGETABLES juice_results = list("carrotjuice" = 0) + wine_power = 30 /obj/item/reagent_containers/food/snacks/grown/carrot/attackby(obj/item/I, mob/user, params) if(I.is_sharp()) @@ -53,6 +54,7 @@ icon_state = "parsnip" bitesize_mod = 2 foodtype = VEGETABLES + wine_power = 35 // White-Beet @@ -79,6 +81,7 @@ filling_color = "#F4A460" bitesize_mod = 2 foodtype = VEGETABLES + wine_power = 40 // Red Beet /obj/item/seeds/redbeet @@ -103,3 +106,4 @@ icon_state = "redbeet" bitesize_mod = 2 foodtype = VEGETABLES + wine_power = 60 diff --git a/code/modules/hydroponics/grown/tea_coffee.dm b/code/modules/hydroponics/grown/tea_coffee.dm index fc2ed221c54..fc84617ed8f 100644 --- a/code/modules/hydroponics/grown/tea_coffee.dm +++ b/code/modules/hydroponics/grown/tea_coffee.dm @@ -23,6 +23,7 @@ filling_color = "#008000" grind_results = list("teapowder" = 0) dry_grind = TRUE + can_distill = FALSE // Tea Astra /obj/item/seeds/tea/astra @@ -71,6 +72,7 @@ bitesize_mod = 2 dry_grind = TRUE grind_results = list("coffeepowder" = 0) + distill_reagent = "kahlua" // Coffee Robusta /obj/item/seeds/coffee/robusta diff --git a/code/modules/hydroponics/grown/tobacco.dm b/code/modules/hydroponics/grown/tobacco.dm index 3258e7ea4f4..684271fa6b4 100644 --- a/code/modules/hydroponics/grown/tobacco.dm +++ b/code/modules/hydroponics/grown/tobacco.dm @@ -21,6 +21,7 @@ desc = "Dry them out to make some smokes." icon_state = "tobacco_leaves" filling_color = "#008000" + distill_reagent = "creme_de_menthe" //Menthol, I guess. // Space Tobacco /obj/item/seeds/tobacco/space @@ -38,4 +39,6 @@ seed = /obj/item/seeds/tobacco/space name = "space tobacco leaves" desc = "Dry them out to make some space-smokes." - icon_state = "stobacco_leaves" \ No newline at end of file + icon_state = "stobacco_leaves" + distill_reagent = null + wine_power = 50 \ No newline at end of file diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm index 0f5b969b3be..767de8011a0 100644 --- a/code/modules/hydroponics/grown/tomato.dm +++ b/code/modules/hydroponics/grown/tomato.dm @@ -25,6 +25,7 @@ foodtype = FRUIT grind_results = list("ketchup" = 0) juice_results = list("tomatojuice" = 0) + distill_reagent = "enzyme" // Blood Tomato /obj/item/seeds/tomato/blood @@ -47,7 +48,7 @@ filling_color = "#FF0000" foodtype = FRUIT | GROSS grind_results = list("ketchup" = 0, "blood" = 0) - + distill_reagent = "bloodymary" // Blue Tomato /obj/item/seeds/tomato/blue @@ -71,7 +72,7 @@ icon_state = "bluetomato" splat_type = /obj/effect/decal/cleanable/oil filling_color = "#0000FF" - + distill_reagent = "laughter" // Bluespace Tomato /obj/item/seeds/tomato/blue/bluespace @@ -92,7 +93,8 @@ name = "bluespace tomato" desc = "So lubricated, you might slip through space-time." icon_state = "bluespacetomato" - + distill_reagent = null + wine_power = 80 // Killer Tomato /obj/item/seeds/tomato/killer @@ -118,6 +120,7 @@ icon_state = "killertomato" var/awakening = 0 filling_color = "#FF0000" + distill_reagent = "demonsblood" /obj/item/reagent_containers/food/snacks/grown/tomato/killer/attack(mob/M, mob/user, def_zone) if(awakening) diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index 988c2242796..540a012df1a 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -152,6 +152,7 @@ resistance_flags = FLAMMABLE max_integrity = 100 seed = /obj/item/seeds/lavaland/polypore + wine_power = 20 /obj/item/reagent_containers/food/snacks/grown/ash_flora/Initialize() . = ..() @@ -167,7 +168,7 @@ list_reagents = list("nutriment" = 3, "vitfro" = 2, "nicotine" = 2) icon_state = "mushroom_leaf" seed = /obj/item/seeds/lavaland/porcini - + wine_power = 40 /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap name = "mushroom cap" @@ -175,7 +176,7 @@ list_reagents = list("mindbreaker" = 2, "entpoly" = 4, "mushroomhallucinogen" = 2) icon_state = "mushroom_cap" seed = /obj/item/seeds/lavaland/inocybe - + wine_power = 70 /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem name = "mushroom stem" @@ -184,6 +185,7 @@ icon_state = "mushroom_stem" light_range = 1 seed = /obj/item/seeds/lavaland/ember + wine_power = 60 /obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit name = "cactus fruit" @@ -191,6 +193,7 @@ desc = "A cactus fruit covered in a thick, reddish skin. And some ash." icon_state = "cactus_fruit" seed = /obj/item/seeds/lavaland/cactus + wine_power = 50 /obj/item/reagent_containers/glass/bowl/mushroom_bowl name = "mushroom bowl" diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 3e3282fb898..252f349a9f0 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -1749,3 +1749,107 @@ All effects don't start immediately, but rather get worse over time; the rate is M.adjustStaminaLoss(35) . = TRUE ..() + +/datum/reagent/consumable/ethanol/fruit_wine + name = "Fruit Wine" + id = "fruit_wine" + description = "A wine made from grown plants." + color = "#FFFFFF" + boozepwr = 35 + taste_description = "bad coding" + can_synth = FALSE + var/list/names = list("null fruit" = 1) //Names of the fruits used. Associative list where name is key, value is the percentage of that fruit. + var/list/tastes = list("bad coding" = 1) //List of tastes. See above. + +/datum/reagent/consumable/ethanol/fruit_wine/on_new(list/data) + names = data["names"] + tastes = data["tastes"] + boozepwr = data["boozepwr"] + color = data["color"] + generate_data_info(data) + +/datum/reagent/consumable/ethanol/fruit_wine/on_merge(list/data, amount) + var/diff = (amount/volume) + if(diff < 1) + color = BlendRGB(color, data["color"], diff/2) //The percentage difference over two, so that they take average if equal. + else + color = BlendRGB(color, data["color"], (1/diff)/2) //Adjust so it's always blending properly. + var/oldvolume = volume-amount + + var/list/cachednames = data["names"] + for(var/name in names | cachednames) + names[name] = ((names[name] * oldvolume) + (cachednames[name] * amount)) / volume + + var/list/cachedtastes = data["tastes"] + for(var/taste in tastes | cachedtastes) + tastes[taste] = ((tastes[taste] * oldvolume) + (cachedtastes[taste] * amount)) / volume + + boozepwr *= oldvolume + var/newzepwr = data["boozepwr"] * amount + boozepwr += newzepwr + boozepwr /= volume //Blending boozepwr to volume. + generate_data_info(data) + +/datum/reagent/consumable/ethanol/fruit_wine/proc/generate_data_info(list/data) + var/minimum_percent = 0.15 //Percentages measured between 0 and 1. + var/list/primary_tastes = list() + var/list/secondary_tastes = list() + glass_name = "glass of [name]" + glass_desc = description + for(var/taste in tastes) + switch(tastes[taste]) + if(minimum_percent*2 to INFINITY) + primary_tastes += taste + if(minimum_percent to minimum_percent*2) + secondary_tastes += taste + + var/minimum_name_percent = 0.35 + name = "" + var/list/names_in_order = sortTim(names, /proc/cmp_numeric_dsc, TRUE) + var/named = FALSE + for(var/fruit_name in names) + if(names[fruit_name] >= minimum_name_percent) + name += "[fruit_name] " + named = TRUE + if(named) + name += "wine" + else + name = "mixed [names_in_order[1]] wine" + + var/alcohol_description + switch(boozepwr) + if(120 to INFINITY) + alcohol_description = "suicidally strong" + if(90 to 120) + alcohol_description = "rather strong" + if(70 to 90) + alcohol_description = "strong" + if(40 to 70) + alcohol_description = "rich" + if(20 to 40) + alcohol_description = "mild" + if(0 to 20) + alcohol_description = "sweet" + else + alcohol_description = "watery" //How the hell did you get negative boozepwr? + + var/list/fruits = list() + if(names_in_order.len <= 3) + fruits = names_in_order + else + for(var/i in 1 to 3) + fruits += names_in_order[i] + fruits += "other plants" + var/fruit_list = english_list(fruits) + description = "A [alcohol_description] wine brewed from [fruit_list]." + + var/flavor = "" + if(!primary_tastes.len) + primary_tastes = list("[alcohol_description] alcohol") + flavor += english_list(primary_tastes) + if(secondary_tastes.len) + flavor += ", with a hint of " + flavor += english_list(secondary_tastes) + taste_description = flavor + if(holder.my_atom) + holder.my_atom.on_reagent_change() diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index a6e6d3b6f74..5dd724cee9a 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 00b6f41b0ff..5323fab0855 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -1596,6 +1596,7 @@ #include "code\modules\holodeck\mobs.dm" #include "code\modules\holodeck\turfs.dm" #include "code\modules\hydroponics\biogenerator.dm" +#include "code\modules\hydroponics\fermenting_barrel.dm" #include "code\modules\hydroponics\gene_modder.dm" #include "code\modules\hydroponics\grown.dm" #include "code\modules\hydroponics\growninedible.dm"