anchor.diff:  			var/blink_counter = 1 + round(anger_modifier * 0.08)
   			switch(pick(possibilities))
   				if("blink_spam") //blink either once or multiple times.
  -					if(health < maxHealth * 0.5 && !target_is_slow && blink_counter > 1)
  +					if(health < maxHealth * 0.5 && blink_counter > 1)
   						visible_message("<span class='hierophant'>\"Mx ampp rsx iwgeti.\"</span>")
   						var/oldcolor = color
   						animate(src, color = "#660099", time = 6)
  -						while(health && target && blink_counter)
  +						sleep(6)
  +						while(health && !QDELETED(target) && blink_counter)
   							if(loc == target.loc || loc == target) //we're on the same tile as them after about a second we can stop now
   								break
   							blink_counter--
   							blinking = FALSE
   							blink(target)
   							blinking = TRUE
  -							sleep(5)
  +							sleep(4 + target_slowness)
   						animate(src, color = oldcolor, time = 8)
   						addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8)
   						sleep(8)
  
positive.code: 					blinking = FALSE
  			return
  
  	if(prob(10 + (anger_modifier * 0.5)) && get_dist(src, target) > 2)
  		blink(target)
  
  	else if(prob(70 - anger_modifier)) //a cross blast of some type
  		if(prob(anger_modifier)) //at us?
  			if(prob(anger_modifier * 2) && health < maxHealth * 0.5) //we're super angry do it at all dirs
  				INVOKE_ASYNC(src, .proc/alldir_blasts, src)
  			else if(prob(60))
  				INVOKE_ASYNC(src, .proc/cardinal_blasts, src)
  			else
  				INVOKE_ASYNC(src, .proc/diagonal_blasts, src)
  		else //at them?
  			if(prob(anger_modifier * 2) && health < maxHealth * 0.5 && !target_is_slow) //we're super angry do it at all dirs
  				INVOKE_ASYNC(src, .proc/alldir_blasts, target)
  			else if(prob(60))
  				INVOKE_ASYNC(src, .proc/cardinal_blasts, target)
  			else
  				INVOKE_ASYNC(src, .proc/diagonal_blasts, target)
  	else if(chaser_cooldown < world.time) //if chasers are off cooldown, fire some!
  		var/obj/effect/temp_visual/hierophant/chaser/C = new /obj/effect/temp_visual/hierophant/chaser(loc, src, target, chaser_speed, FALSE)
  		chaser_cooldown = world.time + initial(chaser_cooldown)
  		if((prob(anger_modifier) || target.Adjacent(src)) && target != src)
  			var/obj/effect/temp_visual/hierophant/chaser/OC = new /obj/effect/temp_visual/hierophant/chaser(loc, src, target, max(1.5, 5 - anger_modifier * 0.07), FALSE)
  			OC.moving = 4
  			OC.moving_dir = pick(GLOB.cardinal - C.moving_dir)
  	else //just release a burst of power
  		INVOKE_ASYNC(src, .proc/burst, get_turf(src))
  
  
negative.code: 
  The text this boss speaks is ROT4, use ROT22 to decode
  
  The Hierophant's attacks are as follows;
  - These attacks happen at a random, increasing chance:
  	If target is at least 2 tiles away; Blinks to the target after a very brief delay, damaging everything near the start and end points.
  		As above, but does so multiple times if below half health.
  	Rapidly creates cardinal and diagonal Cross Blasts under a target.
  	If chasers are off cooldown, creates 4 chasers.
  
  - IF TARGET IS OUTSIDE THE ARENA: Creates an arena around the target for 10 seconds, blinking to the target if not in the created arena.
  	The arena has a 20 second cooldown, giving people a small window to get the fuck out.
  
  - If no chasers exist, creates a chaser that will seek its target, leaving a trail of blasts.
  	Is more likely to create a second, slower, chaser if hurt.
  - If the target is at least 2 tiles away, may Blink to the target after a very brief delay, damaging everything near the start and end points.
  - Creates a cardinal or diagonal blast(Cross Blast) under its target, exploding after a short time.
  	If below half health, the created Cross Blast may fire in all directions.
  - Creates an expanding AoE burst.
  
  - IF TARGET WAS STRUCK IN MELEE: Creates a 3x3 square of blasts under the target.
  
  Cross Blasts and the AoE burst gain additional range as Hierophant loses health, while Chasers gain additional speed.
  
  