anchor.diff:  		C.put_in_hands(B1)
   		C.put_in_hands(B2)
   		C.regenerate_icons()
  -	src.notransform = TRUE
  -	spawn(0)
  -		bloodpool_sink(B)
  -		src.notransform = FALSE
  -	return 1
  +
  +	notransform = TRUE
  +	INVOKE_ASYNC(src, .proc/bloodpool_sink, B)
  +
  +	return TRUE
   
   /mob/living/proc/bloodpool_sink(obj/effect/decal/cleanable/B)
  -	var/turf/mobloc = get_turf(src.loc)
  +	var/turf/mobloc = get_turf(loc)
   
  -	src.visible_message("<span class='warning'>[src] sinks into the pool of blood!</span>")
  +	visible_message("<span class='warning'>[src] sinks into the pool of blood!</span>")
   	playsound(get_turf(src), 'sound/magic/enter_blood.ogg', 50, TRUE, -1)
   	// Extinguish, unbuckle, stop being pulled, set our location into the
   	// dummy object
   	var/obj/effect/dummy/phased_mob/slaughter/holder = new /obj/effect/dummy/phased_mob/slaughter(mobloc)
  -	src.ExtinguishMob()
  +	ExtinguishMob()
   
   	// Keep a reference to whatever we're pulling, because forceMove()
   	// makes us stop pulling
  -	var/pullee = src.pulling
  +	var/pullee = pulling
   
  -	src.holder = holder
  -	src.forceMove(holder)
  +	holder = holder
  +	forceMove(holder)
   
   	// if we're not pulling anyone, or we can't eat anyone
  -	if(!pullee || src.bloodcrawl != BLOODCRAWL_EAT)
  +	if(!pullee || bloodcrawl != BLOODCRAWL_EAT)
  +		notransform = FALSE
   		return
   
   	// if the thing we're pulling isn't alive
  -	if (!isliving(pullee))
  +	if(!isliving(pullee))
  +		notransform = FALSE
   		return
   
   	var/mob/living/victim = pullee
   	var/kidnapped = FALSE
   
   	if(victim.stat == CONSCIOUS)
  -		src.visible_message("<span class='warning'>[victim] kicks free of the blood pool just before entering it!</span>", null, "<span class='notice'>You hear splashing and struggling.</span>")
  +		visible_message("<span class='warning'>[victim] kicks free of the blood pool just before entering it!</span>", null, "<span class='notice'>You hear splashing and struggling.</span>")
   	else if(victim.reagents && victim.reagents.has_reagent(/datum/reagent/consumable/ethanol/demonsblood, needs_metabolizing = TRUE))
   		visible_message("<span class='warning'>Something prevents [victim] from entering the pool!</span>", "<span class='warning'>A strange force is blocking [victim] from entering!</span>", "<span class='notice'>You hear a splash and a thud.</span>")
   	else
   		victim.forceMove(src)
   		victim.emote("scream")
  -		src.visible_message("<span class='warning'><b>[src] drags [victim] into the pool of blood!</b></span>", null, "<span class='notice'>You hear a splash.</span>")
  +		visible_message("<span class='warning'><b>[src] drags [victim] into the pool of blood!</b></span>", null, "<span class='notice'>You hear a splash.</span>")
   		kidnapped = TRUE
   
   	if(kidnapped)
   		var/success = bloodcrawl_consume(victim)
   		if(!success)
   			to_chat(src, "<span class='danger'>You happily devour... nothing? Your meal vanished at some point!</span>")
  -	return 1
  +
  +	notransform = FALSE
  +	return TRUE
   
   /mob/living/proc/bloodcrawl_consume(mob/living/victim)
   	to_chat(src, "<span class='danger'>You begin to feast on [victim]. You can not move while you are doing this.</span>")
  
positive.code: 			//entry when holding them
  			// literally only an option for carbons though
  			to_chat(C, "<span class='warning'>You may not hold items while blood crawling!</span>")
  			return 0
  		var/obj/item/bloodcrawl/B1 = new(C)
  		var/obj/item/bloodcrawl/B2 = new(C)
  		B1.icon_state = "bloodhand_left"
  
negative.code: 		return TRUE
  
  	to_chat(src, "<span class='danger'>You devour [victim]. Your health is fully restored.</span>")
  	revive(full_heal = TRUE)
  
  	// No defib possible after laughter
  	victim.adjustBruteLoss(1000)
  