Files
MrMelbertandGitHub 2bcafecefb Fix poppy plant interaction breaking spades (#92960)
## About The Pull Request

This unassuming line was added in the middle of tray attackby to allow
for sharp objects to extract poppy sap


https://github.com/tgstation/tgstation/blob/71c49cb4d1024515c98fe6de531620010cdf4334/code/modules/hydroponics/hydroponics.dm#L941-L945

Unfortunately, spades are sharp, and the shovel interaction followed
lower in the chain. This also isn't proper use of `interact_with_atom`
so we can fix two birds with one stone here.

Now, poppy seeds hook the `COMSIG_ATOM_ITEM_INTERACTION` signal on the
tray when planted, so we can run snowflake checks on the seed itself.

## Changelog

🆑 Melbert
fix: Spades work on trays again
qol: Poppy seeds now give better feedback when unable to harvest
qol: Poppy seeds now have an immutable gene indicating they can be
sliced for sap
del: Lilys and Geraniums can no longer be tapped for sap
/🆑
2025-09-15 16:39:08 -07:00

345 lines
12 KiB
Plaintext

// Poppy
/obj/item/seeds/poppy
name = "poppy seed pack"
desc = "These seeds grow into poppies."
icon_state = "seed-poppy"
species = "poppy"
plantname = "Poppy Plants"
product = /obj/item/food/grown/poppy
endurance = 10
maturation = 8
yield = 6
potency = 20
instability = 1 //Flowers have 1 instability, if you want to breed out instability, crossbreed with flowers.
growthstages = 3
growing_icon = 'icons/obj/service/hydroponics/growing_flowers.dmi'
icon_grow = "poppy-grow"
icon_dead = "poppy-dead"
genes = list(/datum/plant_gene/trait/preserved, /datum/plant_gene/trait/opium_production)
mutatelist = list(/obj/item/seeds/poppy/geranium, /obj/item/seeds/poppy/lily)
reagents_add = list(/datum/reagent/medicine/c2/libital = 0.2, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/food/grown/poppy
seed = /obj/item/seeds/poppy
name = "poppy"
desc = "Long-used as a symbol of rest, peace, and death."
icon_state = "poppy"
slot_flags = ITEM_SLOT_HEAD
alternate_worn_layer = ABOVE_BODY_FRONT_HEAD_LAYER
bite_consumption_mod = 2
foodtypes = VEGETABLES | GROSS
distill_reagent = /datum/reagent/consumable/ethanol/vermouth
// Lily
/obj/item/seeds/poppy/lily
name = "lily seed pack"
desc = "These seeds grow into lilies."
icon_state = "seed-lily"
species = "lily"
plantname = "Lily Plants"
product = /obj/item/food/grown/poppy/lily
growthstages = 3
growing_icon = 'icons/obj/service/hydroponics/growing_flowers.dmi'
icon_grow = "lily-grow"
icon_dead = "lily-dead"
genes = list(/datum/plant_gene/trait/preserved)
mutatelist = list(/obj/item/seeds/poppy/lily/trumpet)
/obj/item/food/grown/poppy/lily
seed = /obj/item/seeds/poppy/lily
name = "lily"
desc = "A beautiful white flower."
icon_state = "lily"
//Spacemans's Trumpet
/obj/item/seeds/poppy/lily/trumpet
name = "spaceman's trumpet seed pack"
desc = "A plant sculpted by extensive genetic engineering. The spaceman's trumpet is said to bear no resemblance to its wild ancestors. Inside NT AgriSci circles it is better known as NTPW-0372."
icon_state = "seed-trumpet"
species = "spacemanstrumpet"
plantname = "Spaceman's Trumpet Plant"
product = /obj/item/food/grown/trumpet
lifespan = 80
production = 5
endurance = 10
maturation = 12
yield = 4
potency = 20
growthstages = 4
weed_rate = 2
weed_chance = 10
growing_icon = 'icons/obj/service/hydroponics/growing_flowers.dmi'
icon_grow = "spacemanstrumpet-grow"
icon_dead = "spacemanstrumpet-dead"
mutatelist = null
genes = list(/datum/plant_gene/trait/preserved, /datum/plant_gene/reagent/preset/polypyr)
reagents_add = list(/datum/reagent/consumable/nutriment = 0.05)
rarity = 30
graft_gene = /datum/plant_gene/reagent/preset/polypyr
/obj/item/food/grown/trumpet
seed = /obj/item/seeds/poppy/lily/trumpet
name = "spaceman's trumpet"
desc = "A vivid flower that smells faintly of freshly cut grass. Touching the flower seems to stain the skin some time after contact, yet most other surfaces seem to be unaffected by this phenomenon."
icon_state = "spacemanstrumpet"
bite_consumption_mod = 2
foodtypes = VEGETABLES
// Geranium
/obj/item/seeds/poppy/geranium
name = "geranium seed pack"
desc = "These seeds grow into geranium."
icon_state = "seed-geranium"
species = "geranium"
plantname = "Geranium Plants"
product = /obj/item/food/grown/poppy/geranium
growthstages = 3
growing_icon = 'icons/obj/service/hydroponics/growing_flowers.dmi'
icon_grow = "geranium-grow"
icon_dead = "geranium-dead"
genes = list(/datum/plant_gene/trait/preserved)
mutatelist = list(/obj/item/seeds/poppy/geranium/fraxinella)
/obj/item/food/grown/poppy/geranium
seed = /obj/item/seeds/poppy/geranium
name = "geranium"
desc = "A beautiful blue flower."
icon_state = "geranium"
///Fraxinella seeds.
/obj/item/seeds/poppy/geranium/fraxinella
name = "fraxinella seed pack"
desc = "These seeds grow into fraxinella."
icon_state = "seed-fraxinella"
species = "fraxinella"
plantname = "Fraxinella Plants"
product = /obj/item/food/grown/poppy/geranium/fraxinella
mutatelist = null
rarity = 15
reagents_add = list(/datum/reagent/consumable/nutriment = 0.05, /datum/reagent/fuel/oil = 0.05)
graft_gene = /datum/plant_gene/trait/preserved
///Fraxinella Flowers.
/obj/item/food/grown/poppy/geranium/fraxinella
seed = /obj/item/seeds/poppy/geranium/fraxinella
name = "fraxinella"
desc = "A beautiful light pink flower."
icon_state = "fraxinella"
distill_reagent = /datum/reagent/ash
// Harebell
/obj/item/seeds/harebell
name = "harebell seed pack"
desc = "These seeds grow into pretty little flowers."
icon_state = "seed-harebell"
plant_icon_offset = 1
species = "harebell"
plantname = "Harebells"
product = /obj/item/food/grown/harebell
lifespan = 100
endurance = 20
maturation = 7
production = 1
yield = 2
potency = 30
instability = 1
growthstages = 4
genes = list(/datum/plant_gene/trait/plant_type/weed_hardy, /datum/plant_gene/trait/preserved)
growing_icon = 'icons/obj/service/hydroponics/growing_flowers.dmi'
reagents_add = list(/datum/reagent/consumable/nutriment = 0.04)
graft_gene = /datum/plant_gene/trait/plant_type/weed_hardy
/obj/item/food/grown/harebell
seed = /obj/item/seeds/harebell
name = "harebell"
desc = "\"I'll sweeten thy sad grave: thou shalt not lack the flower that's like thy face, pale primrose, nor the azured hare-bell, like thy veins; no, nor the leaf of eglantine, whom not to slander, out-sweeten'd not thy breath.\""
icon_state = "harebell"
slot_flags = ITEM_SLOT_HEAD
alternate_worn_layer = ABOVE_BODY_FRONT_HEAD_LAYER
bite_consumption_mod = 2
distill_reagent = /datum/reagent/consumable/ethanol/vermouth
// Sunflower
/obj/item/seeds/sunflower
name = "sunflower seed pack"
desc = "These seeds grow into sunflowers."
icon_state = "seed-sunflower"
species = "sunflower"
plantname = "Sunflowers"
product = /obj/item/food/grown/sunflower
genes = list(/datum/plant_gene/trait/attack/sunflower_attack, /datum/plant_gene/trait/preserved)
endurance = 20
production = 2
yield = 2
instability = 1
growthstages = 3
growing_icon = 'icons/obj/service/hydroponics/growing_flowers.dmi'
icon_grow = "sunflower-grow"
icon_dead = "sunflower-dead"
mutatelist = list(/obj/item/seeds/sunflower/moonflower, /obj/item/seeds/sunflower/novaflower)
reagents_add = list(/datum/reagent/consumable/nutriment/fat/oil = 0.08, /datum/reagent/consumable/nutriment = 0.04)
/obj/item/food/grown/sunflower // FLOWER POWER!
seed = /obj/item/seeds/sunflower
name = "sunflower"
desc = "It's beautiful! A certain person might beat you to death if you trample these."
icon_state = "sunflower"
inhand_icon_state = "sunflower"
lefthand_file = 'icons/mob/inhands/weapons/plants_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/plants_righthand.dmi'
foodtypes = VEGETABLES
damtype = BURN
force = 0
slot_flags = ITEM_SLOT_HEAD
alternate_worn_layer = ABOVE_BODY_FRONT_HEAD_LAYER
throwforce = 0
w_class = WEIGHT_CLASS_TINY
throw_speed = 1
throw_range = 3
/obj/item/food/grown/sunflower/make_dryable()
AddElement(/datum/element/dryable, /obj/item/food/semki/healthy) //yum
// Moonflower
/obj/item/seeds/sunflower/moonflower
name = "moonflower seed pack"
desc = "These seeds grow into moonflowers."
icon_state = "seed-moonflower"
lefthand_file = 'icons/mob/inhands/items/food_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items/food_righthand.dmi'
species = "moonflower"
plantname = "Moonflowers"
icon_grow = "moonflower-grow"
icon_dead = "sunflower-dead"
product = /obj/item/food/grown/moonflower
genes = list(/datum/plant_gene/trait/glow/purple, /datum/plant_gene/trait/preserved)
mutatelist = null
reagents_add = list(/datum/reagent/consumable/ethanol/moonshine = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.02, /datum/reagent/consumable/nutriment = 0.02)
rarity = 15
graft_gene = /datum/plant_gene/trait/glow/purple
/obj/item/food/grown/moonflower
seed = /obj/item/seeds/sunflower/moonflower
name = "moonflower"
desc = "Store in a location at least 50 yards away from werewolves."
icon_state = "moonflower"
inhand_icon_state = "moonflower"
slot_flags = ITEM_SLOT_HEAD
alternate_worn_layer = ABOVE_BODY_FRONT_HEAD_LAYER
distill_reagent = /datum/reagent/consumable/ethanol/absinthe //It's made from flowers.
// Novaflower
/obj/item/seeds/sunflower/novaflower
name = "novaflower seed pack"
desc = "These seeds grow into novaflowers."
icon_state = "seed-novaflower"
species = "novaflower"
plantname = "Novaflowers"
icon_grow = "novaflower-grow"
icon_dead = "sunflower-dead"
product = /obj/item/grown/novaflower
genes = list(/datum/plant_gene/trait/backfire/novaflower_heat, /datum/plant_gene/trait/attack/novaflower_attack, /datum/plant_gene/trait/preserved)
mutatelist = null
reagents_add = list(/datum/reagent/consumable/condensedcapsaicin = 0.25, /datum/reagent/consumable/capsaicin = 0.3, /datum/reagent/consumable/nutriment = 0, /datum/reagent/toxin/acid = 0.05)
rarity = PLANT_MODERATELY_RARE
/obj/item/grown/novaflower
seed = /obj/item/seeds/sunflower/novaflower
name = "\improper novaflower"
desc = "These beautiful flowers have a crisp smokey scent, like a summer bonfire."
icon_state = "novaflower"
inhand_icon_state = "novaflower"
lefthand_file = 'icons/mob/inhands/weapons/plants_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/plants_righthand.dmi'
damtype = BURN
force = 0
slot_flags = ITEM_SLOT_HEAD
alternate_worn_layer = ABOVE_BODY_FRONT_HEAD_LAYER
throwforce = 0
w_class = WEIGHT_CLASS_TINY
throw_speed = 1
throw_range = 3
attack_verb_continuous = list("roasts", "scorches", "burns")
attack_verb_simple = list("roast", "scorch", "burn")
grind_results = list(/datum/reagent/consumable/capsaicin = 0, /datum/reagent/consumable/condensedcapsaicin = 0)
// Rose
/obj/item/seeds/rose
name = "rose seed pack"
desc = "These seeds grow into roses."
icon_state = "seed-rose"
species = "rose"
plantname = "Rose Bush"
product = /obj/item/food/grown/rose
endurance = 12
yield = 6
potency = 15
instability = 20 //Roses crossbreed easily, and there's many many species of them.
growthstages = 3
genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/backfire/rose_thorns, /datum/plant_gene/trait/preserved)
growing_icon = 'icons/obj/service/hydroponics/growing_flowers.dmi'
icon_grow = "rose-grow"
icon_dead = "rose-dead"
mutatelist = list(/obj/item/seeds/carbon_rose)
//Roses are commonly used as herbal medicines (diarrhodons) and for their 'rose oil'.
reagents_add = list(/datum/reagent/consumable/nutriment = 0.05, /datum/reagent/medicine/granibitaluri = 0.1, /datum/reagent/fuel/oil = 0.05)
/obj/item/food/grown/rose
seed = /obj/item/seeds/rose
name = "\improper rose"
desc = "The classic fleur d'amour - flower of love. Watch for its thorns!"
base_icon_state = "rose"
icon_state = "rose"
inhand_icon_state = "rose"
worn_icon_state = "rose"
lefthand_file = 'icons/mob/inhands/items/food_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items/food_righthand.dmi'
slot_flags = ITEM_SLOT_HEAD | ITEM_SLOT_MASK
alternate_worn_layer = ABOVE_BODY_FRONT_HEAD_LAYER
bite_consumption_mod = 2
foodtypes = VEGETABLES | GROSS
/obj/item/food/grown/rose/equipped(mob/user, slot, initial)
. = ..()
if(slot & ITEM_SLOT_MASK)
worn_icon_state = "[base_icon_state]_mouth"
user.update_worn_mask()
else
worn_icon_state = base_icon_state
user.update_worn_head()
// Carbon Rose
/obj/item/seeds/carbon_rose
name = "carbon rose seed pack"
desc = "These seeds grow into carbon roses."
icon_state = "seed-carbonrose"
species = "carbonrose"
plantname = "Carbon Rose Flower"
product = /obj/item/grown/carbon_rose
endurance = 12
yield = 6
potency = 15
instability = 3
growthstages = 3
genes = list(/datum/plant_gene/reagent/preset/carbon, /datum/plant_gene/trait/preserved)
growing_icon = 'icons/obj/service/hydroponics/growing_flowers.dmi'
icon_grow = "carbonrose-grow"
icon_dead = "carbonrose-dead"
reagents_add = list(/datum/reagent/plastic_polymers = 0.05)
rarity = 10
graft_gene = /datum/plant_gene/reagent/preset/carbon
/obj/item/grown/carbon_rose
seed = /obj/item/seeds/carbon_rose
name = "carbon rose"
desc = "The all new fleur d'amour gris - the flower of love, modernized, with no harsh thorns."
icon_state = "carbonrose"
lefthand_file = 'icons/mob/inhands/weapons/plants_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/plants_righthand.dmi'
force = 0
throwforce = 0
slot_flags = ITEM_SLOT_HEAD
alternate_worn_layer = ABOVE_BODY_FRONT_HEAD_LAYER
throw_speed = 1
throw_range = 3