anchor.diff:  		return
   	var/atom/target
   	var/target_type = LOWEST
  -	var/list/arctargets = list()
  +	var/list/arc_targets = list()
   	//Making a new copy so additons further down the recursion do not mess with other arcs
   	//Lets put this ourself into the do not hit list, so we don't curve back to hit the same thing twice with one arc
   	for(var/test in oview(zapstart, range))
  
positive.code: /obj/machinery/power/supermatter_crystal/process_atmos()
  	if(!processes) //Just fuck me up bro
  		return
  	var/turf/T = loc
  
  	if(isnull(T))// We have a null turf...something is wrong, stop processing this entity.
  		return PROCESS_KILL
  
  	if(!istype(T))//We are in a crate or somewhere that isn't turf, if we return to turf resume processing but for now.
  		return  //Yeah just stop.
  
  	if(isclosedturf(T))
  		var/turf/did_it_melt = T.Melt()
  		if(!isclosedturf(did_it_melt)) //In case some joker finds way to place these on indestructible walls
  			visible_message("<span class='warning'>[src] melts through [T]!</span>")
  		return
  
  	//We vary volume by power, and handle OH FUCK FUSION IN COOLING LOOP noises.
  
negative.code: 			var/obj/machinery/power/tesla_coil/coil = test
  			if(coil.anchored && !(coil.obj_flags & BEING_SHOCKED) && !coil.panel_open && prob(70))//Diversity of death
  				if(target_type != COIL)
  					arc_targets = list()
  				arc_targets += test
  				target_type = COIL
  
  		if(target_type > ROD)
  