anchor.diff:  	if(!istype(T) || !istype(U))
   		return
   
  +	//Wall turrets will try to find adjacent empty turf to shoot from to cover full arc
  +	if(T.density)
  +		if(wall_turret_direction)
  +			var/turf/closer = get_step(T,wall_turret_direction)
  +			if(istype(closer) && !is_blocked_turf(closer) && T.Adjacent(closer))
  +				T = closer
  +		else
  +			var/target_dir = get_dir(T,target)
  +			for(var/d in list(0,-45,45))
  +				var/turf/closer = get_step(T,turn(target_dir,d))
  +				if(istype(closer) && !is_blocked_turf(closer) && T.Adjacent(closer))
  +					T = closer
  +					break
  +
   	update_icon()
   	var/obj/item/projectile/A
   	//any emagged turrets drains 2x power and uses a different projectile?
  
positive.code: 
  
  	//Shooting Code:
  	A.preparePixelProjectile(target, src)
  	A.fire()
  	return A
  
  
  /obj/machinery/porta_turret/proc/setState(on, mode)
  	if(controllock)
  
negative.code: 	var/datum/effect_system/spark_spread/spark_system	//the spark system, used for generating... sparks?
  
  	var/obj/machinery/turretid/cp = null
  
  	var/wall_turret_direction //The turret will try to shoot from a turf in that direction when in a wall
  
  /obj/machinery/porta_turret/Initialize()
  	. = ..()
  