This commit is contained in:
DragonTrance
2021-02-21 08:37:10 -07:00
parent 58b69503e3
commit 24cb27b67c
30 changed files with 637 additions and 45 deletions
+3
View File
@@ -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)
+1 -1
View File
@@ -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,
+212 -5
View File
@@ -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"
+8
View File
@@ -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!"
+8
View File
@@ -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
+15
View File
@@ -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()
+1
View File
@@ -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)
. = ..()
+1 -2
View File
@@ -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("<span class='suicide'>[user] is aiming [src] at [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!</span>")
+2 -2
View File
@@ -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"
-1
View File
@@ -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
+103 -3
View File
@@ -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, "<span class='notice'>You plant the walking mushroom.</span>")
// 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 = "<I>Cantharellus Cibarius</I>: 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
+53 -1
View File
@@ -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)
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
*/
+5 -1
View File
@@ -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
+158
View File
@@ -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.
+1 -1
View File
@@ -18,4 +18,4 @@
/obj/item/seeds/sample/alienweed
name = "alien weed sample"
icon_state = "alienweed"
sample_color = null
sample_color = null
+17 -1
View File
@@ -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..."
. += "<span class='notice'>Use a pen on it to rename it or change its description.</span>"
if(reagents_add && user.can_see_reagents())
. += "<span class='notice'>- Plant Reagents -</span>"
@@ -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)
+1
View File
@@ -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
@@ -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"
@@ -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"
@@ -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)
+21 -15
View File
@@ -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"
+4
View File
@@ -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"