anchor.diff:  	user.visible_message("<span class='notice'>[user] scatters [src] in all directions.</span>", \
   						 "<span class='notice'>You scatter [src] across the area. The particles slowly fade away.</span>")
   	user.drop_item()
  -	qdel(src)
  +	scatter()
   
   /obj/item/weapon/ectoplasm/revenant/throw_impact(atom/hit_atom)
   	..()
   	if(inert)
   		return
   	visible_message("<span class='notice'>[src] breaks into particles upon impact, which fade away to nothingness.</span>")
  -	qdel(src)
  +	scatter()
   
   /obj/item/weapon/ectoplasm/revenant/examine(mob/user)
   	..()
  
positive.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) || 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
  	var/mob/living/simple_animal/revenant/R = new(get_turf(src))
  	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
  				R.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 = get_candidates(ROLE_REVENANT)
  		if(!candidates.len)
  			qdel(R)
  			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)
  		key_of_revenant = C.key
  		if(!key_of_revenant)
  			qdel(R)
  			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
  	var/datum/mind/player_mind = new /datum/mind(key_of_revenant)
  	R.essence_regen_cap = essence
  	R.essence = R.essence_regen_cap
  	player_mind.active = 1
  	player_mind.transfer_to(R)
  	player_mind.assigned_role = "revenant"
  	player_mind.special_role = "Revenant"
  	SSticker.mode.traitors |= player_mind
  	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>")
  	qdel(src)
  
  
  //objectives
  /datum/objective/revenant
  
negative.code: 	death()
  
  /mob/living/simple_animal/revenant/death()
  	if(!revealed || stasis) //Revenants cannot die if they aren't revealed //or are already dead
  		return 0
  	to_chat(src, "<span class='revendanger'>NO! No... it's too late, you can feel your essence [pick("breaking apart", "drifting away")]...</span>")
  	notransform = TRUE
  	revealed = TRUE
  