mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 11:07:12 +01:00
Merge pull request #10078 from variableundefined/FermentationBarrel
[READY] Port Fel's fermentation barrel from tg
This commit is contained in:
@@ -62,7 +62,7 @@
|
||||
if(!proximity)
|
||||
return
|
||||
|
||||
if(target.is_open_container()) //Something like a glass. Player probably wants to transfer TO it.
|
||||
if(target.is_refillable() && is_drainable()) //Something like a glass. Player probably wants to transfer TO it.
|
||||
if(!reagents.total_volume)
|
||||
to_chat(user, "<span class='warning'> [src] is empty.</span>")
|
||||
return FALSE
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
/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, "<span class='notice'>It is currently [open ? "open, letting you pour liquids in." : "closed, letting you draw liquids from the tap."] </span>")
|
||||
|
||||
/obj/structure/fermenting_barrel/proc/makeWine(obj/item/reagent_containers/food/snacks/grown/G)
|
||||
if(G.reagents)
|
||||
G.reagents.trans_to(src, G.reagents.total_volume)
|
||||
var/amount = G.seed.potency / 4
|
||||
if(G.distill_reagent)
|
||||
reagents.add_reagent(G.distill_reagent, amount)
|
||||
else
|
||||
var/data = list()
|
||||
data["names"] = list("[initial(G.name)]" = 1)
|
||||
data["color"] = G.filling_color
|
||||
data["alcohol_perc"] = G.wine_power
|
||||
if(G.wine_flavor)
|
||||
data["tastes"] = list(G.wine_flavor = 1)
|
||||
// else // Stub - Will implement when we port over tg's better taste system - I'd rather get the barrel in first.
|
||||
// data["tastes"] = list(G.tastes[1] = 1)
|
||||
reagents.add_reagent("fruit_wine", amount, data)
|
||||
qdel(G)
|
||||
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/G = I
|
||||
if(istype(G))
|
||||
if(!G.can_distill)
|
||||
to_chat(user, "<span class='warning'>You can't distill this into anything...</span>")
|
||||
return FALSE
|
||||
else if(!user.drop_item())
|
||||
to_chat(user, "<span class='warning'>[G] is stuck to your hand!</span>")
|
||||
return FALSE
|
||||
G.forceMove(src)
|
||||
to_chat(user, "<span class='notice'>You place [G] into [src] to start the fermentation process.</span>")
|
||||
addtimer(CALLBACK(src, .proc/makeWine, G), rand(80, 120) * speed_multiplier)
|
||||
else if(I.is_refillable())
|
||||
return FALSE // To refill via afterattack proc
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/structure/fermenting_barrel/attack_hand(mob/user)
|
||||
open = !open
|
||||
if(open)
|
||||
container_type = REFILLABLE | AMOUNT_VISIBLE
|
||||
to_chat(user, "<span class='notice'>You open [src], letting you fill it.</span>")
|
||||
else
|
||||
container_type = DRAINABLE | AMOUNT_VISIBLE
|
||||
to_chat(user, "<span class='notice'>You close [src], letting you draw from its tap.</span>")
|
||||
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/wood = 30)
|
||||
time = 50
|
||||
category = CAT_PRIMAL
|
||||
@@ -8,12 +8,13 @@
|
||||
icon = 'icons/obj/hydroponics/harvest.dmi'
|
||||
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
|
||||
var/bitesize_mod = 0 // If set, bitesize = 1 + round(reagents.total_volume / bitesize_mod)
|
||||
var/splat_type = /obj/effect/decal/cleanable/plant_smudge
|
||||
// If set, bitesize = 1 + round(reagents.total_volume / bitesize_mod)
|
||||
dried_type = -1
|
||||
// Saves us from having to define each stupid grown's dried_type as itself.
|
||||
// If you don't want a plant to be driable (watermelons) set this to null in the time definition.
|
||||
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 = 0.1 //Determines the boozepwr of the wine if distill_reagent is NULL. Uses 0.1 - 1.2 not tg's boozepower (divide by 100) else you'll end up with 1000% proof alcohol!
|
||||
dried_type = -1 // Saves us from having to define each stupid grown's dried_type as itself. If you don't want a plant to be driable (watermelons) set this to null in the time definition.
|
||||
burn_state = FLAMMABLE
|
||||
origin_tech = "biotech=1"
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
name = "ambrosia vulgaris branch"
|
||||
desc = "This is a plant containing various healing chemicals."
|
||||
origin_tech = "biotech=2"
|
||||
wine_power = 0.2
|
||||
|
||||
// Ambrosia Deus
|
||||
/obj/item/seeds/ambrosia/deus
|
||||
@@ -50,6 +51,7 @@
|
||||
icon_state = "ambrosiadeus"
|
||||
filling_color = "#008B8B"
|
||||
origin_tech = "biotech=4;materials=3"
|
||||
wine_power = 0.5
|
||||
|
||||
//Ambrosia Gaia
|
||||
/obj/item/seeds/ambrosia/gaia
|
||||
@@ -74,6 +76,8 @@
|
||||
origin_tech = "biotech=6;materials=5"
|
||||
light_range = 3
|
||||
seed = /obj/item/seeds/ambrosia/gaia
|
||||
wine_power = 0.7
|
||||
wine_flavor = "the earthmother's blessing"
|
||||
|
||||
// Ambrosia Cruciatus
|
||||
/obj/item/seeds/ambrosia/cruciatus
|
||||
@@ -83,4 +87,5 @@
|
||||
reagents_add = list("thc" = 0.15, "kelotane" = 0.15, "bicaridine" = 0.1, "bath_salts" = 0.20, "plantmatter" = 0.05)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/ambrosia/cruciatus
|
||||
seed = /obj/item/seeds/ambrosia/cruciatus
|
||||
seed = /obj/item/seeds/ambrosia/cruciatus
|
||||
wine_power = 0.7
|
||||
@@ -23,6 +23,7 @@
|
||||
icon_state = "apple"
|
||||
filling_color = "#FF4500"
|
||||
bitesize = 100 // Always eat the apple in one bite
|
||||
distill_reagent = "hcider"
|
||||
|
||||
// Posioned Apple
|
||||
/obj/item/seeds/apple/poisoned
|
||||
@@ -55,3 +56,5 @@
|
||||
icon_state = "goldapple"
|
||||
filling_color = "#FFD700"
|
||||
origin_tech = "biotech=4;materials=5"
|
||||
distill_reagent = null
|
||||
wine_power = 0.5
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
trash = /obj/item/grown/bananapeel
|
||||
filling_color = "#FFFF00"
|
||||
bitesize = 5
|
||||
distill_reagent = "bananahonk"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/banana/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is aiming the [name] at [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide.</span>")
|
||||
@@ -74,6 +75,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
|
||||
@@ -102,6 +104,8 @@
|
||||
trash = /obj/item/grown/bananapeel/bluespace
|
||||
filling_color = "#0000FF"
|
||||
origin_tech = "biotech=3;bluespace=5"
|
||||
wine_power = 0.6
|
||||
wine_flavor = "slippery hypercubes"
|
||||
|
||||
/obj/item/grown/bananapeel/bluespace
|
||||
seed = /obj/item/seeds/banana/bluespace
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
icon_state = "soybeans"
|
||||
filling_color = "#F0E68C"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.2
|
||||
|
||||
// Koibean
|
||||
/obj/item/seeds/soya/koi
|
||||
@@ -45,4 +46,5 @@
|
||||
desc = "Something about these seems fishy."
|
||||
icon_state = "koibeans"
|
||||
filling_color = "#F0E68C"
|
||||
bitesize_mod = 2
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.4
|
||||
@@ -25,6 +25,7 @@
|
||||
gender = PLURAL
|
||||
filling_color = "#FF00FF"
|
||||
bitesize_mod = 2
|
||||
distill_reagent = "gin"
|
||||
|
||||
// Poison Berries
|
||||
/obj/item/seeds/berry/poison
|
||||
@@ -44,6 +45,8 @@
|
||||
desc = "Taste so good, you could die!"
|
||||
icon_state = "poisonberrypile"
|
||||
filling_color = "#C71585"
|
||||
distill_reagent = null
|
||||
wine_power = 0.35
|
||||
|
||||
// Death Berries
|
||||
/obj/item/seeds/berry/death
|
||||
@@ -65,6 +68,8 @@
|
||||
desc = "Taste so good, you could die!"
|
||||
icon_state = "deathberrypile"
|
||||
filling_color = "#708090"
|
||||
distill_reagent = null
|
||||
wine_power = 0.5
|
||||
|
||||
// Glow Berries
|
||||
/obj/item/seeds/berry/glow
|
||||
@@ -89,6 +94,9 @@
|
||||
filling_color = "#7CFC00"
|
||||
origin_tech = "plasmatech=6"
|
||||
light_color = "#006622"
|
||||
distill_reagent = null
|
||||
wine_power = 0.6
|
||||
wine_flavor = "warmth"
|
||||
|
||||
// Cherries
|
||||
/obj/item/seeds/cherry
|
||||
@@ -118,6 +126,7 @@
|
||||
gender = PLURAL
|
||||
filling_color = "#FF0000"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.3
|
||||
|
||||
// Blue Cherries
|
||||
/obj/item/seeds/cherry/blue
|
||||
@@ -138,6 +147,7 @@
|
||||
icon_state = "bluecherry"
|
||||
filling_color = "#6495ED"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.5
|
||||
|
||||
// Grapes
|
||||
/obj/item/seeds/grape
|
||||
@@ -168,6 +178,7 @@
|
||||
dried_type = /obj/item/reagent_containers/food/snacks/no_raisin
|
||||
filling_color = "#FF1493"
|
||||
bitesize_mod = 2
|
||||
distill_reagent = "wine"
|
||||
|
||||
// Green Grapes
|
||||
/obj/item/seeds/grape/green
|
||||
@@ -186,3 +197,4 @@
|
||||
name = "bunch of green grapes"
|
||||
icon_state = "greengrapes"
|
||||
filling_color = "#7FFF00"
|
||||
distill_reagent = "cognac"
|
||||
|
||||
@@ -93,6 +93,7 @@
|
||||
icon_state = "cannabis"
|
||||
filling_color = "#00FF00"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.2
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/cannabis/rainbow
|
||||
@@ -100,18 +101,21 @@
|
||||
name = "rainbow cannabis leaf"
|
||||
desc = "Is it supposed to be glowing like that...?"
|
||||
icon_state = "megacannabis"
|
||||
wine_power = 0.6
|
||||
|
||||
/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 = 0.4
|
||||
|
||||
/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 = 0.1
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/cannabis/ultimate
|
||||
seed = /obj/item/seeds/cannabis/ultimate
|
||||
@@ -119,3 +123,4 @@
|
||||
desc = "You feel dizzy looking at it. What the fuck?"
|
||||
icon_state = "ocannabis"
|
||||
volume = 420
|
||||
wine_power = 0.9
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
icon_state = "wheat"
|
||||
filling_color = "#F0E68C"
|
||||
bitesize_mod = 2
|
||||
distill_reagent = "beer"
|
||||
|
||||
// Oat
|
||||
/obj/item/seeds/wheat/oat
|
||||
@@ -40,6 +41,7 @@
|
||||
icon_state = "oat"
|
||||
filling_color = "#556B2F"
|
||||
bitesize_mod = 2
|
||||
distill_reagent = "ale"
|
||||
|
||||
// Rice
|
||||
/obj/item/seeds/wheat/rice
|
||||
@@ -60,6 +62,7 @@
|
||||
icon_state = "rice"
|
||||
filling_color = "#FAFAD2"
|
||||
bitesize_mod = 2
|
||||
distill_reagent = "sake"
|
||||
|
||||
//Meatwheat - grows into synthetic meat
|
||||
/obj/item/seeds/wheat/meat
|
||||
@@ -80,6 +83,7 @@
|
||||
filling_color = rgb(150, 0, 0)
|
||||
bitesize_mod = 2
|
||||
seed = /obj/item/seeds/wheat/meat
|
||||
can_distill = FALSE
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/meatwheat/attack_self(mob/living/user)
|
||||
user.visible_message("<span class='notice'>[user] crushes [src] into meat.</span>", "<span class='notice'>You crush [src] into something that resembles meat.</span>")
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
icon_state = "chilipepper"
|
||||
filling_color = "#FF0000"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.2
|
||||
|
||||
// Ice Chili
|
||||
/obj/item/seeds/chili/ice
|
||||
@@ -49,6 +50,7 @@
|
||||
filling_color = "#0000CD"
|
||||
bitesize_mod = 2
|
||||
origin_tech = "biotech=4"
|
||||
wine_power = 0.3
|
||||
|
||||
// Ghost Chili
|
||||
/obj/item/seeds/chili/ghost
|
||||
@@ -74,3 +76,4 @@
|
||||
filling_color = "#F8F8FF"
|
||||
bitesize_mod = 4
|
||||
origin_tech = "biotech=4;magnets=5"
|
||||
wine_power = 0.5
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
desc = "It's so sour, your face will twist."
|
||||
icon_state = "lime"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.3
|
||||
|
||||
// Lime
|
||||
/obj/item/seeds/lime
|
||||
@@ -29,6 +30,7 @@
|
||||
desc = "It's so sour, your face will twist."
|
||||
icon_state = "lime"
|
||||
filling_color = "#00FF00"
|
||||
distill_reagent = "triple_sec"
|
||||
|
||||
// Orange
|
||||
/obj/item/seeds/orange
|
||||
@@ -104,6 +106,8 @@
|
||||
desc = "Made for burning houses down."
|
||||
icon_state = "firelemon"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.7
|
||||
wine_flavor = "fire"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/firelemon/attack_self(mob/living/user)
|
||||
var/area/A = get_area(user)
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
icon_state = "cocoapod"
|
||||
filling_color = "#FFD700"
|
||||
bitesize_mod = 2
|
||||
distill_reagent = "creme_de_cacao"
|
||||
|
||||
// Vanilla Pod
|
||||
/obj/item/seeds/cocoapod/vanillapod
|
||||
@@ -43,4 +44,5 @@
|
||||
name = "vanilla pod"
|
||||
desc = "Fattening... Mmmmm... vanilla."
|
||||
icon_state = "vanillapod"
|
||||
filling_color = "#FFD700"
|
||||
filling_color = "#FFD700"
|
||||
distill_reagent = "vanilla" //Takes longer, but you can get even more vanilla from it.
|
||||
@@ -24,6 +24,8 @@
|
||||
filling_color = "#FFFF00"
|
||||
trash = /obj/item/grown/corncob
|
||||
bitesize_mod = 2
|
||||
distill_reagent = "whiskey"
|
||||
wine_power = 0.4
|
||||
|
||||
/obj/item/grown/corncob
|
||||
name = "corn cob"
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
icon_state = "eggplant"
|
||||
filling_color = "#800080"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.2
|
||||
|
||||
// Egg-Plant
|
||||
/obj/item/seeds/eggplant/eggy
|
||||
@@ -41,4 +42,5 @@
|
||||
icon_state = "eggyplant"
|
||||
trash = /obj/item/reagent_containers/food/snacks/egg
|
||||
filling_color = "#F8F8FF"
|
||||
bitesize_mod = 2
|
||||
bitesize_mod = 2
|
||||
distill_reagent = "eggnog"
|
||||
@@ -25,6 +25,7 @@
|
||||
slot_flags = SLOT_HEAD
|
||||
filling_color = "#FF6347"
|
||||
bitesize_mod = 3
|
||||
distill_reagent = "vermouth"
|
||||
|
||||
// Lily
|
||||
/obj/item/seeds/poppy/lily
|
||||
@@ -88,6 +89,7 @@
|
||||
slot_flags = SLOT_HEAD
|
||||
filling_color = "#E6E6FA"
|
||||
bitesize_mod = 3
|
||||
distill_reagent = "vermouth"
|
||||
|
||||
|
||||
// Sunflower
|
||||
@@ -145,6 +147,7 @@
|
||||
slot_flags = SLOT_HEAD
|
||||
filling_color = "#E6E6FA"
|
||||
bitesize_mod = 2
|
||||
distill_reagent = "absinthe"
|
||||
|
||||
// Novaflower
|
||||
/obj/item/seeds/sunflower/novaflower
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
bitesize_mod = 2
|
||||
var/stacktype = /obj/item/stack/tile/grass
|
||||
var/tile_coefficient = 0.02 // 1/50
|
||||
wine_power = 0.15
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/grass/attack_self(mob/user)
|
||||
to_chat(user, "<span class='notice'>You prepare the astroturf.</span>")
|
||||
@@ -65,3 +66,4 @@
|
||||
desc = "The textile industry's dark secret."
|
||||
icon_state = "carpetclump"
|
||||
stacktype = /obj/item/stack/tile/carpet
|
||||
can_distill = FALSE
|
||||
|
||||
@@ -95,3 +95,4 @@
|
||||
icon_state = "kudzupod"
|
||||
filling_color = "#6B8E23"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.2
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
filling_color = "#008000"
|
||||
bitesize_mod = 3
|
||||
wine_power = 0.4
|
||||
|
||||
// Holymelon
|
||||
/obj/item/seeds/watermelon/holy
|
||||
@@ -45,3 +46,5 @@
|
||||
icon_state = "holymelon"
|
||||
filling_color = "#FFD700"
|
||||
dried_type = null
|
||||
wine_power = 0.7 //Water to wine, baby.
|
||||
wine_flavor = "divinity"
|
||||
|
||||
@@ -53,6 +53,7 @@
|
||||
icon_state = "cabbage"
|
||||
filling_color = "#90EE90"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.2
|
||||
|
||||
|
||||
// Sugarcane
|
||||
@@ -78,6 +79,7 @@
|
||||
icon_state = "sugarcane"
|
||||
filling_color = "#FFD700"
|
||||
bitesize_mod = 2
|
||||
distill_reagent = "rum"
|
||||
|
||||
|
||||
// Gatfruit
|
||||
@@ -108,6 +110,7 @@
|
||||
origin_tech = "combat=6"
|
||||
trash = /obj/item/gun/projectile/revolver
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.9 //It burns going down, too.
|
||||
|
||||
//Cherry Bombs
|
||||
/obj/item/seeds/cherry/bomb
|
||||
@@ -129,6 +132,7 @@
|
||||
seed = /obj/item/seeds/cherry/bomb
|
||||
bitesize_mod = 2
|
||||
volume = 125 //Gives enough room for the black powder at max potency
|
||||
wine_power = 0.8
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/cherry_bomb/attack_self(mob/living/user)
|
||||
var/area/A = get_area(user)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/obj/item/reagent_containers/food/snacks/grown/mushroom
|
||||
name = "mushroom"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.4
|
||||
|
||||
|
||||
// Reishi
|
||||
@@ -84,6 +85,7 @@
|
||||
desc = "<I>Amanita Virosa</I>: Deadly poisonous basidiomycete fungus filled with alpha amanitin."
|
||||
icon_state = "angel"
|
||||
filling_color = "#C0C0C0"
|
||||
wine_power = 0.6
|
||||
|
||||
|
||||
// Liberty Cap
|
||||
@@ -109,6 +111,8 @@
|
||||
desc = "<I>Psilocybe Semilanceata</I>: Liberate yourself!"
|
||||
icon_state = "libertycap"
|
||||
filling_color = "#DAA520"
|
||||
wine_power = 0.8
|
||||
wine_flavor = "freedom"
|
||||
|
||||
|
||||
// Plump Helmet
|
||||
@@ -135,6 +139,7 @@
|
||||
desc = "<I>Plumus Hellmus</I>: Plump, soft and s-so inviting~"
|
||||
icon_state = "plumphelmet"
|
||||
filling_color = "#9370DB"
|
||||
distill_reagent = "manlydorf"
|
||||
|
||||
|
||||
// Walking Mushroom
|
||||
@@ -161,6 +166,7 @@
|
||||
icon_state = "walkingmushroom"
|
||||
filling_color = "#9370DB"
|
||||
origin_tech = "biotech=4;programming=5"
|
||||
can_distill = FALSE
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/mushroom/walkingmushroom/attack_self(mob/user)
|
||||
if(istype(user.loc, /turf/space))
|
||||
@@ -232,6 +238,7 @@
|
||||
var/effect_path = /obj/structure/glowshroom
|
||||
origin_tech = "biotech=4;plasmatech=6"
|
||||
light_color = "#006622"
|
||||
wine_power = 0.5
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom/attack_self(mob/user)
|
||||
if(istype(user.loc, /turf/space))
|
||||
@@ -280,6 +287,8 @@
|
||||
effect_path = /obj/structure/glowshroom/glowcap
|
||||
origin_tech = "biotech=4;powerstorage=6;plasmatech=4"
|
||||
light_color = "#8E0300"
|
||||
wine_power = 0.6
|
||||
wine_flavor = "warmth"
|
||||
|
||||
// Fungus/Mold
|
||||
/obj/item/seeds/fungus
|
||||
@@ -326,3 +335,5 @@
|
||||
icon_state = "shadowshroom"
|
||||
effect_path = /obj/structure/glowshroom/shadowshroom
|
||||
origin_tech = "biotech=4;plasmatech=4;magnets=4"
|
||||
wine_power = 0.6
|
||||
wine_flavor = "strange coldness"
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
bitesize_mod = 2
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/onion_slice
|
||||
slices_num = 2
|
||||
wine_power = 0.2
|
||||
wine_flavor = "pungentness"
|
||||
|
||||
/obj/item/seeds/onion/red
|
||||
name = "pack of red onion seeds"
|
||||
@@ -43,6 +45,8 @@
|
||||
icon_state = "onion_red"
|
||||
filling_color = "#C29ACF"
|
||||
slice_path = /obj/item/reagent_containers/food/snacks/onion_slice/red
|
||||
wine_power = 0.6
|
||||
wine_flavor = "powerful pungentness"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/onion_slice
|
||||
name = "onion slices"
|
||||
|
||||
@@ -24,4 +24,5 @@
|
||||
icon_state = "pineapple"
|
||||
filling_color = "#e5b437"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
bitesize_mod = 3
|
||||
bitesize_mod = 3
|
||||
wine_power = 0.4
|
||||
@@ -25,6 +25,7 @@
|
||||
icon_state = "potato"
|
||||
filling_color = "#E9967A"
|
||||
bitesize = 100
|
||||
distill_reagent = "vodka"
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/potato/wedges
|
||||
@@ -33,6 +34,7 @@
|
||||
icon_state = "potato_wedges"
|
||||
filling_color = "#E9967A"
|
||||
bitesize = 100
|
||||
distill_reagent = "sbiten"
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/potato/attackby(obj/item/W, mob/user, params)
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
icon_state = "pumpkin"
|
||||
filling_color = "#FFA500"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.2
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/pumpkin/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
if(is_sharp(W))
|
||||
@@ -52,3 +53,4 @@
|
||||
icon_state = "blumpkin"
|
||||
filling_color = "#87CEFA"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.5
|
||||
|
||||
@@ -26,4 +26,10 @@
|
||||
name = "strange plant"
|
||||
desc = "What could this even be?"
|
||||
icon_state = "crunchy"
|
||||
bitesize_mod = 2
|
||||
bitesize_mod = 2
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/random/Initialize()
|
||||
. = ..()
|
||||
wine_power = rand(0.1,1.5)
|
||||
if(prob(1))
|
||||
wine_power = 2.0
|
||||
@@ -21,6 +21,7 @@
|
||||
icon_state = "carrot"
|
||||
filling_color = "#FFA500"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.3
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/carrot/wedges
|
||||
name = "carrot wedges"
|
||||
@@ -59,6 +60,7 @@
|
||||
desc = "Closely related to carrots."
|
||||
icon_state = "parsnip"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.35
|
||||
|
||||
|
||||
// White-Beet
|
||||
@@ -84,6 +86,7 @@
|
||||
icon_state = "whitebeet"
|
||||
filling_color = "#F4A460"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.4
|
||||
|
||||
// Red Beet
|
||||
/obj/item/seeds/redbeet
|
||||
@@ -107,3 +110,4 @@
|
||||
desc = "You can't beat red beet."
|
||||
icon_state = "redbeet"
|
||||
bitesize_mod = 2
|
||||
wine_power = 0.6
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
desc = "These aromatic tips of the tea plant can be dried to make tea."
|
||||
icon_state = "tea_aspera_leaves"
|
||||
filling_color = "#008000"
|
||||
can_distill = FALSE
|
||||
|
||||
// Tea Astra
|
||||
/obj/item/seeds/tea/astra
|
||||
@@ -67,6 +68,7 @@
|
||||
icon_state = "coffee_arabica"
|
||||
filling_color = "#DC143C"
|
||||
bitesize_mod = 2
|
||||
distill_reagent = "kahlua"
|
||||
|
||||
// Coffee Robusta
|
||||
/obj/item/seeds/coffee/robusta
|
||||
|
||||
@@ -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"
|
||||
icon_state = "stobacco_leaves"
|
||||
distill_reagent = null
|
||||
wine_power = 0.5
|
||||
@@ -22,6 +22,7 @@
|
||||
splat_type = /obj/effect/decal/cleanable/tomato_smudge
|
||||
filling_color = "#FF6347"
|
||||
bitesize_mod = 2
|
||||
distill_reagent = "enzyme"
|
||||
|
||||
// Blood Tomato
|
||||
/obj/item/seeds/tomato/blood
|
||||
@@ -43,6 +44,7 @@
|
||||
splat_type = /obj/effect/gibspawner/generic
|
||||
filling_color = "#FF0000"
|
||||
origin_tech = "biotech=5"
|
||||
distill_reagent = "bloodymary"
|
||||
|
||||
|
||||
// Blue Tomato
|
||||
@@ -89,6 +91,8 @@
|
||||
desc = "So lubricated, you might slip through space-time."
|
||||
icon_state = "bluespacetomato"
|
||||
origin_tech = "biotech=4;bluespace=5"
|
||||
distill_reagent = null
|
||||
wine_power = 0.8
|
||||
|
||||
|
||||
// Killer Tomato
|
||||
@@ -117,6 +121,7 @@
|
||||
var/awakening = 0
|
||||
filling_color = "#FF0000"
|
||||
origin_tech = "biotech=4;combat=5"
|
||||
distill_reagent = "demonsblood"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/tomato/killer/attack(mob/M, mob/user, def_zone)
|
||||
if(awakening)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
var/harvested_name = "shortened mushrooms"
|
||||
var/harvested_desc = "Some quickly regrowing mushrooms, formerly known to be quite large."
|
||||
var/needs_sharp_harvest = TRUE
|
||||
var/harvest = /obj/item/reagent_containers/food/snacks/ash_flora/shavings
|
||||
var/harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings
|
||||
var/harvest_amount_low = 1
|
||||
var/harvest_amount_high = 3
|
||||
var/harvest_time = 60
|
||||
@@ -79,7 +79,7 @@
|
||||
desc = "A number of mushrooms, each of which surrounds a greenish sporangium with a number of leaf-like structures."
|
||||
harvested_name = "leafless mushrooms"
|
||||
harvested_desc = "A bunch of formerly-leafed mushrooms, with their sporangiums exposed. Scandalous?"
|
||||
harvest = /obj/item/reagent_containers/food/snacks/ash_flora/mushroom_leaf
|
||||
harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf
|
||||
needs_sharp_harvest = FALSE
|
||||
harvest_amount_high = 4
|
||||
harvest_time = 20
|
||||
@@ -95,7 +95,7 @@
|
||||
desc = "Several mushrooms, the larger of which have a ring of conks at the midpoint of their stems."
|
||||
harvested_name = "small mushrooms"
|
||||
harvested_desc = "Several small mushrooms near the stumps of what likely were larger mushrooms."
|
||||
harvest = /obj/item/reagent_containers/food/snacks/ash_flora/mushroom_cap
|
||||
harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap
|
||||
harvest_amount_high = 4
|
||||
harvest_time = 50
|
||||
harvest_message_low = "You slice the cap off of a mushroom."
|
||||
@@ -111,7 +111,7 @@
|
||||
luminosity = 1
|
||||
harvested_name = "tiny mushrooms"
|
||||
harvested_desc = "A few tiny mushrooms around larger stumps. You can already see them growing back."
|
||||
harvest = /obj/item/reagent_containers/food/snacks/ash_flora/mushroom_stem
|
||||
harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem
|
||||
harvest_amount_high = 4
|
||||
harvest_time = 40
|
||||
harvest_message_low = "You pick and slice the cap off of a mushroom, leaving the stem."
|
||||
@@ -126,7 +126,7 @@
|
||||
desc = "Several prickly cacti, brimming with ripe fruit and covered in a thin layer of ash."
|
||||
harvested_name = "cacti"
|
||||
harvested_desc = "A bunch of prickly cacti. You can see fruits slowly growing beneath the covering of ash."
|
||||
harvest = /obj/item/reagent_containers/food/snacks/ash_flora/cactus_fruit
|
||||
harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
|
||||
needs_sharp_harvest = FALSE
|
||||
harvest_amount_high = 2
|
||||
harvest_time = 10
|
||||
@@ -149,45 +149,51 @@
|
||||
H.visible_message("<span class='danger'>[H] steps on a cactus!</span>", \
|
||||
"<span class='userdanger'>You step on a cactus!</span>")
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/ash_flora
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora
|
||||
name = "mushroom shavings"
|
||||
desc = "Some shavings from a tall mushroom. With enough, might serve as a bowl."
|
||||
icon = 'icons/obj/lavaland/ash_flora.dmi'
|
||||
icon_state = "mushroom_shavings"
|
||||
list_reagents = list("sugar" = 3, "ethanol" = 2, "stabilizing_agent" = 3, "minttoxin" = 2)
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
wine_power = 0.2
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/ash_flora/New()
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/New()
|
||||
..()
|
||||
pixel_x = rand(-4, 4)
|
||||
pixel_y = rand(-4, 4)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/ash_flora/shavings //for actual crafting
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings //for actual crafting
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/ash_flora/mushroom_leaf
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf
|
||||
name = "mushroom leaf"
|
||||
desc = "A leaf, from a mushroom."
|
||||
list_reagents = list("nutriment" = 3, "vitfro" = 2, "nicotine" = 2)
|
||||
icon_state = "mushroom_leaf"
|
||||
wine_power = 0.4
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/ash_flora/mushroom_cap
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap
|
||||
name = "mushroom cap"
|
||||
desc = "The cap of a large mushroom."
|
||||
list_reagents = list("lsd" = 2, "entpoly" = 4, "psilocybin" = 2)
|
||||
icon_state = "mushroom_cap"
|
||||
wine_power = 0.7
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/ash_flora/mushroom_stem
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem
|
||||
name = "mushroom stem"
|
||||
desc = "A long mushroom stem. It's slightly glowing."
|
||||
list_reagents = list("tinlux" = 2, "vitamin" = 1, "space_drugs" = 1)
|
||||
icon_state = "mushroom_stem"
|
||||
luminosity = 1
|
||||
wine_power = 0.6
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/ash_flora/cactus_fruit
|
||||
/obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
|
||||
name = "cactus fruit"
|
||||
list_reagents = list("vitamin" = 2, "nutriment" = 2, "vitfro" = 4)
|
||||
desc = "A cactus fruit covered in a thick, reddish skin. And some ash."
|
||||
icon_state = "cactus_fruit"
|
||||
wine_power = 0.5
|
||||
|
||||
/obj/item/mushroom_bowl
|
||||
name = "mushroom bowl"
|
||||
@@ -200,6 +206,6 @@
|
||||
/datum/crafting_recipe/mushroom_bowl
|
||||
name = "Mushroom Bowl"
|
||||
result = /obj/item/reagent_containers/food/drinks/mushroom_bowl
|
||||
reqs = list(/obj/item/reagent_containers/food/snacks/ash_flora/shavings = 5)
|
||||
reqs = list(/obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings = 5)
|
||||
time = 30
|
||||
category = CAT_PRIMAL
|
||||
|
||||
@@ -1236,3 +1236,107 @@
|
||||
drink_icon = "synthignonglass"
|
||||
drink_name = "Glass of Synthignon"
|
||||
drink_desc = "Someone mixed good wine and robot booze. Romantic, but atrocious."
|
||||
|
||||
/datum/reagent/consumable/ethanol/fruit_wine
|
||||
name = "Fruit Wine"
|
||||
id = "fruit_wine"
|
||||
description = "A wine made from grown plants."
|
||||
color = "#FFFFFF"
|
||||
alcohol_perc = 0.35
|
||||
taste_message = "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"]
|
||||
alcohol_perc = data["alcohol_perc"]
|
||||
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
|
||||
|
||||
alcohol_perc *= oldvolume
|
||||
var/newzepwr = data["alcohol_perc"] * amount
|
||||
alcohol_perc += newzepwr
|
||||
alcohol_perc /= volume //Blending alcohol percentage 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()
|
||||
drink_name = "glass of [name]"
|
||||
drink_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(alcohol_perc)
|
||||
if(1.2 to INFINITY)
|
||||
alcohol_description = "suicidally strong"
|
||||
if(0.9 to 1.2)
|
||||
alcohol_description = "rather strong"
|
||||
if(0.7 to 0.9)
|
||||
alcohol_description = "strong"
|
||||
if(0.4 to 0.7)
|
||||
alcohol_description = "rich"
|
||||
if(0.2 to 0.4)
|
||||
alcohol_description = "mild"
|
||||
if(0 to 0.2)
|
||||
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_message = flavor
|
||||
if(holder.my_atom)
|
||||
holder.my_atom.on_reagent_change()
|
||||
|
||||
@@ -95,7 +95,6 @@
|
||||
spawn(5) reagents.clear_reagents()
|
||||
return
|
||||
else if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us.
|
||||
|
||||
if(target.reagents && !target.reagents.total_volume)
|
||||
to_chat(user, "<span class='warning'>[target] is empty and can't be refilled!</span>")
|
||||
return
|
||||
@@ -107,7 +106,7 @@
|
||||
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
|
||||
to_chat(user, "<span class='notice'>You fill [src] with [trans] unit\s of the contents of [target].</span>")
|
||||
|
||||
else if(target.is_open_container() && target.reagents) //Something like a glass. Player probably wants to transfer TO it.
|
||||
else if(target.is_refillable() && is_drainable()) //Something like a glass. Player probably wants to transfer TO it.
|
||||
if(!reagents.total_volume)
|
||||
to_chat(user, "<span class='warning'>[src] is empty.</span>")
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user