this.commandSoldier = function(soldier, soldierIndex, numSoldiers) {
var angle = Math.PI * 2 * soldierIndex / numSoldiers;
var defendPos = {x: 41, y: 40};
defendPos.x += 10 * Math.cos(angle);
defendPos.y += 10 * Math.sin(angle);
this.command(soldier, "defend", defendPos);
};
// Найдите самую крепкую цель (больше всего здоровья)
// Эта функция что-то возвращает! Когда Вы вызываете функцию, то получаете от неё какое-то значение.
this.findStrongestTarget = function() {
var mostHealth = 0;
var bestTarget = null;
var enemies = this.findEnemies();
// Определите, у какого из врагов больше всего уровень здоровья и направьте метод bestTarget на этого врага.
for (var i=0; i < enemies.length; i++) {
if (enemies[i].health > mostHealth) {
bestTarget = enemies[i];
mostHealth = enemies[i].health;
}
}
// Концентрируйте огонь лучников на одного противника только в том случае, когда нападает большой огр.
if (bestTarget && bestTarget.health > 15) {
return bestTarget;
} else {
return null;
}
};
// Если у врага, определенного как strongestTarget больше 15 единиц здоровья, атакуйте его. Иначе, атакуйте ближайшего врага.
this.commandArcher = function(archer) {
var nearest = archer.findNearestEnemy();
if(archerTarget) {
this.command(archer, "attack", archerTarget);
} else if(nearest) {
this.command(archer, "attack", nearest);
}
};
var archerTarget = null;
while(true) {
// Если враг, определенный как archerTarget мертв или не существует, найдите нового.
if(!archerTarget || archerTarget.health <= 0) {
// Установите целью (или "аргументом") функции archerTarget, значение, возвращенное функцией findStrongestTarget().
archerTarget = this.findStrongestTarget();
}
var friends = this.findFriends();
var soldiers = this.findByType("soldier");
for(var i=0; i < soldiers.length; i++) {
this.commandSoldier(soldiers[i], i, soldiers.length);
}
// Используйте функцию commandArcher() для управления своими лучниками.
var archers = this.findByType("archer");
for(i=0; i < archers.length; i++)
this.commandArcher(archers[i], i, archers.length);
}
heres my code but the soldier keeps dying in the beginning