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"