Diagonal directions are calculated fairly, added self direction