anchor.diff:  	desc = "You're not quite sure how a signal can be bloody."
   	invisibility = 100
   
  -/mob/living/simple_animal/hostile/megafauna/bubblegum/Life()
  -	..()
  -	move_to_delay = CLAMP(round((health/maxHealth) * 10), 5, 10)
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/adjustBruteLoss(amount, updating_health = TRUE, forced = FALSE)
  +	. = ..()
  +	if(. > 0 && prob(25))
  +		var/obj/effect/decal/cleanable/blood/gibs/bubblegum/B = new /obj/effect/decal/cleanable/blood/gibs/bubblegum(loc)
  +		if(prob(40))
  +			step(B, pick(GLOB.cardinals))
  +		else
  +			B.setDir(pick(GLOB.cardinals))
  +
  +/obj/effect/decal/cleanable/blood/gibs/bubblegum
  +	name = "thick blood"
  +	desc = "Thick, splattered blood."
  +	random_icon_states = list("gib3", "gib5", "gib6")
  +	bloodiness = 20
  +
  +/obj/effect/decal/cleanable/blood/gibs/bubblegum/can_bloodcrawl_in()
  +	return TRUE
   
   /mob/living/simple_animal/hostile/megafauna/bubblegum/OpenFire()
  -	anger_modifier = CLAMP(((maxHealth - health)/50),0,20)
  +	anger_modifier = CLAMP(((maxHealth - health)/60),0,20)
   	if(charging)
   		return
  -	ranged_cooldown = world.time + ranged_cooldown_time
  -
  -	blood_warp()
  -
  -	if(prob(25))
  -		INVOKE_ASYNC(src, .proc/blood_spray)
  -
  -	else if(prob(5+anger_modifier/2))
  -		slaughterlings()
  +	ranged_cooldown = world.time + 50
  +	if(!try_bloodattack())
  +		blood_warp()
  +
  +	if(health > maxHealth * 0.5)
  +		if(prob(50 + anger_modifier))
  +			charge(delay = 6)
  +			charge(delay = 4) // The FitnessGram Pacer Test is a multistage aerobic capacity test that progressively gets more difficult as it continues.
  +			charge(delay = 2)
  +			SetRecoveryTime(15)
  +		else
  +			hallucination_charge_around(times = 6, delay = 10 - anger_modifier / 5)
  +			SetRecoveryTime(10)
   	else
  -		if(health > maxHealth/2 && !client)
  -			INVOKE_ASYNC(src, .proc/charge)
  +		if(prob(50 - anger_modifier))
  +			hallucination_charge_around(times = 4, delay = 9)
  +			hallucination_charge_around(times = 4, delay = 8)
  +			hallucination_charge_around(times = 4, delay = 7)
  +			SetRecoveryTime(15)
   		else
  -			INVOKE_ASYNC(src, .proc/triple_charge)
  -
  +			for(var/i = 1 to 5)
  +				INVOKE_ASYNC(src, .proc/hallucination_charge_around, 2, 10, 2, 0)
  +				sleep(5)
  +			SetRecoveryTime(10)
   
   /mob/living/simple_animal/hostile/megafauna/bubblegum/Initialize()
   	. = ..()
  -	for(var/mob/living/simple_animal/hostile/megafauna/bubblegum/B in GLOB.mob_list)
  +	if(istype(src, /mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination))
  +		return
  +	for(var/mob/living/simple_animal/hostile/megafauna/bubblegum/B in GLOB.mob_living_list)
   		if(B != src)
   			return INITIALIZE_HINT_QDEL //There can be only one
   	var/obj/effect/proc_holder/spell/bloodcrawl/bloodspell = new
  
positive.code: 		forceMove(get_turf(found_bloodpool))
  		playsound(get_turf(src), 'sound/magic/exit_blood.ogg', 100, 1, -1)
  		visible_message("<span class='danger'>And springs back out!</span>")
  
  
  /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/blood_spray()
  	visible_message("<span class='danger'>[src] sprays a stream of gore!</span>")
  	var/turf/E = get_edge_target_turf(src, src.dir)
  	var/range = 10
  	var/turf/previousturf = get_turf(src)
  	for(var/turf/J in getline(src,E))
  		if(!range)
  			break
  		new /obj/effect/temp_visual/dir_setting/bloodsplatter(previousturf, get_dir(previousturf, J))
  		if(!previousturf.CanAtmosPass(J))
  			break
  		playsound(J,'sound/effects/splat.ogg', 100, 1, -1)
  		new /obj/effect/decal/cleanable/blood(J)
  		range--
  		previousturf = J
  		sleep(1)
  
  /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/slaughterlings()
  	visible_message("<span class='danger'>[src] summons a shoal of slaughterlings!</span>")
  	for(var/obj/effect/decal/cleanable/blood/H in range(src, 10))
  		if(prob(25))
  			new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/slaughter(H.loc)
  
  /mob/living/simple_animal/hostile/asteroid/hivelordbrood/slaughter
  	name = "slaughterling"
  
negative.code: 	melee_damage_lower = 40
  	melee_damage_upper = 40
  	speed = 1
  	move_to_delay = 5
  	retreat_distance = 5
  	minimum_distance = 5
  	rapid_melee = 8 // every 1/4 second
  	melee_queue_distance = 20 // as far as possible really, need this because of blood warp
  	ranged = 1
  	pixel_x = -32
  	del_on_death = 1
  	crusher_loot = list(/obj/structure/closet/crate/necropolis/bubblegum/crusher)
  	loot = list(/obj/structure/closet/crate/necropolis/bubblegum)
  	blood_volume = BLOOD_VOLUME_MAXIMUM //BLEED FOR ME
  	var/charging = 0
  	var/enrage_till = null
  	medal_type = BOSS_MEDAL_BUBBLEGUM
  	score_type = BUBBLEGUM_SCORE
  	deathmessage = "sinks into a pool of blood, fleeing the battle. You've won, for now... "
  	deathsound = 'sound/magic/enter_blood.ogg'
  
  /obj/item/gps/internal/bubblegum
  	icon_state = null
  