diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm
index cabf8231c62..4b6de9371d6 100644
--- a/code/game/objects/effects/glowshroom.dm
+++ b/code/game/objects/effects/glowshroom.dm
@@ -6,7 +6,7 @@
opacity = 0
density = 0
icon = 'icons/obj/lighting.dmi'
- icon_state = "glowshroomf"
+ icon_state = "glowshroom" //replaced in New
layer = 2.1
var/endurance = 30
var/potency = 30
@@ -16,6 +16,10 @@
var/generation = 1
var/spreadIntoAdjacentChance = 60
+obj/effect/glowshroom/glowcap
+ name = "glowcap"
+ icon_state = "glowcap"
+
/obj/effect/glowshroom/single
yield = 0
@@ -23,6 +27,7 @@
..()
SetLuminosity(round(potency/10))
dir = CalcDir()
+ var/base_icon_state = initial(icon_state)
if(!floor)
switch(dir) //offset to make it be on the wall rather than on the floor
if(NORTH)
@@ -33,9 +38,9 @@
pixel_x = 32
if(WEST)
pixel_x = -32
- icon_state = "glowshroom[rand(1,3)]"
+ icon_state = "[base_icon_state][rand(1,3)]"
else //if on the floor, glowshroom on-floor sprite
- icon_state = "glowshroomf"
+ icon_state = "[base_icon_state]f"
spawn(delay)
Spread()
@@ -71,13 +76,13 @@
if(shroomCount >= placeCount)
continue
- var/obj/effect/glowshroom/child = new /obj/effect/glowshroom(newLoc)//The baby mushrooms have different stats :3
+ var/obj/effect/glowshroom/child = new type(newLoc)//The baby mushrooms have different stats :3
child.potency = max(potency+rand(-3,6), 0)
child.yield = max(yield+rand(-1,2), 0)
child.delay = max(delay+rand(-30,60), 0)
child.endurance = max(endurance+rand(-3,6), 1)
child.generation = generation+1
- child.desc = "This is a [child.generation]\th generation glowshroom!"//I added this for testing, but I figure I'll leave it in.
+ child.desc = "This is a [child.generation]\th generation [child.name]!"//I added this for testing, but I figure I'll leave it in.
/obj/effect/glowshroom/proc/CalcDir(turf/location = loc)
set background = BACKGROUND_ENABLED
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index 0de09b0af7d..02f29310def 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -1202,8 +1202,8 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
planted.endurance = endurance
planted.yield = yield
planted.potency = potency
+ user << "You plant [src]."
qdel(src)
- user << "You plant the glowshroom."
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/Destroy()
if(istype(loc,/mob))
@@ -1218,6 +1218,27 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
user.AddLuminosity(round(-potency / 10,1))
SetLuminosity(round(potency / 10,1))
+/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/glowcap
+ seed = /obj/item/seeds/glowcap
+ name = "glowcap cluster"
+ desc = "Mycena Ruthenia: This species of mushroom glows in the dark, but aren't bioluminescent. They're warm to the touch..."
+ icon_state = "glowcap"
+ filling_color = "#00FA9A"
+
+/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/glowcap/On_Consume()
+ if(!reagents.total_volume)
+ var/batteries_recharged = 0
+ for(var/obj/item/weapon/stock_parts/cell/C in usr.GetAllContents())
+ var/newcharge = (potency*0.01)*C.maxcharge
+ if(C.charge < newcharge)
+ C.charge = newcharge
+ if(isobj(C.loc))
+ var/obj/O = C.loc
+ O.update_icon() //update power meters and such
+ batteries_recharged = 1
+ if(batteries_recharged)
+ usr << "Battery has recovered."
+ ..()
/obj/item/weapon/reagent_containers/food/snacks/grown/shell/moneyfruit
seed = /obj/item/seeds/cashseed
diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm
index a4449f813b4..6a75e25d61c 100644
--- a/code/modules/hydroponics/seeds.dm
+++ b/code/modules/hydroponics/seeds.dm
@@ -757,6 +757,25 @@
growthstages = 4
plant_type = 2
rarity = 20
+ mutatelist = list(/obj/item/seeds/glowcap)
+
+/obj/item/seeds/glowcap
+ name = "pack of glowcap mycelium"
+ desc = "This mycelium -powers- into mushrooms!"
+ icon_state = "mycelium-glowcap"
+ species = "glowcap"
+ plantname = "Glowcaps"
+ product = /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/glowcap
+ lifespan = 120 //ten times that is the delay
+ endurance = 30
+ maturation = 15
+ production = 1
+ yield = 3 //-> spread
+ potency = 30 //-> brightness
+ oneharvest = 1
+ growthstages = 4
+ plant_type = 2
+ rarity = 20
/obj/item/seeds/plumpmycelium
name = "pack of plump-helmet mycelium"
diff --git a/icons/obj/hydroponics/growing.dmi b/icons/obj/hydroponics/growing.dmi
index fd0f0dcc7c6..019c0a84a87 100644
Binary files a/icons/obj/hydroponics/growing.dmi and b/icons/obj/hydroponics/growing.dmi differ
diff --git a/icons/obj/hydroponics/harvest.dmi b/icons/obj/hydroponics/harvest.dmi
index 99baa34e701..7cf90674b9f 100644
Binary files a/icons/obj/hydroponics/harvest.dmi and b/icons/obj/hydroponics/harvest.dmi differ
diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi
index 8fff4c26ba5..081e7bf8e3d 100644
Binary files a/icons/obj/hydroponics/seeds.dmi and b/icons/obj/hydroponics/seeds.dmi differ
diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi
index 6a1b5c236c7..6c980811ef3 100644
Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ