diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index 11ff6700c1e..8a9eda9d76a 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -52,6 +52,14 @@ add_fingerprint(user) return +/obj/item/weapon/melee/energy/sword/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if(istype(W, /obj/item/weapon/melee/energy/sword)) + user << "\blue You attach the ends of the two energy swords, making a single double-bladed weapon! You're cool." + new /obj/item/weapon/twohanded/dualsaber(user.loc) + del(W) + del(src) + /* * Classic Baton */ diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 4e3d77bedbb..68e877559da 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -156,6 +156,7 @@ /obj/item/weapon/twohanded/dualsaber/update_icon() icon_state = "dualsaber[wielded]" + clean_blood()//blood overlays get weird otherwise, because the sprite changes. return /obj/item/weapon/twohanded/dualsaber/attack(target as mob, mob/living/user as mob) diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/hydroponics/grown.dm similarity index 88% rename from code/modules/reagents/reagent_containers/food/snacks/grown.dm rename to code/modules/hydroponics/grown.dm index 19257de6fd2..ea41dc1d0bf 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -603,15 +603,15 @@ reagents.add_reagent("blood", 1+round((potency / 5), 1)) bitesize = 1+round(reagents.total_volume / 2, 1) - throw_impact(atom/hit_atom) - ..() - new/obj/effect/decal/cleanable/blood/splatter(src.loc) - src.visible_message("The [src.name] has been squashed.","You hear a smack.") - src.reagents.reaction(get_turf(hit_atom)) - for(var/atom/A in get_turf(hit_atom)) - src.reagents.reaction(A) - del(src) - return +/obj/item/weapon/reagent_containers/food/snacks/grown/bloodtomato/throw_impact(atom/hit_atom) + ..() + new/obj/effect/decal/cleanable/blood/splatter(src.loc) + src.visible_message("The [src.name] has been squashed.","You hear a smack.") + src.reagents.reaction(get_turf(hit_atom)) + for(var/atom/A in get_turf(hit_atom)) + src.reagents.reaction(A) + del(src) + return /obj/item/weapon/reagent_containers/food/snacks/grown/bluetomato seed = "/obj/item/seeds/bluetomatoseed" @@ -626,15 +626,15 @@ reagents.add_reagent("lube", 1+round((potency / 5), 1)) bitesize = 1+round(reagents.total_volume / 2, 1) - throw_impact(atom/hit_atom) - ..() - new/obj/effect/decal/cleanable/oil(src.loc) - src.visible_message("The [src.name] has been squashed.","You hear a smack.") - src.reagents.reaction(get_turf(hit_atom)) - for(var/atom/A in get_turf(hit_atom)) - src.reagents.reaction(A) - del(src) - return +/obj/item/weapon/reagent_containers/food/snacks/grown/bluetomato/throw_impact(atom/hit_atom) + ..() + new/obj/effect/decal/cleanable/oil(src.loc) + src.visible_message("The [src.name] has been squashed.","You hear a smack.") + src.reagents.reaction(get_turf(hit_atom)) + for(var/atom/A in get_turf(hit_atom)) + src.reagents.reaction(A) + del(src) + return /obj/item/weapon/reagent_containers/food/snacks/grown/bluetomato/HasEntered(AM as mob|obj) if (istype(AM, /mob/living/carbon)) @@ -894,12 +894,6 @@ user.SetLuminosity(round(user.luminosity + (potency/10),1)) SetLuminosity(round(potency/10,1)) - -// ************************************* -// Complex Grown Object Defines - -// Putting these at the bottom so they don't clutter the list up. -Cheridan -// ************************************* - //This object is just a transition object. All it does is make dosh and delete itself. -Cheridan /obj/item/weapon/reagent_containers/food/snacks/grown/money seed = "/obj/item/seeds/cashseed" @@ -940,54 +934,4 @@ spawn(5) //So potency can be set in the proc that creates these crops reagents.add_reagent("nutriment", 1+round((potency / 20), 1)) reagents.add_reagent("singulo", 1+round((potency / 5), 1)) - bitesize = 1+round(reagents.total_volume / 2, 1) - - throw_impact(atom/hit_atom) - ..() - var/mob/M = usr - var/outer_teleport_radius = potency/10 //Plant potency determines radius of teleport. - var/inner_teleport_radius = potency/15 - var/list/turfs = new/list() - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - if(inner_teleport_radius < 1) //Wasn't potent enough, it just splats. - new/obj/effect/decal/cleanable/oil(src.loc) - src.visible_message("The [src.name] has been squashed.","You hear a smack.") - del(src) - return - for(var/turf/T in orange(M,outer_teleport_radius)) - if(T in orange(M,inner_teleport_radius)) continue - if(istype(T,/turf/space)) continue - if(T.density) continue - if(T.x>world.maxx-outer_teleport_radius || T.xworld.maxy-outer_teleport_radius || T.yThe [src.name] has been squashed, causing a distortion in space-time.","You hear a splat and a crackle.") - del(src) - return \ No newline at end of file + bitesize = 1+round(reagents.total_volume / 2, 1) \ No newline at end of file diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm new file mode 100644 index 00000000000..c3b50ed5142 --- /dev/null +++ b/code/modules/hydroponics/growninedible.dm @@ -0,0 +1,138 @@ +// ********************** +// Other harvested materials from plants (that are not food) +// ********************** + +/obj/item/weapon/grown // Grown weapons + name = "grown_weapon" + icon = 'icons/obj/weapons.dmi' + var/seed = "" + var/plantname = "" + var/product //a type path + var/species = "" + var/lifespan = 20 + var/endurance = 15 + var/maturation = 7 + var/production = 7 + var/yield = 2 + var/potency = 1 + var/plant_type = 0 + New() + var/datum/reagents/R = new/datum/reagents(50) + reagents = R + R.my_atom = src + +/obj/item/weapon/grown/proc/changePotency(newValue) //-QualityVan + potency = newValue + +/obj/item/weapon/grown/log + name = "tower-cap log" + desc = "It's better than bad, it's good!" + icon = 'icons/obj/harvest.dmi' + icon_state = "logs" + force = 5 + flags = TABLEPASS + throwforce = 5 + w_class = 3.0 + throw_speed = 3 + throw_range = 3 + plant_type = 2 + origin_tech = "materials=1" + seed = "/obj/item/seeds/towermycelium" + attack_verb = list("bashed", "battered", "bludgeoned", "whacked") + +/obj/item/weapon/grown/log/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) && W:wielded) || istype(W, /obj/item/weapon/melee/energy)) + user.show_message("You make planks out of the [src]!", 1) + for(var/i=0,i<2,i++) + var/obj/item/stack/sheet/wood/NG = new (user.loc) + for (var/obj/item/stack/sheet/wood/G in user.loc) + if(G==NG) + continue + if(G.amount>=G.max_amount) + continue + G.attackby(NG, user) + usr << "You add the newly-formed wood to the stack. It now contains [NG.amount] planks." + del(src) + return + +/obj/item/weapon/grown/sunflower // FLOWER POWER! + name = "sunflower" + desc = "It's beautiful! A certain person might beat you to death if you trample these." + icon = 'icons/obj/harvest.dmi' + icon_state = "sunflower" + damtype = "fire" + force = 0 + flags = TABLEPASS + throwforce = 1 + w_class = 1.0 + throw_speed = 1 + throw_range = 3 + plant_type = 0 + seed = "/obj/item/seeds/sunflower" + +/obj/item/weapon/grown/novaflower + name = "novaflower" + desc = "It's beautiful! A certain person might beat you to death if you trample these." + icon = 'icons/obj/harvest.dmi' + icon_state = "novaflower" + damtype = "fire" + force = 0 + flags = TABLEPASS + throwforce = 1 + w_class = 1.0 + throw_speed = 1 + throw_range = 3 + plant_type = 0 + seed = "/obj/item/seeds/novaflower" + attack_verb = list("seared", "heated", "whacked", "steamed") + +/obj/item/weapon/grown/nettle // -- Skie + 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 + flags = TABLEPASS + throwforce = 1 + w_class = 1.0 + throw_speed = 1 + throw_range = 3 + plant_type = 1 + origin_tech = "combat=1" + seed = "/obj/item/seeds/nettleseed" + New() + ..() + spawn(5) //So potency can be set in the proc that creates these crops + reagents.add_reagent("nutriment", 1+round((potency / 50), 1)) + reagents.add_reagent("sacid", round(potency, 1)) + force = round((5+potency/5), 1) + +/obj/item/weapon/grown/deathnettle // -- Skie + desc = "The \red glowing \black nettle incites \red rage\black in you just from looking at it!" + icon = 'icons/obj/weapons.dmi' + name = "deathnettle" + icon_state = "deathnettle" + damtype = "fire" + force = 30 + flags = TABLEPASS + throwforce = 1 + w_class = 1.0 + throw_speed = 1 + throw_range = 3 + plant_type = 1 + seed = "/obj/item/seeds/deathnettleseed" + origin_tech = "combat=3" + attack_verb = list("stung") + New() + ..() + spawn(5) //So potency can be set in the proc that creates these crops + reagents.add_reagent("nutriment", 1+round((potency / 50), 1)) + reagents.add_reagent("pacid", round(potency, 1)) + force = round((5+potency/2.5), 1) + + suicide_act(mob/user) + viewers(user) << "\red [user] is eating some of the [src.name]! It looks like \he's trying to commit suicide." + return (BRUTELOSS|TOXLOSS) + diff --git a/code/game/objects/items/weapons/hydroponics.dm b/code/modules/hydroponics/hydroitemcode.dm similarity index 58% rename from code/game/objects/items/weapons/hydroponics.dm rename to code/modules/hydroponics/hydroitemcode.dm index 8789a369c5a..85a3d765ab8 100644 --- a/code/game/objects/items/weapons/hydroponics.dm +++ b/code/modules/hydroponics/hydroitemcode.dm @@ -1,16 +1,9 @@ -/* Hydroponic stuff +/* Hydroponic Item Procs and Stuff * Contains: - * Sunflowers/Novaflowers - * Nettle - * Deathnettle - * Corncob - */ - - -/* - * Sun/Novaflower + * Sunflowers Novaflowers Nettle Deathnettle Corncob */ +//Sun/Novaflower /obj/item/weapon/grown/sunflower/attack(mob/M as mob, mob/user as mob) M << " [user] smacks you with a sunflower!FLOWER POWER" user << " Your sunflower's FLOWER POWER strikes [M]" @@ -28,9 +21,8 @@ usr << "All the petals have fallen off the [name] from violent whacking." del(src) -/* - * Nettle - */ + +//Nettle /obj/item/weapon/grown/nettle/pickup(mob/living/carbon/human/user as mob) if(!user.gloves) user << "\red The nettle burns your bare hand!" @@ -54,10 +46,7 @@ potency = newValue force = round((5+potency/5), 1) -/* - * Deathnettle - */ - +//Deathnettle /obj/item/weapon/grown/deathnettle/pickup(mob/living/carbon/human/user as mob) if(!user.gloves) if(istype(user, /mob/living/carbon/human)) @@ -101,9 +90,7 @@ force = round((5+potency/2.5), 1) -/* - * Corncob - */ +//Corncob /obj/item/weapon/corncob/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/kitchen/utensil/knife)) @@ -111,3 +98,54 @@ new /obj/item/clothing/mask/cigarette/pipe/cobpipe (user.loc) del(src) return + +//Bluespace Tomatoes +/obj/item/weapon/reagent_containers/food/snacks/grown/bluespacetomato/throw_impact(atom/hit_atom) + ..() + var/mob/M = usr + var/outer_teleport_radius = potency/10 //Plant potency determines radius of teleport. + var/inner_teleport_radius = potency/15 + var/list/turfs = new/list() + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + if(inner_teleport_radius < 1) //Wasn't potent enough, it just splats. + new/obj/effect/decal/cleanable/oil(src.loc) + src.visible_message("The [src.name] has been squashed.","You hear a smack.") + del(src) + return + for(var/turf/T in orange(M,outer_teleport_radius)) + if(T in orange(M,inner_teleport_radius)) continue + if(istype(T,/turf/space)) continue + if(T.density) continue + if(T.x>world.maxx-outer_teleport_radius || T.xworld.maxy-outer_teleport_radius || T.yThe [src.name] has been squashed, causing a distortion in space-time.","You hear a splat and a crackle.") + del(src) + return \ No newline at end of file diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm new file mode 100644 index 00000000000..2638f1783d4 --- /dev/null +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -0,0 +1,201 @@ +// Plant analyzer +/obj/item/device/analyzer/plant_analyzer + name = "plant analyzer" + desc = "A scanner used to evaluate a plant's various areas of growth." + icon = 'icons/obj/device.dmi' + icon_state = "hydro" + item_state = "analyzer" + origin_tech = "magnets=1;biotech=1" + + attack_self(mob/user as mob) + return 0 + +// ************************************* +// Pestkiller defines for hydroponics +// ************************************* + +/obj/item/pestkiller + name = "bottle of pestkiller" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle16" + flags = FPRINT | TABLEPASS + var/toxicity = 0 + var/PestKillStr = 0 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) + +/obj/item/pestkiller/carbaryl + name = "bottle of carbaryl" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle16" + flags = FPRINT | TABLEPASS + toxicity = 4 + PestKillStr = 2 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) + +/obj/item/pestkiller/lindane + name = "bottle of lindane" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle18" + flags = FPRINT | TABLEPASS + toxicity = 6 + PestKillStr = 4 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) + +/obj/item/pestkiller/phosmet + name = "bottle of phosmet" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle15" + flags = FPRINT | TABLEPASS + toxicity = 8 + PestKillStr = 7 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) + +// ************************************* +// Hydroponics Tools +// ************************************* + +/obj/item/weapon/weedspray // -- Skie + desc = "It's a toxic mixture, in spray form, to kill small weeds." + icon = 'icons/obj/hydroponics.dmi' + name = "weed-spray" + icon_state = "weedspray" + item_state = "spray" + flags = TABLEPASS | OPENCONTAINER | FPRINT | USEDELAY + slot_flags = SLOT_BELT + throwforce = 4 + w_class = 2.0 + throw_speed = 2 + throw_range = 10 + var/toxicity = 4 + var/WeedKillStr = 2 + + suicide_act(mob/user) + viewers(user) << "\red [user] is huffing the [src.name]! It looks like \he's trying to commit suicide." + return (TOXLOSS) + +/obj/item/weapon/pestspray // -- Skie + desc = "It's some pest eliminator spray! Do not inhale!" + icon = 'icons/obj/hydroponics.dmi' + name = "pest-spray" + icon_state = "pestspray" + item_state = "spray" + flags = TABLEPASS | OPENCONTAINER | FPRINT | USEDELAY + slot_flags = SLOT_BELT + throwforce = 4 + w_class = 2.0 + throw_speed = 2 + throw_range = 10 + var/toxicity = 4 + var/PestKillStr = 2 + + suicide_act(mob/user) + viewers(user) << "\red [user] is huffing the [src.name]! It looks like \he's trying to commit suicide." + return (TOXLOSS) + +/obj/item/weapon/minihoe // -- Numbers + name = "mini hoe" + desc = "It's used for removing weeds or scratching your back." + icon = 'icons/obj/weapons.dmi' + icon_state = "hoe" + item_state = "hoe" + flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY + force = 5.0 + throwforce = 7.0 + w_class = 2.0 + m_amt = 50 + attack_verb = list("slashed", "sliced", "cut", "clawed") + +// ************************************* +// Weedkiller defines for hydroponics +// ************************************* + +/obj/item/weedkiller + name = "bottle of weedkiller" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle16" + flags = FPRINT | TABLEPASS + var/toxicity = 0 + var/WeedKillStr = 0 + +/obj/item/weedkiller/glyphosate + name = "bottle of glyphosate" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle16" + flags = FPRINT | TABLEPASS + toxicity = 4 + WeedKillStr = 2 + +/obj/item/weedkiller/triclopyr + name = "bottle of triclopyr" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle18" + flags = FPRINT | TABLEPASS + toxicity = 6 + WeedKillStr = 4 + +/obj/item/weedkiller/D24 + name = "bottle of 2,4-D" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle15" + flags = FPRINT | TABLEPASS + toxicity = 8 + WeedKillStr = 7 + +// ************************************* +// Nutrient defines for hydroponics +// ************************************* + +/obj/item/nutrient + name = "bottle of nutrient" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle16" + flags = FPRINT | TABLEPASS + w_class = 1.0 + var/mutmod = 0 + var/yieldmod = 0 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) + +/obj/item/nutrient/ez + name = "bottle of E-Z-Nutrient" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle16" + flags = FPRINT | TABLEPASS + mutmod = 1 + yieldmod = 1 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) + +/obj/item/nutrient/l4z + name = "bottle of Left 4 Zed" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle18" + flags = FPRINT | TABLEPASS + mutmod = 2 + yieldmod = 0 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) + +/obj/item/nutrient/rh + name = "bottle of Robust Harvest" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle15" + flags = FPRINT | TABLEPASS + mutmod = 0 + yieldmod = 2 + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) + + diff --git a/code/game/machinery/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm similarity index 100% rename from code/game/machinery/hydroponics.dm rename to code/modules/hydroponics/hydroponics.dm diff --git a/code/defines/obj/hydro.dm b/code/modules/hydroponics/seeds.dm similarity index 68% rename from code/defines/obj/hydro.dm rename to code/modules/hydroponics/seeds.dm index 174f3baa339..f463816e7d3 100644 --- a/code/defines/obj/hydro.dm +++ b/code/modules/hydroponics/seeds.dm @@ -1,16 +1,3 @@ -// Plant analyzer - -/obj/item/device/analyzer/plant_analyzer - name = "plant analyzer" - desc = "A scanner used to evaluate a plant's various areas of growth." - icon = 'icons/obj/device.dmi' - icon_state = "hydro" - item_state = "analyzer" - origin_tech = "magnets=1;biotech=1" - - attack_self(mob/user as mob) - return 0 - // ******************************************************** // Here's all the seeds (plants) that can be used in hydro // ******************************************************** @@ -1030,398 +1017,4 @@ return user << "You plant the kudzu. You monster." new /obj/effect/spacevine_controller(user.loc) - del(src) - -/* // Maybe one day when I get it to work like a grenade which exlodes gibs. -/obj/item/seeds/gibtomatoseed - name = "Gib Tomato seeds" - desc = "Used to grow gib tomotoes." - icon_state = "seed-gibtomato" - species = "gibtomato" - plantname = "Gib Tomato plant" - product = /obj/item/weapon/grown/gibtomato - lifespan = 35 - endurance = 25 - maturation = 6 - production = 6 - yield = 3 - potency = 10 - plant_type = 0 - growthstages = 6 -*/ - -/* -/obj/item/seeds/ - name = "" - icon_state = "seed" - species = "" - plantname = "" - product = /obj/item/weapon/reagent_containers/food/snacks/grown/ - lifespan = 25 - endurance = 15 - maturation = 10 - production = 1 - yield = -1 - potency = 0 - oneharvest = 1 - growthstages = 3 - plant_type = 0 - -*/ - -// *****************oolokitthesefancystars******** -// Grown FOOD types moved to reagents -// ********************** - -// ********************** -// Other harvested materials from plants (that are not food) -// ********************** - -/obj/item/weapon/grown // Grown weapons - name = "grown_weapon" - icon = 'icons/obj/weapons.dmi' - var/seed = "" - var/plantname = "" - var/product //a type path - var/species = "" - var/lifespan = 20 - var/endurance = 15 - var/maturation = 7 - var/production = 7 - var/yield = 2 - var/potency = 1 - var/plant_type = 0 - New() - var/datum/reagents/R = new/datum/reagents(50) - reagents = R - R.my_atom = src - -/obj/item/weapon/grown/proc/changePotency(newValue) //-QualityVan - potency = newValue - -/obj/item/weapon/grown/log - name = "tower-cap log" - desc = "It's better than bad, it's good!" - icon = 'icons/obj/harvest.dmi' - icon_state = "logs" - force = 5 - flags = TABLEPASS - throwforce = 5 - w_class = 3.0 - throw_speed = 3 - throw_range = 3 - plant_type = 2 - origin_tech = "materials=1" - seed = "/obj/item/seeds/towermycelium" - attack_verb = list("bashed", "battered", "bludgeoned", "whacked") - - 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) && W:wielded) || istype(W, /obj/item/weapon/melee/energy)) - user.show_message("You make planks out of the [src]!", 1) - for(var/i=0,i<2,i++) - var/obj/item/stack/sheet/wood/NG = new (user.loc) - for (var/obj/item/stack/sheet/wood/G in user.loc) - if(G==NG) - continue - if(G.amount>=G.max_amount) - continue - G.attackby(NG, user) - usr << "You add the newly-formed wood to the stack. It now contains [NG.amount] planks." - del(src) - return - - -/obj/item/weapon/grown/sunflower // FLOWER POWER! - name = "sunflower" - desc = "It's beautiful! A certain person might beat you to death if you trample these." - icon = 'icons/obj/harvest.dmi' - icon_state = "sunflower" - damtype = "fire" - force = 0 - flags = TABLEPASS - throwforce = 1 - w_class = 1.0 - throw_speed = 1 - throw_range = 3 - plant_type = 0 - seed = "/obj/item/seeds/sunflower" - -/obj/item/weapon/grown/novaflower - name = "novaflower" - desc = "It's beautiful! A certain person might beat you to death if you trample these." - icon = 'icons/obj/harvest.dmi' - icon_state = "novaflower" - damtype = "fire" - force = 0 - flags = TABLEPASS - throwforce = 1 - w_class = 1.0 - throw_speed = 1 - throw_range = 3 - plant_type = 0 - seed = "/obj/item/seeds/novaflower" - attack_verb = list("seared", "heated", "whacked", "steamed") -/* -/obj/item/weapon/grown/gibtomato - desc = "A plump tomato." - icon = 'icons/obj/harvest.dmi' - name = "Gib Tomato" - icon_state = "gibtomato" - damtype = "fire" - force = 0 - flags = TABLEPASS - throwforce = 1 - w_class = 1.0 - throw_speed = 1 - throw_range = 3 - plant_type = 1 - seed = "/obj/item/seeds/gibtomato" - New() - ..() - - -/obj/item/weapon/grown/gibtomato/New() - ..() - src.gibs = new /obj/effect/gibspawner/human(get_turf(src)) - src.gibs.attach(src) - src.smoke.set_up(10, 0, usr.loc) -*/ -/obj/item/weapon/grown/nettle // -- Skie - 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 - flags = TABLEPASS - throwforce = 1 - w_class = 1.0 - throw_speed = 1 - throw_range = 3 - plant_type = 1 - origin_tech = "combat=1" - seed = "/obj/item/seeds/nettleseed" - New() - ..() - spawn(5) //So potency can be set in the proc that creates these crops - reagents.add_reagent("nutriment", 1+round((potency / 50), 1)) - reagents.add_reagent("sacid", round(potency, 1)) - force = round((5+potency/5), 1) - -/obj/item/weapon/grown/deathnettle // -- Skie - desc = "The \red glowing \black nettle incites \red rage\black in you just from looking at it!" - icon = 'icons/obj/weapons.dmi' - name = "deathnettle" - icon_state = "deathnettle" - damtype = "fire" - force = 30 - flags = TABLEPASS - throwforce = 1 - w_class = 1.0 - throw_speed = 1 - throw_range = 3 - plant_type = 1 - seed = "/obj/item/seeds/deathnettleseed" - origin_tech = "combat=3" - attack_verb = list("stung") - New() - ..() - spawn(5) //So potency can be set in the proc that creates these crops - reagents.add_reagent("nutriment", 1+round((potency / 50), 1)) - reagents.add_reagent("pacid", round(potency, 1)) - force = round((5+potency/2.5), 1) - - suicide_act(mob/user) - viewers(user) << "\red [user] is eating some of the [src.name]! It looks like \he's trying to commit suicide." - return (BRUTELOSS|TOXLOSS) - -// ************************************* -// Pestkiller defines for hydroponics -// ************************************* - -/obj/item/pestkiller - name = "bottle of pestkiller" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" - flags = FPRINT | TABLEPASS - var/toxicity = 0 - var/PestKillStr = 0 - New() - src.pixel_x = rand(-5.0, 5) - src.pixel_y = rand(-5.0, 5) - -/obj/item/pestkiller/carbaryl - name = "bottle of carbaryl" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" - flags = FPRINT | TABLEPASS - toxicity = 4 - PestKillStr = 2 - New() - src.pixel_x = rand(-5.0, 5) - src.pixel_y = rand(-5.0, 5) - -/obj/item/pestkiller/lindane - name = "bottle of lindane" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle18" - flags = FPRINT | TABLEPASS - toxicity = 6 - PestKillStr = 4 - New() - src.pixel_x = rand(-5.0, 5) - src.pixel_y = rand(-5.0, 5) - -/obj/item/pestkiller/phosmet - name = "bottle of phosmet" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle15" - flags = FPRINT | TABLEPASS - toxicity = 8 - PestKillStr = 7 - New() - src.pixel_x = rand(-5.0, 5) - src.pixel_y = rand(-5.0, 5) - -// ************************************* -// Hydroponics Tools -// ************************************* - -/obj/item/weapon/weedspray // -- Skie - desc = "It's a toxic mixture, in spray form, to kill small weeds." - icon = 'icons/obj/hydroponics.dmi' - name = "weed-spray" - icon_state = "weedspray" - item_state = "spray" - flags = TABLEPASS | OPENCONTAINER | FPRINT | USEDELAY - slot_flags = SLOT_BELT - throwforce = 4 - w_class = 2.0 - throw_speed = 2 - throw_range = 10 - var/toxicity = 4 - var/WeedKillStr = 2 - - suicide_act(mob/user) - viewers(user) << "\red [user] is huffing the [src.name]! It looks like \he's trying to commit suicide." - return (TOXLOSS) - -/obj/item/weapon/pestspray // -- Skie - desc = "It's some pest eliminator spray! Do not inhale!" - icon = 'icons/obj/hydroponics.dmi' - name = "pest-spray" - icon_state = "pestspray" - item_state = "spray" - flags = TABLEPASS | OPENCONTAINER | FPRINT | USEDELAY - slot_flags = SLOT_BELT - throwforce = 4 - w_class = 2.0 - throw_speed = 2 - throw_range = 10 - var/toxicity = 4 - var/PestKillStr = 2 - - suicide_act(mob/user) - viewers(user) << "\red [user] is huffing the [src.name]! It looks like \he's trying to commit suicide." - return (TOXLOSS) - -/obj/item/weapon/minihoe // -- Numbers - name = "mini hoe" - desc = "It's used for removing weeds or scratching your back." - icon = 'icons/obj/weapons.dmi' - icon_state = "hoe" - item_state = "hoe" - flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY - force = 5.0 - throwforce = 7.0 - w_class = 2.0 - m_amt = 50 - attack_verb = list("slashed", "sliced", "cut", "clawed") - -// ************************************* -// Weedkiller defines for hydroponics -// ************************************* - -/obj/item/weedkiller - name = "bottle of weedkiller" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" - flags = FPRINT | TABLEPASS - var/toxicity = 0 - var/WeedKillStr = 0 - -/obj/item/weedkiller/triclopyr - name = "bottle of glyphosate" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" - flags = FPRINT | TABLEPASS - toxicity = 4 - WeedKillStr = 2 - -/obj/item/weedkiller/lindane - name = "bottle of triclopyr" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle18" - flags = FPRINT | TABLEPASS - toxicity = 6 - WeedKillStr = 4 - -/obj/item/weedkiller/D24 - name = "bottle of 2,4-D" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle15" - flags = FPRINT | TABLEPASS - toxicity = 8 - WeedKillStr = 7 - -// ************************************* -// Nutrient defines for hydroponics -// ************************************* - -/obj/item/nutrient - name = "bottle of nutrient" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" - flags = FPRINT | TABLEPASS - w_class = 1.0 - var/mutmod = 0 - var/yieldmod = 0 - New() - src.pixel_x = rand(-5.0, 5) - src.pixel_y = rand(-5.0, 5) - -/obj/item/nutrient/ez - name = "bottle of E-Z-Nutrient" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle16" - flags = FPRINT | TABLEPASS - mutmod = 1 - yieldmod = 1 - New() - src.pixel_x = rand(-5.0, 5) - src.pixel_y = rand(-5.0, 5) - -/obj/item/nutrient/l4z - name = "bottle of Left 4 Zed" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle18" - flags = FPRINT | TABLEPASS - mutmod = 2 - yieldmod = 0 - New() - src.pixel_x = rand(-5.0, 5) - src.pixel_y = rand(-5.0, 5) - -/obj/item/nutrient/rh - name = "bottle of Robust Harvest" - icon = 'icons/obj/chemical.dmi' - icon_state = "bottle15" - flags = FPRINT | TABLEPASS - mutmod = 0 - yieldmod = 2 - New() - src.pixel_x = rand(-5.0, 5) - src.pixel_y = rand(-5.0, 5) - - + del(src) \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index 7868034c7f2..c667c6e17f7 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -138,12 +138,14 @@ #include "code\datums\diseases\advance\symptoms\damage_converter.dm" #include "code\datums\diseases\advance\symptoms\dizzy.dm" #include "code\datums\diseases\advance\symptoms\fever.dm" +#include "code\datums\diseases\advance\symptoms\flesh_eating.dm" #include "code\datums\diseases\advance\symptoms\hallucigen.dm" #include "code\datums\diseases\advance\symptoms\headache.dm" #include "code\datums\diseases\advance\symptoms\heal.dm" #include "code\datums\diseases\advance\symptoms\itching.dm" #include "code\datums\diseases\advance\symptoms\shivering.dm" #include "code\datums\diseases\advance\symptoms\sneeze.dm" +#include "code\datums\diseases\advance\symptoms\stimulant.dm" #include "code\datums\diseases\advance\symptoms\symptoms.dm" #include "code\datums\diseases\advance\symptoms\voice_change.dm" #include "code\datums\diseases\advance\symptoms\vomit.dm" @@ -180,7 +182,6 @@ #include "code\datums\wires\robot.dm" #include "code\datums\wires\wires.dm" #include "code\defines\obj.dm" -#include "code\defines\obj\hydro.dm" #include "code\defines\obj\weapon.dm" #include "code\defines\procs\AStar.dm" #include "code\defines\procs\captain_announce.dm" @@ -282,7 +283,6 @@ #include "code\game\machinery\flasher.dm" #include "code\game\machinery\Freezer.dm" #include "code\game\machinery\hologram.dm" -#include "code\game\machinery\hydroponics.dm" #include "code\game\machinery\igniter.dm" #include "code\game\machinery\lightswitch.dm" #include "code\game\machinery\machinery.dm" @@ -502,7 +502,6 @@ #include "code\game\objects\items\weapons\flamethrower.dm" #include "code\game\objects\items\weapons\gift_wrappaper.dm" #include "code\game\objects\items\weapons\handcuffs.dm" -#include "code\game\objects\items\weapons\hydroponics.dm" #include "code\game\objects\items\weapons\kitchen.dm" #include "code\game\objects\items\weapons\manuals.dm" #include "code\game\objects\items\weapons\mop.dm" @@ -777,6 +776,12 @@ #include "code\modules\flufftext\Hallucination.dm" #include "code\modules\flufftext\TextFilters.dm" #include "code\modules\food\recipes_microwave.dm" +#include "code\modules\hydroponics\grown.dm" +#include "code\modules\hydroponics\growninedible.dm" +#include "code\modules\hydroponics\hydroitemcode.dm" +#include "code\modules\hydroponics\hydroitemdefines.dm" +#include "code\modules\hydroponics\hydroponics.dm" +#include "code\modules\hydroponics\seeds.dm" #include "code\modules\library\lib_items.dm" #include "code\modules\library\lib_machines.dm" #include "code\modules\library\lib_readme.dm" @@ -1067,7 +1072,6 @@ #include "code\modules\reagents\reagent_containers\food\drinks\drinkingglass.dm" #include "code\modules\reagents\reagent_containers\food\drinks\jar.dm" #include "code\modules\reagents\reagent_containers\food\drinks\bottle\robot.dm" -#include "code\modules\reagents\reagent_containers\food\snacks\grown.dm" #include "code\modules\reagents\reagent_containers\food\snacks\meat.dm" #include "code\modules\reagents\reagent_containers\glass\bottle.dm" #include "code\modules\reagents\reagent_containers\glass\bottle\robot.dm"