/obj/structure/flora/ash gender = PLURAL layer = PROJECTILE_HIT_THRESHHOLD_LAYER //sporangiums up don't shoot icon = 'icons/obj/lavaland/ash_flora.dmi' icon_state = "l_mushroom" name = "large mushrooms" desc = "A number of large mushrooms, covered in a faint layer of ash and what can only be spores." var/harvested_name = "shortened mushrooms" var/harvested_desc = "Some quickly regrowing mushrooms, formerly known to be quite large." var/needs_sharp_harvest = TRUE var/harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings var/harvest_amount_low = 1 var/harvest_amount_high = 3 var/harvest_time = 60 var/harvest_message_low = "You pick a mushroom, but fail to collect many shavings from its cap." var/harvest_message_med = "You pick a mushroom, carefully collecting the shavings from its cap." var/harvest_message_high = "You harvest and collect shavings from several mushroom caps." var/harvested = FALSE var/base_icon var/regrowth_time_low = 8 MINUTES var/regrowth_time_high = 16 MINUTES /obj/structure/flora/ash/Initialize() . = ..() base_icon = "[icon_state][rand(1, 4)]" icon_state = base_icon /obj/structure/flora/ash/proc/harvest(user) if(harvested) return 0 var/rand_harvested = rand(harvest_amount_low, harvest_amount_high) if(rand_harvested) if(user) var/msg = harvest_message_med if(rand_harvested == harvest_amount_low) msg = harvest_message_low else if(rand_harvested == harvest_amount_high) msg = harvest_message_high to_chat(user, "[msg]") for(var/i in 1 to rand_harvested) new harvest(get_turf(src)) icon_state = "[base_icon]p" name = harvested_name desc = harvested_desc harvested = TRUE addtimer(CALLBACK(src, .proc/regrow), rand(regrowth_time_low, regrowth_time_high)) return 1 /obj/structure/flora/ash/proc/regrow() icon_state = base_icon name = initial(name) desc = initial(desc) harvested = FALSE /obj/structure/flora/ash/attackby(obj/item/W, mob/user, params) if(!harvested && needs_sharp_harvest && W.sharpness) user.visible_message("[user] starts to harvest from [src] with [W].","You begin to harvest from [src] with [W].") if(do_after(user, harvest_time, target = src)) harvest(user) else return ..() /obj/structure/flora/ash/attack_hand(mob/user) . = ..() if(.) return if(!harvested && !needs_sharp_harvest) user.visible_message("[user] starts to harvest from [src].","You begin to harvest from [src].") if(do_after(user, harvest_time, target = src)) harvest(user) /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 icon_state = "s_mushroom" name = "leafy mushrooms" desc = "A number of mushrooms, each of which surrounds a greenish sporangium with a number of leaf-like structures." harvested_name = "leafless mushrooms" harvested_desc = "A bunch of formerly-leafed mushrooms, with their sporangiums exposed. Scandalous?" harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf needs_sharp_harvest = FALSE harvest_amount_high = 4 harvest_time = 20 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." regrowth_time_low = 2400 regrowth_time_high = 6000 /obj/structure/flora/ash/cap_shroom icon_state = "r_mushroom" name = "tall mushrooms" desc = "Several mushrooms, the larger of which have a ring of conks at the midpoint of their stems." harvested_name = "small mushrooms" harvested_desc = "Several small mushrooms near the stumps of what likely were larger mushrooms." harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap harvest_amount_high = 4 harvest_time = 50 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." regrowth_time_low = 3000 regrowth_time_high = 5400 /obj/structure/flora/ash/stem_shroom icon_state = "t_mushroom" name = "numerous mushrooms" desc = "A large number of mushrooms, some of which have long, fleshy stems. They're radiating light!" light_range = 1 harvested_name = "tiny mushrooms" harvested_desc = "A few tiny mushrooms around larger stumps. You can already see them growing back." harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem harvest_amount_high = 4 harvest_time = 40 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." regrowth_time_low = 3000 regrowth_time_high = 6000 /obj/structure/flora/ash/cacti icon_state = "cactus" name = "fruiting cacti" desc = "Several prickly cacti, brimming with ripe fruit and covered in a thin layer of ash." harvested_name = "cacti" harvested_desc = "A bunch of prickly cacti. You can see fruits slowly growing beneath the covering of ash." harvest = /obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit needs_sharp_harvest = FALSE harvest_amount_high = 2 harvest_time = 10 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." regrowth_time_low = 4800 regrowth_time_high = 7200 /obj/structure/flora/ash/cacti/Initialize(mapload) . = ..() // min dmg 3, max dmg 6, prob(70) AddComponent(/datum/component/caltrop, 3, 6, 70) /obj/item/reagent_containers/food/snacks/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" list_reagents = list("sugar" = 3, "ethanol" = 2, "stabilizing_agent" = 3, "minttoxin" = 2) w_class = WEIGHT_CLASS_TINY resistance_flags = FLAMMABLE max_integrity = 100 seed = /obj/item/seeds/lavaland/polypore /obj/item/reagent_containers/food/snacks/grown/ash_flora/Initialize() . = ..() pixel_x = rand(-4, 4) pixel_y = rand(-4, 4) /obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings //for actual crafting /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf name = "mushroom leaf" desc = "A leaf, from a mushroom." list_reagents = list("nutriment" = 3, "vitfro" = 2, "nicotine" = 2) icon_state = "mushroom_leaf" seed = /obj/item/seeds/lavaland/porcini /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_cap name = "mushroom cap" desc = "The cap of a large mushroom." list_reagents = list("mindbreaker" = 2, "entpoly" = 4, "mushroomhallucinogen" = 2) icon_state = "mushroom_cap" seed = /obj/item/seeds/lavaland/inocybe /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem name = "mushroom stem" desc = "A long mushroom stem. It's slightly glowing." list_reagents = list("tinlux" = 2, "vitamin" = 1, "space_drugs" = 1) icon_state = "mushroom_stem" light_range = 1 seed = /obj/item/seeds/lavaland/ember /obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit name = "cactus fruit" list_reagents = list("vitamin" = 2, "nutriment" = 2, "vitfro" = 4) desc = "A cactus fruit covered in a thick, reddish skin. And some ash." icon_state = "cactus_fruit" seed = /obj/item/seeds/lavaland/cactus /obj/item/reagent_containers/glass/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" /obj/item/reagent_containers/glass/bowl/mushroom_bowl/update_icon() cut_overlays() if(reagents && reagents.total_volume) var/mutable_appearance/filling = mutable_appearance('icons/obj/lavaland/ash_flora.dmi', "fullbowl") filling.color = mix_color_from_reagents(reagents.reagent_list) add_overlay(filling) else icon_state = "mushroom_bowl" /obj/item/reagent_containers/glass/bowl/mushroom_bowl/attackby(obj/item/I,mob/user, params) if(istype(I, /obj/item/reagent_containers/food/snacks)) var/obj/item/reagent_containers/food/snacks/S = I if(I.w_class > WEIGHT_CLASS_SMALL) to_chat(user, "The ingredient is too big for [src]!") else if(contents.len >= 20) to_chat(user, "You can't add more ingredients to [src]!") else if(reagents.has_reagent("water", 10)) //are we starting a soup or a salad? var/obj/item/reagent_containers/food/snacks/customizable/A = new/obj/item/reagent_containers/food/snacks/customizable/soup/ashsoup(get_turf(src)) A.initialize_custom_food(src, S, user) else var/obj/item/reagent_containers/food/snacks/customizable/A = new/obj/item/reagent_containers/food/snacks/customizable/salad/ashsalad(get_turf(src)) A.initialize_custom_food(src, S, user) else . = ..() //what you can craft with these things /datum/crafting_recipe/mushroom_bowl name = "Mushroom Bowl" result = /obj/item/reagent_containers/glass/bowl/mushroom_bowl reqs = list(/obj/item/reagent_containers/food/snacks/grown/ash_flora/shavings = 5) time = 30 category = CAT_PRIMAL /obj/item/reagent_containers/food/snacks/customizable/salad/ashsalad desc = "Very ashy." trash = /obj/item/reagent_containers/glass/bowl/mushroom_bowl icon = 'icons/obj/lavaland/ash_flora.dmi' icon_state = "mushroom_bowl" /obj/item/reagent_containers/food/snacks/customizable/soup/ashsoup desc = "A bowl with ash and... stuff in it." trash = /obj/item/reagent_containers/glass/bowl/mushroom_bowl icon = 'icons/obj/lavaland/ash_flora.dmi' icon_state = "mushroom_soup"