diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 2c76308c46c..98c8e1f0d95 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -1275,16 +1275,57 @@
product_slogans = "THIS'S WHERE TH' SEEDS LIVE! GIT YOU SOME!;Hands down the best seed selection on the station!;Also certain mushroom varieties available, more for experts! Get certified today!"
product_ads = "We like plants!;Grow some crops!;Grow, baby, growww!;Aw h'yeah son!"
icon_state = "seeds"
- products = list(/obj/item/seeds/aloe =3, /obj/item/seeds/ambrosia = 3, /obj/item/seeds/apple = 3, /obj/item/seeds/cotton = 3, /obj/item/seeds/banana = 3, /obj/item/seeds/berry = 3,
- /obj/item/seeds/cabbage = 3, /obj/item/seeds/carrot = 3, /obj/item/seeds/cherry = 3, /obj/item/seeds/chanter = 3,
- /obj/item/seeds/chili = 3, /obj/item/seeds/cocoapod = 3, /obj/item/seeds/coffee = 3, /obj/item/seeds/comfrey =3, /obj/item/seeds/corn = 3,
- /obj/item/seeds/nymph =3, /obj/item/seeds/eggplant = 3, /obj/item/seeds/grape = 3, /obj/item/seeds/grass = 3, /obj/item/seeds/lemon = 3,
- /obj/item/seeds/lime = 3, /obj/item/seeds/onion = 3, /obj/item/seeds/orange = 3, /obj/item/seeds/peanuts = 3, /obj/item/seeds/pineapple = 3, /obj/item/seeds/potato = 3, /obj/item/seeds/poppy = 3,
- /obj/item/seeds/pumpkin = 3, /obj/item/seeds/replicapod = 3, /obj/item/seeds/wheat/rice = 3, /obj/item/seeds/soya = 3, /obj/item/seeds/sunflower = 3, /obj/item/seeds/sugarcane = 3,
- /obj/item/seeds/tea = 3, /obj/item/seeds/tobacco = 3, /obj/item/seeds/tomato = 3,
- /obj/item/seeds/tower = 3, /obj/item/seeds/watermelon = 3, /obj/item/seeds/wheat = 3, /obj/item/seeds/whitebeet = 3)
- contraband = list(/obj/item/seeds/amanita = 2, /obj/item/seeds/glowshroom = 2, /obj/item/seeds/liberty = 2, /obj/item/seeds/nettle = 2,
- /obj/item/seeds/plump = 2, /obj/item/seeds/reishi = 2, /obj/item/seeds/cannabis = 3, /obj/item/seeds/starthistle = 2, /obj/item/seeds/fungus = 3, /obj/item/seeds/random = 2)
+ products = list(/obj/item/seeds/aloe =3,
+ /obj/item/seeds/ambrosia = 3,
+ /obj/item/seeds/apple = 3,
+ /obj/item/seeds/cotton = 3,
+ /obj/item/seeds/banana = 3,
+ /obj/item/seeds/berry = 3,
+ /obj/item/seeds/cabbage = 3,
+ /obj/item/seeds/carrot = 3,
+ /obj/item/seeds/cherry = 3,
+ /obj/item/seeds/chanter = 3,
+ /obj/item/seeds/chili = 3,
+ /obj/item/seeds/cocoapod = 3,
+ /obj/item/seeds/coffee = 3,
+ /obj/item/seeds/comfrey =3,
+ /obj/item/seeds/corn = 3,
+ /obj/item/seeds/nymph =3,
+ /obj/item/seeds/eggplant = 3,
+ /obj/item/seeds/garlic = 3,
+ /obj/item/seeds/grape = 3,
+ /obj/item/seeds/grass = 3,
+ /obj/item/seeds/lemon = 3,
+ /obj/item/seeds/lime = 3,
+ /obj/item/seeds/onion = 3,
+ /obj/item/seeds/orange = 3,
+ /obj/item/seeds/peanuts = 3,
+ /obj/item/seeds/pineapple = 3,
+ /obj/item/seeds/potato = 3,
+ /obj/item/seeds/poppy = 3,
+ /obj/item/seeds/pumpkin = 3,
+ /obj/item/seeds/replicapod = 3,
+ /obj/item/seeds/wheat/rice = 3,
+ /obj/item/seeds/soya = 3,
+ /obj/item/seeds/sunflower = 3,
+ /obj/item/seeds/sugarcane = 3,
+ /obj/item/seeds/tea = 3,
+ /obj/item/seeds/tobacco = 3,
+ /obj/item/seeds/tomato = 3,
+ /obj/item/seeds/tower = 3,
+ /obj/item/seeds/watermelon = 3,
+ /obj/item/seeds/wheat = 3,
+ /obj/item/seeds/whitebeet = 3)
+ contraband = list(/obj/item/seeds/amanita = 2,
+ /obj/item/seeds/glowshroom = 2,
+ /obj/item/seeds/liberty = 2,
+ /obj/item/seeds/nettle = 2,
+ /obj/item/seeds/plump = 2,
+ /obj/item/seeds/reishi = 2,
+ /obj/item/seeds/cannabis = 3,
+ /obj/item/seeds/starthistle = 2,
+ /obj/item/seeds/fungus = 3,
+ /obj/item/seeds/random = 2)
premium = list(/obj/item/reagent_containers/spray/waterflower = 1)
refill_canister = /obj/item/vending_refill/hydroseeds
diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm
index 41c5ff0bdf3..d85b882e7db 100644
--- a/code/modules/food_and_drinks/drinks/drinks.dm
+++ b/code/modules/food_and_drinks/drinks/drinks.dm
@@ -334,14 +334,6 @@
icon_state = "britcup"
volume = 30
-/obj/item/reagent_containers/food/drinks/mushroom_bowl
- name = "mushroom bowl"
- desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point."
- icon = 'icons/obj/lavaland/ash_flora.dmi'
- icon_state = "mushroom_bowl"
- w_class = WEIGHT_CLASS_SMALL
-
-
/obj/item/reagent_containers/food/drinks/bag
name = "drink bag"
desc = "Normally put in wine boxes, or down pants at stadium events."
diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm
index 10e135f5fe6..b486aa629bb 100644
--- a/code/modules/hydroponics/gene_modder.dm
+++ b/code/modules/hydroponics/gene_modder.dm
@@ -374,6 +374,7 @@
seed.genes += disk.gene.Copy()
if(istype(disk.gene, /datum/plant_gene/reagent))
seed.reagents_from_genes()
+ disk.gene.apply_vars(seed)
repaint_seed()
update_genes()
diff --git a/code/modules/hydroponics/grown/beans.dm b/code/modules/hydroponics/grown/beans.dm
index 206d0984c3d..8d9702f1343 100644
--- a/code/modules/hydroponics/grown/beans.dm
+++ b/code/modules/hydroponics/grown/beans.dm
@@ -15,7 +15,7 @@
icon_dead = "soybean-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/soya/koi)
- reagents_add = list("soybeanoil" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.05)
+ reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.05, "soybeanoil" = 0.03)
/obj/item/reagent_containers/food/snacks/grown/soybeans
seed = /obj/item/seeds/soya
@@ -25,7 +25,7 @@
icon_state = "soybeans"
filling_color = "#F0E68C"
bitesize_mod = 2
- tastes = list("soybean" = 1)
+ tastes = list("soy" = 1)
wine_power = 0.2
// Koibean
diff --git a/code/modules/hydroponics/grown/berries.dm b/code/modules/hydroponics/grown/berries.dm
index d4161b0a87e..9682b5ba19f 100644
--- a/code/modules/hydroponics/grown/berries.dm
+++ b/code/modules/hydroponics/grown/berries.dm
@@ -46,8 +46,8 @@
desc = "Taste so good, you could die!"
icon_state = "poisonberrypile"
filling_color = "#C71585"
- distill_reagent = null
tastes = list("poison-berry" = 1)
+ distill_reagent = null
wine_power = 0.35
// Death Berries
@@ -70,8 +70,8 @@
desc = "Taste so good, you could die!"
icon_state = "deathberrypile"
filling_color = "#708090"
- distill_reagent = null
tastes = list("death-berry" = 1)
+ distill_reagent = null
wine_power = 0.5
// Glow Berries
@@ -130,8 +130,8 @@
gender = PLURAL
filling_color = "#FF0000"
bitesize_mod = 2
- wine_power = 0.3
tastes = list("cherry" = 1)
+ wine_power = 0.3
// Blue Cherries
/obj/item/seeds/cherry/blue
@@ -152,8 +152,8 @@
icon_state = "bluecherry"
filling_color = "#6495ED"
bitesize_mod = 2
- wine_power = 0.5
tastes = list("blue cherry" = 1)
+ wine_power = 0.5
// Grapes
/obj/item/seeds/grape
@@ -184,8 +184,8 @@
dried_type = /obj/item/reagent_containers/food/snacks/no_raisin
filling_color = "#FF1493"
bitesize_mod = 2
- distill_reagent = "wine"
tastes = list("grapes" = 1)
+ distill_reagent = "wine"
// Green Grapes
/obj/item/seeds/grape/green
diff --git a/code/modules/hydroponics/grown/chili.dm b/code/modules/hydroponics/grown/chili.dm
index 1a2b5142e37..3908262a6a2 100644
--- a/code/modules/hydroponics/grown/chili.dm
+++ b/code/modules/hydroponics/grown/chili.dm
@@ -51,7 +51,7 @@
filling_color = "#0000CD"
bitesize_mod = 2
origin_tech = "biotech=4"
- tastes = list("chilli" = 1)
+ tastes = list("chilly" = 1)
wine_power = 0.3
// Ghost Chili
diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm
index 38e4104c4a7..6e937f45c2a 100644
--- a/code/modules/hydroponics/grown/citrus.dm
+++ b/code/modules/hydroponics/grown/citrus.dm
@@ -31,7 +31,6 @@
icon_state = "lime"
filling_color = "#00FF00"
tastes = list("lime" = 1)
- distill_reagent = "triple_sec"
// Orange
/obj/item/seeds/orange
@@ -59,6 +58,7 @@
icon_state = "orange"
tastes = list("orange" = 1)
filling_color = "#FFA500"
+ distill_reagent = "triple_sec"
// Lemon
/obj/item/seeds/lemon
diff --git a/code/modules/hydroponics/grown/corn.dm b/code/modules/hydroponics/grown/corn.dm
index cf7c185c147..ac7946b3864 100644
--- a/code/modules/hydroponics/grown/corn.dm
+++ b/code/modules/hydroponics/grown/corn.dm
@@ -62,7 +62,7 @@
/obj/item/grown/snapcorn
seed = /obj/item/seeds/corn/snapcorn
name = "snap corn"
- desc = "A cob with snap pops"
+ desc = "A cob with snap pops."
icon_state = "snapcorn"
item_state = "corncob"
w_class = WEIGHT_CLASS_TINY
diff --git a/code/modules/hydroponics/grown/eggplant.dm b/code/modules/hydroponics/grown/eggplant.dm
index 2ed28f76226..c1fad32bed8 100644
--- a/code/modules/hydroponics/grown/eggplant.dm
+++ b/code/modules/hydroponics/grown/eggplant.dm
@@ -27,9 +27,11 @@
// Egg-Plant
/obj/item/seeds/eggplant/eggy
+ name = "pack of egg-plant seeds"
desc = "These seeds grow to produce berries that look a lot like eggs."
icon_state = "seed-eggy"
species = "eggy"
+ plantname = "Egg-Plants"
product = /obj/item/reagent_containers/food/snacks/grown/shell/eggy
lifespan = 75
production = 12
diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm
index d662a77e08a..dea72093b15 100644
--- a/code/modules/hydroponics/grown/flowers.dm
+++ b/code/modules/hydroponics/grown/flowers.dm
@@ -138,6 +138,8 @@
icon_state = "seed-moonflower"
species = "moonflower"
plantname = "Moonflowers"
+ icon_grow = "moonflower-grow"
+ icon_dead = "sunflower-dead"
product = /obj/item/reagent_containers/food/snacks/grown/moonflower
mutatelist = list()
reagents_add = list("moonshine" = 0.2, "vitamin" = 0.02, "plantmatter" = 0.02)
@@ -152,7 +154,7 @@
filling_color = "#E6E6FA"
bitesize_mod = 2
tastes = list("moonflower" = 1)
- distill_reagent = "absinthe"
+ distill_reagent = "absinthe" //It's made from flowers.
// Novaflower
/obj/item/seeds/sunflower/novaflower
@@ -161,6 +163,8 @@
icon_state = "seed-novaflower"
species = "novaflower"
plantname = "Novaflowers"
+ icon_grow = "novaflower-grow"
+ icon_dead = "sunflower-dead"
product = /obj/item/grown/novaflower
mutatelist = list()
reagents_add = list("condensedcapsaicin" = 0.25, "capsaicin" = 0.3, "plantmatter" = 0)
diff --git a/code/modules/hydroponics/grown/garlic.dm b/code/modules/hydroponics/grown/garlic.dm
new file mode 100644
index 00000000000..eccc9dea1f2
--- /dev/null
+++ b/code/modules/hydroponics/grown/garlic.dm
@@ -0,0 +1,22 @@
+/obj/item/seeds/garlic
+ name = "pack of garlic seeds"
+ desc = "A packet of extremely pungent seeds."
+ icon_state = "seed-garlic"
+ species = "garlic"
+ plantname = "Garlic Sprouts"
+ product = /obj/item/reagent_containers/food/snacks/grown/garlic
+ yield = 6
+ potency = 25
+ growthstages = 3
+ growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
+ reagents_add = list("garlic" = 0.15, "plantmatter" = 0.1)
+
+/obj/item/reagent_containers/food/snacks/grown/garlic
+ seed = /obj/item/seeds/garlic
+ name = "garlic"
+ desc = "Delicious, but with a potentially overwhelming odor."
+ icon_state = "garlic"
+ filling_color = "#C0C9A0"
+ bitesize_mod = 2
+ tastes = list("garlic" = 1)
+ wine_power = 0.1
\ No newline at end of file
diff --git a/code/modules/hydroponics/grown/grass_carpet.dm b/code/modules/hydroponics/grown/grass_carpet.dm
index dee15bf75b2..832645c95cd 100644
--- a/code/modules/hydroponics/grown/grass_carpet.dm
+++ b/code/modules/hydroponics/grown/grass_carpet.dm
@@ -38,17 +38,8 @@
continue
grassAmt += 1 + round(G.seed.potency * tile_coefficient)
qdel(G)
- var/obj/item/stack/tile/GT = new stacktype(user.loc)
- while(grassAmt > GT.max_amount)
- GT.amount = GT.max_amount
- grassAmt -= GT.max_amount
- GT = new stacktype(user.loc)
- GT.amount = grassAmt
- for(var/obj/item/stack/tile/T in user.loc)
- if((T.type == stacktype) && (T.amount < T.max_amount) && (T != GT))
- T.attackby(GT, user)
+ new stacktype(user.drop_location(), grassAmt)
qdel(src)
- return
// Carpet
/obj/item/seeds/grass/carpet
diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm
index 09952a2a405..61c23a294b8 100644
--- a/code/modules/hydroponics/grown/melon.dm
+++ b/code/modules/hydroponics/grown/melon.dm
@@ -14,6 +14,13 @@
mutatelist = list(/obj/item/seeds/watermelon/holy)
reagents_add = list("water" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.2)
+/obj/item/seeds/watermelon/suicide_act(mob/user)
+ user.visible_message("[user] is swallowing [src]! It looks like [user.p_theyre()] trying to commit suicide!")
+ user.gib()
+ new product(drop_location())
+ qdel(src)
+ return OBLITERATION
+
/obj/item/reagent_containers/food/snacks/grown/watermelon
seed = /obj/item/seeds/watermelon
name = "watermelon"
diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm
index f2adfab0f20..171f777abd7 100644
--- a/code/modules/hydroponics/grown/misc.dm
+++ b/code/modules/hydroponics/grown/misc.dm
@@ -14,19 +14,19 @@
growthstages = 3
growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi'
genes = list(/datum/plant_gene/trait/plant_type/weed_hardy)
- mutatelist = list(/obj/item/seeds/harebell)
/obj/item/seeds/starthistle/harvest(mob/user)
var/obj/machinery/hydroponics/parent = loc
+ var/seed_count = yield
if(prob(getYield() * 20))
+ seed_count++
var/output_loc = parent.Adjacent(user) ? user.loc : parent.loc
- for(var/i in 1 to yield+1)
+ for(var/i in 1 to seed_count)
var/obj/item/seeds/starthistle/harvestseeds = Copy()
harvestseeds.forceMove(output_loc)
parent.update_tray()
-
// Cabbage
/obj/item/seeds/cabbage
name = "pack of cabbage seeds"
diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm
index 68331c664c9..45d7e76e6b4 100644
--- a/code/modules/hydroponics/grown/mushrooms.dm
+++ b/code/modules/hydroponics/grown/mushrooms.dm
@@ -175,7 +175,7 @@
can_distill = FALSE
/obj/item/reagent_containers/food/snacks/grown/mushroom/walkingmushroom/attack_self(mob/user)
- if(istype(user.loc, /turf/space))
+ if(isspaceturf(user.loc))
return
var/mob/living/simple_animal/hostile/mushroom/M = new /mob/living/simple_animal/hostile/mushroom(user.loc)
M.maxHealth += round(seed.endurance / 4)
@@ -277,8 +277,7 @@
desc = "This mycelium -powers- into mushrooms!"
icon_state = "mycelium-glowcap"
species = "glowcap"
- icon_grow = "glowshroom-grow"
- icon_dead = "glowshroom-dead"
+ icon_harvest = "glowcap-harvest"
plantname = "Glowcaps"
product = /obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom/glowcap
genes = list(/datum/plant_gene/trait/glow/red, /datum/plant_gene/trait/cell_charge, /datum/plant_gene/trait/plant_type/fungal_metabolism)
diff --git a/code/modules/hydroponics/grown/onion.dm b/code/modules/hydroponics/grown/onion.dm
index 597d5c70660..c53a9487db4 100644
--- a/code/modules/hydroponics/grown/onion.dm
+++ b/code/modules/hydroponics/grown/onion.dm
@@ -26,7 +26,7 @@
slice_path = /obj/item/reagent_containers/food/snacks/onion_slice
tastes = list("onion" = 1, "pungentness" = 1)
slices_num = 2
- wine_power = 0.2
+ wine_power = 0.3
wine_flavor = "pungentness"
/obj/item/seeds/onion/red
diff --git a/code/modules/hydroponics/grown/pineapple.dm b/code/modules/hydroponics/grown/pineapple.dm
index 4a2975fae42..30c5f904951 100644
--- a/code/modules/hydroponics/grown/pineapple.dm
+++ b/code/modules/hydroponics/grown/pineapple.dm
@@ -1,29 +1,33 @@
+// Pineapple!
/obj/item/seeds/pineapple
- name = "pack of pineapple seeds"
- desc = "These seeds grow into pineapple plants."
- icon_state = "seed-pineapple" //NEEDED
- species = "pineapple"
- plantname = "Pineapple Plant"
- product = /obj/item/reagent_containers/food/snacks/grown/pineapple
- maturation = 6
- lifespan = 55
- endurance = 35
- growthstages = 4
- growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
- icon_grow = "pineapple-grow" //NEEDED
- icon_dead = "pineapple-dead" //NEEDED
- genes = list(/datum/plant_gene/trait/repeated_harvest)
- reagents_add = list("water" = 0.1, "vitamin" = 0.03, "sugar" = 0.02, "plantmatter" = 0.2)
+ name = "pack of pineapple seeds"
+ desc = "Oooooooooooooh!"
+ icon_state = "seed-pineapple"
+ species = "pineapple"
+ plantname = "Pineapple Plant"
+ product = /obj/item/reagent_containers/food/snacks/grown/pineapple
+ lifespan = 40
+ endurance = 30
+ growthstages = 3
+ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
+ genes = list(/datum/plant_gene/trait/repeated_harvest)
+ mutatelist = list(/obj/item/seeds/apple)
+ reagents_add = list("vitamin" = 0.02, "plantmatter" = 0.2, "water" = 0.04)
/obj/item/reagent_containers/food/snacks/grown/pineapple
- seed = /obj/item/seeds/pineapple
- name = "pineapple"
- desc = "A soft sweet interior surrounded by a spiky skin."
- slice_path = /obj/item/reagent_containers/food/snacks/pineappleslice
- slices_num = 4
- icon_state = "pineapple"
- filling_color = "#e5b437"
- w_class = WEIGHT_CLASS_NORMAL
- bitesize_mod = 3
- tastes = list("pineapple" = 1)
- wine_power = 0.4
\ No newline at end of file
+ seed = /obj/item/seeds/pineapple
+ name = "pineapple"
+ desc = "A soft sweet interior surrounded by a spiky skin."
+ icon_state = "pineapple"
+ force = 4
+ throwforce = 8
+ hitsound = 'sound/weapons/bladeslice.ogg'
+ attack_verb = list("stung", "pined")
+ throw_speed = 1
+ throw_range = 5
+ slice_path = /obj/item/reagent_containers/food/snacks/pineappleslice
+ slices_num = 3
+ filling_color = "#F6CB0B"
+ w_class = WEIGHT_CLASS_NORMAL
+ tastes = list("pineapple" = 1)
+ wine_power = 0.4
\ No newline at end of file
diff --git a/code/modules/hydroponics/grown/replicapod.dm b/code/modules/hydroponics/grown/replicapod.dm
index 3aaa8d87041..d6f8cae7519 100644
--- a/code/modules/hydroponics/grown/replicapod.dm
+++ b/code/modules/hydroponics/grown/replicapod.dm
@@ -98,8 +98,6 @@
podman.ckey = ckey_holder
podman.gender = blood_gender
podman.faction |= factions
- podman.faction |= "plants"
- podman.faction |= "vines" //Pod grown Diona are allied with plants and vines alike.
else //else, one packet of seeds. maybe two
var/seed_count = 1
diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm
index 33ef72db471..156a426e202 100644
--- a/code/modules/hydroponics/grown/towercap.dm
+++ b/code/modules/hydroponics/grown/towercap.dm
@@ -44,15 +44,11 @@
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
var/plank_type = /obj/item/stack/sheet/wood
var/plank_name = "wooden planks"
- var/list/accepted = list(/obj/item/reagent_containers/food/snacks/grown/tobacco,
+ var/static/list/accepted = typecacheof(list(/obj/item/reagent_containers/food/snacks/grown/tobacco,
/obj/item/reagent_containers/food/snacks/grown/tea,
/obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris,
/obj/item/reagent_containers/food/snacks/grown/ambrosia/deus,
- /obj/item/reagent_containers/food/snacks/grown/wheat)
-
-/obj/item/grown/log/New()
- ..()
- accepted = typecacheof(accepted)
+ /obj/item/reagent_containers/food/snacks/grown/wheat))
/obj/item/grown/log/attackby(obj/item/W, mob/user, params)
if(is_sharp(W))
@@ -69,7 +65,7 @@
to_chat(user, "You add the newly-formed [plank_name] to the stack. It now contains [plank.amount] [plank_name].")
qdel(src)
- if(is_type_in_typecache(W, accepted))
+ if(CheckAccepted(W))
var/obj/item/reagent_containers/food/snacks/grown/leaf = W
if(leaf.dry)
user.show_message("You wrap \the [W] around the log, turning it into a torch!")
@@ -84,6 +80,9 @@
else
return ..()
+/obj/item/grown/log/proc/CheckAccepted(obj/item/I)
+ return is_type_in_typecache(I, accepted)
+
/obj/item/grown/log/tree
seed = null
name = "wood log"
@@ -94,10 +93,11 @@
name = "steel-cap log"
desc = "It's made of metal."
icon_state = "steellogs"
- accepted = list()
plank_type = /obj/item/stack/rods
plank_name = "rods"
+/obj/item/grown/log/steel/CheckAccepted(obj/item/I)
+ return FALSE
/////////BONFIRES//////////
diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index 92f91ddf51a..25ae26da3ad 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -636,9 +636,10 @@
// why, just why
if(S.has_reagent("napalm", 1))
- adjustHealth(-round(S.get_reagent_amount("napalm") * 6))
- adjustToxic(round(S.get_reagent_amount("napalm") * 7))
- adjustWeeds(-rand(5,9))
+ if(!(myseed.resistance_flags & FIRE_PROOF))
+ adjustHealth(-round(S.get_reagent_amount("napalm") * 6))
+ adjustToxic(round(S.get_reagent_amount("napalm") * 7))
+ adjustWeeds(-rand(5, 9)) //At least give them a small reward if they bother
//Weed Spray
if(S.has_reagent("atrazine", 1))
diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm
index ef450f4a52f..b38cd5710a2 100644
--- a/code/modules/hydroponics/plant_genes.dm
+++ b/code/modules/hydroponics/plant_genes.dm
@@ -10,7 +10,8 @@
/datum/plant_gene/proc/Copy()
return new type
-
+/datum/plant_gene/proc/apply_vars(obj/item/seeds/S) // currently used for fire resist, can prob. be further refactored
+ return
// Core plant genes store 5 main variables: lifespan, endurance, production, yield, potency
@@ -412,6 +413,17 @@
S.set_up(G.reagents, splat_location)
S.start(smoke_amount)
+/datum/plant_gene/trait/fire_resistance // Lavaland
+ name = "Fire Resistance"
+
+/datum/plant_gene/trait/fire_resistance/apply_vars(obj/item/seeds/S)
+ if(!(S.resistance_flags & FIRE_PROOF))
+ S.resistance_flags |= FIRE_PROOF
+
+/datum/plant_gene/trait/fire_resistance/on_new(obj/item/reagent_containers/food/snacks/grown/G, newloc)
+ if(!(G.resistance_flags & FIRE_PROOF))
+ G.resistance_flags |= FIRE_PROOF
+
/datum/plant_gene/trait/plant_type // Parent type
name = "you shouldn't see this"
trait_id = "plant_type"
diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm
index d9747a3a1f4..46df9ddfd9b 100644
--- a/code/modules/mining/lavaland/ash_flora.dm
+++ b/code/modules/mining/lavaland/ash_flora.dm
@@ -1,5 +1,6 @@
/obj/structure/flora/ash
gender = PLURAL
+ layer = PROJECTILE_HIT_THRESHHOLD_LAYER //sporangiums up don't shoot
icon = 'icons/obj/lavaland/ash_flora.dmi'
icon_state = "l_mushroom"
name = "large mushrooms"
@@ -17,42 +18,41 @@
var/harvest_message_high = "You harvest and collect shavings from several mushroom caps."
var/harvested = FALSE
var/base_icon
- var/regrowth_time_low = 4800
- var/regrowth_time_high = 8400
+ var/regrowth_time_low = 8 MINUTES
+ var/regrowth_time_high = 16 MINUTES
-/obj/structure/flora/ash/New()
- ..()
+/obj/structure/flora/ash/Initialize(mapload)
+ . = ..()
base_icon = "[icon_state][rand(1, 4)]"
icon_state = base_icon
- if(prob(15))
- harvest(null, TRUE)
-/obj/structure/flora/ash/ex_act(severity, target)
- switch(severity)
- if(1)
- qdel(src)
- if(2)
- if(prob(80))
- qdel(src)
- if(3)
- if(prob(50))
+/obj/structure/flora/ash/ex_act(severity, target)
+ switch(severity)
+ if(1)
+ qdel(src)
+ if(2)
+ if(prob(80))
+ qdel(src)
+ if(3)
+ if(prob(50))
qdel(src)
-/obj/structure/flora/ash/proc/harvest(user, no_drop)
+/obj/structure/flora/ash/proc/harvest(user)
if(harvested)
return 0
- if(!no_drop)
- var/rand_harvested = rand(harvest_amount_low, harvest_amount_high)
- if(rand_harvested)
- if(user)
- var/msg = harvest_message_med
- if(rand_harvested == harvest_amount_low)
- msg = harvest_message_low
- else if(rand_harvested == harvest_amount_high)
- msg = harvest_message_high
- to_chat(user, "[msg]")
- for(var/i in 1 to rand_harvested)
- new harvest(get_turf(src))
+
+ var/rand_harvested = rand(harvest_amount_low, harvest_amount_high)
+ if(rand_harvested)
+ if(user)
+ var/msg = harvest_message_med
+ if(rand_harvested == harvest_amount_low)
+ msg = harvest_message_low
+ else if(rand_harvested == harvest_amount_high)
+ msg = harvest_message_high
+ to_chat(user, "[msg]")
+ for(var/i in 1 to rand_harvested)
+ new harvest(get_turf(src))
+
icon_state = "[base_icon]p"
name = harvested_name
desc = harvested_desc
@@ -120,7 +120,8 @@
icon_state = "t_mushroom"
name = "numerous mushrooms"
desc = "A large number of mushrooms, some of which have long, fleshy stems. They're radiating light!"
- luminosity = 1
+ light_range = 1.5
+ light_power = 2.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/grown/ash_flora/mushroom_stem
@@ -166,12 +167,12 @@
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
+ seed = /obj/item/seeds/lavaland/polypore
wine_power = 0.2
-/obj/item/reagent_containers/food/snacks/grown/ash_flora/New()
- ..()
+/obj/item/reagent_containers/food/snacks/grown/ash_flora/Initialize(mapload)
+ . = ..()
pixel_x = rand(-4, 4)
pixel_y = rand(-4, 4)
@@ -180,39 +181,105 @@
/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"
+ seed = /obj/item/seeds/lavaland/porcini
wine_power = 0.4
/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"
+ seed = /obj/item/seeds/lavaland/inocybe
wine_power = 0.7
-
/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
+ seed = /obj/item/seeds/lavaland/ember
wine_power = 0.6
/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"
+ seed = /obj/item/seeds/lavaland/cactus
wine_power = 0.5
-/obj/item/mushroom_bowl
- name = "mushroom bowl"
- desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point."
- icon = 'icons/obj/lavaland/ash_flora.dmi'
- icon_state = "mushroom_bowl"
- w_class = WEIGHT_CLASS_SMALL
+//SEEDS
+
+/obj/item/seeds/lavaland
+ name = "lavaland seeds"
+ desc = "You should never see this."
+ lifespan = 50
+ endurance = 25
+ maturation = 7
+ production = 4
+ yield = 4
+ potency = 15
+ growthstages = 3
+ rarity = 20
+ reagents_add = list("nutriment" = 0.1)
+ resistance_flags = FIRE_PROOF
+
+/obj/item/seeds/lavaland/cactus
+ name = "pack of fruiting cactus seeds"
+ desc = "These seeds grow into fruiting cacti."
+ icon_state = "seed-cactus"
+ species = "cactus"
+ plantname = "Fruiting Cactus"
+ product = /obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit
+ genes = list(/datum/plant_gene/trait/fire_resistance)
+ growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
+ growthstages = 2
+ reagents_add = list("vitamin" = 0.04, "nutriment" = 0.04, "vitfro" = 0.08)
+
+/obj/item/seeds/lavaland/polypore
+ name = "pack of polypore mycelium"
+ desc = "This mycelium grows into bracket mushrooms, also known as polypores. Woody and firm, shaft miners often use them for makeshift crafts."
+ icon_state = "mycelium-polypore"
+ species = "polypore"
+ plantname = "Polypore Mushrooms"
+ product = /obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings
+ genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/fire_resistance)
+ growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
+ reagents_add = list("sugar" = 0.06, "ethanol" = 0.04, "stabilizing_agent" = 0.06, "minttoxin" = 0.02)
+
+/obj/item/seeds/lavaland/porcini
+ name = "pack of porcini mycelium"
+ desc = "This mycelium grows into Boletus edulus, also known as porcini. Native to the late Earth, but discovered on Lavaland. Has culinary, medicinal and relaxant effects."
+ icon_state = "mycelium-porcini"
+ species = "porcini"
+ plantname = "Porcini Mushrooms"
+ product = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf
+ genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/fire_resistance)
+ growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
+ reagents_add = list("nutriment" = 0.06, "vitfro" = 0.04, "nicotine" = 0.04)
+
+
+/obj/item/seeds/lavaland/inocybe
+ name = "pack of inocybe mycelium"
+ desc = "This mycelium grows into an inocybe mushroom, a species of Lavaland origin with hallucinatory and toxic effects."
+ icon_state = "mycelium-inocybe"
+ species = "inocybe"
+ plantname = "Inocybe Mushrooms"
+ product = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap
+ genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/fire_resistance)
+ growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
+ reagents_add = list("lsd" = 0.04, "entpoly" = 0.08, "psilocybin" = 0.04)
+
+/obj/item/seeds/lavaland/ember
+ name = "pack of embershroom mycelium"
+ desc = "This mycelium grows into embershrooms, a species of bioluminescent mushrooms native to Lavaland."
+ icon_state = "mycelium-ember"
+ species = "ember"
+ plantname = "Embershroom Mushrooms"
+ product = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem
+ genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/glow, /datum/plant_gene/trait/fire_resistance)
+ growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
+ reagents_add = list("tinlux" = 0.04, "vitamin" = 0.02, "space_drugs" = 0.02)
+
+//CRAFTING
//what you can craft with these things
/datum/crafting_recipe/mushroom_bowl
@@ -221,3 +288,10 @@
reqs = list(/obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings = 5)
time = 30
category = CAT_PRIMAL
+
+/obj/item/reagent_containers/food/drinks/mushroom_bowl
+ name = "mushroom bowl"
+ desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point."
+ icon = 'icons/obj/lavaland/ash_flora.dmi'
+ icon_state = "mushroom_bowl"
+ w_class = WEIGHT_CLASS_SMALL
\ No newline at end of file
diff --git a/code/modules/reagents/chemistry/reagents/food.dm b/code/modules/reagents/chemistry/reagents/food.dm
index 46d2e1f4db3..4dcc8f15a42 100644
--- a/code/modules/reagents/chemistry/reagents/food.dm
+++ b/code/modules/reagents/chemistry/reagents/food.dm
@@ -336,6 +336,31 @@
M.bodytemperature = min(310, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
return ..()
+/datum/reagent/consumable/garlic
+ name = "Garlic Juice"
+ id = "garlic"
+ description = "Crushed garlic. Chefs love it, but it can make you smell bad."
+ color = "#FEFEFE"
+ taste_description = "garlic"
+ metabolization_rate = 0.15 * REAGENTS_METABOLISM
+
+/datum/reagent/consumable/garlic/on_mob_life(mob/living/carbon/M)
+ var/update_flags = STATUS_UPDATE_NONE
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ if(H.mind && H.mind.vampire && !H.mind.vampire.get_ability(/datum/vampire_passive/full)) //incapacitating but not lethal.
+ if(prob(min(25, current_cycle)))
+ to_chat(H, "You can't get the scent of garlic out of your nose! You can barely think...")
+ H.Weaken(1)
+ H.Jitter(10)
+ H.fakevomit()
+ else
+ if(H.job == "Chef")
+ if(prob(20)) //stays in the system much longer than sprinkles/banana juice, so heals slower to partially compensate
+ update_flags |= H.adjustBruteLoss(-1, FALSE)
+ update_flags |= H.adjustFireLoss(-1, FALSE)
+ return ..() | update_flags
+
/datum/reagent/consumable/sprinkles
name = "Sprinkles"
id = "sprinkles"
@@ -941,7 +966,7 @@
id = "entpoly"
description = "An ichor, derived from a certain mushroom, makes for a bad time."
color = "#1d043d"
- taste_description = "mold"
+ taste_description = "bitter mushroom"
/datum/reagent/consumable/entpoly/on_mob_life(mob/living/M)
var/update_flags = STATUS_UPDATE_NONE
@@ -960,13 +985,13 @@
id = "tinlux"
description = "A stimulating ichor which causes luminescent fungi to grow on the skin. "
color = "#b5a213"
- var/light_activated = 0
- taste_description = "mold"
+ var/light_activated = FALSE
+ taste_description = "tingling mushroom"
/datum/reagent/consumable/tinlux/on_mob_life(mob/living/M)
if(!light_activated)
M.set_light(2)
- light_activated = 1
+ light_activated = TRUE
return ..()
/datum/reagent/consumable/tinlux/on_mob_delete(mob/living/M)
@@ -978,11 +1003,11 @@
description = "A bubbly paste that heals wounds of the skin."
color = "#d3a308"
nutriment_factor = 3 * REAGENTS_METABOLISM
- taste_description = "sweetness"
+ taste_description = "fruity mushroom"
/datum/reagent/consumable/vitfro/on_mob_life(mob/living/M)
var/update_flags = STATUS_UPDATE_NONE
if(prob(80))
update_flags |= M.adjustBruteLoss(-1 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
update_flags |= M.adjustFireLoss(-1 * REAGENTS_EFFECT_MULTIPLIER, FALSE)
- return ..() | update_flags
+ return ..() | update_flags
\ No newline at end of file
diff --git a/icons/obj/hydroponics/growing.dmi b/icons/obj/hydroponics/growing.dmi
index d66cdc2c0dd..438d764cd11 100644
Binary files a/icons/obj/hydroponics/growing.dmi and b/icons/obj/hydroponics/growing.dmi differ
diff --git a/icons/obj/hydroponics/growing_flowers.dmi b/icons/obj/hydroponics/growing_flowers.dmi
index cceb7491212..e0476c80fe8 100644
Binary files a/icons/obj/hydroponics/growing_flowers.dmi and b/icons/obj/hydroponics/growing_flowers.dmi differ
diff --git a/icons/obj/hydroponics/growing_fruits.dmi b/icons/obj/hydroponics/growing_fruits.dmi
index 8259c77f570..90583ad14cb 100644
Binary files a/icons/obj/hydroponics/growing_fruits.dmi and b/icons/obj/hydroponics/growing_fruits.dmi differ
diff --git a/icons/obj/hydroponics/growing_mushrooms.dmi b/icons/obj/hydroponics/growing_mushrooms.dmi
index 7a0eedbdae7..20633cf85b3 100644
Binary files a/icons/obj/hydroponics/growing_mushrooms.dmi and b/icons/obj/hydroponics/growing_mushrooms.dmi differ
diff --git a/icons/obj/hydroponics/growing_vegetables.dmi b/icons/obj/hydroponics/growing_vegetables.dmi
index 9fc1520175e..c13ce2d5210 100644
Binary files a/icons/obj/hydroponics/growing_vegetables.dmi and b/icons/obj/hydroponics/growing_vegetables.dmi differ
diff --git a/icons/obj/hydroponics/harvest.dmi b/icons/obj/hydroponics/harvest.dmi
index 3059eabe629..2259813e20c 100644
Binary files a/icons/obj/hydroponics/harvest.dmi and b/icons/obj/hydroponics/harvest.dmi differ
diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi
index 353d2811e67..fd35ff9a2bd 100644
Binary files a/icons/obj/hydroponics/seeds.dmi and b/icons/obj/hydroponics/seeds.dmi differ
diff --git a/icons/obj/lavaland/ash_flora.dmi b/icons/obj/lavaland/ash_flora.dmi
index d58541612d2..c8c128a0ab5 100644
Binary files a/icons/obj/lavaland/ash_flora.dmi and b/icons/obj/lavaland/ash_flora.dmi differ
diff --git a/paradise.dme b/paradise.dme
index 18012618db5..740c4715447 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -1600,6 +1600,7 @@
#include "code\modules\hydroponics\grown\cotton.dm"
#include "code\modules\hydroponics\grown\eggplant.dm"
#include "code\modules\hydroponics\grown\flowers.dm"
+#include "code\modules\hydroponics\grown\garlic.dm"
#include "code\modules\hydroponics\grown\grass_carpet.dm"
#include "code\modules\hydroponics\grown\herbals.dm"
#include "code\modules\hydroponics\grown\kudzu.dm"