anchor.diff:  		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)
  +		blood_enrage()
  +		return TRUE
  +	return FALSE
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/blood_enrage(var/boost_time = 30)
  +	enrage_till = world.time + boost_time
  +	retreat_distance = null
  +	minimum_distance = 1
  +	change_move_delay(3.75)
  +	var/newcolor = rgb(149, 10, 10)
  +	add_atom_colour(newcolor, TEMPORARY_COLOUR_PRIORITY)
  +	var/datum/callback/cb = CALLBACK(src, .proc/blood_enrage_end)
  +	addtimer(cb, boost_time)
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/blood_enrage_end(var/newcolor = rgb(149, 10, 10))
  +	retreat_distance = initial(retreat_distance)
  +	minimum_distance = initial(minimum_distance)
  +	change_move_delay()
  +	remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, newcolor)
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/is_enraged()
  +	return (enrage_till > world.time)
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/change_move_delay(var/newmove = initial(move_to_delay))
  +	move_to_delay = newmove
  +	handle_automated_action() // need to recheck movement otherwise move_to_delay won't update until the next checking aka will be wrong speed for a bit
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/get_pools(turf/T, range)
  +	. = list()
  +	for(var/obj/effect/decal/cleanable/nearby in view(T, range))
  +		if(nearby.can_bloodcrawl_in())
  +			. += nearby
  +
  +/obj/effect/decal/cleanable/blood/bubblegum
  +	bloodiness = 0
  +
  +/obj/effect/decal/cleanable/blood/bubblegum/can_bloodcrawl_in()
  +	return TRUE
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/hallucination_charge_around(var/times = 4, var/delay = 6, var/chargepast = 0, var/useoriginal = 1)
  +	var/startingangle = rand(1, 360)
  +	if(!target)
  +		return
  +	var/turf/chargeat = get_turf(target)
  +	var/srcplaced = 0
  +	for(var/i = 1 to times)
  +		var/ang = (startingangle + 360/times * i)
  +		if(!chargeat)
  +			return
  +		var/turf/place = locate(chargeat.x + cos(ang) * times, chargeat.y + sin(ang) * times, chargeat.z)
  +		if(!place)
  +			continue
  +		if(!srcplaced && useoriginal)
  +			forceMove(place)
  +			srcplaced = 1
  +			continue
  +		var/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination/B = new /mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination(src.loc)
  +		B.forceMove(place)
  +		INVOKE_ASYNC(B, .proc/charge, chargeat, delay, chargepast)
  +	if(useoriginal)
  +		charge(chargeat, delay, chargepast)
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination
  +	name = "bubblegum's hallucination"
  +	desc = "Is that really just a hallucination?"
  +	health = 1
  +	maxHealth = 1
  +	alpha = 127.5
  +	crusher_loot = null
  +	loot = null
  +	medal_type = null
  +	score_type = null
  +	deathmessage = "Explodes into a pool of blood!"
  +	deathsound = 'sound/effects/splat.ogg'
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination/Initialize()
  +	..()
  +	toggle_ai(AI_OFF)
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination/charge()
  +	..()
  +	qdel(src)
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination/Destroy()
  +	new /obj/effect/decal/cleanable/blood(get_turf(src))
  +	. = ..()
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination/CanPass(atom/movable/mover, turf/target)
  +	if(istype(mover, /mob/living/simple_animal/hostile/megafauna/bubblegum)) // hallucinations should not be stopping bubblegum or eachother
  +		return 1
  +	return ..()
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination/Life()
  +	return
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination/adjustBruteLoss(amount, updating_health = TRUE, forced = FALSE)
  +	return
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination/OpenFire()
  +	return
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination/AttackingTarget()
  +	return
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination/try_bloodattack()
  +	return
  +
  +/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination/grant_achievement(medaltype,scoretype)
  +	return
   
   /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)
  +	var/max_amount = 6
  +	for(var/H in get_pools(get_turf(src), 1))
  +		if(!max_amount)
  +			break
  +		max_amount--
  +		var/obj/effect/decal/cleanable/blood/B = H
  +		new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/slaughter(B.loc)
  +	return max_amount
   
   /mob/living/simple_animal/hostile/asteroid/hivelordbrood/slaughter
   	name = "slaughterling"
  
positive.code: /mob/living/simple_animal/hostile/asteroid/hivelordbrood/slaughter/CanPass(atom/movable/mover, turf/target)
  	if(istype(mover, /mob/living/simple_animal/hostile/megafauna/bubblegum))
  		return 1
  	return 0
  
  #undef MEDAL_PREFIX
  
negative.code: Bubblegum spawns randomly wherever a lavaland creature is able to spawn. It is the most powerful slaughter demon in existence.
  Bubblegum's footsteps are heralded by shaking booms, proving its tremendous size.
  
  It acts as a melee creature, chasing down and attacking its target while also using different attacks to augment its power
  
  It leaves blood trails behind wherever it goes, its clones do as well.
  It tries to strike at its target through any bloodpools under them; if it fails to do that.
  If it does warp it will enter an enraged state, becoming immune to all projectiles, becoming much faster, and dealing damage and knockback to anything that gets in the cloud around it.
  It may summon clones charging from all sides, one of these charges being bubblegum himself.
  It can charge at its target, and also heavily damaging anything directly hit in the charge.
  If at half health it will start to charge from all sides with clones.
  
  When Bubblegum dies, it leaves behind a H.E.C.K. mining suit as well as a chest that can contain three things:
   1. A bottle that, when activated, drives everyone nearby into a frenzy
   2. A contract that marks for death the chosen target
   3. A spellblade that can slice off limbs at range
  
  Difficulty: Hard
  
  