Этот код нормально работает в цикле 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();
            }
          
}