Код
if count < 400 then
x1 = x1-1
y1 = y1-1
x2 = x2+1
y2 = y2+1
count = count +1
Это очень жесткий метод поиска ближайшего итема. Столько финдов даст дикую нагрузку. Проще сделать один поиск в большой области и потом по теормеме пифагора вычислить дистанцию. Т.е. разница x и y координат по модулю у нас будут катетами треугольника, считаем гипотенузу - дистанция готова.
heroX - targetY
может вы не доделали Y координату, но так точно не должно быть в условии. Уберите лишнее. Визуально очень похоже, что проблема именно в этом.