anchor.diff:  
   /obj/mecha/emp_act(severity)
   	if(get_charge())
  -		use_power((cell.charge/2)/severity)
  +		use_power((cell.charge/3)/(severity*2))
   		take_damage(30 / severity,"energy")
   	src.log_message("EMP detected",1)
   	check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT),1)
  
positive.code: 			return
  		else
  			deflection = 100 //will bounce off
  	if(prob(deflection) || istype(A, /mob))
  		visible_message("[A] bounces off the [src.name] armor")
  		log_append_to_last("Armor saved.")
  		if(istype(A, /mob/living))
  			var/mob/living/M = A
  			M.take_organ_damage(10)
  	else if(istype(A, /obj))
  		var/obj/O = A
  		if(O.throwforce)
  			visible_message("<span class='danger'>[src.name] is hit by [A].</span>")
  			take_damage(O.throwforce*dam_coeff)
  			check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
  	return
  
  
  /obj/mecha/bullet_act(var/obj/item/projectile/Proj) //wrapper
  	log_message("Hit by projectile. Type: [Proj.name]([Proj.flag]).",1)
  	var/deflection = deflect_chance
  	var/dam_coeff = 1
  	for(var/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster/B in equipment)
  		if(B.projectile_react())
  			deflection *= B.deflect_coeff
  			dam_coeff *= B.damage_coeff
  			break
  /*
  
  	var/facing_modifier = get_armour_facing(src.dir,Proj.dir)
  
  	deflection *= facing_modifier
  	dam_coeff = dam_coeff/facing_modifier
  */
  	if(prob(deflection))
  		visible_message("The [src.name] armor deflects the projectile")
  		log_append_to_last("Armor saved.")
  		return
  	var/ignore_threshold
  	if(Proj.flag == "taser")
  		use_power(200)
  		return
  	if(istype(Proj, /obj/item/projectile/beam/pulse))
  		ignore_threshold = 1
  	if((Proj.damage_type == BRUTE || Proj.damage_type == BURN))
  		take_damage(Proj.damage*dam_coeff,Proj.flag, Proj.dir)
  		visible_message("<span class='danger'>[src.name] is hit by [Proj].</span>")
  		check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT),ignore_threshold)
  	Proj.on_hit(src)
  
  /obj/mecha/ex_act(severity, target)
  
negative.code: 		user.changeNext_move(CLICK_CD_MELEE) // Ugh. Ideally we shouldn't be setting cooldowns outside of click code.
  		user.do_attack_animation(src)
  		log_message("Attacked by [W]. Attacker - [user]")
  		var/deflection = 1
  		var/dam_coeff = 1
  		for(var/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster/B in equipment)
  			if(B.attack_react(user))
  				deflection *= B.deflect_coeff
  				dam_coeff *= B.damage_coeff
  				break
  		user.visible_message("<span class='danger'>[user] hits [src] with [W].</span>", "<span class='danger'>You hit [src] with [W].</span>")
  		take_damage(round(W.force*dam_coeff),W.damtype, user.dir, deflection, dam_coeff)
  		check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
  		return 1
  
  
  /obj/mecha/proc/mech_toxin_damage(mob/living/target)
  