diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm
index 87f79a369d9..dc5cbe488a9 100644
--- a/code/defines/obj/hydro.dm
+++ b/code/defines/obj/hydro.dm
@@ -92,6 +92,23 @@
plant_type = 0
growthstages = 6
+/obj/item/seeds/glowberryseed
+ name = "Glow Berry seeds"
+ desc = "Seeds that grows into glow berries."
+ icon_state = "seed-glowberry"
+ mypath = "/obj/item/seeds/glowberryseed"
+ species = "glowberry"
+ plantname = "Glow Berry bush"
+ productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/glowberries"
+ lifespan = 30
+ endurance = 25
+ maturation = 5
+ production = 5
+ yield = 2
+ potency = 10
+ plant_type = 0
+ growthstages = 6
+
/obj/item/seeds/bananaseed
name = "Banana seeds"
desc = "When grown, keep away from clown."
@@ -140,6 +157,23 @@
plant_type = 0
growthstages = 6
+/obj/item/seeds/bloodtomatoseed
+ name = "Blood Tomato seeds"
+ desc = "Used to grow blood tomotoes."
+ icon_state = "seed-bloodtomato"
+ mypath = "/obj/item/seeds/bloodtomatoseed"
+ species = "bloodtomato"
+ plantname = "Blood Tomato plant"
+ productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/bloodtomato"
+ lifespan = 25
+ endurance = 20
+ maturation = 8
+ production = 6
+ yield = 3
+ potency = 10
+ plant_type = 0
+ growthstages = 6
+
/obj/item/seeds/tomatoseed
name = "Tomato seeds"
desc = "Used to grow tomotoes."
@@ -157,6 +191,23 @@
plant_type = 0
growthstages = 6
+/obj/item/seeds/bluetomatoseed
+ name = "Blue Tomato seeds"
+ desc = "Used to grow blue tomotoes."
+ icon_state = "seed-bluetomato"
+ mypath = "/obj/item/seeds/bluetomatoseed"
+ species = "bluetomato"
+ plantname = "Blue Tomato plant"
+ productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/bluetomato"
+ lifespan = 25
+ endurance = 15
+ maturation = 8
+ production = 6
+ yield = 2
+ potency = 10
+ plant_type = 0
+ growthstages = 6
+
/obj/item/seeds/cornseed
name = "Corn seeds"
desc = "I don't mean to sound corny..."
@@ -404,6 +455,24 @@
growthstages = 3
plant_type = 2
+/obj/item/seeds/walkingmushroommycelium
+ name = "Walking Mushroom mycelium"
+ desc = "These seeds will grow into huge stuff."
+ icon_state = "mycelium-walkingmushroom"
+ mypath = "/obj/item/seeds/walkingmushroommycelium"
+ species = "walkingmushroom"
+ plantname = "Walking Mushroom"
+ productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom"
+ lifespan = 30
+ endurance = 30
+ maturation = 5
+ production = 1
+ yield = 4
+ potency = 0
+ oneharvest = 1
+ growthstages = 3
+ plant_type = 2
+
/obj/item/seeds/nettleseed
name = "Nettle seeds"
desc = "Grows into nettle."
@@ -657,6 +726,23 @@
plant_type = 0
growthstages = 6
+/obj/item/seeds/deathberryseed
+ name = "Death Berry seeds"
+ desc = "Seeds that grows into death berries."
+ icon_state = "seed-deathberry"
+ mypath = "/obj/item/seeds/deathberryseed"
+ species = "deathberry"
+ plantname = "Death Berry bush"
+ productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/deathberries"
+ lifespan = 30
+ endurance = 20
+ maturation = 5
+ production = 5
+ yield = 3
+ potency = 50
+ plant_type = 0
+ growthstages = 6
+
/obj/item/seeds/grassseed
name = "Grass seeds"
desc = "Seeds that will one day become sheep food."
@@ -851,6 +937,33 @@
..()
reagents.add_reagent("nutriment", 2)
+/obj/item/weapon/reagent_containers/food/snacks/grown/glowberries
+ seed = "/obj/item/seeds/glowberryseed"
+ name = "Glow Berries"
+ desc = "Nutritious!"
+ var/on = 1
+ var/brightness_on = 2 //luminosity when on
+ icon_state = "glowberrypile"
+ potency = 10
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 1)
+ reagents.add_reagent("radium", max(round(potency / 5, 1), 4))
+ bitesize = max(round(reagents.total_volume / 2, 1), 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/grown/glowberries/Del()
+ if(istype(loc,/mob))
+ loc.sd_SetLuminosity(loc.luminosity - potency/5)
+ ..()
+
+/obj/item/weapon/reagent_containers/food/snacks/grown/glowberries/pickup(mob/user)
+ src.sd_SetLuminosity(0)
+ user.sd_SetLuminosity(user.luminosity + potency/5)
+
+/obj/item/weapon/reagent_containers/food/snacks/grown/glowberries/dropped(mob/user)
+ user.sd_SetLuminosity(user.luminosity - potency/5)
+ src.sd_SetLuminosity(potency/5)
+
/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod
seed = "/obj/item/seeds/cocoapodseed"
name = "Cocoa Pod"
@@ -895,6 +1008,18 @@
reagents.add_reagent("toxin", max(round(potency / 5, 1), 4))
bitesize = max(round(reagents.total_volume / 2, 1), 1)
+/obj/item/weapon/reagent_containers/food/snacks/grown/deathberries
+ seed = "/obj/item/seeds/deathberryseed"
+ name = "Death Berries"
+ desc = "Nutritious in a deadly way."
+ icon_state = "deathberrypile"
+ potency = 50
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 1)
+ reagents.add_reagent("toxin", max(round(potency / 3, 1), 4))
+ bitesize = max(round(reagents.total_volume / 2, 1), 1)
+
/obj/item/weapon/reagent_containers/food/snacks/grown/athelasmorganstears
seed = "/obj/item/seeds/athelasmorganstearsseed"
name = "Morgan's Tears"
@@ -1037,6 +1162,31 @@
..()
reagents.add_reagent("nutriment", 2)
+/obj/item/weapon/reagent_containers/food/snacks/grown/bloodtomato
+ seed = "/obj/item/seeds/bloodtomatoseed"
+ name = "Blood Tomato"
+ desc = "So bloody...so...very...bloody....AHHHH!!!!"
+ icon_state = "bloodtomato"
+ potency = 10
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 2)
+ reagents.add_reagent("blood", max(round(potency / 2, 1), 4))
+ bitesize = max(round(reagents.total_volume / 2, 1), 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/grown/bluetomato
+ seed = "/obj/item/seeds/bluetomatoseed"
+ name = "Blue Tomato"
+ desc = "Tom-mae-to or to-mah-to? You decide."
+ icon_state = "bluetomato"
+ potency = 10
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 1)
+ reagents.add_reagent("lube", max(round(potency / 5, 1), 4))
+ bitesize = max(round(reagents.total_volume / 2, 1), 1)
+
+
/obj/item/weapon/reagent_containers/food/snacks/grown/wheat
seed = "/obj/item/seeds/wheatseed"
name = "Wheat"
@@ -1140,6 +1290,34 @@
reagents.add_reagent("nutriment", 4)
bitesize = 2
+/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom
+ seed = "/obj/item/seeds/walkingmushroom"
+ name = "Walking Mushroom"
+ desc = "The beginging of the great walk."
+ icon_state = "walkingmushroom"
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 4)
+ bitesize = 2
+ if(istype(src.loc,/mob))
+ pickup(src.loc)
+ lifespan = 120
+ endurance = 30
+ maturation = 15
+ production = 1
+ yield = 3
+ potency = 30
+ plant_type = 2
+
+/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom/attack_self(mob/user as mob)
+ if(istype(user.loc,/turf/space))
+ return
+ new /obj/livestock/walkingmushroom(user.loc)
+
+ del(src)
+
+ user << "You plant the walking mushroom."
+
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle
seed = "/obj/item/seeds/chantermycelium"
name = "Chanterelle"
diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm
index 5b52d40b1aa..a7f800330c8 100644
--- a/code/game/machinery/hydroponics.dm
+++ b/code/game/machinery/hydroponics.dm
@@ -301,6 +301,10 @@ obj/machinery/hydroponics/proc/mutatespecie() // Mutagent produced a new plant!
del(src.myseed)
src.myseed = new /obj/item/seeds/angelmycelium
+ else if ( istype(src.myseed, /obj/item/seeds/plumpmycelium ))
+ del(src.myseed)
+ src.myseed = new /obj/item/seeds/walkingmushroommycelium
+
else if ( istype(src.myseed, /obj/item/seeds/chiliseed ))
del(src.myseed)
src.myseed = new /obj/item/seeds/icepepperseed
@@ -308,6 +312,22 @@ obj/machinery/hydroponics/proc/mutatespecie() // Mutagent produced a new plant!
else if ( istype(src.myseed, /obj/item/seeds/berryseed ))
del(src.myseed)
src.myseed = new /obj/item/seeds/poisonberryseed
+
+ else if ( istype(src.myseed, /obj/item/seeds/berryseed ))
+ del(src.myseed)
+ src.myseed = new /obj/item/seeds/glowberryseed
+
+ else if ( istype(src.myseed, /obj/item/seeds/poisonberryseed ))
+ del(src.myseed)
+ src.myseed = new /obj/item/seeds/deathberryseed
+
+ else if ( istype(src.myseed, /obj/item/seeds/tomatoseed ))
+ del(src.myseed)
+ src.myseed = new /obj/item/seeds/bluetomatoseed
+
+ else if ( istype(src.myseed, /obj/item/seeds/tomatoseed ))
+ del(src.myseed)
+ src.myseed = new /obj/item/seeds/bloodtomatoseed
/*
else if ( istype(src.myseed, /obj/item/seeds/tomatoseed ))
del(src.myseed)
diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm
index 2d1be7ee879..444ca009034 100644
--- a/code/game/objects/items/weapons/clown_items.dm
+++ b/code/game/objects/items/weapons/clown_items.dm
@@ -19,6 +19,18 @@ BIKE HORN
M.stunned = 8
M.weakened = 5
+/obj/item/weapon/reagent_containers/food/snacks/grown/bluetomato/HasEntered(AM as mob|obj)
+ if (istype(AM, /mob/living/carbon))
+ var/mob/M = AM
+ if (istype(M, /mob/living/carbon/human) && (isobj(M:shoes) && M:shoes.flags&NOSLIP))
+ return
+
+ M.pulling = null
+ M << "\blue You slipped on the [name]!"
+ playsound(src.loc, 'slip.ogg', 50, 1, -3)
+ M.stunned = 10
+ M.weakened = 7
+
/obj/item/weapon/soap/HasEntered(AM as mob|obj) //EXACTLY the same as bananapeel for now, so it makes sense to put it in the same dm -- Urist
if (istype(AM, /mob/living/carbon))
var/mob/M = AM
diff --git a/code/game/objects/items/weapons/guns_new.dm b/code/game/objects/items/weapons/guns_new.dm
index 710378e2e02..0e6e6c24c23 100644
--- a/code/game/objects/items/weapons/guns_new.dm
+++ b/code/game/objects/items/weapons/guns_new.dm
@@ -73,6 +73,17 @@ var/const/PROJECTILE_DART = 8
if(M.bodytemperature > temperature)
M.bodytemperature = temperature
+ plasma
+ name = "plasma blast"
+ icon_state = "plasma_2"
+ var/temperature = 800
+
+ proc/Heat(atom/A as mob|obj|turf|area)
+ if(istype(A, /mob))
+ var/mob/M = A
+ if(M.bodytemperature < temperature)
+ M.bodytemperature = temperature
+
@@ -104,6 +115,9 @@ var/const/PROJECTILE_DART = 8
if(istype(src, /obj/item/projectile/freeze))
var/obj/item/projectile/freeze/F = src
F.Freeze(A)
+ if(istype(src, /obj/item/projectile/plasma))
+ var/obj/item/projectile/plasma/P = src
+ P.Heat(A)
else
A.bullet_act(damage_type, src, def_zone)
@@ -846,6 +860,91 @@ var/const/PROJECTILE_DART = 8
if (istype(src.loc, /mob))
attack_self(src.loc)
+ plasma
+ name = "plasma gun"
+ icon_state = "plasmagun"
+ fire_sound = 'pulse3.ogg'
+ desc = "A gun that fires super heated plasma at targets, thus increasing their overal body temparature and also harming them."
+ var/temperature = T20C
+ var/current_temperature = T20C
+ charge_cost = 100
+ origin_tech = "combat=3;materials=4;powerstorage=3;magnets=2"
+
+
+ New()
+ power_supply = new /obj/item/weapon/cell/crap(src)
+ power_supply.give(power_supply.maxcharge)
+ spawn()
+ Life()
+
+
+ load_into_chamber()
+ if(in_chamber)
+ return 1
+ if(power_supply.charge < charge_cost)
+ return 0
+ in_chamber = new /obj/item/projectile/plasma(src)
+ power_supply.use(charge_cost)
+ return 1
+
+ attack_self(mob/living/user as mob)
+ user.machine = src
+ var/temp_text = ""
+ if(temperature > (T0C + 50))
+ temp_text = "[temperature] ([round(temperature+T0C)]°C) ([round(temperature*1.8+459.67)]°F)"
+ else
+ temp_text = "[temperature] ([round(temperature+T0C)]°C) ([round(temperature*1.8+459.67)]°F)"
+
+ var/dat = {"Plasma Gun Configuration:
+ Current output temperature: [temp_text]
+ Target output temperature: - - - [current_temperature] + + +
+ "}
+
+ user << browse(dat, "window=plasmagun;size=450x300")
+ onclose(user, "plasmagun")
+
+ Topic(href, href_list)
+ if (..())
+ return
+ usr.machine = src
+ src.add_fingerprint(usr)
+ if(href_list["temp"])
+ var/amount = text2num(href_list["temp"])
+ if(amount > 0)
+ src.current_temperature = min(T20C, src.current_temperature+amount)
+ else
+ src.current_temperature = max(800, src.current_temperature+amount)
+ if (istype(src.loc, /mob))
+ attack_self(src.loc)
+ src.add_fingerprint(usr)
+ return
+
+ proc/Life()
+ while(src)
+ sleep(10)
+
+ switch(temperature)
+ if(601 to 800) charge_cost = 500
+ if(401 to 600) charge_cost = 150
+ if(201 to 400) charge_cost = 100
+ if(101 to 200) charge_cost = 75
+ if(51 to 100) charge_cost = 50
+ if(0 to 50) charge_cost = 25
+
+ if(current_temperature != temperature)
+ var/difference = abs(current_temperature + temperature)
+ if(difference >= 10)
+ if(current_temperature < temperature)
+ temperature -= 10
+ else
+ temperature += 10
+
+ else
+ temperature = current_temperature
+
+ if (istype(src.loc, /mob))
+ attack_self(src.loc)
+
diff --git a/code/game/objects/livestock.dm b/code/game/objects/livestock.dm
index 72a6a17f868..3038d40ebc9 100644
--- a/code/game/objects/livestock.dm
+++ b/code/game/objects/livestock.dm
@@ -439,6 +439,26 @@
stun_chance = 40
intelligence = "Assistant"
+/obj/livestock/walkingmushroom
+ name = "Walking Mushroom"
+ desc = "A...huge...mushroom...with legs!?"
+ icon_state = "walkingmushroom"
+ species = "walkingmushroom"
+ cowardly = 1
+ health = 50
+ maxhealth = 50
+ strength = 0
+ cycle_pause = 10
+ patience = 25
+ view_range = 8
+ intelligence = "Captain"
+ var/stun_chance = 0
+ New()
+ ..()
+ new /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice(src)
+ new /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice(src)
+
/obj/livestock/lizard
name = "Lizard"
desc = "A cute tiny lizard."
diff --git a/code/modules/food/food.dm b/code/modules/food/food.dm
index 7b540553808..73ad66d8e9e 100644
--- a/code/modules/food/food.dm
+++ b/code/modules/food/food.dm
@@ -133,6 +133,16 @@
reagents.add_reagent("carpotoxin", 3)
src.bitesize = 6
+/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice
+ name = "huge mushroom slice"
+ desc = "A slice from a huge mushroom."
+ icon_state = "hugemushroomslice"
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 3)
+ reagents.add_reagent("psilocybin", 3)
+ src.bitesize = 6
+
/obj/item/weapon/reagent_containers/food/snacks/bearmeat
name = "bear meat"
desc = "A very manly slab of meat."
diff --git a/config/admins.txt b/config/admins.txt
index 20f5f1b9bca..2f118284d87 100644
--- a/config/admins.txt
+++ b/config/admins.txt
@@ -7,6 +7,7 @@ chicagoted - Game Master
neofite - Game Master
uristmcdorf - Game Master
cinless - Game Master
+firecage - Game Master
mport2004 - Game Admin
diff --git a/icons/mob/livestock.dmi b/icons/mob/livestock.dmi
index 28dd442161f..760788a1d5e 100644
Binary files a/icons/mob/livestock.dmi and b/icons/mob/livestock.dmi differ
diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi
index 6ae4d3b8507..406d963e7fc 100644
Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ
diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi
index 37a5ffaea55..939bec056c5 100644
Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ
diff --git a/icons/obj/harvest.dmi b/icons/obj/harvest.dmi
index e32e55de9e7..8c6d1857403 100644
Binary files a/icons/obj/harvest.dmi and b/icons/obj/harvest.dmi differ
diff --git a/icons/obj/hydroponics.dmi b/icons/obj/hydroponics.dmi
index 33d9ee46f1c..b8feec823ae 100644
Binary files a/icons/obj/hydroponics.dmi and b/icons/obj/hydroponics.dmi differ
diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi
index 5d32aab06a9..b17ccefb747 100644
Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ
diff --git a/icons/obj/seeds.dmi b/icons/obj/seeds.dmi
index a25aaef55ae..46ce0c1d016 100644
Binary files a/icons/obj/seeds.dmi and b/icons/obj/seeds.dmi differ