mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-06-05 14:17:12 +01:00
b5975bd915
## About The Pull Request Unit tests will now fail if there's a decal in a wall or open space turf. Open space turf could be limiting to mappers but I don't think it makes sense for decals (like dirt, glass shards, etc) to be floating around in space in the exact same spot. If there's a decal you want to put in space, decals have a ``turf_loc_check`` var that will bypass this. **Important note: This is not changing existing behavior. Decals already delete themselves when they spawn in these incorrect locations, we're just avoiding them from spawning in the first place.** ### Changes I made - Ash flora are now lava immune, rivers spawn after flora does, so I decided that it would be easiest (and more flavorful) to have them be lava-immune rather than to not have them spawn at all. - Decals can now be spawned in non-turf locations. This is currently done by mail, which can give you bones as part of the mail. Currently it will just delete itself instead. - Trading Card button is now on the same tile as their display, which now uses an offset. Before it would spawn it on the tile next to it, which could be a wall in some instances. - Mirrors now have floating movement type. They ARE floating since they're attached to the wall, and it prevents them from burning up due to lava in the Pride ruin. - I also added a broken mirror subtype because I thought the icon_state check was terrible. - Bubblegum called ``DestroySurroundings`` several times on the same thing, I hopefully fixed some of that. Their charge ability also registered ``COMSIG_MOB_STATCHANGE`` despite ``/datum/action`` doing it by default, so I fixed that too. ## Why It's Good For The Game Decals in walls is already a bad idea, but currently all it does is delete it on Initialize. It would be better if we ensured they wouldn't spawn in the first place. ## Changelog 🆑 fix: Lava will no longer burn 6 of the mirrors in pride ruin fix: Lava will no longer burn plants that spawn in them. /🆑
393 lines
16 KiB
Plaintext
393 lines
16 KiB
Plaintext
//*******************Contains everything related to the flora on lavaland.*******************************
|
|
//This includes: The structures, their produce, their seeds and the crafting recipe for the mushroom bowl
|
|
|
|
/obj/structure/flora/ash
|
|
name = "large mushrooms"
|
|
desc = "A number of large mushrooms, covered in a faint layer of ash and what can only be spores."
|
|
icon = 'icons/obj/lavaland/ash_flora.dmi'
|
|
icon_state = "l_mushroom1"
|
|
base_icon_state = "l_mushroom"
|
|
resistance_flags = LAVA_PROOF
|
|
gender = PLURAL
|
|
layer = PROJECTILE_HIT_THRESHHOLD_LAYER //sporangiums up don't shoot
|
|
product_types = list(/obj/item/food/grown/ash_flora/shavings = 1)
|
|
harvest_with_hands = TRUE
|
|
harvested_name = "shortened mushrooms"
|
|
harvested_desc = "Some quickly regrowing mushrooms, formerly known to be quite large."
|
|
harvest_message_low = "You pick a mushroom, but fail to collect many shavings from its cap."
|
|
harvest_message_med = "You pick a mushroom, carefully collecting the shavings from its cap."
|
|
harvest_message_high = "You harvest and collect shavings from several mushroom caps."
|
|
harvest_message_true_thresholds = TRUE
|
|
harvest_verb = "pluck"
|
|
flora_flags = FLORA_HERBAL //not really accurate but what sound do hit mushrooms make anyway
|
|
var/number_of_variants = 4
|
|
|
|
/obj/structure/flora/ash/Initialize(mapload)
|
|
. = ..()
|
|
base_icon_state = "[base_icon_state][rand(1, number_of_variants)]"
|
|
icon_state = base_icon_state
|
|
|
|
/obj/structure/flora/ash/harvest(user, product_amount_multiplier)
|
|
if(!..())
|
|
return FALSE
|
|
icon_state = "[base_icon_state]p"
|
|
return TRUE
|
|
|
|
/obj/structure/flora/ash/regrow()
|
|
..()
|
|
icon_state = base_icon_state
|
|
|
|
/obj/structure/flora/ash/tall_shroom //exists only so that the spawning check doesn't allow these spawning near other things
|
|
regrowth_time_low = 4200
|
|
|
|
/obj/structure/flora/ash/leaf_shroom
|
|
name = "leafy mushrooms"
|
|
desc = "A number of mushrooms, each of which surrounds a greenish sporangium with a number of leaf-like structures."
|
|
icon_state = "s_mushroom1"
|
|
base_icon_state = "s_mushroom"
|
|
product_types = list(/obj/item/food/grown/ash_flora/mushroom_leaf = 1)
|
|
harvested_name = "leafless mushrooms"
|
|
harvested_desc = "A bunch of formerly-leafed mushrooms, with their sporangiums exposed. Scandalous?"
|
|
harvest_amount_high = 4
|
|
harvest_message_low = "You pluck a single, suitable leaf."
|
|
harvest_message_med = "You pluck a number of leaves, leaving a few unsuitable ones."
|
|
harvest_message_high = "You pluck quite a lot of suitable leaves."
|
|
harvest_time = 20
|
|
regrowth_time_low = 2400
|
|
regrowth_time_high = 6000
|
|
|
|
/obj/structure/flora/ash/cap_shroom
|
|
name = "tall mushrooms"
|
|
desc = "Several mushrooms, the larger of which have a ring of conks at the midpoint of their stems."
|
|
icon_state = "r_mushroom1"
|
|
base_icon_state = "r_mushroom"
|
|
product_types = list(/obj/item/food/grown/ash_flora/mushroom_cap = 1)
|
|
harvested_name = "small mushrooms"
|
|
harvested_desc = "Several small mushrooms near the stumps of what likely were larger mushrooms."
|
|
harvest_amount_high = 4
|
|
harvest_message_low = "You slice the cap off a mushroom."
|
|
harvest_message_med = "You slice off a few conks from the larger mushrooms."
|
|
harvest_message_high = "You slice off a number of caps and conks from these mushrooms."
|
|
harvest_time = 50
|
|
regrowth_time_low = 3000
|
|
regrowth_time_high = 5400
|
|
|
|
/obj/structure/flora/ash/stem_shroom
|
|
name = "numerous mushrooms"
|
|
desc = "A large number of mushrooms, some of which have long, fleshy stems. They're radiating light!"
|
|
icon_state = "t_mushroom1"
|
|
base_icon_state = "t_mushroom"
|
|
light_range = 1.5
|
|
light_power = 2.1
|
|
product_types = list(/obj/item/food/grown/ash_flora/mushroom_stem = 1)
|
|
harvested_name = "tiny mushrooms"
|
|
harvested_desc = "A few tiny mushrooms around larger stumps. You can already see them growing back."
|
|
harvest_amount_high = 4
|
|
harvest_message_low = "You pick and slice the cap off a mushroom, leaving the stem."
|
|
harvest_message_med = "You pick and decapitate several mushrooms for their stems."
|
|
harvest_message_high = "You acquire a number of stems from these mushrooms."
|
|
harvest_time = 40
|
|
regrowth_time_low = 3000
|
|
regrowth_time_high = 6000
|
|
|
|
/obj/structure/flora/ash/cacti
|
|
name = "fruiting cacti"
|
|
desc = "Several prickly cacti, brimming with ripe fruit and covered in a thin layer of ash."
|
|
icon_state = "cactus1"
|
|
base_icon_state = "cactus"
|
|
product_types = list(/obj/item/food/grown/ash_flora/cactus_fruit = 20, /obj/item/seeds/lavaland/cactus = 1)
|
|
harvested_name = "cacti"
|
|
harvested_desc = "A bunch of prickly cacti. You can see fruits slowly growing beneath the covering of ash."
|
|
harvest_amount_high = 2
|
|
harvest_message_low = "You pick a cactus fruit."
|
|
harvest_message_med = "You pick several cactus fruit." //shouldn't show up, because you can't get more than two
|
|
harvest_message_high = "You pick a pair of cactus fruit."
|
|
harvest_time = 10
|
|
regrowth_time_low = 4800
|
|
regrowth_time_high = 7200
|
|
can_uproot = FALSE //Don't want 50 in one tile to decimate whoever dare step on the mass of cacti
|
|
|
|
/obj/structure/flora/ash/cacti/Initialize(mapload)
|
|
. = ..()
|
|
AddComponent(/datum/component/caltrop, min_damage = 3, max_damage = 6, probability = 70)
|
|
|
|
/obj/structure/flora/ash/seraka
|
|
name = "seraka mushrooms"
|
|
desc = "A small cluster of seraka mushrooms. These must have come with the ashlizards."
|
|
icon_state = "seraka_mushroom1"
|
|
base_icon_state = "seraka_mushroom"
|
|
product_types = list(/obj/item/food/grown/ash_flora/seraka = 1)
|
|
harvested_name = "harvested seraka mushrooms"
|
|
harvested_desc = "A couple of small seraka mushrooms, with the larger ones clearly having been recently removed. They'll grow back... eventually."
|
|
harvest_amount_high = 6
|
|
harvest_message_low = "You pluck a few choice tasty mushrooms."
|
|
harvest_message_med = "You grab a good haul of mushrooms."
|
|
harvest_message_high = "You hit the mushroom motherlode and make off with a bunch of tasty mushrooms."
|
|
harvest_time = 25
|
|
regrowth_time_low = 3000
|
|
regrowth_time_high = 5400
|
|
number_of_variants = 2
|
|
harvest_message_true_thresholds = FALSE
|
|
|
|
/obj/structure/flora/ash/fireblossom
|
|
name = "fire blossom"
|
|
desc = "An odd flower that grows commonly near bodies of lava."
|
|
icon_state = "fireblossom1"
|
|
base_icon_state = "fireblossom"
|
|
light_range = LIGHT_FIRE_BLOSSOM
|
|
light_power = LIGHT_FIRE_BLOSSOM
|
|
light_color = COLOR_BIOLUMINESCENCE_YELLOW
|
|
product_types = list(/obj/item/food/grown/ash_flora/fireblossom = 1)
|
|
harvested_name = "fire blossom stems"
|
|
harvested_desc = "A few fire blossom stems, missing their flowers."
|
|
harvest_amount_high = 3
|
|
harvest_message_low = "You pluck a single, suitable flower."
|
|
harvest_message_med = "You pluck a number of flowers, leaving a few unsuitable ones."
|
|
harvest_message_high = "You pluck quite a lot of suitable flowers."
|
|
regrowth_time_low = 2500
|
|
regrowth_time_high = 4000
|
|
number_of_variants = 2
|
|
|
|
/obj/structure/flora/ash/fireblossom/after_harvest()
|
|
set_light_power(LIGHT_RANGE_FIRE_BLOSSOM_HARVESTED)
|
|
set_light_range(LIGHT_POWER_FIRE_BLOSSOM_HARVESTED)
|
|
update_light()
|
|
return ..()
|
|
|
|
/obj/structure/flora/ash/fireblossom/regrow()
|
|
set_light_power(initial(light_power))
|
|
set_light_range(initial(light_range))
|
|
update_light()
|
|
return ..()
|
|
|
|
///Snow flora to exist on icebox.
|
|
/obj/structure/flora/ash/chilly
|
|
name = "springy grassy fruit"
|
|
desc = "A number of bright, springy blue fruiting plants. They seem to be unconcerned with the hardy, cold environment."
|
|
icon_state = "chilly_pepper1"
|
|
base_icon_state = "chilly_pepper"
|
|
product_types = list(/obj/item/food/grown/icepepper = 1)
|
|
harvested_name = "springy grass"
|
|
harvested_desc = "A bunch of springy, bouncy fruiting grass, all picked. Or maybe they were never fruiting at all?"
|
|
harvest_amount_high = 3
|
|
harvest_message_low = "You pluck a single, curved fruit."
|
|
harvest_message_med = "You pluck a number of curved fruit."
|
|
harvest_message_high = "You pluck quite a lot of curved fruit."
|
|
harvest_time = 15
|
|
regrowth_time_low = 2400
|
|
regrowth_time_high = 5500
|
|
number_of_variants = 2
|
|
|
|
//SNACKS
|
|
|
|
/obj/item/food/grown/ash_flora
|
|
name = "mushroom shavings"
|
|
desc = "Some shavings from a tall mushroom. With enough, might serve as a bowl."
|
|
icon = 'icons/obj/lavaland/ash_flora.dmi'
|
|
icon_state = "mushroom_shavings"
|
|
w_class = WEIGHT_CLASS_TINY
|
|
resistance_flags = FLAMMABLE
|
|
max_integrity = 100
|
|
seed = /obj/item/seeds/lavaland/polypore
|
|
wine_power = 20
|
|
|
|
/obj/item/food/grown/ash_flora/Initialize(mapload)
|
|
. = ..()
|
|
pixel_x = base_pixel_x + rand(-4, 4)
|
|
pixel_y = base_pixel_y + rand(-4, 4)
|
|
|
|
/obj/item/food/grown/ash_flora/shavings //So we can't craft bowls from everything.
|
|
grind_results = list(/datum/reagent/toxin/mushroom_powder = 5)
|
|
|
|
/obj/item/food/grown/ash_flora/mushroom_leaf
|
|
name = "mushroom leaf"
|
|
desc = "A leaf, from a mushroom."
|
|
icon_state = "mushroom_leaf"
|
|
seed = /obj/item/seeds/lavaland/porcini
|
|
wine_power = 40
|
|
|
|
/obj/item/food/grown/ash_flora/mushroom_cap
|
|
name = "mushroom cap"
|
|
desc = "The cap of a large mushroom."
|
|
icon_state = "mushroom_cap"
|
|
seed = /obj/item/seeds/lavaland/inocybe
|
|
wine_power = 70
|
|
|
|
/obj/item/food/grown/ash_flora/mushroom_stem
|
|
name = "mushroom stem"
|
|
desc = "A long mushroom stem. It's slightly glowing."
|
|
icon_state = "mushroom_stem"
|
|
seed = /obj/item/seeds/lavaland/ember
|
|
wine_power = 60
|
|
|
|
/obj/item/food/grown/ash_flora/cactus_fruit
|
|
name = "cactus fruit"
|
|
desc = "A cactus fruit covered in a thick, reddish skin. And some ash."
|
|
icon_state = "cactus_fruit"
|
|
seed = /obj/item/seeds/lavaland/cactus
|
|
wine_power = 50
|
|
|
|
/obj/item/food/grown/ash_flora/seraka
|
|
name = "seraka cap"
|
|
desc = "Small, deeply flavourful mushrooms originally native to Tizira."
|
|
icon_state = "seraka_cap"
|
|
seed = /obj/item/seeds/lavaland/seraka
|
|
wine_power = 40
|
|
|
|
/obj/item/food/grown/ash_flora/fireblossom
|
|
name = "fire blossom"
|
|
desc = "A flower from a fire blossom."
|
|
icon_state = "fireblossom"
|
|
slot_flags = ITEM_SLOT_HEAD
|
|
seed = /obj/item/seeds/lavaland/fireblossom
|
|
wine_power = 40
|
|
|
|
//SEEDS
|
|
|
|
/obj/item/seeds/lavaland
|
|
name = "lavaland seeds"
|
|
desc = "You should never see this."
|
|
lifespan = 50
|
|
endurance = 25
|
|
maturation = 7
|
|
production = 4
|
|
yield = 4
|
|
potency = 15
|
|
growthstages = 3
|
|
rarity = 20
|
|
reagents_add = list(/datum/reagent/consumable/nutriment = 0.1)
|
|
species = "polypore" // silence unit test
|
|
genes = list(/datum/plant_gene/trait/fire_resistance)
|
|
graft_gene = /datum/plant_gene/trait/fire_resistance
|
|
|
|
/obj/item/seeds/lavaland/cactus
|
|
name = "pack of fruiting cactus seeds"
|
|
desc = "These seeds grow into fruiting cacti."
|
|
icon_state = "seed-cactus"
|
|
species = "cactus"
|
|
plantname = "Fruiting Cactus"
|
|
product = /obj/item/food/grown/ash_flora/cactus_fruit
|
|
mutatelist = list(/obj/item/seeds/star_cactus)
|
|
genes = list(/datum/plant_gene/trait/fire_resistance)
|
|
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
|
|
growthstages = 2
|
|
reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.04, /datum/reagent/consumable/vitfro = 0.08)
|
|
|
|
///Star Cactus seeds, mutation of lavaland cactus.
|
|
/obj/item/seeds/star_cactus
|
|
name = "pack of star cacti seeds"
|
|
desc = "These seeds grow into star cacti."
|
|
icon_state = "seed-starcactus"
|
|
species = "starcactus"
|
|
plantname = "Star Cactus Cluster"
|
|
product = /obj/item/food/grown/star_cactus
|
|
lifespan = 60
|
|
endurance = 30
|
|
maturation = 7
|
|
production = 6
|
|
yield = 3
|
|
growthstages = 4
|
|
genes = list(/datum/plant_gene/trait/sticky, /datum/plant_gene/trait/stinging)
|
|
graft_gene = /datum/plant_gene/trait/sticky
|
|
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
|
|
reagents_add = list(/datum/reagent/water = 0.08, /datum/reagent/consumable/nutriment = 0.05, /datum/reagent/medicine/c2/helbital = 0.05)
|
|
|
|
///Star Cactus Plants.
|
|
/obj/item/food/grown/star_cactus
|
|
seed = /obj/item/seeds/star_cactus
|
|
name = "star cacti"
|
|
desc = "A spikey, round cluster of prickly star cacti. And no, it's not called a star cactus because it's in space."
|
|
icon_state = "starcactus"
|
|
filling_color = "#1c801c"
|
|
foodtypes = VEGETABLES
|
|
distill_reagent = /datum/reagent/consumable/ethanol/tequila
|
|
|
|
/obj/item/seeds/lavaland/polypore
|
|
name = "pack of polypore mycelium"
|
|
desc = "This mycelium grows into bracket mushrooms, also known as polypores. Woody and firm, shaft miners often use them for makeshift crafts."
|
|
icon_state = "mycelium-polypore"
|
|
species = "polypore"
|
|
plantname = "Polypore Mushrooms"
|
|
product = /obj/item/food/grown/ash_flora/shavings
|
|
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/fire_resistance)
|
|
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
|
|
reagents_add = list(/datum/reagent/consumable/sugar = 0.06, /datum/reagent/consumable/ethanol = 0.04, /datum/reagent/stabilizing_agent = 0.06, /datum/reagent/consumable/mintextract = 0.02)
|
|
|
|
/obj/item/seeds/lavaland/porcini
|
|
name = "pack of porcini mycelium"
|
|
desc = "This mycelium grows into Boletus edulus, also known as porcini. Native to the late Earth, but discovered on Lavaland. Has culinary, medicinal and relaxant effects."
|
|
icon_state = "mycelium-porcini"
|
|
species = "porcini"
|
|
plantname = "Porcini Mushrooms"
|
|
product = /obj/item/food/grown/ash_flora/mushroom_leaf
|
|
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/fire_resistance)
|
|
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
|
|
reagents_add = list(/datum/reagent/consumable/nutriment = 0.06, /datum/reagent/consumable/vitfro = 0.04, /datum/reagent/drug/nicotine = 0.04)
|
|
|
|
/obj/item/seeds/lavaland/inocybe
|
|
name = "pack of inocybe mycelium"
|
|
desc = "This mycelium grows into an inocybe mushroom, a species of Lavaland origin with hallucinatory and toxic effects."
|
|
icon_state = "mycelium-inocybe"
|
|
species = "inocybe"
|
|
plantname = "Inocybe Mushrooms"
|
|
product = /obj/item/food/grown/ash_flora/mushroom_cap
|
|
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/fire_resistance)
|
|
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
|
|
reagents_add = list(/datum/reagent/toxin/mindbreaker = 0.04, /datum/reagent/consumable/entpoly = 0.08, /datum/reagent/drug/mushroomhallucinogen = 0.04)
|
|
|
|
/obj/item/seeds/lavaland/ember
|
|
name = "pack of embershroom mycelium"
|
|
desc = "This mycelium grows into embershrooms, a species of bioluminescent mushrooms native to Lavaland."
|
|
icon_state = "mycelium-ember"
|
|
species = "ember"
|
|
plantname = "Embershroom Mushrooms"
|
|
product = /obj/item/food/grown/ash_flora/mushroom_stem
|
|
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/glow, /datum/plant_gene/trait/fire_resistance)
|
|
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
|
|
reagents_add = list(/datum/reagent/consumable/tinlux = 0.04, /datum/reagent/consumable/nutriment/vitamin = 0.02, /datum/reagent/drug/space_drugs = 0.02)
|
|
|
|
/obj/item/seeds/lavaland/seraka
|
|
name = "pack of seraka mycelium"
|
|
desc = "This mycelium grows into seraka mushrooms, a species of savoury mushrooms originally native to Tizira used in food and traditional medicine."
|
|
icon_state = "mycelium-seraka"
|
|
species = "seraka"
|
|
plantname = "Seraka Mushrooms"
|
|
product = /obj/item/food/grown/ash_flora/seraka
|
|
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/fire_resistance)
|
|
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
|
|
reagents_add = list(/datum/reagent/toxin/mushroom_powder = 0.1, /datum/reagent/medicine/coagulant/seraka_extract = 0.02)
|
|
|
|
/obj/item/seeds/lavaland/fireblossom
|
|
name = "pack of fire blossom seeds"
|
|
desc = "These seeds grow into fire blossoms."
|
|
plantname = "Fire Blossom"
|
|
icon_state = "seed-fireblossom"
|
|
species = "fireblossom"
|
|
growthstages = 3
|
|
product = /obj/item/food/grown/ash_flora/fireblossom
|
|
genes = list(/datum/plant_gene/trait/fire_resistance, /datum/plant_gene/trait/glow/yellow)
|
|
growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi'
|
|
reagents_add = list(/datum/reagent/consumable/tinlux = 0.04, /datum/reagent/consumable/nutriment = 0.03, /datum/reagent/carbon = 0.05)
|
|
|
|
//CRAFTING
|
|
|
|
/datum/crafting_recipe/mushroom_bowl
|
|
name = "Mushroom Bowl"
|
|
result = /obj/item/reagent_containers/cup/bowl/mushroom_bowl
|
|
reqs = list(/obj/item/food/grown/ash_flora/shavings = 5)
|
|
time = 30
|
|
category = CAT_CONTAINERS
|
|
|
|
/obj/item/reagent_containers/cup/bowl/mushroom_bowl
|
|
name = "mushroom bowl"
|
|
desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point."
|
|
icon = 'icons/obj/lavaland/ash_flora.dmi'
|
|
icon_state = "mushroom_bowl"
|
|
fill_icon_state = "fullbowl"
|
|
fill_icon = 'icons/obj/lavaland/ash_flora.dmi'
|
|
|
|
/obj/item/reagent_containers/cup/bowl/mushroom_bowl/update_icon_state()
|
|
if(!reagents.total_volume)
|
|
icon_state = "mushroom_bowl"
|
|
return ..()
|