En regardant le code du jeu, la fonction tradeAll, dans diplomacy.js, délègue le travail à tradeMultiple. Cette fonction prend un montant, soustrait les coûts, puis fait ce qui suit :
for (var i = 0; i<amt; i++){
var yieldRes = this.tradeInternal(true); //supress msg
for (var res in yieldRes) {
yieldResTotal[res] = yieldResTotal[res] ? yieldResTotal[res] + yieldRes[res] : yieldRes[res];
}
}
this.printYieldOutput(yieldResTotal);
Ainsi, tout ce qui se passe lorsque vous appuyez sur Trade All, c'est que le même code s'exécute encore et encore, que les résultats sont additionnés et qu'une seule ligne est imprimée dans le journal. Il est donc garanti que les résultats ne seront pas différents de ceux obtenus si vous aviez appuyé plusieurs fois sur le bouton Trade.
D'ailleurs, le même type de conception est utilisé pour l'artisanat, la chasse, etc. afin de s'assurer que les calculs sont toujours les mêmes, quelle que soit la taille des lots que vous fabriquez.