Files
Aurora.3/code/modules/hydroponics/seed_datums/vegetables.dm
hazelrat 4d5d2c340e Expands hydroponics temperature/light mechanics (#20890)
This is sorta bulky on the changes since it includes a lot of shuffled
documentation, so I'll try to thoroughly summarise here.

- Introduces 'preferential' temperature and light values to plants. This
means that, while a plant is _within_ 5K and 2 lumens of their ideal
heat and ideal light, they will grow faster than otherwise. In the
current implementation, the base growth is a 15% chance of age being
increased, plus another 15% if you're within preferential temps, and
another 5% if within preferential lumens for a maximum of 35%. This is
intended to incentivise engaging with temperature mechanics to grow
plants with unusual requirements.
- This is different to the existing tolerance values, which instead
check whether the plant is _outside_ of them - if they are, it damages
them. Tolerances cause the plant to die if they're too far from their
ideals, preferences cause the plant to grow faster if they're very close
to their ideals. The range of preferences should always be inside
tolerances.
- To work better with this, the ideals of a few kinds of plant have been
tweaked. Mushrooms, Adhomian plants, and molluscs will all **not** be in
their preferences at room temperature - they will need to be cooled,
which can currently be done in D1 hydroponics. A few warmer plants, such
as sugarcane, will need to be warmed up to reach their preferences.
- None of these will go outside of their tolerances at room temperature
- they won't die, they'll just grow slower.
- Most plants will be within all their preferences without any action by
the gardener.

There's also a few assorted QoL changes to hydrotrays, see the
changelog.

---------

Signed-off-by: hazelrat <83198434+hazelrat@users.noreply.github.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2025-07-12 18:21:31 +00:00

282 lines
7.3 KiB
Plaintext

////////////////////
// Chili plants //
////////////////////
/datum/seed/chili
name = "chili"
seed_name = "chili"
display_name = "chili plants"
chems = list(/singleton/reagent/capsaicin = list(3,5), /singleton/reagent/nutriment = list(1,25))
mutants = list("icechili")
kitchen_tag = "chili"
/datum/seed/chili/setup_traits()
..()
set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,5)
set_trait(TRAIT_PRODUCTION,5)
set_trait(TRAIT_YIELD,4)
set_trait(TRAIT_POTENCY,20)
set_trait(TRAIT_PRODUCT_ICON,"chili")
set_trait(TRAIT_PRODUCT_COLOUR,"#ED3300")
set_trait(TRAIT_PLANT_ICON,"bush2")
set_trait(TRAIT_IDEAL_HEAT, 304)
set_trait(TRAIT_IDEAL_LIGHT, 7)
/obj/item/seeds/chiliseed
seed_type = "chili"
/datum/seed/chili/ice
name = "icechili"
seed_name = "ice pepper"
display_name = "ice-pepper plants"
mutants = null
chems = list(/singleton/reagent/frostoil = list(3,5), /singleton/reagent/nutriment = list(1,50))
kitchen_tag = "icechili"
/datum/seed/chili/ice/setup_traits()
..()
set_trait(TRAIT_MATURATION,4)
set_trait(TRAIT_PRODUCTION,4)
set_trait(TRAIT_PRODUCT_COLOUR,"#00EDC6")
/obj/item/seeds/icepepperseed
seed_type = "icechili"
/datum/seed/bellpepper
name = "bellpepper"
seed_name = "bell pepper"
display_name = "bell peppers"
chems = list(/singleton/reagent/nutriment = list(1,25))
mutants = list("chili")
kitchen_tag = "bellpepper"
/datum/seed/bellpepper/setup_traits()
..()
set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,4)
set_trait(TRAIT_PRODUCTION,5)
set_trait(TRAIT_YIELD,4)
set_trait(TRAIT_POTENCY,5)
set_trait(TRAIT_PRODUCT_ICON,"pepper")
set_trait(TRAIT_PRODUCT_COLOUR,"#ff922d")
set_trait(TRAIT_PLANT_COLOUR,"#35d65d")
set_trait(TRAIT_PLANT_ICON,"bush2")
set_trait(TRAIT_IDEAL_HEAT, 293)
set_trait(TRAIT_IDEAL_LIGHT, 6)
set_trait(TRAIT_WATER_CONSUMPTION, 5)
/obj/item/seeds/bellpepperseed
seed_type = "bellpepper"
///////////////
// Nettles //
///////////////
/datum/seed/nettle
name = "nettle"
seed_name = "nettle"
display_name = "nettles"
mutants = list("deathnettle")
chems = list(/singleton/reagent/nutriment = list(1,50), /singleton/reagent/acid = list(0,1))
kitchen_tag = "nettle"
/datum/seed/nettle/setup_traits()
..()
set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,6)
set_trait(TRAIT_PRODUCTION,6)
set_trait(TRAIT_YIELD,4)
set_trait(TRAIT_POTENCY,10)
set_trait(TRAIT_STINGS,1)
set_trait(TRAIT_PLANT_ICON,"bush5")
set_trait(TRAIT_PRODUCT_ICON,"nettles")
set_trait(TRAIT_PRODUCT_COLOUR,"#728A54")
/obj/item/seeds/nettleseed
seed_type = "nettle"
/datum/seed/nettle/death
name = "deathnettle"
seed_name = "death nettle"
display_name = "death nettles"
mutants = null
chems = list(/singleton/reagent/nutriment = list(1,50), /singleton/reagent/acid/polyacid = list(0,1))
kitchen_tag = "deathnettle"
/datum/seed/nettle/death/setup_traits()
..()
set_trait(TRAIT_MATURATION,8)
set_trait(TRAIT_YIELD,2)
set_trait(TRAIT_PRODUCT_COLOUR,"#8C5030")
set_trait(TRAIT_PLANT_COLOUR,"#634941")
/obj/item/seeds/deathnettleseed
seed_type = "deathnettle"
/////////////////
// Eggplants //
/////////////////
/datum/seed/eggplant
name = "eggplant"
seed_name = "eggplant"
display_name = "eggplants"
mutants = list("realeggplant")
chems = list(/singleton/reagent/nutriment = list(1,10))
kitchen_tag = "eggplant"
/datum/seed/eggplant/setup_traits()
..()
set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,6)
set_trait(TRAIT_PRODUCTION,6)
set_trait(TRAIT_YIELD,2)
set_trait(TRAIT_POTENCY,20)
set_trait(TRAIT_PRODUCT_ICON,"eggplant")
set_trait(TRAIT_PRODUCT_COLOUR,"#892694")
set_trait(TRAIT_PLANT_ICON,"bush4")
set_trait(TRAIT_IDEAL_HEAT, 298)
set_trait(TRAIT_IDEAL_LIGHT, 7)
/obj/item/seeds/eggplantseed
seed_type = "eggplant"
/datum/seed/realeggplant
name = "huge eggplant"
seed_name = "realeggplant"
display_name = "eggplants"
chems = list(/singleton/reagent/nutriment = list(15,30))
kitchen_tag = "realeggplant"
/datum/seed/realeggplant/setup_traits()
..()
set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,4)
set_trait(TRAIT_PRODUCTION,5)
set_trait(TRAIT_YIELD,1)
set_trait(TRAIT_POTENCY,40)
set_trait(TRAIT_PRODUCT_ICON,"eggplant")
set_trait(TRAIT_PRODUCT_COLOUR,"#892694")
set_trait(TRAIT_PLANT_ICON,"bush4")
set_trait(TRAIT_IDEAL_HEAT, 298)
set_trait(TRAIT_IDEAL_LIGHT, 7)
///////////////
// Legumes //
///////////////
/datum/seed/peanuts
name = "peanut"
seed_name = "peanut"
display_name = "peanut vines"
chems = list(/singleton/reagent/nutriment = list(1,10))
kitchen_tag = "peanut"
/datum/seed/peanuts/setup_traits()
..()
set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,6)
set_trait(TRAIT_PRODUCTION,6)
set_trait(TRAIT_YIELD,6)
set_trait(TRAIT_POTENCY,10)
set_trait(TRAIT_PRODUCT_ICON,"nuts")
set_trait(TRAIT_PRODUCT_COLOUR,"#F2B369")
set_trait(TRAIT_PLANT_ICON,"bush2")
set_trait(TRAIT_IDEAL_LIGHT, 6)
/obj/item/seeds/peanutseed
seed_type = "peanut"
/datum/seed/soybean
name = "soybean"
seed_name = "soybean"
display_name = "soybeans"
chems = list(/singleton/reagent/nutriment = list(1,20), /singleton/reagent/drink/milk/soymilk = list(10,20))
kitchen_tag = "soybeans"
/datum/seed/soybean/setup_traits()
..()
set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,4)
set_trait(TRAIT_PRODUCTION,4)
set_trait(TRAIT_YIELD,3)
set_trait(TRAIT_POTENCY,5)
set_trait(TRAIT_PRODUCT_ICON,"bean")
set_trait(TRAIT_PRODUCT_COLOUR,"#EBE7C0")
set_trait(TRAIT_PLANT_ICON,"stalk")
/obj/item/seeds/soyaseed
seed_type = "soybean"
/datum/seed/chickpea
name = "chickpea"
seed_name = "chickpea"
display_name = "chickpeas"
chems = list(/singleton/reagent/nutriment = list(1, 20))
kitchen_tag = "chickpeas"
/datum/seed/chickpea/setup_traits()
..()
set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION, 4)
set_trait(TRAIT_PRODUCTION, 4)
set_trait(TRAIT_YIELD, 3)
set_trait(TRAIT_POTENCY, 5)
set_trait(TRAIT_PRODUCT_ICON, "bean")
set_trait(TRAIT_PRODUCT_COLOUR, "#e0ce25")
set_trait(TRAIT_PLANT_ICON, "bush2")
/obj/item/seeds/chickpeas
seed_type = "chickpea"
/datum/seed/peas
name = "peas"
seed_name = "peas"
display_name = "peas"
chems = list(/singleton/reagent/nutriment = list(1, 20))
kitchen_tag = "peas"
mutants = list("chickpeas")
/datum/seed/peas/setup_traits()
..()
set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION, 3)
set_trait(TRAIT_PRODUCTION, 3)
set_trait(TRAIT_YIELD, 3)
set_trait(TRAIT_POTENCY, 5)
set_trait(TRAIT_PRODUCT_ICON, "bean")
set_trait(TRAIT_PRODUCT_COLOUR, "#70b74a")
set_trait(TRAIT_PLANT_ICON, "bush2")
set_trait(TRAIT_IDEAL_LIGHT, 6)
/obj/item/seeds/peaseed
seed_type = "peas"
///////////////
// Cabbage //
///////////////
/datum/seed/cabbage
name = "cabbage"
seed_name = "cabbage"
display_name = "cabbages"
chems = list(/singleton/reagent/nutriment = list(1,10))
kitchen_tag = "cabbage"
/datum/seed/cabbage/setup_traits()
..()
set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,3)
set_trait(TRAIT_PRODUCTION,5)
set_trait(TRAIT_YIELD,4)
set_trait(TRAIT_POTENCY,10)
set_trait(TRAIT_PRODUCT_ICON,"cabbage")
set_trait(TRAIT_PRODUCT_COLOUR,"#84BD82")
set_trait(TRAIT_PLANT_COLOUR,"#6D9C6B")
set_trait(TRAIT_PLANT_ICON,"vine2")
set_trait(TRAIT_IDEAL_LIGHT, 6)
set_trait(TRAIT_WATER_CONSUMPTION, 6)
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.15)
/obj/item/seeds/cabbageseed
seed_type = "cabbage"