anchor.diff:  
   				tmp
   					state = WANDER
  +					list/ignore
   
   				Range = 10
   				MoveDelay = 5
  
positive.code: 				Search()
  					Wander()
  					for(var/mob/Player/M in ohearers(src, Range))
  						if(M.loc.loc == src.loc.loc && getStepTo(M, src))
  							target = M
  							state  = HOSTILE
  							break
  
  				Wander()
  					step_rand(src)
  
negative.code: 	dog/icon_state = "dog"
  
  proc
  	isPathBlocked(mob/source, mob/target, dist=1, dense_override=0)
  		if(!source.density && !dense_override) return 0
  
  		var/obj/o = new (source.loc)
  		o.density = 1
  
  		var/turf/t = get_step_to(o, target, dist)
  
  		while(t)
  			o.Move(t)
  			t = get_step_to(o, target, dist)
  		if(!t && get_dist(o, target) > dist)
  			o.loc = null
  			return 1
  		o.loc = null
  		return 0
  area
  	newareas
  