mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-09 15:05:38 +01:00
Merge pull request #71 from shellspeed1/more-plants
Adds a bunch of plants to botany
This commit is contained in:
@@ -227,6 +227,12 @@
|
||||
item_state = "coffee"
|
||||
spillable = TRUE
|
||||
|
||||
/datum/chemical_reaction/catnip_tea
|
||||
name = "Catnip Tea"
|
||||
id = "catnip_tea"
|
||||
results = list("catnip_tea" = 3)
|
||||
required_reagents = list("tea" = 5, "catnip" = 2)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/mug/on_reagent_change(changetype)
|
||||
if(reagents.total_volume)
|
||||
icon_state = "tea"
|
||||
|
||||
@@ -178,6 +178,18 @@
|
||||
tastes = list("bread" = 1)
|
||||
foodtype = GRAIN
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/garlicbread
|
||||
name = "garlic bread"
|
||||
desc = "Alas, it is limited."
|
||||
icon = 'icons/obj/food/burgerbread.dmi'
|
||||
icon_state = "garlicbread"
|
||||
item_state = "garlicbread"
|
||||
bonus_reagents = list("nutriment" = 5, "vitamin" = 2)
|
||||
list_reagents = list("nutriment" = 5, "vitamin" = 4, "garlic" = 2)
|
||||
bitesize = 3
|
||||
tastes = list("bread" = 1, "garlic" = 1, "butter" = 1)
|
||||
foodtype = GRAIN
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/deepfryholder
|
||||
name = "Deep Fried Foods Holder Obj"
|
||||
desc = "If you can see this description the code for the deep fryer fucked up."
|
||||
|
||||
@@ -84,6 +84,16 @@
|
||||
result = /obj/item/reagent_containers/food/snacks/butteredtoast
|
||||
subcategory = CAT_BREAD
|
||||
|
||||
/datum/crafting_recipe/food/garlicbread
|
||||
name = "Garlic Bread"
|
||||
time = 40
|
||||
reqs = list(/obj/item/reagent_containers/food/snacks/grown/garlic = 1,
|
||||
/obj/item/reagent_containers/food/snacks/breadslice/plain = 1,
|
||||
/obj/item/reagent_containers/food/snacks/butter = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/garlicbread
|
||||
subcategory = CAT_BREAD
|
||||
|
||||
/datum/crafting_recipe/food/butterbiscuit
|
||||
name = "Butter Biscuit"
|
||||
reqs = list(
|
||||
|
||||
@@ -113,6 +113,7 @@
|
||||
name = "Raw Khinkali"
|
||||
reqs = list(
|
||||
/obj/item/reagent_containers/food/snacks/doughslice = 1,
|
||||
/obj/item/reagent_containers/food/snacks/grown/garlic = 1,
|
||||
/obj/item/reagent_containers/food/snacks/faggot = 1
|
||||
)
|
||||
result = /obj/item/reagent_containers/food/snacks/rawkhinkali
|
||||
|
||||
@@ -201,9 +201,9 @@
|
||||
if(!G)
|
||||
continue
|
||||
dat += "<tr><td width='260px'>[G.get_name()]</td><td>"
|
||||
if(can_extract)
|
||||
if(can_extract && G.mutability_flags & PLANT_GENE_EXTRACTABLE)
|
||||
dat += "<a href='?src=[REF(src)];gene=[REF(G)];op=extract'>Extract</a>"
|
||||
if(can_insert && istype(disk.gene, G.type))
|
||||
if(can_insert && istype(disk.gene, G.type) && G.mutability_flags & PLANT_GENE_REMOVABLE)
|
||||
dat += "<a href='?src=[REF(src)];gene=[REF(G)];op=replace'>Replace</a>"
|
||||
dat += "</td></tr>"
|
||||
dat += "</table></div>"
|
||||
@@ -215,9 +215,10 @@
|
||||
for(var/a in reagent_genes)
|
||||
var/datum/plant_gene/G = a
|
||||
dat += "<tr><td width='260px'>[G.get_name()]</td><td>"
|
||||
if(can_extract)
|
||||
if(can_extract && G.mutability_flags & PLANT_GENE_EXTRACTABLE)
|
||||
dat += "<a href='?src=[REF(src)];gene=[REF(G)];op=extract'>Extract</a>"
|
||||
dat += "<a href='?src=[REF(src)];gene=[REF(G)];op=remove'>Remove</a>"
|
||||
if(G.mutability_flags & PLANT_GENE_REMOVABLE)
|
||||
dat += "<a href='?src=[REF(src)];gene=[REF(G)];op=remove'>Remove</a>"
|
||||
dat += "</td></tr>"
|
||||
dat += "</table>"
|
||||
else
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
..()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/generate_trash(atom/location)
|
||||
if(trash && ispath(trash, /obj/item/grown))
|
||||
if(trash && (ispath(trash, /obj/item/grown) || ispath(trash, /obj/item/reagent_containers/food/snacks/grown)))
|
||||
. = new trash(location, seed)
|
||||
trash = null
|
||||
return
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
icon_grow = "cocoapod-grow"
|
||||
icon_dead = "cocoapod-dead"
|
||||
genes = list(/datum/plant_gene/trait/repeated_harvest)
|
||||
mutatelist = list(/obj/item/seeds/cocoapod/vanillapod)
|
||||
mutatelist = list(/obj/item/seeds/cocoapod/vanillapod,/obj/item/seeds/cocoapod/bungotree)
|
||||
reagents_add = list("cocoa" = 0.25, "nutriment" = 0.1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/cocoapod
|
||||
@@ -50,3 +50,52 @@
|
||||
foodtype = FRUIT
|
||||
tastes = list("vanilla" = 1)
|
||||
distill_reagent = "vanilla" //Takes longer, but you can get even more vanilla from it.
|
||||
|
||||
/obj/item/seeds/cocoapod/bungotree
|
||||
name = "pack of bungo tree seeds"
|
||||
desc = "These seeds grow into bungo trees. They appear to be heavy and almost perfectly spherical."
|
||||
icon_state = "seed-bungotree"
|
||||
species = "bungotree"
|
||||
plantname = "Bungo Tree"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/bungofruit
|
||||
lifespan = 30
|
||||
maturation = 4
|
||||
yield = 3
|
||||
production = 7
|
||||
genes = list(/datum/plant_gene/trait/repeated_harvest)
|
||||
mutatelist = list()
|
||||
reagents_add = list(/datum/reagent/consumable/enzyme = 0.1, /datum/reagent/consumable/nutriment = 0.1)
|
||||
growthstages = 4
|
||||
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
|
||||
icon_grow = "bungotree-grow"
|
||||
icon_dead = "bungotree-dead"
|
||||
rarity = 15
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/bungofruit
|
||||
seed = /obj/item/seeds/cocoapod/bungotree
|
||||
name = "bungo fruit"
|
||||
desc = "A strange fruit, tough leathery skin protects its juicy flesh and large poisonous seed."
|
||||
icon_state = "bungo"
|
||||
trash = /obj/item/reagent_containers/food/snacks/grown/bungopit
|
||||
filling_color = "#E8C22F"
|
||||
foodtype = FRUIT
|
||||
tastes = list("bungo" = 2, "tropical fruitiness" = 1)
|
||||
distill_reagent = null
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/bungopit
|
||||
seed = /obj/item/seeds/cocoapod/bungotree
|
||||
name = "bungo pit"
|
||||
icon_state = "bungopit"
|
||||
desc = "A large seed, it is said to be potent enough to be able to stop a mans heart."
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
throwforce = 5
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
foodtype = TOXIC
|
||||
tastes = list("acrid bitterness" = 1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/bungopit/Initialize()
|
||||
. =..()
|
||||
reagents.clear_reagents()
|
||||
reagents.add_reagent(/datum/reagent/toxin/bungotoxin, seed.potency * 0.10) //More than this will kill at too low potency
|
||||
reagents.add_reagent(/datum/reagent/consumable/nutriment, seed.potency * 0.04)
|
||||
@@ -37,7 +37,7 @@
|
||||
species = "lily"
|
||||
plantname = "Lily Plants"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/poppy/lily
|
||||
mutatelist = list()
|
||||
mutatelist = list(/obj/item/seeds/bee_balm,/obj/item/seeds/poppy/lily/trumpet)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/poppy/lily
|
||||
seed = /obj/item/seeds/poppy/lily
|
||||
@@ -47,6 +47,44 @@
|
||||
tastes = list("pelts " = 1)
|
||||
filling_color = "#FFA500"
|
||||
|
||||
//Spacemans's Trumpet
|
||||
/obj/item/seeds/poppy/lily/trumpet
|
||||
name = "pack of spaceman's trumpet seeds"
|
||||
desc = "A plant sculped by extensive genetic engineering. The spaceman's trumpet is said to bear no resemblance to its wild ancestors. Inside NT AgriSci circles it is better known as NTPW-0372."
|
||||
icon_state = "seed-trumpet"
|
||||
species = "spacemanstrumpet"
|
||||
plantname = "Spaceman's Trumpet Plant"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/trumpet
|
||||
lifespan = 80
|
||||
production = 5
|
||||
endurance = 10
|
||||
maturation = 12
|
||||
yield = 4
|
||||
potency = 20
|
||||
growthstages = 4
|
||||
weed_rate = 2
|
||||
weed_chance = 10
|
||||
growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi'
|
||||
icon_grow = "spacemanstrumpet-grow"
|
||||
icon_dead = "spacemanstrumpet-dead"
|
||||
mutatelist = list()
|
||||
genes = list(/datum/plant_gene/reagent/polypyr)
|
||||
reagents_add = list(/datum/reagent/consumable/nutriment = 0.05)
|
||||
rarity = 30
|
||||
|
||||
/obj/item/seeds/poppy/lily/trumpet/Initialize()
|
||||
..()
|
||||
unset_mutability(/datum/plant_gene/reagent/polypyr, PLANT_GENE_EXTRACTABLE)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/trumpet
|
||||
seed = /obj/item/seeds/poppy/lily/trumpet
|
||||
name = "spaceman's trumpet"
|
||||
desc = "A vivid flower that smells faintly of freshly cut grass. Touching the flower seems to stain the skin some time after contact, yet most other surfaces seem to be unaffected by this phenomenon."
|
||||
icon_state = "spacemanstrumpet"
|
||||
filling_color = "#FF6347"
|
||||
bitesize_mod = 3
|
||||
foodtype = VEGETABLES
|
||||
|
||||
// Geranium
|
||||
/obj/item/seeds/poppy/geranium
|
||||
name = "pack of geranium seeds"
|
||||
@@ -221,3 +259,61 @@
|
||||
if(!user.gloves)
|
||||
to_chat(user, "<span class='danger'>The [name] burns your bare hand!</span>")
|
||||
user.adjustFireLoss(rand(1, 5))
|
||||
|
||||
// Beebalm
|
||||
/obj/item/seeds/bee_balm
|
||||
name = "pack of Bee Balm seeds"
|
||||
desc = "These seeds grow into Bee Balms."
|
||||
icon_state = "seed-bee_balm"
|
||||
species = "bee_balm"
|
||||
plantname = "Bee Balm Buds"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/bee_balm
|
||||
endurance = 10
|
||||
maturation = 8
|
||||
yield = 3
|
||||
potency = 30
|
||||
growthstages = 3
|
||||
growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi'
|
||||
icon_grow = "bee_balm-grow"
|
||||
icon_dead = "bee_balm-dead"
|
||||
mutatelist = list(/obj/item/seeds/poppy/geranium, /obj/item/seeds/bee_balm/honey) //Lower odds of becoming honey
|
||||
reagents_add = list("spaceacillin" = 0.1, "sterilizine" = 0.05)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/bee_balm
|
||||
seed = /obj/item/seeds/bee_balm
|
||||
name = "bee balm"
|
||||
desc = "A flower used for medical antiseptic in history."
|
||||
icon_state = "bee_balm"
|
||||
filling_color = "#FF6347"
|
||||
bitesize_mod = 8
|
||||
tastes = list("strong antiseptic " = 1)
|
||||
foodtype = GROSS
|
||||
|
||||
// Beebalm
|
||||
/obj/item/seeds/bee_balm/honey
|
||||
name = "pack of Honey Balm seeds"
|
||||
desc = "These seeds grow into Honey Balms."
|
||||
icon_state = "seed-bee_balmalt"
|
||||
species = "seed-bee_balm_alt"
|
||||
plantname = "Honey Balm Pods"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/bee_balm/honey
|
||||
endurance = 1
|
||||
maturation = 10
|
||||
yield = 1
|
||||
potency = 1
|
||||
growthstages = 3
|
||||
growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi'
|
||||
icon_grow = "bee_balmalt-grow"
|
||||
icon_dead = "bee_balmalt-dead"
|
||||
reagents_add = list("honey" = 0.1, "lye" = 0.3) //To make wax
|
||||
rarity = 30
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/bee_balm/honey
|
||||
seed = /obj/item/seeds/bee_balm/honey
|
||||
name = "honey balm"
|
||||
desc = "A large honey filled pod of a flower."
|
||||
icon_state = "bee_balmalt"
|
||||
filling_color = "#FF6347"
|
||||
bitesize_mod = 8
|
||||
tastes = list("wax" = 1)
|
||||
foodtype = SUGAR
|
||||
@@ -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, "nutriment" = 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 = 10
|
||||
@@ -14,7 +14,9 @@
|
||||
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)
|
||||
mutatelist = list()//add /obj/item/seeds/starthistle/corpse_flower when corpse flowers work.
|
||||
T.assume_air(stank)
|
||||
T.air_update_turf()
|
||||
|
||||
/obj/item/seeds/starthistle/harvest(mob/user)
|
||||
var/obj/machinery/hydroponics/parent = loc
|
||||
@@ -27,6 +29,74 @@
|
||||
harvestseeds.forceMove(output_loc)
|
||||
|
||||
parent.update_tray()
|
||||
/*
|
||||
// Corpse flower
|
||||
/obj/item/seeds/starthistle/corpse_flower
|
||||
name = "pack of corpse flower seeds"
|
||||
desc = "A species of plant that emits a horrible odor. The odor stops being produced in difficult atmospheric conditions."
|
||||
icon_state = "seed-corpse-flower"
|
||||
species = "corpse-flower"
|
||||
plantname = "Corpse flower"
|
||||
production = 2
|
||||
growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi'
|
||||
genes = list()
|
||||
mutatelist = list()
|
||||
|
||||
/obj/item/seeds/starthistle/corpse_flower/pre_attack(obj/machinery/hydroponics/I)
|
||||
if(istype(I, /obj/machinery/hydroponics))
|
||||
if(!I.myseed)
|
||||
START_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/obj/item/seeds/starthistle/corpse_flower/process()
|
||||
var/obj/machinery/hydroponics/parent = loc
|
||||
if(parent.age < maturation) // Start a little before it blooms
|
||||
return
|
||||
|
||||
var/turf/open/T = get_turf(parent)
|
||||
if(abs(ONE_ATMOSPHERE - T.return_air().return_pressure()) > (potency/10 + 10)) // clouds can begin showing at around 50-60 potency in standard atmos
|
||||
return
|
||||
|
||||
var/datum/gas_mixture/stank = new
|
||||
ADD_GAS(/datum/gas/miasma, stank.gases)
|
||||
stank.gases[/datum/gas/miasma][MOLES] = (yield + 6)*7*MIASMA_CORPSE_MOLES // this process is only being called about 2/7 as much as corpses so this is 12-32 times a corpses
|
||||
stank.temperature = T20C // without this the room would eventually freeze and miasma mining would be easier
|
||||
*/
|
||||
//commented out until it can be fixed.
|
||||
//Galaxy Thistle
|
||||
/obj/item/seeds/galaxythistle
|
||||
name = "pack of galaxythistle seeds"
|
||||
desc = "An impressive species of weed that is thought to have evolved from the simple milk thistle. Contains flavolignans that can help repair a damaged liver."
|
||||
icon_state = "seed-galaxythistle"
|
||||
species = "galaxythistle"
|
||||
plantname = "Galaxythistle"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/galaxythistle
|
||||
lifespan = 70
|
||||
endurance = 40
|
||||
maturation = 3
|
||||
production = 2
|
||||
yield = 2
|
||||
potency = 25
|
||||
growthstages = 3
|
||||
growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi'
|
||||
genes = list(/datum/plant_gene/trait/plant_type/weed_hardy, /datum/plant_gene/trait/invasive)
|
||||
mutatelist = list()
|
||||
reagents_add = list(/datum/reagent/consumable/nutriment = 0.05, /datum/reagent/medicine/silibinin = 0.1)
|
||||
|
||||
/obj/item/seeds/galaxythistle/Initialize()
|
||||
..()
|
||||
unset_mutability(/datum/plant_gene/trait/invasive, PLANT_GENE_REMOVABLE)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/galaxythistle
|
||||
seed = /obj/item/seeds/galaxythistle
|
||||
name = "galaxythistle flower head"
|
||||
desc = "This spiny cluster of florets reminds you of the highlands."
|
||||
icon_state = "galaxythistle"
|
||||
filling_color = "#1E7549"
|
||||
bitesize_mod = 3
|
||||
foodtype = VEGETABLES
|
||||
wine_power = 35
|
||||
tastes = list("thistle" = 2, "artichoke" = 1)
|
||||
|
||||
// Cabbage
|
||||
/obj/item/seeds/cabbage
|
||||
|
||||
@@ -172,7 +172,6 @@
|
||||
qdel(src)
|
||||
to_chat(user, "<span class='notice'>You plant the walking mushroom.</span>")
|
||||
|
||||
|
||||
// Chanterelle
|
||||
/obj/item/seeds/chanter
|
||||
name = "pack of chanterelle mycelium"
|
||||
@@ -191,6 +190,7 @@
|
||||
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
|
||||
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
|
||||
reagents_add = list("nutriment" = 0.1)
|
||||
mutatelist = list(/obj/item/seeds/chanterelle/jupitercup)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle
|
||||
seed = /obj/item/seeds/chanter
|
||||
@@ -199,6 +199,34 @@
|
||||
icon_state = "chanterelle"
|
||||
filling_color = "#FFA500"
|
||||
|
||||
//Jupiter Cup
|
||||
/obj/item/seeds/chanterelle/jupitercup
|
||||
name = "pack of jupiter cup mycelium"
|
||||
desc = "This mycelium grows into jupiter cups. Zeus would be envious at the power at your fingertips."
|
||||
icon_state = "mycelium-jupitercup"
|
||||
species = "jupitercup"
|
||||
plantname = "Jupiter Cups"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/mushroom/jupitercup
|
||||
lifespan = 40
|
||||
production = 4
|
||||
endurance = 8
|
||||
yield = 4
|
||||
growthstages = 2
|
||||
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/reagent/liquidelectricity, /datum/plant_gene/trait/plant_type/carnivory)
|
||||
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
|
||||
reagents_add = list(/datum/reagent/consumable/nutriment = 0.1)
|
||||
|
||||
/obj/item/seeds/chanterelle/jupitercup/Initialize()
|
||||
..()
|
||||
unset_mutability(/datum/plant_gene/reagent/liquidelectricity, PLANT_GENE_EXTRACTABLE)
|
||||
unset_mutability(/datum/plant_gene/trait/plant_type/carnivory, PLANT_GENE_REMOVABLE)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/mushroom/jupitercup
|
||||
seed = /obj/item/seeds/chanterelle/jupitercup
|
||||
name = "jupiter cup"
|
||||
desc = "A strange red mushroom, its surface is moist and slick. You wonder how many tiny worms have met their fate inside."
|
||||
icon_state = "jupitercup"
|
||||
filling_color = "#B5003D"
|
||||
|
||||
// Glowshroom
|
||||
/obj/item/seeds/glowshroom
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
// Peach
|
||||
/obj/item/seeds/peach
|
||||
name = "pack of peach seeds"
|
||||
desc = "These seeds grow into peach trees."
|
||||
icon_state = "seed-peach"
|
||||
species = "peach"
|
||||
plantname = "Peach Tree"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/peach
|
||||
lifespan = 65
|
||||
endurance = 40
|
||||
yield = 3
|
||||
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
|
||||
icon_grow = "peach-grow"
|
||||
icon_dead = "peach-dead"
|
||||
genes = list(/datum/plant_gene/trait/repeated_harvest)
|
||||
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/peach
|
||||
seed = /obj/item/seeds/peach
|
||||
name = "peach"
|
||||
desc = "It's fuzzy!"
|
||||
icon_state = "peach"
|
||||
filling_color = "#FF4500"
|
||||
bitesize = 25
|
||||
foodtype = FRUIT
|
||||
juice_results = list("peachjuice" = 0)
|
||||
tastes = list("peach" = 1)
|
||||
@@ -33,7 +33,7 @@
|
||||
species = "teaastra"
|
||||
plantname = "Tea Astra Plant"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/tea/astra
|
||||
mutatelist = list()
|
||||
mutatelist = list(/obj/item/seeds/tea/catnip)
|
||||
reagents_add = list("synaptizine" = 0.1, "vitamin" = 0.04, "teapowder" = 0.1)
|
||||
rarity = 20
|
||||
|
||||
@@ -45,6 +45,23 @@
|
||||
grind_results = list("teapowder" = 0, "salglu_solution" = 0)
|
||||
|
||||
|
||||
// Kitty drugs
|
||||
/obj/item/seeds/tea/catnip
|
||||
name = "pack of catnip seeds"
|
||||
icon_state = "seed-catnip"
|
||||
desc = "Long stocks with flowering tips that has a chemical to make feline attracted to it."
|
||||
species = "catnip"
|
||||
plantname = "Catnip Plant"
|
||||
product = /obj/item/reagent_containers/food/snacks/grown/tea/catnip
|
||||
reagents_add = list("catnip" = 0.1, "vitamin" = 0.06, "teapowder" = 0.3)
|
||||
rarity = 50
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/grown/tea/catnip
|
||||
seed = /obj/item/seeds/tea/catnip
|
||||
name = "Catnip buds"
|
||||
icon_state = "catnip"
|
||||
filling_color = "#4582B4"
|
||||
grind_results = list("catnp" = 2, "water" = 1)
|
||||
// Coffee
|
||||
/obj/item/seeds/coffee
|
||||
name = "pack of coffee arabica seeds"
|
||||
|
||||
@@ -169,8 +169,27 @@
|
||||
|
||||
//Pests & Weeds//////////////////////////////////////////////////////////
|
||||
|
||||
else if(pestlevel >= 5)
|
||||
adjustHealth(-1 / rating)
|
||||
if(pestlevel >= 8)
|
||||
if(!myseed.get_gene(/datum/plant_gene/trait/plant_type/carnivory))
|
||||
adjustHealth(-2 / rating)
|
||||
|
||||
else
|
||||
adjustHealth(2 / rating)
|
||||
adjustPests(-1 / rating)
|
||||
|
||||
else if(pestlevel >= 4)
|
||||
if(!myseed.get_gene(/datum/plant_gene/trait/plant_type/carnivory))
|
||||
adjustHealth(-1 / rating)
|
||||
|
||||
else
|
||||
adjustHealth(1 / rating)
|
||||
if(prob(50))
|
||||
adjustPests(-1 / rating)
|
||||
|
||||
else if(pestlevel < 4 && myseed.get_gene(/datum/plant_gene/trait/plant_type/carnivory))
|
||||
adjustHealth(-2 / rating)
|
||||
if(prob(5))
|
||||
adjustPests(-1 / rating)
|
||||
|
||||
// If it's a weed, it doesn't stunt the growth
|
||||
if(weedlevel >= 5 && !myseed.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy))
|
||||
@@ -210,6 +229,12 @@
|
||||
needs_update = 1
|
||||
if (needs_update)
|
||||
update_icon()
|
||||
|
||||
if(myseed && prob(5 * (11-myseed.production)))
|
||||
for(var/g in myseed.genes)
|
||||
if(istype(g, /datum/plant_gene/trait))
|
||||
var/datum/plant_gene/trait/selectedtrait = g
|
||||
selectedtrait.on_grow(src)
|
||||
return
|
||||
|
||||
/obj/machinery/hydroponics/proc/nutrimentMutation()
|
||||
|
||||
@@ -1,8 +1,18 @@
|
||||
/datum/plant_gene
|
||||
var/name
|
||||
var/mutability_flags = PLANT_GENE_EXTRACTABLE | PLANT_GENE_REMOVABLE ///These flags tells the genemodder if we want the gene to be extractable, only removable or neither.
|
||||
|
||||
/datum/plant_gene/proc/get_name() // Used for manipulator display and gene disk name.
|
||||
return name
|
||||
var/formatted_name
|
||||
if(!(mutability_flags & PLANT_GENE_REMOVABLE && mutability_flags & PLANT_GENE_EXTRACTABLE))
|
||||
if(mutability_flags & PLANT_GENE_REMOVABLE)
|
||||
formatted_name += "Fragile "
|
||||
else if(mutability_flags & PLANT_GENE_EXTRACTABLE)
|
||||
formatted_name += "Essential "
|
||||
else
|
||||
formatted_name += "Immutable "
|
||||
formatted_name += name
|
||||
return formatted_name
|
||||
|
||||
/datum/plant_gene/proc/can_add(obj/item/seeds/S)
|
||||
return !istype(S, /obj/item/seeds/sample) // Samples can't accept new genes
|
||||
@@ -101,7 +111,16 @@
|
||||
var/rate = 0.04
|
||||
|
||||
/datum/plant_gene/reagent/get_name()
|
||||
return "[name] production [rate*100]%"
|
||||
var/formatted_name
|
||||
if(!(mutability_flags & PLANT_GENE_REMOVABLE && mutability_flags & PLANT_GENE_EXTRACTABLE))
|
||||
if(mutability_flags & PLANT_GENE_REMOVABLE)
|
||||
formatted_name += "Fragile "
|
||||
else if(mutability_flags & PLANT_GENE_EXTRACTABLE)
|
||||
formatted_name += "Essential "
|
||||
else
|
||||
formatted_name += "Immutable "
|
||||
formatted_name += "[name] production [rate*100]%"
|
||||
return formatted_name
|
||||
|
||||
/datum/plant_gene/reagent/proc/set_reagent(reag_id)
|
||||
reagent_id = reag_id
|
||||
@@ -132,8 +151,17 @@
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/datum/plant_gene/reagent/polypyr
|
||||
name = "Polypyrylium Oligomers"
|
||||
reagent_id = /datum/reagent/medicine/polypyr
|
||||
rate = 0.15
|
||||
|
||||
// Various traits affecting the product. Each must be somehow useful.
|
||||
/datum/plant_gene/reagent/liquidelectricity
|
||||
name = "Liquid Electricity"
|
||||
reagent_id = "liquidelectricity"
|
||||
rate = 0.1
|
||||
|
||||
// Various traits affecting the product.
|
||||
/datum/plant_gene/trait
|
||||
var/rate = 0.05
|
||||
var/examine_line = ""
|
||||
@@ -173,6 +201,10 @@
|
||||
/datum/plant_gene/trait/proc/on_throw_impact(obj/item/reagent_containers/food/snacks/grown/G, atom/target)
|
||||
return
|
||||
|
||||
///This proc triggers when the tray processes and a roll is sucessful, the success chance scales with production.
|
||||
/datum/plant_gene/trait/proc/on_grow(obj/machinery/hydroponics/H)
|
||||
return
|
||||
|
||||
/datum/plant_gene/trait/squash
|
||||
// Allows the plant to be squashed when thrown or slipped on, leaving a colored mess and trash type item behind.
|
||||
// Also splashes everything in target turf with reagents and applies other trait effects (teleporting, etc) to the target by on_squash.
|
||||
@@ -400,6 +432,30 @@
|
||||
if(!(G.resistance_flags & FIRE_PROOF))
|
||||
G.resistance_flags |= FIRE_PROOF
|
||||
|
||||
///Invasive spreading lets the plant jump to other trays, the spreadinhg plant won't replace plants of the same type.
|
||||
/datum/plant_gene/trait/invasive
|
||||
name = "Invasive Spreading"
|
||||
|
||||
/datum/plant_gene/trait/invasive/on_grow(obj/machinery/hydroponics/H)
|
||||
for(var/step_dir in GLOB.alldirs)
|
||||
var/obj/machinery/hydroponics/HY = locate() in get_step(H, step_dir)
|
||||
if(HY && prob(15))
|
||||
if(HY.myseed) // check if there is something in the tray.
|
||||
if(HY.myseed.type == H.myseed.type && HY.dead != 0)
|
||||
continue //It should not destroy its owm kind.
|
||||
qdel(HY.myseed)
|
||||
HY.myseed = null
|
||||
HY.myseed = H.myseed.Copy()
|
||||
HY.age = 0
|
||||
HY.dead = 0
|
||||
HY.plant_health = HY.myseed.endurance
|
||||
HY.lastcycle = world.time
|
||||
HY.harvest = 0
|
||||
HY.weedlevel = 0 // Reset
|
||||
HY.pestlevel = 0 // Reset
|
||||
HY.update_icon()
|
||||
HY.visible_message("<span class='warning'>The [H.myseed.plantname] spreads!</span>")
|
||||
|
||||
/datum/plant_gene/trait/plant_type // Parent type
|
||||
name = "you shouldn't see this"
|
||||
trait_id = "plant_type"
|
||||
@@ -412,3 +468,6 @@
|
||||
|
||||
/datum/plant_gene/trait/plant_type/alien_properties
|
||||
name ="?????"
|
||||
|
||||
/datum/plant_gene/trait/plant_type/carnivory
|
||||
name = "Obligate Carnivory"
|
||||
@@ -67,6 +67,7 @@
|
||||
|
||||
for(var/reag_id in reagents_add)
|
||||
genes += new /datum/plant_gene/reagent(reag_id, reagents_add[reag_id])
|
||||
reagents_from_genes() //quality coding
|
||||
|
||||
/obj/item/seeds/proc/Copy()
|
||||
var/obj/item/seeds/S = new type(null, 1)
|
||||
@@ -94,6 +95,18 @@
|
||||
for(var/datum/plant_gene/reagent/R in genes)
|
||||
reagents_add[R.reagent_id] = R.rate
|
||||
|
||||
///This proc adds a mutability_flag to a gene
|
||||
/obj/item/seeds/proc/set_mutability(typepath, mutability)
|
||||
var/datum/plant_gene/g = get_gene(typepath)
|
||||
if(g)
|
||||
g.mutability_flags |= mutability
|
||||
|
||||
///This proc removes a mutability_flag from a gene
|
||||
/obj/item/seeds/proc/unset_mutability(typepath, mutability)
|
||||
var/datum/plant_gene/g = get_gene(typepath)
|
||||
if(g)
|
||||
g.mutability_flags &= ~mutability
|
||||
|
||||
/obj/item/seeds/proc/mutate(lifemut = 2, endmut = 5, productmut = 1, yieldmut = 2, potmut = 25, wrmut = 2, wcmut = 5, traitmut = 0)
|
||||
adjust_lifespan(rand(-lifemut,lifemut))
|
||||
adjust_endurance(rand(-endmut,endmut))
|
||||
|
||||
@@ -92,6 +92,10 @@
|
||||
to_chat(victim, "<span class='warning'>[H] tries to bite you, but stops before touching you!</span>")
|
||||
to_chat(H, "<span class='warning'>[victim] is blessed! You stop just in time to avoid catching fire.</span>")
|
||||
return
|
||||
if(victim?.reagents?.has_reagent("garlic"))
|
||||
to_chat(victim, "<span class='warning'>[H] tries to bite you, but recoils in disgust!</span>")
|
||||
to_chat(H, "<span class='warning'>[victim] reeks of garlic! you can't bring yourself to drain such tainted blood.</span>")
|
||||
return
|
||||
if(!do_after(H, 30, target = victim))
|
||||
return
|
||||
var/blood_volume_difference = BLOOD_VOLUME_MAXIMUM - H.blood_volume //How much capacity we have left to absorb blood
|
||||
|
||||
@@ -537,6 +537,27 @@
|
||||
color = "#00F0FF"
|
||||
taste_description = "blue cherry"
|
||||
|
||||
/datum/reagent/consumable/garlic //NOTE: having garlic in your blood stops vampires from biting you.
|
||||
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)
|
||||
if(isvampire(M)) //incapacitating but not lethal. Unfortunately, vampires cannot vomit.
|
||||
if(prob(min(25,current_cycle)))
|
||||
to_chat(M, "<span class='danger'>You can't get the scent of garlic out of your nose! You can barely think...</span>")
|
||||
M.Jitter(10)
|
||||
else if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.job == "Cook")
|
||||
if(prob(20)) //stays in the system much longer than sprinkles/banana juice, so heals slower to partially compensate
|
||||
H.heal_bodypart_damage(1,1, 0)
|
||||
. = 1
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/rice
|
||||
name = "Rice"
|
||||
id = "rice"
|
||||
|
||||
@@ -1418,3 +1418,47 @@
|
||||
M.adjustToxLoss(1, 0)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
/datum/reagent/medicine/silibinin
|
||||
name = "Silibinin"
|
||||
description = "A thistle derrived hepatoprotective flavolignan mixture that help reverse damage to the liver."
|
||||
reagent_state = SOLID
|
||||
color = "#FFFFD0"
|
||||
metabolization_rate = 1.5 * REAGENTS_METABOLISM
|
||||
|
||||
/datum/reagent/medicine/silibinin/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER, -2)//Add a chance to cure liver trauma once implemented.
|
||||
..()
|
||||
. = 1
|
||||
|
||||
/datum/reagent/medicine/polypyr //This is intended to be an ingredient in advanced chems.
|
||||
name = "Polypyrylium Oligomers"
|
||||
description = "A?purple mixture of short polyelectrolyte chains not easily synthesized in the laboratory. It is valued as an intermediate in the synthesis of the cutting edge pharmaceuticals."
|
||||
reagent_state = SOLID
|
||||
color = "#9423FF"
|
||||
metabolization_rate = 0.25 * REAGENTS_METABOLISM
|
||||
overdose_threshold = 50
|
||||
taste_description = "numbing bitterness"
|
||||
|
||||
/datum/reagent/medicine/polypyr/on_mob_life(mob/living/carbon/M) //I w?nted a collection of small positive effects, this is as hard to obtain as coniine after all.
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LUNGS, -0.25)
|
||||
M.adjustBruteLoss(-0.35, 0)
|
||||
if(prob(50))
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.bleed_rate = max(H.bleed_rate - 1, 0)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
/datum/reagent/medicine/polypyr/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
|
||||
if(method == TOUCH || method == VAPOR)
|
||||
if(M && ishuman(M) && reac_volume >= 0.5)
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.hair_color = "92f"
|
||||
H.facial_hair_color = "92f"
|
||||
H.update_hair()
|
||||
|
||||
/datum/reagent/medicine/polypyr/overdose_process(mob/living/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LUNGS, 0.5)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
@@ -2160,3 +2160,18 @@
|
||||
/datum/reagent/changeling_string/Destroy()
|
||||
qdel(original_dna)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/pax/catnip
|
||||
name = "catnip"
|
||||
id = "catnip"
|
||||
taste_description = "grass"
|
||||
description = "A colorless liquid that makes people more peaceful and felines more happy."
|
||||
metabolization_rate = 1.75 * REAGENTS_METABOLISM
|
||||
|
||||
/datum/reagent/pax/catnip/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(20))
|
||||
M.emote("nya")
|
||||
if(prob(20))
|
||||
to_chat(M, "<span class = 'notice'>[pick("Headpats feel nice.", "The feeling of a hairball...", "Backrubs would be nice.", "Whats behind those doors?")]</span>")
|
||||
M.adjustArousalLoss(2)
|
||||
..()
|
||||
@@ -9,6 +9,7 @@
|
||||
taste_description = "bitterness"
|
||||
taste_mult = 1.2
|
||||
var/toxpwr = 1.5
|
||||
var/silent_toxin = FALSE //won't produce a pain message when processed by liver/life() if there isn't another non-silent toxin present.
|
||||
|
||||
/datum/reagent/toxin/on_mob_life(mob/living/carbon/M)
|
||||
if(toxpwr)
|
||||
@@ -899,6 +900,24 @@
|
||||
taste_description = "bone hurting"
|
||||
overdose_threshold = 20
|
||||
|
||||
|
||||
/datum/reagent/toxin/bungotoxin
|
||||
name = "Bungotoxin"
|
||||
description = "A horrible cardiotoxin that protects the humble bungo pit."
|
||||
silent_toxin = TRUE
|
||||
color = "#EBFF8E"
|
||||
metabolization_rate = 0.5 * REAGENTS_METABOLISM
|
||||
toxpwr = 0
|
||||
taste_description = "tannin"
|
||||
|
||||
/datum/reagent/toxin/bungotoxin/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_HEART, 3)
|
||||
M.confused = M.dizziness //add a tertiary effect here if this is isn't an effective poison.
|
||||
if(current_cycle >= 12 && prob(8))
|
||||
var/tox_message = pick("You feel your heart spasm in your chest.", "You feel faint.","You feel you need to catch your breath.","You feel a prickle of pain in your chest.")
|
||||
to_chat(M, "<span class='notice'>[tox_message]</span>")
|
||||
. = 1
|
||||
..()
|
||||
/datum/reagent/toxin/bonehurtingjuice/on_mob_add(mob/living/carbon/M)
|
||||
M.say("oof ouch my bones", forced = /datum/reagent/toxin/bonehurtingjuice)
|
||||
|
||||
|
||||
@@ -18,12 +18,14 @@
|
||||
/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,
|
||||
/obj/item/seeds/lime = 3,
|
||||
/obj/item/seeds/onion = 3,
|
||||
/obj/item/seeds/orange = 3,
|
||||
/obj/item/seeds/peach = 3,
|
||||
/obj/item/seeds/peanutseed = 3,
|
||||
/obj/item/seeds/pineapple = 3,
|
||||
/obj/item/seeds/potato = 3,
|
||||
|
||||
Reference in New Issue
Block a user