En regardant le code du jeu, il semble que vous ne receviez le message "[Race] vous déteste sans raison" que pour les missions commerciales uniques, tandis que vous recevrez le message "Vos chatons reviennent les pattes vides" si vous envoyez plusieurs missions commerciales à la fois et qu'elles échouent toutes, par exemple à cause de relations hostiles ou de chances commerciales ratées avec des Dragons ou des Léviathans.
Sur un plan plus technique...
Quatre fonctions revêtent ici une importance particulière : trade
, tradeMultiple
, tradeInternal
et printYieldOutput
. trade
est demandé pour les missions commerciales uniques, tradeMultiple
est appelé à effectuer de multiples missions commerciales. Les deux fonctions appellent tradeInternal
pour déterminer les résultats de chaque mission commerciale individuelle.
tradeInternal
imprimera normalement les messages hostiles/amicaux, mais on peut lui passer une valeur booléenne pour spécifier que ces messages doivent être supprimés, ce que tradeMultiple
fait. tradeInternal
retournera une valeur nulle si vous obtenez le résultat "[Race] vous déteste", sinon il retournera les détails de ce que vous avez obtenu. Même si l'échange échoue pour des raisons autres que des relations hostiles, tradeInternal
retournera toujours un ensemble vide.
trade
transmettra les résultats de tradeInternal
directement dans printYieldOutput
alors que tradeMultiple
rassemblera les résultats dans un ensemble avant de les transmettre. C'est là que se trouve le facteur déterminant pour l'affichage du message "Vos chatons reviennent les pattes vides". Si printYieldOutput
reçoit une valeur nulle, il ne fera rien. En revanche, s'il reçoit un ensemble vide, il imprimera le message en question.
Source : Jeu des chatons Dépôt BitBucket , lignes 418 à 588 à partir de l'affichage