anchor.diff:  	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
  +	req_access = list(access_engine_equip)
   
   	use_power = 0
   	idle_power_usage = 10
  
positive.code: 		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)
  	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
  		if(EAST)
  			P.yo = 0
  			P.xo = 20
  		if(SOUTHEAST)
  			P.yo = -20
  			P.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
  		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
  
  /obj/machinery/power/emitter/can_be_unfasten_wrench(mob/user, silent)
  	if(state == EM_WELDED)
  
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)
  