anchor.diff:  					blinking = TRUE
   					var/oldcolor = color
   					animate(src, color = "#660099", time = 6)
  -					while(health && target && cross_counter)
  +					sleep(6)
  +					while(health && !QDELETED(target) && cross_counter)
   						cross_counter--
  -						var/delay = 7
   						if(prob(60))
   							INVOKE_ASYNC(src, .proc/cardinal_blasts, target)
   						else
   							INVOKE_ASYNC(src, .proc/diagonal_blasts, target)
  -							delay = 5 //this one isn't so mean, so do the next one faster(if there is one)
  -						sleep(delay)
  +						sleep(6 + 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: 
  /mob/living/simple_animal/hostile/megafauna/hierophant/OpenFire()
  	calculate_rage()
  	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
  		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.
  