anchor.diff:  	floor = 1
   	return 1
   
  +/**
  +  * Causes the glowshroom to decay by decreasing its endurance.
  +  *
  +  * Arguments:
  +  * * spread - Boolean to indicate if the decay is due to spreading or natural decay.
  +  * * amount - Amount of endurance to be reduced due to spread decay.
  +  */
  +/obj/structure/glowshroom/proc/Decay(spread, amount)
  +	if (spread) // Decay due to spread
  +		myseed.endurance -= amount
  +	else // Timed decay
  +		myseed.endurance -= 1
  +		if (myseed.endurance > 0)
  +			addtimer(CALLBACK(src, .proc/Decay), delay_decay, FALSE) // Recall decay timer
  +			return
  +	if (myseed.endurance < 1) // Plant is gone
  +		qdel(src)
  +
   /obj/structure/glowshroom/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
   	if(damage_type == BURN && damage_amount)
   		playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE)
  
positive.code: 	else //if on the floor, glowshroom on-floor sprite
  		icon_state = base_icon_state
  
  	addtimer(CALLBACK(src, .proc/Spread), delay)
  
  /obj/structure/glowshroom/proc/Spread()
  	var/turf/ownturf = get_turf(src)
  	var/shrooms_planted = 0
  	for(var/i in 1 to myseed.yield)
  		if(prob(1/(generation * generation) * 100))//This formula gives you diminishing returns based on generation. 100% with 1st gen, decreasing to 25%, 11%, 6, 4, 2...
  			var/list/possibleLocs = list()
  			var/spreadsIntoAdjacent = FALSE
  
  
negative.code: 			if(shroomCount >= placeCount)
  				continue
  
  			Decay(TRUE, 2) // Decay before spawning new mushrooms to reduce their endurance
  			var/obj/structure/glowshroom/child = new type(newLoc, myseed, TRUE, TRUE)
  			child.generation = generation + 1
  			shrooms_planted++
  
  			CHECK_TICK
  	if(shrooms_planted <= myseed.yield) //if we didn't get all possible shrooms planted, try again later
  		myseed.adjust_yield(-shrooms_planted)
  		addtimer(CALLBACK(src, .proc/Spread), delay_spread)
  
  /obj/structure/glowshroom/proc/CalcDir(turf/location = loc)
  	var/direction = 16
  