Этот код нормально работает в цикле while(true) и заставляет всех моих грифонов атаковать врагов.
var friends = hero.findByType("griffin-rider");
for (var z =0; z< friends.length; z++){
var friend = friends[z];
var enemy = friend.findNearestEnemy();
if (enemy && enemy.type != "fangrider"){
hero.command(friend, "attack", friend.findNearestEnemy());
}
}
Но при помещение вышестоящего кода в этот только 1 гриффон атакует врагов а остальные просто стоят
// The goal is to survive for 30 seconds, and keep the mines intact for at least 30 seconds.
hero.chooseStrategy = function() {
var enemies = hero.findEnemies();
for (var q=0;q <enemies.length; q++){ var enemy = enemies[q];}
// If you can summon a griffin-rider, return "griffin-rider"
if (hero.gold >= hero.costOf("griffin-rider")){
return "griffin-rider";
}
else{return "collect-coins";}
};
hero.commandAttack = function() {
var friends = hero.findByType("griffin-rider");
for (var z =0; z< friends.length; z++){
var friend = friends[z];
var enemy =hero.findNearest(hero.findEnemies());
if (enemy){hero.say("xxx");}
hero.command(friend, "attack", enemy);
}
};
hero.pickUpCoin = function() {
var coin = hero.findNearest(hero.findItems());
if (coin){
hero.move(coin.pos);
}
};
while(true) {
var friends = hero.findByType("griffin-rider");
for (var z =0; z< friends.length; z++){
var friend = friends[z];
var enemy = friend.findNearestEnemy();
if (enemy && enemy.type != "fangrider"){
hero.command(friend, "attack", friend.findNearestEnemy());
}
}
var strategy = hero.chooseStrategy();
if (strategy == "griffin-rider"){
hero.summon("griffin-rider");
}
else if (strategy == "collect-coins"){
hero.pickUpCoin();
}
}