mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-28 06:28:01 +01:00
Randomized Plant Update (#1805)
* Plants now use a ban list instead of an approved. This means that most reagents can be synthesized by plants. Also added a name generator for strange seeds, based off of a bit of lipsum and a bit of various plant genus and descriptors. # Conflicts: # code/modules/hydroponics/seed.dm * Removes # sign
This commit is contained in:
@@ -337,12 +337,50 @@
|
||||
|
||||
return impact
|
||||
|
||||
/datum/seed/proc/generate_name()
|
||||
var/prefix = ""
|
||||
var/name = ""
|
||||
if(prob(50)) //start with a prefix.
|
||||
//These are various plant/mushroom genuses.
|
||||
//I realize these might not be entirely accurate, but it could facilitate RP.
|
||||
var/list/possible_prefixes
|
||||
if(seed_noun == "cuttings" || seed_noun == "seeds" || (seed_noun == "nodes" && prob(50)))
|
||||
possible_prefixes = list("amelanchier", "saskatoon",
|
||||
"magnolia", "angiosperma", "osmunda", "scabiosa", "spigelia", "psydrax", "chastetree",
|
||||
"strychnos", "treebine", "caper", "justica", "ragwortus", "everlasting", "combretum",
|
||||
"loganiaceae", "gelsemium", "logania", "sabadilla", "neuburgia", "canthium", "rytigynia",
|
||||
"chaste", "vitex", "cissus", "capparis", "senecio", "curry", "cycad", "liverwort", "charophyta",
|
||||
"glaucophyte", "pinidae", "vascular", "embryophyte", "lillopsida")
|
||||
else
|
||||
possible_prefixes = list("bisporus", "bitorquis", "campestris", "crocodilinus", "agaricus",
|
||||
"armillaria", "matsutake", "mellea", "ponderosa", "auricularia", "auricala",
|
||||
"polytricha", "boletus", "badius", "edulis", "mirabilis", "zelleri",
|
||||
"calvatia", "gigantea", "clitopilis", "prumulus", "entoloma", "abortivum",
|
||||
"suillus", "tuber", "aestivum", "volvacea", "delica", "russula", "rozites")
|
||||
|
||||
possible_prefixes |= list("butter", "shad", "sugar", "june", "wild", "rigus", "curry", "hard", "soft", "dark", "brick", "stone", "red", "brown",
|
||||
"black", "white", "paper", "slippery", "honey", "bitter")
|
||||
prefix = pick(possible_prefixes)
|
||||
|
||||
var/num = rand(2,5)
|
||||
var/list/possible_name = list("rhon", "cus", "quam", "met", "eget", "was", "reg", "zor", "fra", "rat", "sho", "ghen", "pa",
|
||||
"eir", "lip", "sum", "lor", "em", "tem", "por", "invi", "dunt", "ut", "la", "bore", "mag", "na",
|
||||
"al", "i", "qu", "yam", "er", "at", "sed", "di", "am", "vol", "up", "tua", "at", "ve", "ro", "eos",
|
||||
"et", "ac", "cus")
|
||||
for(var/i in 1 to num)
|
||||
var/syl = pick(possible_name)
|
||||
possible_name -= syl
|
||||
name += syl
|
||||
|
||||
if(prefix)
|
||||
name = "[prefix] [name]"
|
||||
seed_name = name
|
||||
display_name = name
|
||||
|
||||
//Creates a random seed. MAKE SURE THE LINE HAS DIVERGED BEFORE THIS IS CALLED.
|
||||
/datum/seed/proc/randomize()
|
||||
|
||||
roundstart = 0
|
||||
seed_name = "strange plant" // TODO: name generator.
|
||||
display_name = "strange plants" // TODO: name generator.
|
||||
mysterious = 1
|
||||
seed_noun = pick("spores","nodes","cuttings","seeds")
|
||||
|
||||
@@ -390,49 +428,18 @@
|
||||
var/additional_chems = rand(0,5)
|
||||
|
||||
if(additional_chems)
|
||||
var/list/possible_chems = list(
|
||||
"woodpulp",
|
||||
"bicaridine",
|
||||
"hyperzine",
|
||||
"cryoxadone",
|
||||
"blood",
|
||||
"water",
|
||||
"potassium",
|
||||
"plasticide",
|
||||
"mutationtoxin",
|
||||
"docilitytoxin",
|
||||
"inaprovaline",
|
||||
"space_drugs",
|
||||
"paroxetine",
|
||||
"mercury",
|
||||
"sugar",
|
||||
"radium",
|
||||
"ryetalyn",
|
||||
"alkysine",
|
||||
"thermite",
|
||||
"tramadol",
|
||||
"cryptobiolin",
|
||||
"dermaline",
|
||||
"dexalin",
|
||||
"phoron",
|
||||
"synaptizine",
|
||||
"impedrezene",
|
||||
"hyronalin",
|
||||
"peridaxon",
|
||||
"toxin",
|
||||
"rezadone",
|
||||
"ethylredoxrazine",
|
||||
"slimejelly",
|
||||
"cyanide",
|
||||
"mindbreaker",
|
||||
"stoxin"
|
||||
|
||||
var/list/banned_chems = list(
|
||||
"adminordrazine",
|
||||
"nutriment"
|
||||
)
|
||||
|
||||
for(var/x=1;x<=additional_chems;x++)
|
||||
if(!possible_chems.len)
|
||||
break
|
||||
var/new_chem = pick(possible_chems)
|
||||
possible_chems -= new_chem
|
||||
|
||||
var/new_chem = pick(chemical_reagents_list)
|
||||
if(new_chem in banned_chems)
|
||||
continue
|
||||
banned_chems += new_chem
|
||||
chems[new_chem] = list(rand(1,10),rand(10,20))
|
||||
|
||||
if(prob(90))
|
||||
@@ -487,6 +494,8 @@
|
||||
set_trait(TRAIT_MATURATION,rand(5,15))
|
||||
set_trait(TRAIT_PRODUCTION,get_trait(TRAIT_MATURATION)+rand(2,5))
|
||||
|
||||
generate_name()
|
||||
|
||||
//Returns a key corresponding to an entry in the global seed list.
|
||||
/datum/seed/proc/get_mutant_variant()
|
||||
if(!mutants || !mutants.len || get_trait(TRAIT_IMMUTABLE) > 0) return 0
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// Update name.
|
||||
if(seed)
|
||||
if(mechanical)
|
||||
name = "[base_name] (#[seed.uid])"
|
||||
name = "[base_name] ([seed.seed_name])"
|
||||
else
|
||||
name = "[seed.seed_name]"
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user