D'accord, j'ai passé plusieurs heures à tester cela. La réponse est... décevante.
Il apparaît que les unités sont placées en fonction de l'ordre dans lequel ils sont entrés dans votre armée . Leur ordre dans la ville ou les écrans des héros n'ont pas d'importance . Le seul ordre qui compte est celui que vous voyez lorsque vous faites un clic droit sur votre héros -- pour une raison quelconque, l'armée est affichée dans l'ordre d'insertion.
Le modèle est le suivant :
_ 5
_ _
_ 3
_ _
6 1
_ _
_ 2
_ _
_ 4
_ 7
C'est tout, jusqu'à ce que vous ajoutiez des unités à distance. Les unités à distance reculeront d'une case si possible, en échangeant avec une unité de mêlée si elle est là ou en poussant une unité à distance sur le côté. Oh, et le 7 saute au milieu sans raison apparente.
Notez également que le renforcement d'une unité no réinitialiser sa position. Je pourrais donc ajouter 1, 2, 3, puis mettre des unités supplémentaires sur le premier ajouté et il conserverait toujours sa position de numéro 1.
D'accord, maintenant les preuves.
Tout d'abord, j'ai placé mes unités dans l'ordre, de 1 à 7, comme suit :
Lors de la bataille, j'ai obtenu le schéma suivant :
C'est assez simple, me suis-je dit. Ensuite, j'ai essayé de retirer quelques unités et j'ai obtenu l'un des deux résultats escomptés :
Apparemment, il ignore les espaces vides et traite les 1 _ 3 _ 5 _ 7
comme si c'était 1 2 3 4
.
J'ai essayé dans différents combats, pour m'assurer que cela ne dépendait pas de l'ennemi, et cela semble stable.
Puis j'ai décidé d'essayer plusieurs types d'unités, et les choses sont devenues bizarres :
Qu'est-ce que c'est ? Cela n'a aucun sens. J'ai erré un peu, pensant que c'était peut-être basé sur la force des unités ou quelque chose comme ça, puis j'ai fait une découverte importante : le popup du héros cliqué avec le bouton droit de la souris montrait les unités dans un ordre apparemment aléatoire (pas l'ordre que j'avais vu dans les écrans de la ville ou du héros).
Pour confirmer qu'il s'agissait bien de l'ordre d'insertion, j'ai retiré toutes les unités et je les ai ajoutées à des positions aléatoires, mais dans l'ordre de 1 à 7. L'écran de la ville semblait aléatoire, mais la fenêtre contextuelle du clic droit était dans l'ordre :
La bataille a montré le modèle attendu :
Très bien. J'ai essayé d'inverser l'ordre et de compter de 7 à 1 et j'ai obtenu le résultat escompté.
J'avais déjà noté que les unités à distance avaient tendance à se déplacer vers l'arrière, et je les avais donc exclues pour ne pas brouiller les pistes. Maintenant, je les ai rajoutées et j'ai constaté un comportement raisonnable de déplacement vers l'arrière :
Le 5 et le 7 ont juste reculé d'un pas, et apparemment le 1 et le 6 ont basculé, mais cela semble raisonnable.
J'ai ensuite essayé tous les arbalétriers :
...Je ne sais pas ce qui s'est passé ici, peut-être que quelqu'un d'autre pourra le déchiffrer. Il semble que 2, 3, 4 et 5 aient fait ce que j'attendais (position normale, mais déplacée vers l'arrière). Le 1 et le 6 ont été un peu déplacés, mais ils sont plus ou moins là où ils devraient être. Mais je ne peux pas expliquer comment le 7 s'est retrouvé au milieu.
Je pense qu'il s'agit en fait d'un simple algorithme qui passe en revue les unités et tente de les placer sur le plateau de jeu selon un schéma en pseudo-spirale. Malheureusement, il saisit les unités dans l'ordre où elles ont été insérées, et non dans l'ordre où elles apparaissent à l'écran. En tant que programmeur, j'ai l'impression qu'il s'agit d'un bogue, et non d'une action intentionnelle.
Maintenant, je vais aller jouer au jeu et essayer d'oublier que j'ai appris cela, parce que mélanger des unités dans et hors des villes juste pour les insérer dans le bon ordre semble être de la folie. J'espère que cela aidera quelqu'un.