Files
AtomTheProphetandGitHub 61f9d011bf "Conserved Genetics" - A trait to prevent cross-pollination instability change in plants with the gene. (#96402)
## About The Pull Request

Cross-pollination has a lot of potential for fun, but the aspect of
instability loss and gain in plants makes me experience great suffering.
Therefore, it has been suggested that I can get rid of this great pain
by just preventing it with a plant trait! Magnificent!

Grass was chosen to receive this trait because of its.. _checks notes_
"[remarkable conservation of gene content and gene
order](https://pmc.ncbi.nlm.nih.gov/articles/PMC33824/)"! How wonderful!
I hope I'm interpreting that correctly!

## Why It's Good For The Game

The trait allows for botanists to achieve a finer control over which
plants are altered during cross-pollination, preventing undesired
instability loss or gain.
With this, the experience of setting up trays next to each other comes
with fewer pains, and enables more sophisticated cross-poll. setups as
one wishes, preventing undesired mutations or reagent changes.

## Changelog

🆑
add: Adds "Conserved Genetics", a plant trait which prevents the plant
from having its instability be altered by cross-pollination.
/🆑
2026-06-11 11:32:53 -04:00

88 lines
2.8 KiB
Plaintext

// Grass
/obj/item/seeds/grass
name = "grass seed pack"
desc = "These seeds grow into grass. Yummy!"
icon_state = "seed-grass"
species = "grass"
plantname = "Grass"
product = /obj/item/food/grown/grass
lifespan = 40
endurance = 40
maturation = 2
production = 5
yield = 5
instability = 10
growthstages = 2
icon_grow = "grass-grow"
icon_dead = "grass-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/safe_instability)
graft_gene = /datum/plant_gene/trait/safe_instability
mutatelist = list(/obj/item/seeds/grass/carpet, /obj/item/seeds/grass/fairy)
reagents_add = list(/datum/reagent/consumable/nutriment = 0.02, /datum/reagent/hydrogen = 0.05)
/obj/item/food/grown/grass
seed = /obj/item/seeds/grass
name = "grass"
desc = "Green and lush."
icon_state = "grassclump"
bite_consumption_mod = 0.5 // Grazing on grass
var/stacktype = /obj/item/stack/tile/grass
var/tile_coefficient = 0.02 // 1/50
wine_power = 15
/obj/item/food/grown/grass/attack_self(mob/user)
to_chat(user, span_notice("You prepare the astroturf."))
var/grassAmt = 1 + round(seed.potency * tile_coefficient) // The grass we're holding
for(var/obj/item/food/grown/grass/G in user.loc) // The grass on the floor
if(G.type != type)
continue
grassAmt += 1 + round(G.seed.potency * tile_coefficient)
qdel(G)
new stacktype(user.drop_location(), grassAmt)
qdel(src)
/obj/item/food/grown/grass/make_dryable()
AddElement(/datum/element/dryable, /obj/item/stack/tile/hay)
//Fairygrass
/obj/item/seeds/grass/fairy
name = "fairygrass seed pack"
desc = "These seeds grow into a more mystical grass."
icon_state = "seed-fairygrass"
species = "fairygrass"
plantname = "Fairygrass"
product = /obj/item/food/grown/grass/fairy
icon_grow = "fairygrass-grow"
icon_dead = "fairygrass-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/glow/blue, /datum/plant_gene/trait/safe_instability)
reagents_add = list(/datum/reagent/consumable/nutriment = 0.02, /datum/reagent/hydrogen = 0.05, /datum/reagent/drug/space_drugs = 0.15)
graft_gene = /datum/plant_gene/trait/glow/blue
mutatelist = null
/obj/item/food/grown/grass/fairy
seed = /obj/item/seeds/grass/fairy
name = "fairygrass"
desc = "Blue, glowing, and smells faintly of mushrooms."
icon_state = "fairygrassclump"
bite_consumption_mod = 1
stacktype = /obj/item/stack/tile/fairygrass
// Carpet
/obj/item/seeds/grass/carpet
name = "carpet seed pack"
desc = "These seeds grow into stylish carpet samples."
icon_state = "seed-carpet"
species = "carpet"
plantname = "Carpet"
product = /obj/item/food/grown/grass/carpet
mutatelist = null
rarity = 10
/obj/item/food/grown/grass/carpet
seed = /obj/item/seeds/grass/carpet
name = "carpet"
desc = "The textile industry's dark secret."
icon_state = "carpetclump"
stacktype = /obj/item/stack/tile/carpet
can_distill = FALSE