From 24cb27b67cd7b2a9528e0f52e53ebbff92272d2b Mon Sep 17 00:00:00 2001 From: DragonTrance Date: Sun, 21 Feb 2021 08:37:10 -0700 Subject: [PATCH] #5 --- code/game/objects/items/stacks/cash.dm | 1 + code/game/objects/items/stacks/medical.dm | 9 +- .../items/stacks/sheets/sheet_types.dm | 7 +- code/game/objects/items/stacks/wrap.dm | 1 + code/game/objects/items/storage/belt.dm | 4 +- code/modules/cargo/packs.dm | 3 + code/modules/cargo/packs/misc.dm | 2 +- code/modules/cargo/packs/organic.dm | 217 +++++++++++++++++- code/modules/cargo/packs/service.dm | 8 + code/modules/crafting/craft.dm | 8 + code/modules/hydroponics/gene_modder.dm | 15 ++ code/modules/hydroponics/grown.dm | 1 + code/modules/hydroponics/grown/banana.dm | 3 +- code/modules/hydroponics/grown/cereals.dm | 4 +- code/modules/hydroponics/grown/citrus.dm | 1 - code/modules/hydroponics/grown/mushrooms.dm | 106 ++++++++- code/modules/hydroponics/hydroitemdefines.dm | 54 ++++- code/modules/hydroponics/hydroponics.dm | 6 +- code/modules/hydroponics/plant_genes.dm | 158 +++++++++++++ code/modules/hydroponics/sample.dm | 2 +- code/modules/hydroponics/seeds.dm | 18 +- code/modules/paperwork/paper.dm | 1 + .../chemistry/reagents/food_reagents.dm | 2 +- .../reagents/chemistry/recipes/others.dm | 7 +- .../reagents/reagent_containers/spray.dm | 4 +- code/modules/vending/megaseed.dm | 36 +-- code/modules/vending/nutrimax.dm | 4 + icons/obj/hydroponics/growing_vegetables.dmi | Bin 21773 -> 27516 bytes icons/obj/hydroponics/harvest.dmi | Bin 90232 -> 91214 bytes icons/obj/hydroponics/seeds.dmi | Bin 26518 -> 27223 bytes 30 files changed, 637 insertions(+), 45 deletions(-) diff --git a/code/game/objects/items/stacks/cash.dm b/code/game/objects/items/stacks/cash.dm index 94f6fca2..a10c28de 100644 --- a/code/game/objects/items/stacks/cash.dm +++ b/code/game/objects/items/stacks/cash.dm @@ -11,6 +11,7 @@ w_class = WEIGHT_CLASS_TINY full_w_class = WEIGHT_CLASS_TINY resistance_flags = FLAMMABLE + grind_results = list(/datum/reagent/cellulose = 10) var/value = 0 /obj/item/stack/spacecash/Initialize() diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 4ba3f287..987f8580 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -142,6 +142,7 @@ stop_bleeding = 1800 self_delay = 20 max_amount = 12 + grind_results = list(/datum/reagent/cellulose = 3) /obj/item/stack/medical/gauze/attackby(obj/item/I, mob/user, params) @@ -196,10 +197,10 @@ desc = "A healing paste you can apply on wounds." icon_state = "aloe_paste" - self_delay = 20 + self_delay = 25 novariants = TRUE amount = 20 max_amount = 20 - heal_brute = 3 - heal_burn = 3 - grind_results = list(/datum/reagent/consumable/aloejuice = 1) \ No newline at end of file + heal_brute = 25 + heal_burn = 30 + grind_results = list(/datum/reagent/consumable/aloejuice = 1) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 9763eeda..07e84449 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -247,7 +247,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ resistance_flags = FLAMMABLE merge_type = /obj/item/stack/sheet/mineral/wood novariants = TRUE - grind_results = list(/datum/reagent/carbon = 20) + grind_results = list(/datum/reagent/cellulose = 10) /obj/item/stack/sheet/mineral/wood/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.wood_recipes @@ -277,7 +277,7 @@ GLOBAL_LIST_INIT(bamboo_recipes, list ( \ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0) resistance_flags = FLAMMABLE merge_type = /obj/item/stack/sheet/mineral/bamboo - grind_results = list(/datum/reagent/carbon = 5) + grind_results = list(/datum/reagent/cellulose = 10) /obj/item/stack/sheet/mineral/wood/attackby(obj/item/W, mob/user, params) // NOTE: sheet_types.dm is where the WOOD stack lives. Maybe move this over there. // Taken from /obj/item/stack/rods/attackby in [rods.dm] @@ -355,6 +355,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ is_fabric = TRUE loom_result = /obj/item/stack/sheet/silk merge_type = /obj/item/stack/sheet/cloth + grind_results = list(/datum/reagent/cellulose = 4) /obj/item/stack/sheet/cloth/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.cloth_recipes @@ -374,6 +375,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ item_state = "sheet-cloth" novariants = TRUE merge_type = /obj/item/stack/sheet/silk + grind_results = list(/datum/reagent/cellulose = 2) //obj/item/stack/sheet/silk/Initialize(mapload, new_amount, merge = TRUE) // recipes = GLOB.silk_recipes @@ -398,6 +400,7 @@ GLOBAL_LIST_INIT(durathread_recipes, list ( \ force = 0 throwforce = 0 merge_type = /obj/item/stack/sheet/durathread + grind_results = list(/datum/reagent/cellulose = 10) /obj/item/stack/sheet/durathread/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.durathread_recipes diff --git a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm index 10240e90..9ad60df4 100644 --- a/code/game/objects/items/stacks/wrap.dm +++ b/code/game/objects/items/stacks/wrap.dm @@ -13,6 +13,7 @@ amount = 25 max_amount = 25 resistance_flags = FLAMMABLE + grind_results = list(/datum/reagent/cellulose = 3) /obj/item/stack/wrapping_paper/use(used, transfer) var/turf/T = get_turf(src) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index e38a7a6e..d4e337d2 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -889,10 +889,10 @@ obj/item/storage/belt/slut/ComponentInitialize() content_overlays = TRUE /obj/item/storage/belt/botany/New() - . = ..() if(prob(1)) new/obj/item/storage/belt/botany/fancy(loc) qdel(src) + . = ..() /obj/item/storage/belt/botany/ComponentInitialize() . = ..() @@ -915,4 +915,4 @@ obj/item/storage/belt/slut/ComponentInitialize() /obj/item/storage/belt/botany/fancy //I like citadel's botany belt but I also wanna keep the default desc = "A belt made for holding hydroponics supplies. Oddly enough, it's not green." icon_state = "botanybelt_extra" - item_state = "botanybelt_extra" \ No newline at end of file + item_state = "botanybelt_extra" diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 4c9ddfe3..b5e73c7f 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -8,6 +8,7 @@ var/access_any = FALSE //Do we care about access? var/list/contains = null //What items are in the crate var/crate_name = "crate" //The crate that comes with each order + var/crate_desc = "" //Crate's description var/desc = ""//no desc by default var/crate_type = /obj/structure/closet/crate //what kind of crate - Locked crates needed for access locked crates var/dangerous = FALSE // Should we message admins? @@ -19,6 +20,8 @@ /datum/supply_pack/proc/generate(atom/A) var/obj/structure/closet/crate/C = new crate_type(A) C.name = crate_name + if(crate_desc) + C.desc = crate_desc if(access) C.req_access = list(access) if(access_any) diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm index 42d70fa3..af4a633f 100644 --- a/code/modules/cargo/packs/misc.dm +++ b/code/modules/cargo/packs/misc.dm @@ -267,7 +267,7 @@ /datum/supply_pack/misc/lewd name = "Lewd Crate" // OwO - desc = "Psss want to have a good time with your sluts? Well I got what you want! Maid clothing, dildos, collars and more!" + desc = "Psst, want to have a good time with your sluts? Well I got what you want! Maid clothing, dildos, collars and more!" cost = 5000 contraband = TRUE contains = list(/obj/item/dildo/custom, diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm index 0aee666e..05a91ab7 100644 --- a/code/modules/cargo/packs/organic.dm +++ b/code/modules/cargo/packs/organic.dm @@ -196,6 +196,188 @@ /obj/item/reagent_containers/food/snacks/grown/strawberry) crate_name = "fruit crate" + +//ALIEN-ESQUE SEEDS CRATE +/datum/supply_pack/organic/rareseeds + name = "Galactic Seeds Crate" + desc = "Feel the need to explore the vastness of space, condensed into a single crate! Contains at least 4 seeds from random regions of space." + cost = 9500 //See fill proc. I know this costs a lot + contains = list() + crate_name = "galactic seeds crate" + crate_desc = "A rectangular steel crate." + crate_type = /obj/structure/closet/crate/hydroponics + +/datum/supply_pack/organic/rareseeds/fill(obj/structure/closet/crate/C) + . = ..() + var/iteration = 0 + var/common_seeds = list( + /obj/item/seeds/wheat, + /obj/item/seeds/wheat/oat, + /obj/item/seeds/peas, + /obj/item/seeds/tea, + /obj/item/seeds/coffee, + /obj/item/seeds/poppy, + /obj/item/seeds/sunflower, + /obj/item/seeds/grass, + /obj/item/seeds/glowshroom, + /obj/item/seeds/cotton, + /obj/item/seeds/reishi, + /obj/item/seeds/kudzu, //For some sort of realism that kudzu generally grows everywhere, have it a common seed + /obj/item/seeds/starthistle) + var/uncommon_seeds = list( + /obj/item/seeds/chanterelle/jupitercup, + /obj/item/seeds/sunflower/moonflower, + /obj/item/seeds/bee_balm, + /obj/item/seeds/random, + /obj/item/seeds/tea/astra, + /obj/item/seeds/peas/laugh, + /obj/item/seeds/galaxythistle, + /obj/item/seeds/coconut, + /obj/item/seeds/ambrosia/deus, + /obj/item/seeds/aloe, + /obj/item/seeds/cannabis/rainbow, + /obj/item/seeds/cannabis/ultimate, + /obj/item/seeds/angel, + /obj/item/seeds/liberty, + /obj/item/seeds/plump/walkingmushroom, + /obj/item/seeds/chanterelle, + /obj/item/seeds/glowshroom/shadowshroom) + var/xenoarch_seeds = list( + /obj/item/seeds/amauri, + /obj/item/seeds/gelthi, + /obj/item/seeds/jurlmah, + /obj/item/seeds/nofruit, + /obj/item/seeds/shand, + /obj/item/seeds/surik, + /obj/item/seeds/telriis, + /obj/item/seeds/thaadra, + /obj/item/seeds/vale, + /obj/item/seeds/vaporsac) + var/lavaland_seeds = list( + /obj/item/seeds/lavaland/polypore, + /obj/item/seeds/lavaland/porcini, + /obj/item/seeds/lavaland/inocybe, + /obj/item/seeds/lavaland/ember, + /obj/item/seeds/lavaland/cactus) + while((prob(68) || iteration <= 4) && iteration <= 15) + iteration++ + var/obj/item/seeds/chosen_seed = null + var/obj/item/seeds/cache = null + switch(iteration) + if(1 to 3) + chosen_seed = pick(common_seeds) + if(4) + if(prob(25)) + chosen_seed = pick(lavaland_seeds) + else + chosen_seed = pick(common_seeds) + if(5) + if(prob(40)) + chosen_seed = pick(lavaland_seeds) + else + chosen_seed = pick(common_seeds) + if(6) + if(prob(70)) + chosen_seed = pick(common_seeds) + else + chosen_seed = pick(uncommon_seeds) + if(7) + if(prob(3)) + chosen_seed = pick(xenoarch_seeds) + else if(prob(40)) + chosen_seed = pick(common_seeds) + else + chosen_seed = pick(uncommon_seeds) + if(8 to 10) + if(prob(8)) + chosen_seed = pick(xenoarch_seeds) + else + chosen_seed = pick(uncommon_seeds) + if(11 to INFINITY) + if(prob(15)) + chosen_seed = pick(xenoarch_seeds) + else if (prob(50)) + chosen_seed = pick(uncommon_seeds) + else + chosen_seed = pick(lavaland_seeds) + + + cache = chosen_seed + + if(istype(chosen_seed,/obj/item/seeds/starthistle) + new chosen_seed(C) + continue + //Make it actually seem like it's from another galaxy with all this stuff + if(prob(15) && !istype(chosen_seed, /obj/item/seeds/starthistle) + chosen_seed.rarity += 1 + + var/mutated = FALSE + for(var/datum/plant_gene/G in cache.genes) + if(locate(G) in chosen_seed.genes && prob(60)) + if(prob(50)) + chosen_seed.unset_mutability(G, PLANT_GENE_EXTRACTABLE) + chosen_seed.rarity += 5 + else if(prob(70)) + chosen_seed.unset_mutability(G, PLANT_GENE_REMOVABLE) + chosen_seed.rarity += 5 + else if(!istype(G, /datum/plant_gene/core)) + chosen_seed.forbiddengenes += G.type //Has the slim chance to make this plant unable to produce anything it started out with + chosen_seed.genes -= locate(G) in chosen_seed.genes //Sanity check + chosen_seed.rarity += 10 + + if(prob(65)) //To make this seem even more otherworldly + //Our own version of add_random_reagents + var/random_amount = round(rand(0, 25), 5) * 0.01 + if(random_amount <= 0) random_amount = 0.02 + var/datum/plant_gene/reagent/R = new(get_random_reagent_id(), random_amount) + + if(R.can_add(chosen_seed)) + chosen_seed.genes += R + chosen_seed.rarity += 5 + else + qdel(R) + chosen_seed.reagents_from_genes() + + if(prob(3)) //This is insanely rare, but we will use different grow sprites. Probably will fuck something up + var/obj/item/seeds/S = pick(subtypesof(/obj/item/seeds)) + if(prob(85)) + chosen_seed.plantname = "[pick("Alien", "Supernatural", "Artificial", "Modified")] [S.plantname]" + chosen_seed.rarity += 20*(!mutated) + else + chosen_seed.plantname = S.plantname + chosen_seed.growing_icon = S.growing_icon + chosen_seed.species = S.species + chosen_seed.icon_grow = S.icon_grow + chosen_seed.icon_harvest = S.icon_harvest + chosen_seed.icon_dead = S.icon_dead + chosen_seed.rarity += 35*(!mutated) //woah nelly + mutated = TRUE + + else if(prob(70)) //Add basic reagents from grounded sheets, but only small amounts + var/A = rand(1, 5) + var/chosen_reagent + switch(A) + if(1) + chosen_reagent = /datum/reagent/toxin/plasma + if(2) + chosen_reagent = /datum/reagent/uranium + if(3) + chosen_reagent = /datum/reagent/iron + if(4) + chosen_reagent = /datum/reagent/gold + if(5) + chosen_reagent = /datum/reagent/cellulose + var/datum/plant_gene/reagent/R = new(chosen_reagent, A*0.02) + if(R.can_add(chosen_seed)) + chosen_seed.genes += R + chosen_seed.rarity += 5 + else + qdel(R) + chosen_seed.reagents_from_genes() + + new chosen_seed(C) + //All in a while() loop! Very efficient I know + /datum/supply_pack/organic/grill name = "Grilling Starter Kit" desc = "Hey dad I'm Hungry. Hi Hungry I'm THE NEW GRILLING STARTER KIT ONLY 5000 BUX GET NOW! Contains a cooking grill and five fuel coal sheets." @@ -277,11 +459,9 @@ /datum/supply_pack/organic/hydroponics name = "Hydroponics Crate" - desc = "Supplies for growing a great garden! Contains two bottles of ammonia, two Plant-B-Gone spray bottles, a hatchet, cultivator, plant analyzer, as well as a pair of leather gloves and a botanist's apron." + desc = "Supplies for growing a great garden! Contains two bottles of ammonia, a hatchet, cultivator, plant analyzer, as well as a pair of leather gloves and a botanist's apron." cost = 1750 - contains = list(/obj/item/reagent_containers/spray/plantbgone, - /obj/item/reagent_containers/spray/plantbgone, - /obj/item/reagent_containers/glass/bottle/ammonia, + contains = list(/obj/item/reagent_containers/glass/bottle/ammonia, /obj/item/reagent_containers/glass/bottle/ammonia, /obj/item/hatchet, /obj/item/cultivator, @@ -326,6 +506,33 @@ /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass) crate_name = "kitchen cutlery deluxe set" +/datum/supply_pack/organic/hydroponics/maintgarden + name = "Maintenance Garden Crate" + desc = "Set up your own tiny paradise with do-it-yourself botany kit. Contains sandstone for dirt plots, pest spray, ammonia, a portable seed generator, basic botanical tools, and some seeds to start off with." + cost = 2700 + contains = list(/obj/item/storage/bag/plants/portaseeder, + /obj/item/reagent_containers/spray/pestspray, + /obj/item/stack/sheet/mineral/sandstone/twelve, + /obj/item/reagent_containers/glass/bucket, + /obj/item/reagent_containers/glass/bottle/ammonia, + /obj/item/reagent_containers/glass/bottle/ammonia, + /obj/item/hatchet, + /obj/item/cultivator, + /obj/item/plant_analyzer, + /obj/item/clothing/gloves/botanic_leather, + /obj/item/clothing/suit/apron, + /obj/item/flashlight, + /obj/item/seeds/carrot, + /obj/item/seeds/carrot, + /obj/item/seeds/tower, + /obj/item/seeds/tower, + /obj/item/seeds/watermelon, + /obj/item/seeds/watermelon, + /obj/item/seeds/grass, + /obj/item/seeds/grass) + crate_name = "maint garden crate" + crate_type = /obj/structure/closet/crate/hydroponics + /datum/supply_pack/organic/mre name = "MRE supply kit (emergency rations)" desc = "The lights are out. Oxygen's running low. You've run out of food except space weevils. Don't let this be you! Order our NT branded MRE kits today! This pack contains 5 MRE packs with a randomized menu and an oxygen tank." @@ -398,7 +605,7 @@ /obj/item/seeds/wheat/rice, /obj/item/seeds/carrot, /obj/item/seeds/sunflower, - /obj/item/seeds/chanter, + /obj/item/seeds/chanterelle, /obj/item/seeds/potato, /obj/item/seeds/sugarcane) crate_name = "seeds crate" diff --git a/code/modules/cargo/packs/service.dm b/code/modules/cargo/packs/service.dm index 249d1aa8..d2656e29 100644 --- a/code/modules/cargo/packs/service.dm +++ b/code/modules/cargo/packs/service.dm @@ -314,6 +314,14 @@ crate_name = "games supply crate" crate_type = /obj/structure/closet/crate +/datum/supply_pack/vending/hydro + name = "Hydroponics Supply Crate" + desc = "Arnt you glad you dont have to do it the natural way? Contains a megaseed and nutrimax vending machine refill." + cost = 5000 + contains = list(/obj/item/vending_refill/hydroseeds, + /obj/item/vending_refill/hydronutrients) + crate_name = "hydroponics supply crate" + /datum/supply_pack/service/vending/snack name = "Snack Supply Crate" desc = "One vending machine refill of cavity-bringin' goodness! The number one dentist recommended order!" diff --git a/code/modules/crafting/craft.dm b/code/modules/crafting/craft.dm index 1f4bf900..52843dcf 100644 --- a/code/modules/crafting/craft.dm +++ b/code/modules/crafting/craft.dm @@ -111,6 +111,10 @@ for(var/datum/reagent/A in RC.reagents.reagent_list) .["other"][A.type] += A.volume .["other"][I.type] += 1 + if(istype(I, /obj/item/reagent_containers/food/snacks/grown) && !.["color"]) //First we find has priority + var/obj/item/reagent_containers/food/snacks/grown/G = I + if(G.modified_colors) + .["color"] = G.color /datum/personal_crafting/proc/check_tools(mob/user, datum/crafting_recipe/R, list/contents) if(!R.tools.len) @@ -146,6 +150,9 @@ /datum/personal_crafting/proc/construct_item(mob/user, datum/crafting_recipe/R) var/list/contents = get_surroundings(user) var/send_feedback = 1 + var/cached_color = null + if(contents["color"]) //From plants + cached_color = contents["color"] if(check_contents(R, contents)) if(check_tools(user, R, contents)) if(do_after(user, R.time, target = user)) @@ -157,6 +164,7 @@ var/list/parts = del_reqs(R, user) var/atom/movable/I = new R.result (get_turf(user.loc)) I.CheckParts(parts, R) + I.color = cached_color if(send_feedback) SSblackbox.record_feedback("tally", "object_crafted", 1, I.type) return 0 diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index 1d34d15c..950277ce 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -307,6 +307,17 @@ seed.genes -= G if(istype(G, /datum/plant_gene/reagent)) seed.reagents_from_genes() + if(istype(G, /datum/plant_gene/trait/modified_color)) + var/datum/plant_gene/trait/modified_color/found + for(var/datum/plant_gene/trait/modified_color/T in seed.genes) + if(istype(T, /datum/plant_gene/trait/modified_color) && T.type != G.type) + found = T + break + if(found) + seed.color = found.color + else + seed.color = null + seed.modified_colors = FALSE repaint_seed() if("extract") if(disk && !disk.read_only) @@ -343,6 +354,10 @@ seed.genes += disk.gene.Copy() if(istype(disk.gene, /datum/plant_gene/reagent)) seed.reagents_from_genes() + if(istype(disk.gene, /datum/plant_gene/trait/modified_color) && !seed.modified_colors) + var/datum/plant_gene/trait/modified_color/M = disk.gene + seed.color = M.color + seed.modified_colors = TRUE disk.gene.apply_vars(seed) repaint_seed() diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 9dddb622..5895c6de 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -20,6 +20,7 @@ var/distill_reagent //If NULL and this object can be distilled, it uses a generic fruit_wine reagent and adjusts its variables. var/wine_flavor //If NULL, this is automatically set to the fruit's flavor. Determines the flavor of the wine if distill_reagent is NULL. var/wine_power = 10 //Determines the boozepwr of the wine if distill_reagent is NULL. + var/modified_colors = FALSE /obj/item/reagent_containers/food/snacks/grown/Initialize(mapload, obj/item/seeds/new_seed) . = ..() diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index 162bbbc5..ae76f581 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -30,8 +30,7 @@ /obj/item/reagent_containers/food/snacks/grown/banana/generate_trash(atom/location) . = ..() var/obj/item/grown/bananapeel/peel = . - if(istype(peel)) - peel.grind_results = list(/datum/reagent/consumable/banana_peel = seed.potency * 0.2) + peel.grind_results = list(/datum/reagent/consumable/banana_peel = seed.potency * 0.2) /obj/item/reagent_containers/food/snacks/grown/banana/suicide_act(mob/user) user.visible_message("[user] is aiming [src] at [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!") diff --git a/code/modules/hydroponics/grown/cereals.dm b/code/modules/hydroponics/grown/cereals.dm index 1d1309ac..946831c1 100644 --- a/code/modules/hydroponics/grown/cereals.dm +++ b/code/modules/hydroponics/grown/cereals.dm @@ -29,7 +29,7 @@ // Oat /obj/item/seeds/wheat/oat name = "pack of oat seeds" - desc = "These may, or may not, grow into oat." + desc = "Oat's just a matter of time..." icon_state = "seed-oat" species = "oat" plantname = "Oat Stalks" @@ -53,7 +53,7 @@ // Rice /obj/item/seeds/wheat/rice name = "pack of rice seeds" - desc = "These may, or may not, grow into rice." + desc = "Rice, rice, baby!" icon_state = "seed-rice" species = "rice" plantname = "Rice Stalks" diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index b220956a..18bde6e4 100644 --- a/code/modules/hydroponics/grown/citrus.dm +++ b/code/modules/hydroponics/grown/citrus.dm @@ -114,7 +114,6 @@ icon_grow = "lime-grow" icon_dead = "lime-dead" genes = list(/datum/plant_gene/trait/repeated_harvest) - mutatelist = list(/obj/item/seeds/firelemon) reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05) /obj/item/reagent_containers/food/snacks/grown/citrus/lemon diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm index 3f61dcdf..1098ad5d 100644 --- a/code/modules/hydroponics/grown/mushrooms.dm +++ b/code/modules/hydroponics/grown/mushrooms.dm @@ -22,6 +22,37 @@ genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' reagents_add = list(/datum/reagent/medicine/morphine = 0.35, /datum/reagent/medicine/charcoal = 0.35, /datum/reagent/consumable/nutriment = 0) + mutatelist = list(/obj/item/seeds/reishi/negative) + +/* +/obj/item/seeds/reishi/dark + name = "pack of dark reishi mycelium" + desc = "This mycelium grows into something that'll put you into a trance." + plantname = "Dark Reishi" + lifespan = 2 + endurance = 8 + maturation = 6 + production = 1 + yield = 0 + potency = 0 + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/modified_color/bw) + reagents_add = list(/datum/reagent/medicine/morphine = 0.2, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.02) + mutatelist = list(/obj/item/seeds/reishi/negative) +*/ + +/obj/item/seeds/reishi/negative + name = "pack of light-abosrbing reishi mycelium" + desc = "This mycelium grows into something so tranquil, you'll never want to wake up from its trance." + plantname = "Light-Absorbing Reishi" + lifespan = 1 + endurance = 2 //Better use that enduro grow + maturation = 10 + production = 6 + yield = 0 + potency = 0 + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/modified_color) + reagents_add = list(/datum/reagent/medicine/morphine = 0.2, /datum/reagent/toxin/amanitin = 0.05, /datum/reagent/consumable/nutriment = 0.04, /datum/reagent/consumable/nutriment/vitamin = 0.02) + mutatelist = list(/obj/item/seeds/reishi) /obj/item/reagent_containers/food/snacks/grown/mushroom/reishi seed = /obj/item/seeds/reishi @@ -173,7 +204,7 @@ to_chat(user, "You plant the walking mushroom.") // Chanterelle -/obj/item/seeds/chanter +/obj/item/seeds/chanterelle name = "pack of chanterelle mycelium" desc = "This mycelium grows into chanterelle mushrooms." icon_state = "mycelium-chanter" @@ -190,10 +221,10 @@ genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' reagents_add = list(/datum/reagent/consumable/nutriment = 0.1) - mutatelist = list(/obj/item/seeds/chanterelle/jupitercup) + mutatelist = list(/obj/item/seeds/chanterelle/jupitercup, /obj/item/seeds/chanterelle/jupitercup/hollow, /obj/item/seeds/chanterelle/jupitercup/monochrome) /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle - seed = /obj/item/seeds/chanter + seed = /obj/item/seeds/chanterelle name = "chanterelle cluster" desc = "Cantharellus Cibarius: These jolly yellow little shrooms sure look tasty!" icon_state = "chanterelle" @@ -215,6 +246,7 @@ genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/reagent/teslium, /datum/plant_gene/trait/plant_type/carnivory) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' reagents_add = list(/datum/reagent/consumable/nutriment = 0.1) + mutatelist = list() /obj/item/seeds/chanterelle/jupitercup/Initialize(mapload, nogenes = FALSE) . = ..() @@ -222,6 +254,36 @@ unset_mutability(/datum/plant_gene/reagent/teslium, PLANT_GENE_EXTRACTABLE) unset_mutability(/datum/plant_gene/trait/plant_type/carnivory, PLANT_GENE_REMOVABLE) +/obj/item/seeds/chanterelle/jupitercup/hollow + name = "pack of hollow-cup mycelium" + desc = "This mycelium grows into hollow-cup mushrooms. These mushrooms require only the upmost attention." + plantname = "Hollow-cup Mushrooms" + lifespan = 1 //starts decaying before it can even be harvested once + production = 4 + endurance = 5 + yield = 0 + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/plant_type/carnivory, /datum/plant_gene/trait/modified_color/opaque) + growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' + reagents_add = list(/datum/reagent/consumable/nutriment = 0.1) + mutatelist = list(/obj/item/seeds/chanterelle/jupitercup) + color = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0.66,0.66,0.66,0.66, 0,0,0,0) + modified_colors = TRUE + +/obj/item/seeds/chanterelle/jupitercup/monochrome + name = "pack of silver-cup mycelium" + desc = "This mycelium grows into silver-cup mushrooms. These mushrooms require only the upmost attention." + plantname = "Silver-cup Mushrooms" + lifespan = 1 + production = 5 + endurance = 7 + yield = 0 + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/plant_type/carnivory, /datum/plant_gene/trait/modified_color/monochrome) + growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' + reagents_add = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/consumable/nothing = 0.02) + mutatelist = list(/obj/item/seeds/chanterelle/jupitercup) + color = list(0.5,0.5,0.5,0, 0.5,0.5,0.5,0, 0.5,0.5,0.5,0, 0,0,0,1, 0,0,0,0) + modified_colors = TRUE + /obj/item/reagent_containers/food/snacks/grown/mushroom/jupitercup seed = /obj/item/seeds/chanterelle/jupitercup name = "jupiter cup" @@ -386,6 +448,24 @@ product = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' + mutatelist = list(/obj/item/seeds/lavaland/inocybe/magenta) + +/obj/item/seeds/lavaland/inocybe/magenta + name = "pack of dilated inocybe mycelium" + desc = "This mycelium grows into a specially-colored inocybe mushroom, their shifted cells make them appear red." + plantname = "Magenta Inocybe Mushrooms" + lifespan = 4 + endurance = 5 + maturation = 3 + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/modified_color/magenta) + mutatelist = list() + color = list( + 0.25, 0.5, 1, 0, + 1, 0.25, 0.5, 0, + 0.5, 1, 0.25, 0, + 0,0,0,1, + 0,0,0,0) + modified_colors = TRUE // Embershroom (Mushroom stem) @@ -398,3 +478,23 @@ 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) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' + mutatelist = list(/obj/item/seeds/lavaland/ember/cyan) + +/obj/item/seeds/lavaland/ember/cyan + name = "pack of dilated embershroom mycelium" + desc = "This mycelium grows into a specially-colored embershroom mushroom, their shifted cells make them appear blue." + plantname = "Magenta Embershroom Mushrooms" + lifespan = 6 + endurance = 10 + maturation = 4 + yield = 2 + potency = 25 + genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/glow/blue, /datum/plant_gene/trait/modified_color/cyan) + mutatelist = list() + color = list( + 0.25, 1, 0.5, 0, + 0.5, 0.25, 1, 0, + 1, 0.5, 0.25, 0, + 0,0,0,1, + 0,0,0,0) + modified_colors = TRUE diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 4537d91b..ad5d2d76 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -198,4 +198,56 @@ /obj/item/reagent_containers/glass/bottle/killer/pestkiller name = "bottle of pest spray" desc = "Contains a pesticide." - list_reagents = list(/datum/reagent/toxin/pestkiller = 50) \ No newline at end of file + list_reagents = list(/datum/reagent/toxin/pestkiller = 50) + +/* +/obj/item/plant_debugger + name = "plant debugger" + desc = "You should never be able to see this." + icon = 'icons/obj/device.dmi' + icon_state = "hydro" + flags_1 = ABSTRACT + var/mode = 0 + var/list/traits_list = list( + /datum/plant_gene/trait/modified_color/monochrome/yellow, + /datum/plant_gene/trait/modified_color/monochrome/green, + /datum/plant_gene/trait/modified_color/vibrant, + /datum/plant_gene/trait/modified_color/random, + /datum/plant_gene/trait/modified_color/monochrome/dark/, + /datum/plant_gene/trait/modified_color/monochrome/dark/red, + /datum/plant_gene/trait/modified_color/monochrome/dark/green, + /datum/plant_gene/trait/modified_color/monochrome/dark/blue) + var/trait_to_add = null + +/obj/item/plant_debugger/attack_self(mob/user) + . = ..() + mode++ + if(mode > traits_list.len) + mode = 1 + trait_to_add = traits_list[mode] + to_chat(user, "Now injecting: [trait_to_add]") + +/obj/item/plant_debugger/pre_attack(atom/A, mob/living/user, params) + if(!istype(A, /obj/machinery/hydroponics)) + return + var/obj/machinery/hydroponics/H = A + if(!H.myseed) + to_chat(user, "This tray does not have a seed in it!") + return + for(var/G in H.myseed.genes) + if(istype(G, /datum/plant_gene/trait/modified_color)) + var/datum/plant_gene/trait/T = new trait_to_add + G = T + T.apply_vars(H.myseed) + H.update_icon() + to_chat(user, "Converted old modified_color to [trait_to_add]") + return + var/datum/plant_gene/trait/T = new trait_to_add + H.myseed.genes += T + T.apply_vars(H.myseed) + H.update_icon() + to_chat(user, "Added [trait_to_add]") + +/obj/item/plant_debugger/attack() + return +*/ diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index fcfcf0f9..70e1280e 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -310,6 +310,8 @@ else var/t_growthstate = clamp(round((age / myseed.maturation) * myseed.growthstages), 1, myseed.growthstages) plant_overlay.icon_state = "[myseed.icon_grow][t_growthstate]" + if(myseed.modified_colors) //In case we get a different color from other things + plant_overlay.color = myseed.color add_overlay(plant_overlay) /obj/machinery/hydroponics/proc/update_icon_lights() @@ -374,7 +376,7 @@ if(10 to 11) myseed = new /obj/item/seeds/amanita(src) if(8 to 9) - myseed = new /obj/item/seeds/chanter(src) + myseed = new /obj/item/seeds/chanterelle(src) if(6 to 7) myseed = new /obj/item/seeds/tower(src) if(4 to 5) @@ -554,6 +556,8 @@ age = 1 plant_health = myseed.endurance lastcycle = world.time + for(var/datum/plant_gene/trait/G in myseed.genes) + G.apply_vars(myseed) update_icon() return else diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index 604fa3e4..6d7263fc 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -337,6 +337,164 @@ datum/plant_gene/trait/glow/white name = "Pink Bioluminescence" glow_color = "#FFB3DA" +//Change grow, harvest, and crafted food's color +//Made for mostly being fancy with stuff. Should be rare or hard to obtain, with the exception of strange seeds +/datum/plant_gene/trait/modified_color + name = "Dilated Light (Negative)" + var/color = list(-1,0,0,0, 0,-1,0,0, 0,0,-1,0, 0,0,0,1, 1,1,1,0) //Negative Colors + var/long_calculation = FALSE //For advanced color matrices + +/datum/plant_gene/trait/modified_color/on_new(obj/item/reagent_containers/food/snacks/grown/G, newloc) + if(G.modified_colors) + return + for(var/datum/plant_gene/trait/I in G.seed.genes) //Have ones first added give priority + if(istype(I, /datum/plant_gene/trait/modified_color) && I.type != type) + return + if(long_calculation) + calculate() + G.color = color + G.modified_colors = TRUE + +//same as above but for the gene modder +/datum/plant_gene/trait/modified_color/apply_vars(obj/item/seeds/S) + S.color = color + S.modified_colors = TRUE + +/datum/plant_gene/trait/modified_color/proc/calculate() + return + +/datum/plant_gene/trait/modified_color/opaque + name = "Dilated Light (Flimsy)" + color = list(1,0,0,0, 0,1,0,0, 0,0,1,0, -0.3,-0.3,-0.3,0.7, 0,0,0,0) + +/datum/plant_gene/trait/modified_color/monochrome + name = "Dilated Light (Monochrome)" + color = list(0.5,0.5,0.5,0, 0.5,0.5,0.5,0, 0.5,0.5,0.5,0, 0,0,0,1, 0,0,0,0) + +/datum/plant_gene/trait/modified_color/monochrome/red + name = "Dilated Light (Red)" + color = list(0.8,0,0,0, 0.8,0.5,0.5,0, 0.8,0.5,0.5,0, 0,0,0,1, 0,0,0,0) + +/datum/plant_gene/trait/modified_color/monochrome/green + name = "Dilated Light (Green)" + color = list(0.5,0.8,0.5,0, 0,0.8,0,0, 0.5,0.8,0.5,0, 0,0,0,1, 0,0,0,0) + +/datum/plant_gene/trait/modified_color/monochrome/blue + name = "Dilated Light (Blue)" + color = list(0.5,0.5,0.8,0, 0.5,0.5,0.8,0, 0,0,0.8,0, 0,0,0,1, 0,0,0,0) + +/* +/datum/plant_gene/trait/modified_color/monochrome/yellow + name = "Dilated Light (Yellow)" + color = list(0.8,0,0,0, 0,0.4,0,0, 0.8,0.4,0.5,0, 0,0,0,1, 0,0,0,0) + +/datum/plant_gene/trait/modified_color/monochrome/green + name = "Dilated Light (Green)" + color = list(0.5,0.8,0.4,0, 0,0.8,0,0, 0,0,0.4,0, 0,0,0,1, 0,0,0,0) +*/ + +/datum/plant_gene/trait/modified_color/monochrome/dark/ + name = "Dilated Light (Dark)" + color = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, -0.3, -0.3, -0.3, 0) + +/* +/datum/plant_gene/trait/modified_color/monochrome/dark/red //for vyx + name = "Dilated Light (Dark Red)" + color = list(1,0,0,0, 0.5,0.5,0.5,0, 0.5,0.5,0.5,0, 0,0,0,1, 0,0,0,0) + +/datum/plant_gene/trait/modified_color/monochrome/dark/green + name = "Dilated Light (Dark Green)" + color = list(0.5,0.5,0.5,0, 0,1,0,0, 0.5,0.5,0.5,0, 0,0,0,1, 0,0,0,0) + +/datum/plant_gene/trait/modified_color/monochrome/dark/blue + name = "Dilated Light (Dark Blue)" + color = list(0.5,0.5,0.,0, 0.5,0.5,0.5,0, 0,0,1,0, 0,0,0,1, 0,0,0,0) +*/ + +/datum/plant_gene/trait/modified_color/vibrant + name = "Dilated Light (Strong)" + color = list(2,-1,-1,0, -1,2,-1,0, -1,-1,2,0, 0,0,0,1, 0,0,0,0) //Any higher starts to look like clown vomit + +/datum/plant_gene/trait/modified_color/cyan + name = "Dilated Light (Shift R)" + color = list( + 0.25, 1, 0.5, 0, + 0.5, 0.25, 1, 0, + 1, 0.5, 0.25, 0, + 0,0,0,1, + 0,0,0,0) + +/datum/plant_gene/trait/modified_color/magenta + name = "Dilated Light (Shift L)" + color = list( + 0.25, 0.5, 1, 0, + 1, 0.25, 0.5, 0, + 0.5, 1, 0.25, 0, + 0,0,0,1, + 0,0,0,0) + +/datum/plant_gene/trait/modified_color/sunset + name = "Dilated Light (Shift S)" + color = list( + 1, 0.25, 0, 0, + 0.25, 1, 0, 0, + 0.25, 0.125, 0.35,0, + 0,0,0,1, + 0,0,0,0) + +/datum/plant_gene/trait/modified_color/random + name = "Dilated Light (Shift C)" + color = list() + long_calculation = TRUE + + +//Calculations +/* +/datum/plant_gene/trait/modified_color/shift_red/calculate() + var/list/M = color + M[5] += 0.5 * M[1] + M[6] += 0.5 * M[2] + M[7] += 0.5 * M[3] + color = M + +/datum/plant_gene/trait/modified_color/shift_green/calculate() + var/list/M = color + M[9] += 0.5 * M[5] + M[10] += 0.5 * M[6] + M[11] += 0.5 * M[7] + color = M + +/datum/plant_gene/trait/modified_color/shift_blue/calculate() + var/list/M = color + M[13] += 0.5 * M[9] + M[14] += 0.5 * M[10] + M[15] += 0.5 * M[11] + color = M +*/ + +/datum/plant_gene/trait/modified_color/random/calculate() + var/R = rand(0,255) / 255 + var/G = rand(0,255) / 255 + var/B = rand(0,255) / 255 + var/A = rand(200,255)/ 255 + + if(prob(50)) + color = list(R,0,0,0, + 0,G,0,0, + 0,0,B,0, + 0,0,0,1, + 0,0,0,0) + else + color = list(R,0,0,0, + 0,G,0,0, + 0,0,B,0, + 0,0,0,A, + 0,0,0,0) + var/D = rand(1,20) + if(color[D] != 0) + color[D] *= 1.5 + else + color[D] = rand(-100, 100) * 0.01 /datum/plant_gene/trait/teleport // Makes plant teleport people when squashed or slipped on. diff --git a/code/modules/hydroponics/sample.dm b/code/modules/hydroponics/sample.dm index fff4c646..7fb92e8f 100644 --- a/code/modules/hydroponics/sample.dm +++ b/code/modules/hydroponics/sample.dm @@ -18,4 +18,4 @@ /obj/item/seeds/sample/alienweed name = "alien weed sample" icon_state = "alienweed" - sample_color = null \ No newline at end of file + sample_color = null diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index d0bec3ec..b7a188aa 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -36,6 +36,7 @@ var/weed_rate = 1 //If the chance below passes, then this many weeds sprout during growth var/weed_chance = 5 //Percentage chance per tray update to grow weeds + var/modified_colors = FALSE /obj/item/seeds/Initialize(mapload, nogenes = 0) . = ..() @@ -73,6 +74,8 @@ /obj/item/seeds/examine(mob/user) . = ..() + if(modified_colors) + . += "It looks a bit funky..." . += "Use a pen on it to rename it or change its description." if(reagents_add && user.can_see_reagents()) . += "- Plant Reagents -" @@ -99,6 +102,9 @@ var/datum/plant_gene/G = g S.genes += G.Copy() S.reagents_add = reagents_add.Copy() // Faster than grabbing the list from genes. + if(modified_colors) + S.modified_colors = TRUE + S.color = color return S /obj/item/seeds/proc/get_gene(typepath) @@ -191,6 +197,10 @@ result.Add(t_prod) // User gets a consumable if(!t_prod) return + + if(modified_colors) + t_prod.color = color + t_prod.modified_colors = TRUE t_amount++ product_name = parent.myseed.plantname if(getYield() >= 1) @@ -470,10 +480,16 @@ /obj/item/seeds/proc/add_random_traits(lower = 0, upper = 2) var/amount_random_traits = rand(lower, upper) for(var/i in 1 to amount_random_traits) - var/random_trait = pick((subtypesof(/datum/plant_gene/trait)-typesof(/datum/plant_gene/trait/plant_type))) + var/random_trait + if(!istype(src, /obj/item/seeds/random) || prob(30)) //70% chance to not get modified_color when rolling traits as strange seeds + random_trait = pick((subtypesof(/datum/plant_gene/trait)-typesof(/datum/plant_gene/trait/plant_type))) + else + random_trait = pick((subtypesof(/datum/plant_gene/trait)-typesof(/datum/plant_gene/trait/plant_type)-typesof(/datum/plant_gene/trait/modified_color))) + var/datum/plant_gene/trait/T = new random_trait if(T.can_add(src) && !is_gene_forbidden(random_trait)) genes += T + T.apply_vars(src) else qdel(T) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 3ecbac0d..a9ffe70c 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -21,6 +21,7 @@ resistance_flags = FLAMMABLE max_integrity = 50 dog_fashion = /datum/dog_fashion/head + grind_results = list(/datum/reagent/cellulose = 2) var/info //What's actually written on the paper. var/info_links //A different version of the paper which includes html links at fields and EOF diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index d565c7fe..bb200cdc 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -788,7 +788,7 @@ /datum/reagent/consumable/secretsauce name = "secret sauce" - description = "What could it be." + description = "What could it be?" nutriment_factor = 2 * REAGENTS_METABOLISM color = "#792300" taste_description = "indescribable" diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index b06eff62..9c67fc5e 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -69,6 +69,11 @@ for(var/i = 1, i <= created_volume, i++) new /obj/item/stack/sheet/mineral/gold(location) +/datum/chemical_reaction/cellulose_carbonization + results = list(/datum/reagent/carbon = 1) + required_reagents = list(/datum/reagent/cellulose = 1) + required_temp = 512 + /datum/chemical_reaction/capsaicincondensation name = "Capsaicincondensation" id = /datum/reagent/consumable/condensedcapsaicin @@ -235,7 +240,7 @@ var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"] if(D) D.Evolve(level_min, level_max) - + /datum/chemical_reaction/mix_virus/mix_virus_2 name = "Mix Virus 2" diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index a0070273..e4269405 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -310,5 +310,5 @@ item_state = "plantbgone" lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi' - volume = 100 - list_reagents = list(/datum/reagent/toxin/plantbgone = 100) + volume = 50 + list_reagents = list(/datum/reagent/toxin/plantbgone = 50) diff --git a/code/modules/vending/megaseed.dm b/code/modules/vending/megaseed.dm index d48da5b1..3bcff190 100644 --- a/code/modules/vending/megaseed.dm +++ b/code/modules/vending/megaseed.dm @@ -4,14 +4,15 @@ 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/ambrosia = 3, - /obj/item/seeds/apple = 3, - /obj/item/seeds/banana = 3, - /obj/item/seeds/berry = 3, + products = list(/obj/item/seeds/aloe = 3, + /obj/item/seeds/ambrosia = 3, + /obj/item/seeds/apple = 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/chanterelle = 3, /obj/item/seeds/chili = 3, /obj/item/seeds/cocoapod = 3, /obj/item/seeds/coconut = 3, @@ -19,7 +20,6 @@ /obj/item/seeds/cotton = 3, /obj/item/seeds/corn = 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, @@ -28,6 +28,7 @@ /obj/item/seeds/orange = 3, /obj/item/seeds/peach = 3, /obj/item/seeds/peanutseed = 3, + /obj/item/seeds/peas = 3, /obj/item/seeds/pineapple = 3, /obj/item/seeds/potato = 3, /obj/item/seeds/poppy = 3, @@ -45,15 +46,20 @@ /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/random = 2) + + 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/random = 2) premium = list(/obj/item/reagent_containers/spray/waterflower = 1) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF + refill_canister = /obj/item/vending_refill/hydroseeds + +/obj/item/vending_refill/hydroseeds + icon_state = "refill_hydro" diff --git a/code/modules/vending/nutrimax.dm b/code/modules/vending/nutrimax.dm index b82c95b8..74edeadd 100644 --- a/code/modules/vending/nutrimax.dm +++ b/code/modules/vending/nutrimax.dm @@ -18,3 +18,7 @@ /obj/item/reagent_containers/glass/bottle/diethylamine = 5) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF + refill_canister = /obj/item/vending_refill/hydronutrients + +/obj/item/vending_refill/hydronutrients + icon_state = "refill_hydro" diff --git a/icons/obj/hydroponics/growing_vegetables.dmi b/icons/obj/hydroponics/growing_vegetables.dmi index 01ffbb067df128a0846d040eb4540b8d1cc57a9b..ed5e186f0e84b0e39b190d3b5dd668572c18e34f 100644 GIT binary patch literal 27516 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 b*WDrL;*+LKoJ`dS;Lk%f-TO7Fb`k#r4yeGo diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi index 0ab6ac8413d50948faa6f3cb904fd4bd43246321..9758af30c9de73d761cc56a5a8cff10149db8caf 100644 GIT binary patch delta 7641 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 IYd(zre=QA@+W-In