anchor.diff:  			to_chat(src, "<span class='revenminor'>Lost [essence_amt]E[source ? " from [source]":""].</span>")
   	return 1
   
  +/mob/living/simple_animal/revenant/proc/death_reset()
  +	revealed = FALSE
  +	unreveal_time = 0 
  +	notransform = 0
  +	unstun_time = 0
  +	inhibited = FALSE
  +	draining = FALSE
  +	incorporeal_move = 3
  +	invisibility = INVISIBILITY_REVENANT
  +	alpha=255
  +	stasis = 0
  +
   
   //reforming
   /obj/item/weapon/ectoplasm/revenant
  
positive.code: 	var/reforming = TRUE
  	var/inert = FALSE
  	var/client/client_to_revive
  
  /obj/item/weapon/ectoplasm/revenant/New()
  	..()
  	addtimer(CALLBACK(src, .proc/try_reform), 600)
  
  /obj/item/weapon/ectoplasm/revenant/proc/try_reform()
  	if(reforming)
  
negative.code: 		to_chat(user, "<span class='revenwarning'>It is shifting and distorted. It would be wise to destroy this.</span>")
  
  /obj/item/weapon/ectoplasm/revenant/proc/reform()
  	if(QDELETED(src) || QDELETED(revenant) || inert)
  		return
  	var/key_of_revenant
  	message_admins("Revenant ectoplasm was left undestroyed for 1 minute and is reforming into a new revenant.")
  	loc = get_turf(src) //In case it's in a backpack or someone's hand
  	revenant.forceMove(loc)
  	if(client_to_revive)
  		for(var/mob/M in GLOB.dead_mob_list)
  			if(M.client == client_to_revive) //Only recreates the mob if the mob the client is in is dead
  				revenant.client = client_to_revive
  				key_of_revenant = client_to_revive.key
  	if(!key_of_revenant)
  		message_admins("The new revenant's old client either could not be found or is in a new, living mob - grabbing a random candidate instead...")
  		var/list/candidates = pollCandidatesForMob("Do you want to be [revenant.name] (reforming)?", "revenant", null, ROLE_REVENANT, 50, revenant)
  		if(!candidates.len)
  			qdel(revenant)
  			message_admins("No candidates were found for the new revenant. Oh well!")
  			inert = TRUE
  			visible_message("<span class='revenwarning'>[src] settles down and seems lifeless.</span>")
  			return
  		var/client/C = pick(candidates)
  		revenant.client = C
  		key_of_revenant = C.key
  		if(!key_of_revenant)
  			qdel(revenant)
  			message_admins("No ckey was found for the new revenant. Oh well!")
  			inert = TRUE
  			visible_message("<span class='revenwarning'>[src] settles down and seems lifeless.</span>")
  			return
  
  	message_admins("[key_of_revenant] has been [client_to_revive ? "re":""]made into a revenant by reforming ectoplasm.")
  	log_game("[key_of_revenant] was [client_to_revive ? "re":""]made as a revenant by reforming ectoplasm.")
  	visible_message("<span class='revenboldnotice'>[src] suddenly rises into the air before fading away.</span>")
  
  	revenant.essence = essence
  	revenant.essence_regen_cap = essence
  	revenant.death_reset()
  	revenant.key = key_of_revenant
  	revenant = null
  	qdel(src)
  
  /obj/item/weapon/ectoplasm/revenant/Destroy()
  	if(!QDELETED(revenant))
  		qdel(revenant)
  	..()
  
  //objectives
  /datum/objective/revenant
  