anchor.diff:  	holder.icon_state = "nanites[nanite_percent]"
   
   /datum/component/nanites/proc/on_emp(datum/source, severity)
  -	nanite_volume *= (rand(0.60, 0.90))		//Lose 10-40% of nanites
  -	adjust_nanites(null, -(rand(5, 50)))		//Lose 5-50 flat nanite volume
  +	adjust_nanites(null, -(nanite_volume * 0.3 + 50))		//Lose 30% variable and 50 flat nanite volume.
   	if(prob(40/severity))
   		cloud_id = 0
   	for(var/X in programs)
  
positive.code: 		NP.on_emp(severity)
  
  /datum/component/nanites/proc/on_shock(datum/source, shock_damage)
  	nanite_volume *= (rand(0.45, 0.80))		//Lose 20-55% of nanites
  	adjust_nanites(null, -(rand(5, 50)))			//Lose 5-50 flat nanite volume
  	for(var/X in programs)
  		var/datum/nanite_program/NP = X
  		NP.on_shock(shock_damage)
  
  /datum/component/nanites/proc/on_minor_shock(datum/source)
  	adjust_nanites(null, -(rand(5, 15)))			//Lose 5-15 flat nanite volume
  	for(var/X in programs)
  		var/datum/nanite_program/NP = X
  		NP.on_minor_shock()
  
negative.code: 			mob_program["trigger_code"] = P.trigger_code
  		id++
  		mob_programs += list(mob_program)
  	data["mob_programs"] = mob_programs
  