anchor.diff:  		add_load(active_power_usage)
   		fire_beam()
   
  -/obj/machinery/power/emitter/proc/fire_beam(atom/targeted_atom, mob/user)
  -	var/turf/targets_from = get_turf(src)
  -	var/obj/item/projectile/P = new projectile_type(targets_from)
  -	playsound(src.loc, projectile_sound, 50, 1)
  +/obj/machinery/power/emitter/proc/fire_beam()
  +	src.last_shot = world.time
  +	if(src.shot_number < 3)
  +		src.fire_delay = 20
  +		src.shot_number ++
  +	else
  +		src.fire_delay = rand(minimum_fire_delay,maximum_fire_delay)
  +		src.shot_number = 0
  +	var/obj/item/projectile/A = new projectile_type(src.loc)
  +	A.setDir(src.dir)
  +	playsound(src.loc, projectile_sound, 25, 1)
   	if(prob(35))
   		var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
   		s.set_up(5, 1, src)
   		s.start()
   	switch(dir)
   		if(NORTH)
  -			P.yo = 20
  -			P.xo = 0
  -		if(NORTHEAST)
  -			P.yo = 20
  -			P.xo = 20
  +			A.yo = 20
  +			A.xo = 0
   		if(EAST)
  -			P.yo = 0
  -			P.xo = 20
  -		if(SOUTHEAST)
  -			P.yo = -20
  -			P.xo = 20
  +			A.yo = 0
  +			A.xo = 20
   		if(WEST)
  -			P.yo = 0
  -			P.xo = -20
  -		if(SOUTHWEST)
  -			P.yo = -20
  -			P.xo = -20
  -		if(NORTHWEST)
  -			P.yo = 20
  -			P.xo = -20
  +			A.yo = 0
  +			A.xo = -20
   		else // Any other
  -			P.yo = -20
  -			P.xo = 0
  -	if(!manual)
  -		src.last_shot = world.time
  -		if(src.shot_number < 3)
  -			src.fire_delay = 20
  -			src.shot_number ++
  -		else
  -			src.fire_delay = rand(minimum_fire_delay,maximum_fire_delay)
  -			src.shot_number = 0
  -		if(!target)
  -			P.setDir(src.dir)
  -			P.starting = loc
  -			P.fire()
  -		else
  -			if(QDELETED(target))
  -				target = null
  -				P.fire()
  -				return P
  -			P.yo = targeted_atom.y - targets_from.y
  -			P.xo = targeted_atom.x - targets_from.x
  -			P.current = targets_from
  -			P.starting = targets_from
  -			P.firer = src
  -			P.original = target
  -			P.fire()
  -			return P
  -	else
  -		if(targeted_atom == user|| targeted_atom == targets_from)
  -			return
  -		P.yo = targeted_atom.y - targets_from.y
  -		P.xo = targeted_atom.x - targets_from.x
  -		P.current = targets_from
  -		P.starting = targets_from
  -		P.firer = src
  -		P.original = targeted_atom
  -		P.fire()
  -		return P
  +			A.yo = -20
  +			A.xo = 0
  +	A.starting = loc
  +	A.fire()
   
   /obj/machinery/power/emitter/can_be_unfasten_wrench(mob/user, silent)
   	if(state == EM_WELDED)
  
positive.code: 	var/icon_state_on = "emitter_+a"
  	anchored = 0
  	density = 1
  
  	req_access = list(GLOB.access_engine_equip)
  	// The following 3 vars are mostly for the prototype
  	var/manual = FALSE
  	var/charge = 0
  	var/atom/target = null
  
  	use_power = 0
  	idle_power_usage = 10
  
negative.code: 				investigate_log("lost power and turned <font color='red'>off</font> at [get_area(src)]","singulo")
  				log_game("Emitter lost power in ([x],[y],[z])")
  			return
  		if(!check_delay())
  			return FALSE
  		fire_beam()
  
  /obj/machinery/power/emitter/proc/check_delay()
  	if((src.last_shot + src.fire_delay) <= world.time)
  