anchor.diff:  /datum/beam/proc/Start()
   	Draw()
   	while(!finished && target && world.time<endtime && get_dist(origin,target)<max_distance && origin.z == target.z)
  -		if(origin.loc != origin_oldloc || target.loc != target_oldloc)
  +		if(!static_beam && (origin.loc != origin_oldloc || target.loc != target_oldloc))
   			Reset()
   			Draw()
   		sleep(sleep_time)
  
positive.code: 	var/finished = 0
  	var/target_oldloc = null
  	var/origin_oldloc = null
  	var/beam_type = /obj/effect/ebeam //must be subtype
  
  /datum/beam/New(beam_origin,beam_target,beam_icon='icons/effects/beam.dmi',beam_icon_state="b_beam",time=50,maxdistance=10,btype = /obj/effect/ebeam)
  	endtime = world.time+time
  	origin = beam_origin
  	origin_oldloc = origin.loc
  	target = beam_target
  	target_oldloc = target.loc
  	max_distance = maxdistance
  	base_icon = new(beam_icon,beam_icon_state)
  	icon = beam_icon
  
negative.code: 	var/DY=(32*target.y+target.pixel_y)-(32*origin.y+origin.pixel_y)
  	var/N=0
  	var/length=round(sqrt((DX)**2+(DY)**2))
  
  	for(N,N<length,N+=32)
  		var/obj/effect/ebeam/X= new beam_type(origin_oldloc)
  		X.owner=src
  		elements |= X
  		if(N+32>length)
  