anchor.diff:  					if(M.Immortal) continue
   					if(ignore && (M in ignore)) continue
   
  -		//			if(!isPathBlocked(M, src, 1, src.density))
   					var/dist = get_dist(src, M)
   					if(min_dist > dist)
  -						target = M
  -
  -						if(target.hardmode > hardmode)
  -							hardmode = target.hardmode
  -
  -							switch(hardmode)
  -								if(1)
  -									filters = filter(type="outline", size=1, color="#0e0")
  -								if(2)
  -									filters = filter(type="outline", size=1, color="#00a5ff")
  -								if(3)
  -									filters = filter(type="outline", size=1, color="#ffa500")
  -								if(4)
  -									filters = filter(type="outline", size=1, color="#551a8b")
  -
  -							HP = MHP * (1 + hardmode)
  -
  -		//			else
  -		//				Ignore(M)
  +						if(!isPathBlocked(M, src, 1, src.density, dist_limit=Range))
  +							target = M
  +
  +							if(target.hardmode > hardmode)
  +								hardmode = target.hardmode
  +
  +								switch(hardmode)
  +									if(1)
  +										filters = filter(type="outline", size=1, color="#0e0")
  +									if(2)
  +										filters = filter(type="outline", size=1, color="#00a5ff")
  +									if(3)
  +										filters = filter(type="outline", size=1, color="#ffa500")
  +									if(4)
  +										filters = filter(type="outline", size=1, color="#551a8b")
  +
  +								HP = MHP * (1 + hardmode)
  +
  +						else
  +							Ignore(M)
   
   			Ignore(mob/M)
   				set waitfor = 0
   				if(!ignore) ignore = list()
  -				ignore += M
  +				ignore[M] = M.loc
   				sleep(30)
  +				while(M && ignore && ignore[M] == M.loc)
  +					sleep(30)
   				if(M && ignore)
   					ignore -= M
   					if(ignore.len == 0)
  
positive.code: 						if(M.loc.loc != src.loc.loc) continue
  						if(ignore && (M in ignore)) continue
  
  						if(!isPathBlocked(M, src, 1, src.density))
  							var/dist = get_dist(src, M)
  							if(min_dist > dist)
  								target = M
  
negative.code: 					var/dist = get_dist(src, M)
  					if(dist > Range) continue
  					if(min_dist > dist)
  						if(!isPathBlocked(M, src, 1, src.density, dist_limit=Range))
  							target = M
  							min_dist = dist
  			//				ChangeState(HOSTILE)
  			//			break
  						else
  							Ignore(M)
  				if(target)
  					ChangeState(HOSTILE)
  				else
  