Files
Bubberstation/code/modules/hydroponics/grown/misc.dm
SkyratBot 6dde124398 The nth grown food refactor: Changes MOST unique plant effects into special plant genes/traits! Plant Genes+ (#59107) (#6307)
* Auto doc'd much of grown botany food and plant traits and renamed a buncha variables and parameters to match modern contribution guidelines.
* Cleaned up a good bit of plant gene code left over from the prior refactor and modernized some of it.

All plant effects that were once unique to a plant are now un-graftable, un-mutatable, un-shearable plant traits - called IMMUTABLE traits.
The ultimate goal of this PR was to make all of the hidden, arcane traits that are spread through botany's various plants and add a way to figure out they exist in game. Take omega-weed, for example, which has a maximum volume of 420 units.


What does this mean for the enterprising botanist?

In most cases, all the plants should act the same way. None of the immutable traits are graftable from any of the plants, they cannot be sheared off of the plant, and they cannot be mutated randomly from strange seeds or high instability mutations.

Though, in refactoring these traits, two things have been fixed: Novaflower's on hit and Deathnettle's on hit now proc again. If you aren't aware, Novaflowers apply firestacks and Deathnettles paralyze on hit. They've been in an unreachable code segment for a few years now and i'm not sure if they should be "fixed" or not, since I think they don't need any buffs.


A few other things have changed:
* Liquid Contents can no longer be applied to plants with Hypodermic Prickles, and visa-versa. They already didn't work together, but this means you need to go through an extra step to make LC-deathnettles.
* Killer Tomatos no longer have liquid contents. Didn't really make sense, anyways.

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2021-06-16 22:40:14 +12:00

254 lines
8.0 KiB
Plaintext

// Starthistle
/obj/item/seeds/starthistle
name = "pack of starthistle seeds"
desc = "A robust species of weed that often springs up in-between the cracks of spaceship parking lots."
icon_state = "seed-starthistle"
species = "starthistle"
plantname = "Starthistle"
lifespan = 70
endurance = 50 // damm pesky weeds
maturation = 5
production = 1
yield = 2
potency = 10
instability = 35
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/starthistle/corpse_flower, /obj/item/seeds/galaxythistle)
graft_gene = /datum/plant_gene/trait/plant_type/weed_hardy
/obj/item/seeds/starthistle/harvest(mob/user)
var/obj/machinery/hydroponics/parent = loc
var/seed_count = yield
if(prob(getYield() * 20))
seed_count++
var/output_loc = parent.Adjacent(user) ? user.loc : parent.loc
for(var/i in 1 to seed_count)
var/obj/item/seeds/starthistle/harvestseeds = Copy()
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(/datum/plant_gene/trait/gas_production)
mutatelist = list()
reagents_add = list(/datum/reagent/toxin/formaldehyde = 0.1)
//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/food/grown/galaxythistle
lifespan = 70
endurance = 40
maturation = 3
production = 2
yield = 2
potency = 25
instability = 35
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)
graft_gene = /datum/plant_gene/trait/invasive
/obj/item/seeds/galaxythistle/Initialize(mapload,nogenes)
. = ..()
if(!nogenes)
unset_mutability(/datum/plant_gene/trait/invasive, PLANT_GENE_REMOVABLE)
/obj/item/food/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"
bite_consumption_mod = 2
foodtypes = VEGETABLES
wine_power = 35
tastes = list("thistle" = 2, "artichoke" = 1)
// Cabbage
/obj/item/seeds/cabbage
name = "pack of cabbage seeds"
desc = "These seeds grow into cabbages."
icon_state = "seed-cabbage"
species = "cabbage"
plantname = "Cabbages"
product = /obj/item/food/grown/cabbage
lifespan = 50
endurance = 25
maturation = 3
production = 5
yield = 4
instability = 10
growthstages = 1
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/replicapod)
reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1)
seed_flags = null
/obj/item/food/grown/cabbage
seed = /obj/item/seeds/cabbage
name = "cabbage"
desc = "Ewwwwwwwwww. Cabbage."
icon_state = "cabbage"
foodtypes = VEGETABLES
wine_power = 20
// Sugarcane
/obj/item/seeds/sugarcane
name = "pack of sugarcane seeds"
desc = "These seeds grow into sugarcane."
icon_state = "seed-sugarcane"
species = "sugarcane"
plantname = "Sugarcane"
product = /obj/item/food/grown/sugarcane
genes = list(/datum/plant_gene/trait/repeated_harvest)
lifespan = 60
endurance = 50
maturation = 3
yield = 4
instability = 15
growthstages = 2
reagents_add = list(/datum/reagent/consumable/sugar = 0.25)
mutatelist = list(/obj/item/seeds/bamboo)
/obj/item/food/grown/sugarcane
seed = /obj/item/seeds/sugarcane
name = "sugarcane"
desc = "Sickly sweet."
icon_state = "sugarcane"
bite_consumption_mod = 2
foodtypes = VEGETABLES | SUGAR
distill_reagent = /datum/reagent/consumable/ethanol/rum
// Gatfruit
/obj/item/seeds/gatfruit
name = "pack of gatfruit seeds"
desc = "These seeds grow into .357 revolvers."
icon_state = "seed-gatfruit"
species = "gatfruit"
plantname = "Gatfruit Tree"
product = /obj/item/food/grown/shell/gatfruit
genes = list(/datum/plant_gene/trait/repeated_harvest)
lifespan = 20
endurance = 20
maturation = 40
production = 10
yield = 2
potency = 60
growthstages = 2
rarity = 60 // Obtainable only with xenobio+superluck.
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
reagents_add = list(/datum/reagent/sulfur = 0.1, /datum/reagent/carbon = 0.1, /datum/reagent/nitrogen = 0.07, /datum/reagent/potassium = 0.05)
/obj/item/food/grown/shell/gatfruit
seed = /obj/item/seeds/gatfruit
name = "gatfruit"
desc = "It smells like burning."
icon_state = "gatfruit"
trash_type = /obj/item/gun/ballistic/revolver
bite_consumption_mod = 2
foodtypes = FRUIT
tastes = list("gunpowder" = 1)
wine_power = 90 //It burns going down, too.
//Cherry Bombs
/obj/item/seeds/cherry/bomb
name = "pack of cherry bomb pits"
desc = "They give you vibes of dread and frustration."
icon_state = "seed-cherry_bomb"
species = "cherry_bomb"
plantname = "Cherry Bomb Tree"
product = /obj/item/food/grown/cherry_bomb
mutatelist = list()
genes = list(/datum/plant_gene/trait/bomb_plant, /datum/plant_gene/trait/modified_volume/cherry_bomb)
reagents_add = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/consumable/sugar = 0.1, /datum/reagent/gunpowder = 0.7)
rarity = 60 //See above
/obj/item/food/grown/cherry_bomb
name = "cherry bombs"
desc = "You think you can hear the hissing of a tiny fuse."
icon_state = "cherry_bomb"
alt_icon = "cherry_bomb_lit"
seed = /obj/item/seeds/cherry/bomb
bite_consumption_mod = 3
wine_power = 80
// aloe
/obj/item/seeds/aloe
name = "pack of aloe seeds"
desc = "These seeds grow into aloe."
icon_state = "seed-aloe"
species = "aloe"
plantname = "Aloe"
product = /obj/item/food/grown/aloe
lifespan = 60
endurance = 25
maturation = 4
production = 4
yield = 6
growthstages = 5
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.05, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/food/grown/aloe
seed = /obj/item/seeds/aloe
name = "aloe"
desc = "Cut leaves from the aloe plant."
icon_state = "aloe"
bite_consumption_mod = 3
foodtypes = VEGETABLES
juice_results = list(/datum/reagent/consumable/aloejuice = 0)
distill_reagent = /datum/reagent/consumable/ethanol/tequila
/obj/item/food/grown/aloe/microwave_act(obj/machinery/microwave/M)
new /obj/item/stack/medical/aloe(drop_location(), 2)
qdel(src)
/obj/item/seeds/shrub
name = "pack of shrub seeds"
desc = "These seeds grow into hedge shrubs."
icon_state = "seed-shrub"
species = "shrub"
plantname = "Shrubbery"
product = /obj/item/grown/shrub
lifespan = 40
endurance = 30
maturation = 4
production = 6
yield = 2
instability = 10
growthstages = 3
reagents_add = list()
/obj/item/grown/shrub
seed = /obj/item/seeds/shrub
name = "shrub"
desc = "A shrubbery, it looks nice and it was only a few credits too. Plant it on the ground to grow a hedge, shrubbing skills not required."
icon_state = "shrub"
/obj/item/grown/shrub/attack_self(mob/user)
var/turf/player_turf = get_turf(user)
if(player_turf?.is_blocked_turf(TRUE))
return FALSE
user.visible_message("<span class='danger'>[user] begins to plant \the [src]...</span>")
if(do_after(user, 4 SECONDS, target = user.drop_location(), progress = TRUE)) //SKYRAT EDIT - ORIGINAL 8 SECONDS
new /obj/structure/fluff/hedge/opaque(user.drop_location())
to_chat(user, span_notice("You plant \the [src]."))
qdel(src)