anchor.diff:  	desc = "You're not quite sure how a signal can be bloody."
   	invisibility = 100
   
  -/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/Life()
   	..()
  -	move_to_delay = CLAMP((health/maxHealth) * 10, 5, 10)
  +	move_to_delay = CLAMP(round((health/maxHealth) * 10), 5, 10)
   
   /mob/living/simple_animal/hostile/megafauna/bubblegum/OpenFire()
  -	anger_modifier = CLAMP(((maxHealth - health)/60),0,20)
  +	anger_modifier = CLAMP(((maxHealth - health)/50),0,20)
   	if(charging)
   		return
   	ranged_cooldown = world.time + ranged_cooldown_time
   
  -	var/warped = FALSE
  -	if(!try_bloodattack())
  +	blood_warp()
  +
  +	if(prob(25))
   		INVOKE_ASYNC(src, .proc/blood_spray)
  -		warped = blood_warp()
  -		if(warped && prob(100 - anger_modifier))
  -			return
  -
  -	if(prob(90 - anger_modifier) || slaughterlings())
  -		if(health > maxHealth * 0.5)
  +
  +	else if(prob(5+anger_modifier/2))
  +		slaughterlings()
  +	else
  +		if(health > maxHealth/2 && !client)
   			INVOKE_ASYNC(src, .proc/charge)
   		else
  -			if(prob(70) || warped)
  -				INVOKE_ASYNC(src, .proc/charge, 2)
  -			else
  -				INVOKE_ASYNC(src, .proc/warp_charge)
  +			INVOKE_ASYNC(src, .proc/triple_charge)
   
   
   /mob/living/simple_animal/hostile/megafauna/bubblegum/Initialize()
   	. = ..()
  -	for(var/mob/living/simple_animal/hostile/megafauna/bubblegum/B in GLOB.mob_living_list)
  +	for(var/mob/living/simple_animal/hostile/megafauna/bubblegum/B in GLOB.mob_list)
   		if(B != src)
   			return INITIALIZE_HINT_QDEL //There can be only one
   	var/obj/effect/proc_holder/spell/bloodcrawl/bloodspell = new
  
positive.code: /*
  
  BUBBLEGUM
  
negative.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"
  