Уровень: ударь и замри ( javascript ). У меня неправильный код или снаряжение слабое? Герой умирает

// Эта функция проверяет, находится ли враг в радиусе поражения.
function inAttackRange(enemy) {
var distance = hero.distanceTo(enemy);
// Почти все мечи имеют радиус поражения 3
if (distance <= 3) {
return true;
} else {
return false;
}
}

// Бей огров только когда они рядом.
while (true) {
// Найди ближайшего противника и сохрани его в переменную.
var enemy = hero.findNearestEnemy();
// Вызови функцию inAttackRange(enemy)с врагом в качестве аргумента.
// и сохрани результат в переменную canAttack.
hero.say(inAttackRange(enemy));
var canAttack = inAttackRange(enemy);
// Если сохранённый в canAttack результат true, то атакуй!
if (canAttack <= true ) {
hero.attack(enemy);
}
}
ScreenShot_20180821123150

Здравствуйте, начнем по порядку:

  1. строка hero.say(inAttackRange(enemy)) не имеет смысла в данном задании, так как нет необходимости говорить результат работы функции inAttackRange
  2. if (canAttack <= true ) недопустимо , так как переменная canAttack может быть как true, так и false ( поэтому ваш герой умирает). Необходимо, чтобы canAttack всегда была true, для этого можно использовать знак равенства: if (canAttack == true ).
    Удалите строчку hero.say(inAttackRange(enemy)) и исправьте строку if (canAttack <= true ) на if (canAttack == true ).