anchor.diff:  	resistance_flags = FLAMMABLE
   	max_integrity = 40
   	novariants = FALSE
  -	var/heal_brute = 0
  -	var/heal_burn = 0
  -	var/stop_bleeding = 0
  +	item_flags = NOBLUDGEON
   	var/self_delay = 50
   
   /obj/item/stack/medical/attack(mob/living/M, mob/user)
  -
  -	if(M.stat == DEAD && !stop_bleeding)
  -		var/t_him = "it"
  -		if(M.gender == MALE)
  -			t_him = "him"
  -		else if(M.gender == FEMALE)
  -			t_him = "her"
  -		to_chat(user, "<span class='danger'>\The [M] is dead, you cannot help [t_him]!</span>")
  +	. = ..()
  +	if(!M.can_inject(user, TRUE))
   		return
  -
  -	if(!iscarbon(M) && !isanimal(M))
  -		to_chat(user, "<span class='danger'>You don't know how to apply \the [src] to [M]!</span>")
  -		return 1
  -
  -	var/obj/item/bodypart/affecting
  -	if(iscarbon(M))
  -		var/mob/living/carbon/C = M
  -		affecting = C.get_bodypart(check_zone(user.zone_selected))
  -		if(!affecting) //Missing limb?
  -			to_chat(user, "<span class='warning'>[C] doesn't have \a [parse_zone(user.zone_selected)]!</span>")
  +	if(M == user)
  +		user.visible_message("<span class='notice'>[user] starts to apply \the [src] on [user.p_them()]self...</span>", "<span class='notice'>You begin applying \the [src] on yourself...</span>")
  +		if(!do_mob(user, M, self_delay, extra_checks=CALLBACK(M, /mob/living/proc/can_inject, user, TRUE)))
   			return
  -		if(ishuman(C))
  -			var/mob/living/carbon/human/H = C
  -			if(stop_bleeding)
  -				if(H.bleedsuppress)
  -					to_chat(user, "<span class='warning'>[H]'s bleeding is already bandaged!</span>")
  -					return
  -				else if(!H.bleed_rate)
  -					to_chat(user, "<span class='warning'>[H] isn't bleeding!</span>")
  -					return
  +	if(heal(M, user))
  +		log_combat(user, M, "healed", src.name)
  +		use(1)
   
   
  -	if(isliving(M))
  -		if(!M.can_inject(user, 1))
  -			return
  +/obj/item/stack/medical/proc/heal(mob/living/M, mob/user)
  +	return
   
  -	if(user)
  -		if (M != user)
  -			if (isanimal(M))
  -				var/mob/living/simple_animal/critter = M
  -				if (!(critter.healable))
  -					to_chat(user, "<span class='notice'> You cannot use [src] on [M]!</span>")
  -					return
  -				else if (critter.health == critter.maxHealth)
  -					to_chat(user, "<span class='notice'> [M] is at full health.</span>")
  -					return
  -				else if(src.heal_brute < 1)
  -					to_chat(user, "<span class='notice'> [src] won't help [M] at all.</span>")
  -					return
  -			user.visible_message("<span class='green'>[user] applies [src] on [M].</span>", "<span class='green'>You apply [src] on [M].</span>")
  -		else
  -			var/t_himself = "itself"
  -			if(user.gender == MALE)
  -				t_himself = "himself"
  -			else if(user.gender == FEMALE)
  -				t_himself = "herself"
  -			user.visible_message("<span class='notice'>[user] starts to apply [src] on [t_himself]...</span>", "<span class='notice'>You begin applying [src] on yourself...</span>")
  -			if(!do_mob(user, M, self_delay, extra_checks=CALLBACK(M, /mob/living/proc/can_inject, user, TRUE)))
  -				return
  -			user.visible_message("<span class='green'>[user] applies [src] on [t_himself].</span>", "<span class='green'>You apply [src] on yourself.</span>")
  -
  -
  -	if(iscarbon(M))
  -		var/mob/living/carbon/C = M
  -		affecting = C.get_bodypart(check_zone(user.zone_selected))
  -		if(!affecting) //Missing limb?
  -			to_chat(user, "<span class='warning'>[C] doesn't have \a [parse_zone(user.zone_selected)]!</span>")
  -			return
  -		if(ishuman(C))
  -			var/mob/living/carbon/human/H = C
  -			if(stop_bleeding)
  -				if(!H.bleedsuppress) //so you can't stack bleed suppression
  -					H.suppress_bloodloss(stop_bleeding)
  -		if(affecting.status == BODYPART_ORGANIC) //Limb must be organic to be healed - RR
  -			if(affecting.heal_damage(heal_brute, heal_burn))
  +/obj/item/stack/medical/proc/heal_carbon(mob/living/carbon/C, mob/user, brute, burn)
  +	var/obj/item/bodypart/affecting = C.get_bodypart(check_zone(user.zone_selected))
  +	if(!affecting) //Missing limb?
  +		to_chat(user, "<span class='warning'>[C] doesn't have \a [parse_zone(user.zone_selected)]!</span>")
  +		return
  +	if(affecting.status == BODYPART_ORGANIC) //Limb must be organic to be healed - RR
  +		if(affecting.brute_dam && brute || affecting.burn_dam && burn)
  +			user.visible_message("<span class='green'>[user] applies \the [src] on [C]'s [affecting.name].</span>", "<span class='green'>You apply \the [src] on [C]'s [affecting.name].</span>")
  +			if(affecting.heal_damage(brute, burn))
   				C.update_damage_overlays()
  -		else
  -			to_chat(user, "<span class='notice'>Medicine won't work on a robotic limb!</span>")
  -	else
  -		M.heal_bodypart_damage((src.heal_brute/2), (src.heal_burn/2))
  -
  -	use(1)
  -
  -
  +			return TRUE
  +		to_chat(user, "<span class='notice'>[C]'s [affecting.name] can not be healed with \the [src].</span>")
  +		return
  +	to_chat(user, "<span class='notice'>\The [src] won't work on a robotic limb!</span>")
   
   /obj/item/stack/medical/bruise_pack
   	name = "bruise pack"
  
positive.code: 	gender = PLURAL
  	singular_name = "medical gauze"
  	icon_state = "gauze"
  	stop_bleeding = 1800
  	self_delay = 20
  	max_amount = 12
  
  
  /obj/item/stack/medical/gauze/attackby(obj/item/I, mob/user, params)
  	if(I.tool_behaviour == TOOL_WIRECUTTER || I.is_sharp())
  
negative.code: 	icon_state = "ointment"
  	lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
  	righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
  	var/heal_burn = 40
  	self_delay = 20
  	grind_results = list(/datum/reagent/medicine/silver_sulfadiazine = 10)
  
  /obj/item/stack/medical/ointment/heal(mob/living/M, mob/user)
  	if(M.stat == DEAD)
  		to_chat(user, "<span class='notice'> [M] is dead. You can not help [M.p_them()]!</span>")
  		return
  	if(iscarbon(M))
  		return heal_carbon(M, user, 0, heal_burn)
  	to_chat(user, "<span class='notice'>You can't heal [M] with the \the [src]!</span>")
  
  /obj/item/stack/medical/ointment/suicide_act(mob/living/user)
  	user.visible_message("<span class='suicide'>[user] is squeezing \the [src] into [user.p_their()] mouth! [user.p_do(TRUE)]n't [user.p_they()] know that stuff is toxic?</span>")
  