Patch of fixes for bugs and oversights

if this is an adjancy check, you should use user.Adjacent(M).
it is both faster and checks for obstacles.