anchor.diff:  		if(istype(A, /obj/machinery/power/tesla_coil))
   			var/obj/machinery/power/tesla_coil/C = A
   			if(!C.being_shocked)
  -				tesla_coils.Add(C)
  +				tesla_coils += C
   
   		else if(istype(A, /obj/machinery/power/grounding_rod))
   			var/obj/machinery/power/grounding_rod/R = A
  -			grounding_rods.Add(R)
  +			grounding_rods += R
   			
   		else if(istype(A, /obj/machinery))
   			var/obj/machinery/M = A
   			if(!is_type_in_list(M, blacklisted_tesla_types) && !M.being_shocked)
  -				potential_machine_zaps.Add(M)
  +				potential_machine_zaps += M
  +		
   		else if(istype(A, /obj/structure))
   			var/obj/structure/M = A
   			if(!is_type_in_list(M, blacklisted_tesla_types) && !M.being_shocked)
  -				potential_structure_zaps.Add(M)
  +				potential_structure_zaps += M
   			
   		else if(istype(A, /mob/living))
   			var/mob/living/L = A
  -			if(L.stat != DEAD && is_type_in_list(L, blacklisted_tesla_types))
  -				potential_mob_zaps.Add(L)
  -
  -	closest_atom = get_closest_atom(/obj/machinery/power/tesla_coil, tesla_coils, source)
  -	if(closest_atom && istype(closest_atom, /obj/machinery/power/tesla_coil))
  +			if(!is_type_in_list(L, blacklisted_tesla_types) && L.stat != DEAD)
  +				potential_mob_zaps += L
  +
  +	closest_atom = get_closest_atom(tesla_coils, source)
  +	if(closest_atom)
   		var/obj/machinery/power/tesla_coil/C = closest_atom
  -		source.Beam(C,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5)
  +		source.Beam(C, icon_state="lightning[rand(1,12)]", icon='icons/effects/effects.dmi', time=5)
   		C.tesla_act(power)
   
   	if(!closest_atom)
  -		closest_atom = get_closest_atom(/obj/machinery/power/grounding_rod, grounding_rods, source)
  -		if(closest_atom && istype(closest_atom, /obj/machinery/power/grounding_rod))
  +		closest_atom = get_closest_atom(grounding_rods, source)
  +		if(closest_atom)
   			var/obj/machinery/power/grounding_rod/R = closest_atom
  -			source.Beam(R,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5)
  +			source.Beam(R, icon_state="lightning[rand(1,12)]", icon='icons/effects/effects.dmi', time=5)
   			R.tesla_act(power)
   			
   	if(!closest_atom)
  -		closest_atom = get_closest_atom(/mob/living, potential_mob_zaps, source)
  -		if(closest_atom && istype(closest_atom, /mob/living))
  +		closest_atom = get_closest_atom(potential_mob_zaps, source)
  +		if(closest_atom)
   			var/mob/living/L = closest_atom
  -			var/shock_damage = Clamp(round(power/400), 10, 90) + rand(-5,5)
  -			source.Beam(L,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5)
  +			var/shock_damage = Clamp(round(power/400), 10, 90) + rand(-5, 5)
  +			source.Beam(L, icon_state="lightning[rand(1,12)]", icon='icons/effects/effects.dmi', time=5)
   			L.electrocute_act(shock_damage, source, 1, tesla_shock = 1)
   			if(istype(L, /mob/living/silicon))
   				var/mob/living/silicon/S = L
  
positive.code: 	grav_pull = 0
  	contained = 0
  	density = 1
  	var/list/orbiting_balls = list()
  	var/produced_power
  	var/is_orbiting
  	var/energy_to_raise = 100
  	var/energy_to_lower = -10
  
  /obj/singularity/energy_ball/Destroy()
  	for(var/obj/singularity/energy_ball/EB in orbiting_balls)
  		qdel(EB)
  	return ..()
  
  /obj/singularity/energy_ball/process()
  	if(!is_orbiting)
  		handle_energy()
  		move_the_basket_ball(2 + orbiting_balls.len * 2)
  		playsound(src.loc, 'sound/magic/lightningbolt.ogg', 100, 1, extrarange = 15)
  		pixel_x = 0
  		pixel_y = 0
  		dir = tesla_zap(src, 7, TESLA_DEFAULT_POWER)
  		pixel_x = -32
  		pixel_y = -32
  	else
  		energy = 0 // ensure we dont have miniballs of miniballs
  		tesla_zap(ball, rand(1,Clamp(orbiting_balls.len,3,7)), TESLA_MINI_POWER)
  	return
  
  /obj/singularity/energy_ball/examine(mob/user)
  
negative.code: 	//we face the last thing we zapped, so this lets us favor that direction a bit
  	var/first_move = dir
  	for(var/i in 0 to move_amount)
  		var/move_dir = pick(alldirs + first_move) //give the first move direction a bit of favoring.
  		var/turf/T = get_step(src, move_dir)
  		if(can_move(T))
  			loc = T
  
  