mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-10 17:04:36 +00:00
* 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>
254 lines
8.0 KiB
Plaintext
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)
|