Your kittens return empty-pawed
Solution 1:
Looking at the code of the game, it seems that you will only receive the "[Race] hate you for no reason" message for single trade missions, while you will receive the "Your kittens return empty-pawed" message if you send multiple trade missions at once and they all fail, e.g. from hostile relations, or failed trade chances from Dragons or Leviathans.
On a more technical level...
Four functions are of particular significance here: trade
, tradeMultiple
, tradeInternal
, and printYieldOutput
. trade
is called for single trade missions, tradeMultiple
is called for multiple trade missions. Both functions call tradeInternal
to determine the results of each individual trade mission.
tradeInternal
will normally print out the hostile/friendly messages, but it can be passed a boolean value to specify that these messages should be suppressed, which tradeMultiple
does. tradeInternal
will return a null value if you get the "[Race] hate you" result, otherwise it will return the details of what you got. Even if the trade fails for reasons other than hostile relations, tradeInternal
will still return an empty set.
trade
will pass the results from tradeInternal
directly into printYieldOutput
, while tradeMultiple
will gather the results into a set before passing them. Herein lies the determining factor for whether the "Your kittens return empty-pawed" message will be shown. If printYieldOutput
receives a null value, it will effectively do nothing. However, if it receives an empty set, it will instead print the message in question.
Source: Kittens Game BitBucket repository, lines 418 to 588 as of posting