diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/hydroponics/grown.dm similarity index 96% rename from code/modules/reagents/reagent_containers/food/snacks/grown.dm rename to code/modules/hydroponics/grown.dm index 03e08c4182..9a9e351186 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -1,648 +1,648 @@ -//Grown foods. -/obj/item/weapon/reagent_containers/food/snacks/grown - - name = "fruit" - desc = "It's a fruit." - icon = 'icons/obj/harvest.dmi' - - var/plantname - var/datum/seed/seed - var/potency = -1 - -/obj/item/weapon/reagent_containers/food/snacks/grown/New(newloc,planttype) - - ..() - - src.pixel_x = rand(-5.0, 5) - src.pixel_y = rand(-5.0, 5) - - // Fill the object up with the appropriate reagents. - if(planttype) - plantname = planttype - seed = seed_types[plantname] - if(!seed || !seed.chems) - return - - potency = seed.potency - - for(var/rid in seed.chems) - var/list/reagent_data = seed.chems[rid] - var/rtotal = reagent_data[1] - if(reagent_data.len > 1 && potency > 0) - rtotal += round(potency/reagent_data[2]) - reagents.add_reagent(rid,max(1,rtotal)) - - if(reagents.total_volume > 0) - bitesize = 1+round(reagents.total_volume / 2, 1) - -/obj/item/weapon/reagent_containers/food/snacks/grown/Crossed(var/mob/living/M) - if(seed && seed.juicy == 2) - if(istype(M)) - - if(M.buckled) - return - - if(istype(M,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = M - if(H.shoes && H.shoes.flags & NOSLIP) - return - - M.stop_pulling() - M << "You slipped on the [name]!" - playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3) - M.Stun(8) - M.Weaken(5) - seed.thrown_at(src,M) - sleep(-1) - if(src) del(src) - return - -/obj/item/weapon/reagent_containers/food/snacks/grown/throw_impact(atom/hit_atom) - ..() - if(seed) seed.thrown_at(src,hit_atom) - -/obj/item/weapon/reagent_containers/food/snacks/grown/attackby(obj/item/weapon/W as obj, mob/user as mob) - ..() - if(seed && seed.produces_power && istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = W - if(C.use(5)) - //TODO: generalize this. - user << "You add some cable to the [src.name] and slide it inside the battery casing." - var/obj/item/weapon/cell/potato/pocell = new /obj/item/weapon/cell/potato(get_turf(user)) - if(src.loc == user && !(user.l_hand && user.r_hand) && istype(user,/mob/living/carbon/human)) - user.put_in_hands(pocell) - pocell.maxcharge = src.potency * 10 - pocell.charge = pocell.maxcharge - del(src) - return - -/obj/item/weapon/reagent_containers/food/snacks/grown/attack(var/mob/living/carbon/M, var/mob/user, var/def_zone) - if(user == M) - return ..() - - if(user.a_intent == "hurt") - - // This is being copypasted here because reagent_containers (WHY DOES FOOD DESCEND FROM THAT) overrides it completely. - // TODO: refactor all food paths to be less horrible and difficult to work with in this respect. ~Z - if(!istype(M) || (can_operate(M) && do_surgery(M,user,src))) return 0 - - user.lastattacked = M - M.lastattacker = user - user.attack_log += "\[[time_stamp()]\] Attacked [M.name] ([M.ckey]) with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" - M.attack_log += "\[[time_stamp()]\] Attacked by [user.name] ([user.ckey]) with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" - msg_admin_attack("[key_name(user)] attacked [key_name(M)] with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" ) - - if(istype(M, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = M - var/hit = H.attacked_by(src, user, def_zone) - if(hit && hitsound) - playsound(loc, hitsound, 50, 1, -1) - return hit - else - if(attack_verb.len) - user.visible_message("[M] has been [pick(attack_verb)] with [src] by [user]!") - else - user.visible_message("[M] has been attacked with [src] by [user]!") - - if (hitsound) - playsound(loc, hitsound, 50, 1, -1) - switch(damtype) - if("brute") - M.take_organ_damage(force) - if(prob(33)) - var/turf/simulated/location = get_turf(M) - if(istype(location)) location.add_blood_floor(M) - if("fire") - if (!(COLD_RESISTANCE in M.mutations)) - M.take_organ_damage(0, force) - M.updatehealth() - - if(seed && seed.stings) - if(!reagents || reagents.total_volume <= 0) - return - reagents.remove_any(rand(1,3)) - seed.thrown_at(src,M) - sleep(-1) - if(!src) - return - if(prob(35)) - if(user) - user << "\The [src] has fallen to bits." - user.drop_from_inventory(src) - del(src) - - add_fingerprint(user) - return 1 - - else - ..() - -/obj/item/weapon/reagent_containers/food/snacks/grown/attack_self(mob/user as mob) - - if(!seed) - return - - if(istype(user.loc,/turf/space)) - return - - if(user.a_intent == "hurt") - user.visible_message("\The [user] squashes \the [src]!") - seed.thrown_at(src,user) - sleep(-1) - if(src) del(src) - return - - if(seed.spread == 0) - return - - // TODO: Generalize. - var/obj/effect/glowshroom/planted = new /obj/effect/glowshroom(user.loc) - planted.delay = 50 - planted.endurance = 100 - planted.potency = potency - - user << "You plant the [src.name]." - del(src) - -/obj/item/weapon/reagent_containers/food/snacks/grown/pickup(mob/user) - ..() - if(!seed) - return - if(seed.biolum) - user.SetLuminosity(user.luminosity + seed.biolum) - SetLuminosity(0) - if(seed.stings) - var/mob/living/carbon/human/H = user - if(istype(H) && H.gloves) - return - if(!reagents || reagents.total_volume <= 0) - return - reagents.remove_any(rand(1,3)) - seed.do_thorns(H,src) - seed.do_sting(H,src,pick("r_hand","l_hand")) - -/obj/item/weapon/reagent_containers/food/snacks/grown/dropped(mob/user) - if(!..() || !seed) - return - if(seed.biolum) - user.SetLuminosity(user.luminosity - seed.biolum) - SetLuminosity(seed.biolum) - -// Food object defines follow. -/obj/item/weapon/reagent_containers/food/snacks/grown/corn - name = "ear of corn" - desc = "Needs some butter!" - plantname = "corn" - icon_state = "corn" - potency = 40 - filling_color = "#FFEE00" - trash = /obj/item/weapon/corncob - -/obj/item/weapon/reagent_containers/food/snacks/grown/cherries - name = "cherries" - desc = "Great for toppings!" - icon_state = "cherry" - filling_color = "#FF0000" - gender = PLURAL - plantname = "cherry" - -/obj/item/weapon/reagent_containers/food/snacks/grown/poppy - name = "poppy" - desc = "Long-used as a symbol of rest, peace, and death." - icon_state = "poppy" - potency = 30 - filling_color = "#CC6464" - plantname = "poppies" - -/obj/item/weapon/reagent_containers/food/snacks/grown/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" - potency = 1 - filling_color = "#D4B2C9" - plantname = "harebells" - -/obj/item/weapon/reagent_containers/food/snacks/grown/potato - name = "potato" - desc = "Boil 'em! Mash 'em! Stick 'em in a stew!" - icon_state = "potato" - potency = 25 - filling_color = "#E6E8DA" - plantname = "potato" - -/obj/item/weapon/reagent_containers/food/snacks/grown/grapes - name = "bunch of grapes" - desc = "Nutritious!" - icon_state = "grapes" - filling_color = "#A332AD" - plantname = "grapes" - -/obj/item/weapon/reagent_containers/food/snacks/grown/greengrapes - name = "bunch of green grapes" - desc = "Nutritious!" - icon_state = "greengrapes" - potency = 25 - filling_color = "#A6FFA3" - plantname = "greengrapes" - -/obj/item/weapon/reagent_containers/food/snacks/grown/peanut - name = "peanut" - desc = "Nuts!" - icon_state = "peanut" - filling_color = "857e27" - potency = 25 - plantname = "peanut" - -/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage - name = "cabbage" - desc = "Ewwwwwwwwww. Cabbage." - icon_state = "cabbage" - potency = 25 - filling_color = "#A2B5A1" - plantname = "cabbage" - -/obj/item/weapon/reagent_containers/food/snacks/grown/berries - name = "bunch of berries" - desc = "Nutritious!" - icon_state = "berrypile" - filling_color = "#C2C9FF" - plantname = "berries" - -/obj/item/weapon/reagent_containers/food/snacks/grown/plastellium - name = "clump of plastellium" - desc = "Hmm, needs some processing" - icon_state = "plastellium" - filling_color = "#C4C4C4" - plantname = "plastic" - -/obj/item/weapon/reagent_containers/food/snacks/grown/glowberries - name = "bunch of glow-berries" - desc = "Nutritious!" - filling_color = "#D3FF9E" - icon_state = "glowberrypile" - plantname = "glowberries" - -/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod - name = "cocoa pod" - desc = "Can be ground into cocoa powder." - icon_state = "cocoapod" - potency = 50 - filling_color = "#9C8E54" - plantname = "cocoa" - -/obj/item/weapon/reagent_containers/food/snacks/grown/sugarcane - name = "sugarcane" - desc = "Sickly sweet." - icon_state = "sugarcane" - potency = 50 - filling_color = "#C0C9AD" - plantname = "sugarcane" - -/obj/item/weapon/reagent_containers/food/snacks/grown/poisonberries - name = "bunch of poison-berries" - desc = "Taste so good, you could die!" - icon_state = "poisonberrypile" - gender = PLURAL - potency = 15 - filling_color = "#B422C7" - plantname = "poisonberries" - -/obj/item/weapon/reagent_containers/food/snacks/grown/deathberries - name = "bunch of death-berries" - desc = "Taste so good, you could die!" - icon_state = "deathberrypile" - gender = PLURAL - potency = 50 - filling_color = "#4E0957" - plantname = "deathberries" - -/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris - name = "ambrosia vulgaris branch" - desc = "This is a plant containing various healing chemicals." - icon_state = "ambrosiavulgaris" - potency = 10 - filling_color = "#125709" - plantname = "ambrosia" - -/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus - name = "ambrosia deus branch" - desc = "Eating this makes you feel immortal!" - icon_state = "ambrosiadeus" - potency = 10 - filling_color = "#229E11" - plantname = "ambrosiadeus" - -/obj/item/weapon/reagent_containers/food/snacks/grown/apple - name = "apple" - desc = "It's a little piece of Eden." - icon_state = "apple" - potency = 15 - filling_color = "#DFE88B" - plantname = "apple" - -/obj/item/weapon/reagent_containers/food/snacks/grown/apple/poisoned - name = "apple" - desc = "It's a little piece of Eden." - icon_state = "apple" - potency = 15 - filling_color = "#B3BD5E" - plantname = "poisonapple" - -/obj/item/weapon/reagent_containers/food/snacks/grown/goldapple - name = "golden apple" - desc = "Emblazoned upon the apple is the word 'Kallisti'." - icon_state = "goldapple" - potency = 15 - filling_color = "#F5CB42" - plantname = "goldapple" - -/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon - name = "watermelon" - desc = "It's full of watery goodness." - icon_state = "watermelon" - potency = 10 - filling_color = "#FA2863" - slice_path = /obj/item/weapon/reagent_containers/food/snacks/watermelonslice - slices_num = 5 - plantname = "watermelon" - -/obj/item/weapon/reagent_containers/food/snacks/grown/lime - name = "lime" - desc = "It's so sour, your face will twist." - icon_state = "lime" - potency = 20 - filling_color = "#28FA59" - plantname = "lime" - -/obj/item/weapon/reagent_containers/food/snacks/grown/lemon - name = "lemon" - desc = "When life gives you lemons, be grateful they aren't limes." - icon_state = "lemon" - potency = 20 - filling_color = "#FAF328" - plantname = "lemon" - -/obj/item/weapon/reagent_containers/food/snacks/grown/orange - name = "orange" - desc = "It's a tangy fruit." - icon_state = "orange" - potency = 20 - filling_color = "#FAAD28" - plantname = "orange" - -/obj/item/weapon/reagent_containers/food/snacks/grown/whitebeet - name = "white-beet" - desc = "You can't beat white-beet." - icon_state = "whitebeet" - potency = 15 - filling_color = "#FFFCCC" - plantname = "whitebeet" - -/obj/item/weapon/reagent_containers/food/snacks/grown/banana - name = "banana" - desc = "It's an excellent prop for a comedy." - icon = 'icons/obj/items.dmi' - icon_state = "banana" - item_state = "banana" - filling_color = "#FCF695" - trash = /obj/item/weapon/bananapeel - plantname = "banana" - -/obj/item/weapon/reagent_containers/food/snacks/grown/chili - name = "chili" - desc = "It's spicy! Wait... IT'S BURNING ME!!" - icon_state = "chilipepper" - filling_color = "#FF0000" - plantname = "chili" - -/obj/item/weapon/reagent_containers/food/snacks/grown/eggplant - name = "eggplant" - desc = "Maybe there's a chicken inside?" - icon_state = "eggplant" - filling_color = "#550F5C" - plantname = "eggplant" - -/obj/item/weapon/reagent_containers/food/snacks/grown/soybeans - name = "soybeans" - desc = "It's pretty bland, but oh the possibilities..." - gender = PLURAL - filling_color = "#E6E8B7" - icon_state = "soybeans" - plantname = "soybean" - -/obj/item/weapon/reagent_containers/food/snacks/grown/tomato - name = "tomato" - desc = "I say to-mah-to, you say tom-mae-to." - icon_state = "tomato" - filling_color = "#FF0000" - potency = 10 - plantname = "tomato" - -/obj/item/weapon/reagent_containers/food/snacks/grown/bloodtomato - name = "blood-tomato" - desc = "So juicy." - icon_state = "bloodtomato" - potency = 10 - filling_color = "#FF0000" - plantname = "bloodtomato" - -/obj/item/weapon/reagent_containers/food/snacks/grown/bluetomato - name = "blue-tomato" - desc = "I say blue-mah-to, you say blue-mae-to." - icon_state = "bluetomato" - potency = 10 - filling_color = "#586CFC" - plantname = "bluetomato" - -/obj/item/weapon/reagent_containers/food/snacks/grown/wheat - name = "wheat" - desc = "Sigh... wheat... a-grain?" - gender = PLURAL - icon_state = "wheat" - filling_color = "#F7E186" - plantname = "wheat" - -/obj/item/weapon/reagent_containers/food/snacks/grown/ricestalk - name = "rice stalk" - desc = "Rice to see you." - gender = PLURAL - icon_state = "rice" - filling_color = "#FFF8DB" - plantname = "rice" - -/obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod - name = "kudzu pod" - desc = "Pueraria Virallis: An invasive species with vines that rapidly creep and wrap around whatever they contact." - icon_state = "kudzupod" - filling_color = "#59691B" - plantname = "kudzu" - -/obj/item/weapon/reagent_containers/food/snacks/grown/icepepper - name = "ice-pepper" - desc = "It's a mutant strain of chili" - icon_state = "icepepper" - potency = 20 - filling_color = "#66CEED" - plantname = "icechili" - -/obj/item/weapon/reagent_containers/food/snacks/grown/carrot - name = "carrot" - desc = "It's good for the eyes!" - icon_state = "carrot" - potency = 10 - filling_color = "#FFC400" - plantname = "carrot" - -/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/reishi - name = "reishi" - desc = "Ganoderma lucidum: A special fungus believed to help relieve stress." - icon_state = "reishi" - potency = 10 - filling_color = "#FF4800" - plantname = "reishi" - -/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita - name = "fly amanita" - desc = "Amanita Muscaria: Learn poisonous mushrooms by heart. Only pick mushrooms you know." - icon_state = "amanita" - potency = 10 - filling_color = "#FF0000" - plantname = "amanita" - -/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/angel - name = "destroying angel" - desc = "Amanita Virosa: Deadly poisonous basidiomycete fungus filled with alpha amatoxins." - icon_state = "angel" - potency = 35 - filling_color = "#FFDEDE" - plantname = "destroyingangel" - -/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap - name = "liberty-cap" - desc = "Psilocybe Semilanceata: Liberate yourself!" - icon_state = "libertycap" - potency = 15 - filling_color = "#F714BE" - plantname = "libertycap" - -/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet - name = "plump-helmet" - desc = "Plumus Hellmus: Plump, soft and s-so inviting~" - icon_state = "plumphelmet" - filling_color = "#F714BE" - plantname = "plumphelmet" - -/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom - name = "walking mushroom" - desc = "Plumus Locomotus: The beginning of the great walk." - icon_state = "walkingmushroom" - filling_color = "#FFBFEF" - potency = 30 - plantname = "walkingmushroom" - -/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle - name = "chanterelle cluster" - desc = "Cantharellus Cibarius: These jolly yellow little shrooms sure look tasty!" - icon_state = "chanterelle" - filling_color = "#FFE991" - plantname = "mushrooms" - -/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom - name = "glowshroom cluster" - desc = "Mycena Bregprox: This species of mushroom glows in the dark. Or does it?" - icon_state = "glowshroom" - filling_color = "#DAFF91" - potency = 30 - plantname = "glowshroom" - -/obj/item/weapon/reagent_containers/food/snacks/grown/bluespacetomato - name = "blue-space tomato" - desc = "So lubricated, you might slip through space-time." - icon_state = "bluespacetomato" - potency = 20 - origin_tech = "bluespace=3" - filling_color = "#91F8FF" - plantname = "bluespacetomato" - -// Super special snowflake grown items below. -/obj/item/weapon/reagent_containers/food/snacks/grown/shand - name = "S'rendarr's Hand leaf" - desc = "A leaf sample from a lowland thicket shrub. Smells strongly like wax." - icon_state = "shand" - filling_color = "#70C470" - plantname = "shand" - -/obj/item/weapon/reagent_containers/food/snacks/grown/mtear - name = "sprig of Messa's Tear" - desc = "A mountain climate herb with a soft, cold blue flower, known to contain an abundance of healing chemicals." - icon_state = "mtear" - filling_color = "#70C470" - plantname = "mtear" - -/obj/item/weapon/reagent_containers/food/snacks/grown/mtear/attack_self(mob/user as mob) - if(istype(user.loc,/turf/space)) - return - var/obj/item/stack/medical/ointment/tajaran/poultice = new /obj/item/stack/medical/ointment/tajaran(user.loc) - - poultice.heal_burn = potency - del(src) - - user << "You mash the petals into a poultice." - -/obj/item/weapon/reagent_containers/food/snacks/grown/shand/attack_self(mob/user as mob) - if(istype(user.loc,/turf/space)) - return - var/obj/item/stack/medical/bruise_pack/tajaran/poultice = new /obj/item/stack/medical/bruise_pack/tajaran(user.loc) - - poultice.heal_brute = potency - del(src) - - user << "You mash the leaves into a poultice." - -/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin - name = "pumpkin" - desc = "It's large and scary." - icon_state = "pumpkin" - potency = 10 - filling_color = "#FAB728" - plantname = "pumpkin" - -/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin/attackby(obj/item/weapon/W as obj, mob/user as mob) - ..() - if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || istype(W, /obj/item/weapon/twohanded/fireaxe) || istype(W, /obj/item/weapon/kitchen/utensil/knife) || istype(W, /obj/item/weapon/kitchenknife) || istype(W, /obj/item/weapon/melee/energy)) - user.show_message("You carve a face into [src]!", 1) - new /obj/item/clothing/head/pumpkinhead (user.loc) - del(src) - return - -/obj/item/weapon/reagent_containers/food/snacks/grown/sunflower // FLOWER POWER! - plantname = "sunflowers" - name = "sunflower" - desc = "A beautiful yellow flower." - icon_state = "sunflower" - damtype = "fire" - force = 0 - throw_speed = 1 - throw_range = 3 - -/obj/item/weapon/reagent_containers/food/snacks/grown/nettle - plantname = "nettle" - desc = "It's probably not wise to touch it with bare hands..." - icon = 'icons/obj/weapons.dmi' - name = "nettle" - icon_state = "nettle" - damtype = "fire" - force = 15 - w_class = 2.0 - throw_speed = 1 - throw_range = 3 - origin_tech = "combat=1" - attack_verb = list("stung") - hitsound = "" - -/obj/item/weapon/reagent_containers/food/snacks/grown/nettle/death - plantname = "deathnettle" - desc = "A cruel and toxic-looking plant." - name = "deathnettle" - icon_state = "deathnettle" +//Grown foods. +/obj/item/weapon/reagent_containers/food/snacks/grown + + name = "fruit" + desc = "It's a fruit." + icon = 'icons/obj/harvest.dmi' + + var/plantname + var/datum/seed/seed + var/potency = -1 + +/obj/item/weapon/reagent_containers/food/snacks/grown/New(newloc,planttype) + + ..() + + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) + + // Fill the object up with the appropriate reagents. + if(planttype) + plantname = planttype + seed = seed_types[plantname] + if(!seed || !seed.chems) + return + + potency = seed.potency + + for(var/rid in seed.chems) + var/list/reagent_data = seed.chems[rid] + var/rtotal = reagent_data[1] + if(reagent_data.len > 1 && potency > 0) + rtotal += round(potency/reagent_data[2]) + reagents.add_reagent(rid,max(1,rtotal)) + + if(reagents.total_volume > 0) + bitesize = 1+round(reagents.total_volume / 2, 1) + +/obj/item/weapon/reagent_containers/food/snacks/grown/Crossed(var/mob/living/M) + if(seed && seed.juicy == 2) + if(istype(M)) + + if(M.buckled) + return + + if(istype(M,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + if(H.shoes && H.shoes.flags & NOSLIP) + return + + M.stop_pulling() + M << "You slipped on the [name]!" + playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3) + M.Stun(8) + M.Weaken(5) + seed.thrown_at(src,M) + sleep(-1) + if(src) del(src) + return + +/obj/item/weapon/reagent_containers/food/snacks/grown/throw_impact(atom/hit_atom) + ..() + if(seed) seed.thrown_at(src,hit_atom) + +/obj/item/weapon/reagent_containers/food/snacks/grown/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if(seed && seed.produces_power && istype(W, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = W + if(C.use(5)) + //TODO: generalize this. + user << "You add some cable to the [src.name] and slide it inside the battery casing." + var/obj/item/weapon/cell/potato/pocell = new /obj/item/weapon/cell/potato(get_turf(user)) + if(src.loc == user && !(user.l_hand && user.r_hand) && istype(user,/mob/living/carbon/human)) + user.put_in_hands(pocell) + pocell.maxcharge = src.potency * 10 + pocell.charge = pocell.maxcharge + del(src) + return + +/obj/item/weapon/reagent_containers/food/snacks/grown/attack(var/mob/living/carbon/M, var/mob/user, var/def_zone) + if(user == M) + return ..() + + if(user.a_intent == "hurt") + + // This is being copypasted here because reagent_containers (WHY DOES FOOD DESCEND FROM THAT) overrides it completely. + // TODO: refactor all food paths to be less horrible and difficult to work with in this respect. ~Z + if(!istype(M) || (can_operate(M) && do_surgery(M,user,src))) return 0 + + user.lastattacked = M + M.lastattacker = user + user.attack_log += "\[[time_stamp()]\] Attacked [M.name] ([M.ckey]) with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" + M.attack_log += "\[[time_stamp()]\] Attacked by [user.name] ([user.ckey]) with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" + msg_admin_attack("[key_name(user)] attacked [key_name(M)] with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(damtype)])" ) + + if(istype(M, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + var/hit = H.attacked_by(src, user, def_zone) + if(hit && hitsound) + playsound(loc, hitsound, 50, 1, -1) + return hit + else + if(attack_verb.len) + user.visible_message("[M] has been [pick(attack_verb)] with [src] by [user]!") + else + user.visible_message("[M] has been attacked with [src] by [user]!") + + if (hitsound) + playsound(loc, hitsound, 50, 1, -1) + switch(damtype) + if("brute") + M.take_organ_damage(force) + if(prob(33)) + var/turf/simulated/location = get_turf(M) + if(istype(location)) location.add_blood_floor(M) + if("fire") + if (!(COLD_RESISTANCE in M.mutations)) + M.take_organ_damage(0, force) + M.updatehealth() + + if(seed && seed.stings) + if(!reagents || reagents.total_volume <= 0) + return + reagents.remove_any(rand(1,3)) + seed.thrown_at(src,M) + sleep(-1) + if(!src) + return + if(prob(35)) + if(user) + user << "\The [src] has fallen to bits." + user.drop_from_inventory(src) + del(src) + + add_fingerprint(user) + return 1 + + else + ..() + +/obj/item/weapon/reagent_containers/food/snacks/grown/attack_self(mob/user as mob) + + if(!seed) + return + + if(istype(user.loc,/turf/space)) + return + + if(user.a_intent == "hurt") + user.visible_message("\The [user] squashes \the [src]!") + seed.thrown_at(src,user) + sleep(-1) + if(src) del(src) + return + + if(seed.spread == 0) + return + + // TODO: Generalize. + var/obj/effect/glowshroom/planted = new /obj/effect/glowshroom(user.loc) + planted.delay = 50 + planted.endurance = 100 + planted.potency = potency + + user << "You plant the [src.name]." + del(src) + +/obj/item/weapon/reagent_containers/food/snacks/grown/pickup(mob/user) + ..() + if(!seed) + return + if(seed.biolum) + user.SetLuminosity(user.luminosity + seed.biolum) + SetLuminosity(0) + if(seed.stings) + var/mob/living/carbon/human/H = user + if(istype(H) && H.gloves) + return + if(!reagents || reagents.total_volume <= 0) + return + reagents.remove_any(rand(1,3)) + seed.do_thorns(H,src) + seed.do_sting(H,src,pick("r_hand","l_hand")) + +/obj/item/weapon/reagent_containers/food/snacks/grown/dropped(mob/user) + if(!..() || !seed) + return + if(seed.biolum) + user.SetLuminosity(user.luminosity - seed.biolum) + SetLuminosity(seed.biolum) + +// Food object defines follow. +/obj/item/weapon/reagent_containers/food/snacks/grown/corn + name = "ear of corn" + desc = "Needs some butter!" + plantname = "corn" + icon_state = "corn" + potency = 40 + filling_color = "#FFEE00" + trash = /obj/item/weapon/corncob + +/obj/item/weapon/reagent_containers/food/snacks/grown/cherries + name = "cherries" + desc = "Great for toppings!" + icon_state = "cherry" + filling_color = "#FF0000" + gender = PLURAL + plantname = "cherry" + +/obj/item/weapon/reagent_containers/food/snacks/grown/poppy + name = "poppy" + desc = "Long-used as a symbol of rest, peace, and death." + icon_state = "poppy" + potency = 30 + filling_color = "#CC6464" + plantname = "poppies" + +/obj/item/weapon/reagent_containers/food/snacks/grown/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" + potency = 1 + filling_color = "#D4B2C9" + plantname = "harebells" + +/obj/item/weapon/reagent_containers/food/snacks/grown/potato + name = "potato" + desc = "Boil 'em! Mash 'em! Stick 'em in a stew!" + icon_state = "potato" + potency = 25 + filling_color = "#E6E8DA" + plantname = "potato" + +/obj/item/weapon/reagent_containers/food/snacks/grown/grapes + name = "bunch of grapes" + desc = "Nutritious!" + icon_state = "grapes" + filling_color = "#A332AD" + plantname = "grapes" + +/obj/item/weapon/reagent_containers/food/snacks/grown/greengrapes + name = "bunch of green grapes" + desc = "Nutritious!" + icon_state = "greengrapes" + potency = 25 + filling_color = "#A6FFA3" + plantname = "greengrapes" + +/obj/item/weapon/reagent_containers/food/snacks/grown/peanut + name = "peanut" + desc = "Nuts!" + icon_state = "peanut" + filling_color = "857e27" + potency = 25 + plantname = "peanut" + +/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage + name = "cabbage" + desc = "Ewwwwwwwwww. Cabbage." + icon_state = "cabbage" + potency = 25 + filling_color = "#A2B5A1" + plantname = "cabbage" + +/obj/item/weapon/reagent_containers/food/snacks/grown/berries + name = "bunch of berries" + desc = "Nutritious!" + icon_state = "berrypile" + filling_color = "#C2C9FF" + plantname = "berries" + +/obj/item/weapon/reagent_containers/food/snacks/grown/plastellium + name = "clump of plastellium" + desc = "Hmm, needs some processing" + icon_state = "plastellium" + filling_color = "#C4C4C4" + plantname = "plastic" + +/obj/item/weapon/reagent_containers/food/snacks/grown/glowberries + name = "bunch of glow-berries" + desc = "Nutritious!" + filling_color = "#D3FF9E" + icon_state = "glowberrypile" + plantname = "glowberries" + +/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod + name = "cocoa pod" + desc = "Can be ground into cocoa powder." + icon_state = "cocoapod" + potency = 50 + filling_color = "#9C8E54" + plantname = "cocoa" + +/obj/item/weapon/reagent_containers/food/snacks/grown/sugarcane + name = "sugarcane" + desc = "Sickly sweet." + icon_state = "sugarcane" + potency = 50 + filling_color = "#C0C9AD" + plantname = "sugarcane" + +/obj/item/weapon/reagent_containers/food/snacks/grown/poisonberries + name = "bunch of poison-berries" + desc = "Taste so good, you could die!" + icon_state = "poisonberrypile" + gender = PLURAL + potency = 15 + filling_color = "#B422C7" + plantname = "poisonberries" + +/obj/item/weapon/reagent_containers/food/snacks/grown/deathberries + name = "bunch of death-berries" + desc = "Taste so good, you could die!" + icon_state = "deathberrypile" + gender = PLURAL + potency = 50 + filling_color = "#4E0957" + plantname = "deathberries" + +/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris + name = "ambrosia vulgaris branch" + desc = "This is a plant containing various healing chemicals." + icon_state = "ambrosiavulgaris" + potency = 10 + filling_color = "#125709" + plantname = "ambrosia" + +/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus + name = "ambrosia deus branch" + desc = "Eating this makes you feel immortal!" + icon_state = "ambrosiadeus" + potency = 10 + filling_color = "#229E11" + plantname = "ambrosiadeus" + +/obj/item/weapon/reagent_containers/food/snacks/grown/apple + name = "apple" + desc = "It's a little piece of Eden." + icon_state = "apple" + potency = 15 + filling_color = "#DFE88B" + plantname = "apple" + +/obj/item/weapon/reagent_containers/food/snacks/grown/apple/poisoned + name = "apple" + desc = "It's a little piece of Eden." + icon_state = "apple" + potency = 15 + filling_color = "#B3BD5E" + plantname = "poisonapple" + +/obj/item/weapon/reagent_containers/food/snacks/grown/goldapple + name = "golden apple" + desc = "Emblazoned upon the apple is the word 'Kallisti'." + icon_state = "goldapple" + potency = 15 + filling_color = "#F5CB42" + plantname = "goldapple" + +/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon + name = "watermelon" + desc = "It's full of watery goodness." + icon_state = "watermelon" + potency = 10 + filling_color = "#FA2863" + slice_path = /obj/item/weapon/reagent_containers/food/snacks/watermelonslice + slices_num = 5 + plantname = "watermelon" + +/obj/item/weapon/reagent_containers/food/snacks/grown/lime + name = "lime" + desc = "It's so sour, your face will twist." + icon_state = "lime" + potency = 20 + filling_color = "#28FA59" + plantname = "lime" + +/obj/item/weapon/reagent_containers/food/snacks/grown/lemon + name = "lemon" + desc = "When life gives you lemons, be grateful they aren't limes." + icon_state = "lemon" + potency = 20 + filling_color = "#FAF328" + plantname = "lemon" + +/obj/item/weapon/reagent_containers/food/snacks/grown/orange + name = "orange" + desc = "It's a tangy fruit." + icon_state = "orange" + potency = 20 + filling_color = "#FAAD28" + plantname = "orange" + +/obj/item/weapon/reagent_containers/food/snacks/grown/whitebeet + name = "white-beet" + desc = "You can't beat white-beet." + icon_state = "whitebeet" + potency = 15 + filling_color = "#FFFCCC" + plantname = "whitebeet" + +/obj/item/weapon/reagent_containers/food/snacks/grown/banana + name = "banana" + desc = "It's an excellent prop for a comedy." + icon = 'icons/obj/items.dmi' + icon_state = "banana" + item_state = "banana" + filling_color = "#FCF695" + trash = /obj/item/weapon/bananapeel + plantname = "banana" + +/obj/item/weapon/reagent_containers/food/snacks/grown/chili + name = "chili" + desc = "It's spicy! Wait... IT'S BURNING ME!!" + icon_state = "chilipepper" + filling_color = "#FF0000" + plantname = "chili" + +/obj/item/weapon/reagent_containers/food/snacks/grown/eggplant + name = "eggplant" + desc = "Maybe there's a chicken inside?" + icon_state = "eggplant" + filling_color = "#550F5C" + plantname = "eggplant" + +/obj/item/weapon/reagent_containers/food/snacks/grown/soybeans + name = "soybeans" + desc = "It's pretty bland, but oh the possibilities..." + gender = PLURAL + filling_color = "#E6E8B7" + icon_state = "soybeans" + plantname = "soybean" + +/obj/item/weapon/reagent_containers/food/snacks/grown/tomato + name = "tomato" + desc = "I say to-mah-to, you say tom-mae-to." + icon_state = "tomato" + filling_color = "#FF0000" + potency = 10 + plantname = "tomato" + +/obj/item/weapon/reagent_containers/food/snacks/grown/bloodtomato + name = "blood-tomato" + desc = "So juicy." + icon_state = "bloodtomato" + potency = 10 + filling_color = "#FF0000" + plantname = "bloodtomato" + +/obj/item/weapon/reagent_containers/food/snacks/grown/bluetomato + name = "blue-tomato" + desc = "I say blue-mah-to, you say blue-mae-to." + icon_state = "bluetomato" + potency = 10 + filling_color = "#586CFC" + plantname = "bluetomato" + +/obj/item/weapon/reagent_containers/food/snacks/grown/wheat + name = "wheat" + desc = "Sigh... wheat... a-grain?" + gender = PLURAL + icon_state = "wheat" + filling_color = "#F7E186" + plantname = "wheat" + +/obj/item/weapon/reagent_containers/food/snacks/grown/ricestalk + name = "rice stalk" + desc = "Rice to see you." + gender = PLURAL + icon_state = "rice" + filling_color = "#FFF8DB" + plantname = "rice" + +/obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod + name = "kudzu pod" + desc = "Pueraria Virallis: An invasive species with vines that rapidly creep and wrap around whatever they contact." + icon_state = "kudzupod" + filling_color = "#59691B" + plantname = "kudzu" + +/obj/item/weapon/reagent_containers/food/snacks/grown/icepepper + name = "ice-pepper" + desc = "It's a mutant strain of chili" + icon_state = "icepepper" + potency = 20 + filling_color = "#66CEED" + plantname = "icechili" + +/obj/item/weapon/reagent_containers/food/snacks/grown/carrot + name = "carrot" + desc = "It's good for the eyes!" + icon_state = "carrot" + potency = 10 + filling_color = "#FFC400" + plantname = "carrot" + +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/reishi + name = "reishi" + desc = "Ganoderma lucidum: A special fungus believed to help relieve stress." + icon_state = "reishi" + potency = 10 + filling_color = "#FF4800" + plantname = "reishi" + +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita + name = "fly amanita" + desc = "Amanita Muscaria: Learn poisonous mushrooms by heart. Only pick mushrooms you know." + icon_state = "amanita" + potency = 10 + filling_color = "#FF0000" + plantname = "amanita" + +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/angel + name = "destroying angel" + desc = "Amanita Virosa: Deadly poisonous basidiomycete fungus filled with alpha amatoxins." + icon_state = "angel" + potency = 35 + filling_color = "#FFDEDE" + plantname = "destroyingangel" + +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap + name = "liberty-cap" + desc = "Psilocybe Semilanceata: Liberate yourself!" + icon_state = "libertycap" + potency = 15 + filling_color = "#F714BE" + plantname = "libertycap" + +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet + name = "plump-helmet" + desc = "Plumus Hellmus: Plump, soft and s-so inviting~" + icon_state = "plumphelmet" + filling_color = "#F714BE" + plantname = "plumphelmet" + +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom + name = "walking mushroom" + desc = "Plumus Locomotus: The beginning of the great walk." + icon_state = "walkingmushroom" + filling_color = "#FFBFEF" + potency = 30 + plantname = "walkingmushroom" + +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle + name = "chanterelle cluster" + desc = "Cantharellus Cibarius: These jolly yellow little shrooms sure look tasty!" + icon_state = "chanterelle" + filling_color = "#FFE991" + plantname = "mushrooms" + +/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom + name = "glowshroom cluster" + desc = "Mycena Bregprox: This species of mushroom glows in the dark. Or does it?" + icon_state = "glowshroom" + filling_color = "#DAFF91" + potency = 30 + plantname = "glowshroom" + +/obj/item/weapon/reagent_containers/food/snacks/grown/bluespacetomato + name = "blue-space tomato" + desc = "So lubricated, you might slip through space-time." + icon_state = "bluespacetomato" + potency = 20 + origin_tech = "bluespace=3" + filling_color = "#91F8FF" + plantname = "bluespacetomato" + +// Super special snowflake grown items below. +/obj/item/weapon/reagent_containers/food/snacks/grown/shand + name = "S'rendarr's Hand leaf" + desc = "A leaf sample from a lowland thicket shrub. Smells strongly like wax." + icon_state = "shand" + filling_color = "#70C470" + plantname = "shand" + +/obj/item/weapon/reagent_containers/food/snacks/grown/mtear + name = "sprig of Messa's Tear" + desc = "A mountain climate herb with a soft, cold blue flower, known to contain an abundance of healing chemicals." + icon_state = "mtear" + filling_color = "#70C470" + plantname = "mtear" + +/obj/item/weapon/reagent_containers/food/snacks/grown/mtear/attack_self(mob/user as mob) + if(istype(user.loc,/turf/space)) + return + var/obj/item/stack/medical/ointment/tajaran/poultice = new /obj/item/stack/medical/ointment/tajaran(user.loc) + + poultice.heal_burn = potency + del(src) + + user << "You mash the petals into a poultice." + +/obj/item/weapon/reagent_containers/food/snacks/grown/shand/attack_self(mob/user as mob) + if(istype(user.loc,/turf/space)) + return + var/obj/item/stack/medical/bruise_pack/tajaran/poultice = new /obj/item/stack/medical/bruise_pack/tajaran(user.loc) + + poultice.heal_brute = potency + del(src) + + user << "You mash the leaves into a poultice." + +/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin + name = "pumpkin" + desc = "It's large and scary." + icon_state = "pumpkin" + potency = 10 + filling_color = "#FAB728" + plantname = "pumpkin" + +/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if(istype(W, /obj/item/weapon/circular_saw) || istype(W, /obj/item/weapon/hatchet) || istype(W, /obj/item/weapon/twohanded/fireaxe) || istype(W, /obj/item/weapon/kitchen/utensil/knife) || istype(W, /obj/item/weapon/kitchenknife) || istype(W, /obj/item/weapon/melee/energy)) + user.show_message("You carve a face into [src]!", 1) + new /obj/item/clothing/head/pumpkinhead (user.loc) + del(src) + return + +/obj/item/weapon/reagent_containers/food/snacks/grown/sunflower // FLOWER POWER! + plantname = "sunflowers" + name = "sunflower" + desc = "A beautiful yellow flower." + icon_state = "sunflower" + damtype = "fire" + force = 0 + throw_speed = 1 + throw_range = 3 + +/obj/item/weapon/reagent_containers/food/snacks/grown/nettle + plantname = "nettle" + desc = "It's probably not wise to touch it with bare hands..." + icon = 'icons/obj/weapons.dmi' + name = "nettle" + icon_state = "nettle" + damtype = "fire" + force = 15 + w_class = 2.0 + throw_speed = 1 + throw_range = 3 + origin_tech = "combat=1" + attack_verb = list("stung") + hitsound = "" + +/obj/item/weapon/reagent_containers/food/snacks/grown/nettle/death + plantname = "deathnettle" + desc = "A cruel and toxic-looking plant." + name = "deathnettle" + icon_state = "deathnettle" origin_tech = "combat=3" \ No newline at end of file