anchor.diff:  /obj/item/gun/energy/beam_rifle/proc/aiming_beam(force_update = FALSE)
   	var/diff = abs(aiming_lastangle - lastangle)
   	check_user()
  +	if((last_aim_beam + 1) > world.time)
  +		return
   	if(diff < AIMING_BEAM_ANGLE_CHANGE_THRESHOLD && !force_update)
   		return
   	aiming_lastangle = lastangle
  
positive.code: 	if(istype(object, /obj/screen) && !istype(object, /obj/screen/click_catcher))
  		return
  	process_aim()
  	if(aiming_time_left <= aiming_time_fire_threshold && check_user())
  		sync_ammo()
  		afterattack(M.client.mouseObject, M, FALSE, M.client.mouseParams, passthrough = TRUE)
  	stop_aiming()
  	QDEL_LIST(current_tracers)
  	return ..()
  
  /obj/item/gun/energy/beam_rifle/afterattack(atom/target, mob/living/user, flag, params, passthrough = FALSE)
  	if(flag) //It's adjacent, is the user, or is on the user's person
  		if(target in user.contents) //can't shoot stuff inside us.
  			return
  		if(!ismob(target) || user.a_intent == INTENT_HARM) //melee attack
  			return
  		if(target == user && user.zone_selected != BODY_ZONE_PRECISE_MOUTH) //so we can't shoot ourselves (unless mouth selected)
  			return
  	if(!passthrough && (aiming_time > aiming_time_fire_threshold))
  		return
  	if(lastfire > world.time + delay)
  		return
  	lastfire = world.time
  	. = ..()
  	stop_aiming()
  
  /obj/item/gun/energy/beam_rifle/proc/sync_ammo()
  
negative.code: 
  	var/lastangle = 0
  	var/aiming_lastangle = 0
  	var/last_aim_beam = 0
  	var/mob/current_user = null
  	var/list/obj/effect/projectile/tracer/current_tracers
  
  