anchor.diff:  
   /mob/living/simple_animal/hostile/megafauna/hierophant/OpenFire()
   	calculate_rage()
  -	var/target_is_slow = FALSE
  +	if(blinking)
  +		return
  +
  +	var/target_slowness = 0
   	if(isliving(target))
   		var/mob/living/L = target
   		if(!blinking && L.stat == DEAD && get_dist(src, L) > 2)
   			blink(L)
   			return
  -		if(L.movement_delay() > 1.5)
  -			target_is_slow = TRUE
  -	chaser_speed = max(1, (3 - anger_modifier * 0.04) + target_is_slow * 0.5)
  -	if(blinking)
  -		return
  +		target_slowness += L.movement_delay()
  +	target_slowness = max(target_slowness, 1)
  +	chaser_speed = max(1, (3 - anger_modifier * 0.04) + ((target_slowness - 1) * 0.5))
   
   	arena_trap(target)
   	ranged_cooldown = world.time + max(5, ranged_cooldown_time - anger_modifier * 0.75) //scale cooldown lower with high anger.
  
positive.code: 			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)
  						visible_message("<span class='hierophant'>\"Mx ampp rsx iwgeti.\"</span>")
  						var/oldcolor = color
  						animate(src, color = "#660099", time = 6)
  						while(health && 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)
  						animate(src, color = oldcolor, time = 8)
  						addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8)
  						sleep(8)
  
negative.code: 					blinking = TRUE
  					var/oldcolor = color
  					animate(src, color = "#660099", time = 6)
  					sleep(6)
  					while(health && !QDELETED(target) && cross_counter)
  						cross_counter--
  						if(prob(60))
  							INVOKE_ASYNC(src, .proc/cardinal_blasts, target)
  						else
  							INVOKE_ASYNC(src, .proc/diagonal_blasts, target)
  						sleep(6 + target_slowness)
  					animate(src, color = oldcolor, time = 8)
  					addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8)
  					sleep(8)
  