anchor.diff:  
   It acts as a melee creature, chasing down and attacking its target while also using different attacks to augment its power that increase as it takes damage.
   
  -It tries to strike at its target through any bloodpools under them; if it fails to do that, it will spray blood and then attempt to warp to a bloodpool near the target.
  -If it fails to warp to a target, it may summon up to 6 slaughterlings from the blood around it.
  -If it does not summon all 6 slaughterlings, it will instead charge at its target, dealing massive damage to anything it hits and spraying a stream of blood.
  -At half health, it will either charge three times or warp, then charge, instead of doing a single charge.
  -
  -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
  +It often charges, dealing massive damage to anything unfortunate enough to be standing where it's aiming.
  +Whenever it isn't chasing something down, it will sink into nearby blood pools (if possible) and springs out of the closest one to its target.
  +To make this possible, it sprays streams of blood at random.
  +From these blood pools Bubblegum may summon slaughterlings - weak, low-damage minions designed to impede the target's progress.
  +
  +When Bubblegum dies, it leaves behind a chest that can contain three things:
  + 1. A spellblade that can slice off limbs at range
  + 2. A bottle that, when activated, drives everyone nearby into a frenzy
  + 3. A contract that marks for death the chosen target
   
   Difficulty: Hard
   
  
positive.code: 	if(.)
  		SSshuttle.shuttle_purchase_requirements_met |= "bubblegum"
  
  /mob/living/simple_animal/hostile/megafauna/bubblegum/do_attack_animation(atom/A, visual_effect_icon)
  	if(!charging)
  		..()
  
  /mob/living/simple_animal/hostile/megafauna/bubblegum/AttackingTarget()
  	if(!charging)
  		return ..()
  
  /mob/living/simple_animal/hostile/megafauna/bubblegum/Goto(target, delay, minimum_distance)
  	if(!charging)
  		..()
  
  /mob/living/simple_animal/hostile/megafauna/bubblegum/Move()
  	if(charging)
  		new /obj/effect/temp_visual/decoy/fading(loc,src)
  		DestroySurroundings()
  	. = ..()
  	if(!stat && .)
  		playsound(src, 'sound/effects/meteorimpact.ogg', 200, 1, 2, 1)
  	if(charging)
  		DestroySurroundings()
  
  /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/warp_charge()
  	blood_warp()
  	charge()
  
  /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/charge(bonus_charges)
  	var/turf/T = get_turf(target)
  	if(!T || T == loc)
  		return
  	new /obj/effect/temp_visual/dragon_swoop/bubblegum(T)
  	charging = TRUE
  	DestroySurroundings()
  	walk(src, 0)
  	setDir(get_dir(src, T))
  	var/obj/effect/temp_visual/decoy/D = new /obj/effect/temp_visual/decoy(loc,src)
  	animate(D, alpha = 0, color = "#FF0000", transform = matrix()*2, time = 3)
  	sleep(3)
  	throw_at(T, get_dist(src, T), 1, src, 0, callback = CALLBACK(src, .charge_end, bonus_charges))
  
  /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/charge_end(bonus_charges, list/effects_to_destroy)
  	charging = FALSE
  	try_bloodattack()
  	if(target)
  		if(bonus_charges)
  			bonus_charges--
  			charge(bonus_charges)
  		else
  			Goto(target, move_to_delay, minimum_distance)
  			SetRecoveryTime(MEGAFAUNA_DEFAULT_RECOVERY_TIME)
  
  
  /mob/living/simple_animal/hostile/megafauna/bubblegum/Collide(atom/A)
  
negative.code: 		var/throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(L, src)))
  		L.throw_at(throwtarget, 3)
  
  	charging = 0
  
  
  /mob/living/simple_animal/hostile/megafauna/bubblegum/proc/blood_warp()
  	var/obj/effect/decal/cleanable/blood/found_bloodpool
  	var/list/pools = list()
  	var/can_jaunt = FALSE
  	for(var/obj/effect/decal/cleanable/blood/nearby in view(src,2))
  		can_jaunt = TRUE
  		break
  	if(!can_jaunt)
  		return
  	for(var/obj/effect/decal/cleanable/blood/nearby in view(get_turf(target),2))
  		pools += nearby
  	if(pools.len)
  		shuffle_inplace(pools)
  		found_bloodpool = pick(pools)
  