Coucou,
On a beaucoup entendu parler du système de "bonheur" des PNJs en 1.4 qui affecte les prix des PNJs, mais c'est un peu compliqué de savoir en détail comment il fonctionne, du coup je me suis dit que j'allais faire un topic pour expliquer tout ça.
Déjà, la plupart des infos de ce post viennent de cette vidéo : https://www.youtube.com/watch?v=d6mMUClwDMc (en anglais), et le reste vient du wiki
Comment ça marche le bonheur ?
Le bonheur de chaque PNJ est représenté par un multiplicateur de prix, qui peut varier entre 0.75 et 1.5. Plus ce multiplicateur bas, plus les prix du PNJ sont bas, et donc mieux c'est.
Un certain nombre de paramètres vont affecter le bonheur des PNJs en multipliant leur bonheur par un certain facteur. Pour calculer le prix d'un objet, le jeu vérifie quels sont les paramètres vérifiés par le PNJ et multiplie entre eux tous les facteurs concernés. Puis, le résultat est tronqué entre 0.75 et 1.5, et arrondi aux 5% les plus proches. Concrètement, ça veut dire que le multiplicateur de prix ne peut prendre que les valeurs 75%, 80%, 85%, etc. jusque 150%.
Les paramètres qui influent sur le bonheur sont répartis en 3 catégories :
• La surpopulation/tranquillité
• Les PNJs voisins
• Le biome
Je vais détailler ces paramètres juste après ; mais pour les biomes et les voisins, cela se base sur les préférences de chaque PNJ, que vous pouvez consulter dans le tableau sur cette page : https://terraria.gamepedipedia.com/NPCs#NPC_preferences (en anglais, mais ça devrait être compréhensible :v )
De plus, le bonheur influe aussi si vous voulez rendre des objets ! Les PNJs ont un multiplicateur d'achat de 1/(le multiplicateur de vente), donc des PNJs heureux vont aussi aheter des objets plus chers. Ce multiplicateur peut varier entre 67% (1/1.5) et 133% (1/0.75)
A noter que :
• Le bonheur influe sur les reforges du gobelin (je pense qu'il influe aussi pour l'infirmière mais je suis pas sûr)
• Certains PNJs comme le guide et le pêcheur ne sont pas affectés par le bonheur (je suis pas certain pour le pêcheur)
• Les PNJs itinérants (marchand squelette et marchand ambulant) ont un bonheur calculé d'une façon totalement différente
• C'est impossible de rendre tous les PNJs complètement heureux., mais pour la plupart des PNJs vous n'aurez quasiment jamais besoin de leur acheter des objets, donc c'est pas grave (et c'est assez facile de réarranger les maisons pour rendre un PNJ en particulier heureux)
Maintenant, voyons en détail les paramètres qui influent sur le bonheur, c'est là que ça devient intéressant
La surpopulation/tranquillité
Pour calculer si le PNJ est isolé ou au contraire en surpopulation, le jeu considère 2 types de voisins, que je vais appeler "voisins proches" et "voisins éloignés". Les voisins proches sont ceux habitant à moins de 25 blocs de votre PNJ. Les voisins éloignés sont ceux habitant à plus de 25 blocs, mais moins de 120.
Note : Pour calculer ces distances le jeu ne prend pas en compte la position des PNJs mais celle de leurs maisons
> Si votre PNJ a au plus 1 voisin proche et 3 voisins éloignés, il est considéré comme étant "au calme" et aura un multiplicateur de 0.9
> Si votre PNJ a exactement 2 voisins proches, ou s'il a moins de 2 voisins proches mais au moins 4 voisins éloignés, il ne se passe rien
> Si votre PNJ a au moins 3 voisins proches, il a un multiplicateur de 1.04 pour chaque voisin proche autre que le premier.
Autrement dit, comme il a au moins 3 voisins proches, il a forcément au moins 2 voisins proches "en trop" donc ce multiplicateur vaut au moins 1.04*1.04 = 1.0816
Du coup, si vous voulez faire une ville par biome, chaque ville contenant 3 ou 4 PNJs (ce qui est le moyen le plus simple pour avoir des PNJs globalement heureux), il ne faut pas mettre 3 ou 4 maisons côte à côte mais plutôt faire 2 groupes de 2 maisons (pas besoin de trop les éloigner non plus, il faut juste qu'ils aient chacun un seul voisin proche, càd à moins de 25 blocs, et 25 blocs c'est pas beaucoup)
Ce multiplicateur de 0.9 est sans doute l'un des plus importants, c'est très simple de l'avoir sur tous les PNJs.
Les PNJ voisins
Chaque PNJ a d'autres PNJs qu'il aime ou n'aime pas, et leur donner des bons voisins permet de faire baisser le prix. A noter que pour avoir un bonus (ou un malus) de prix il faut que les PNJs soient voisins directs, càd à moins de 25 blocs. Les voisins éloignés ne servent que pour avoir le bonus de tranquillité.
La plupart des PNJs ont exactement 1 PNJ qu'ils adorent, 1 qu'ils détestent, 2 qu'ils aiment bien et 2 qu'ils n'aiment pas (certains n'adorent/ne détestent personne ou n'aiment/n'aiment pas qu'un seul PNJ) Pour connaître les préférences de votre PNJ, pas le choix : il faut les connaître à l'avance, donc se référer au tableau que j'ai donné plus haut. Ou alors vous pouvez parler à un PNJ pour connaître son avis sur ses voisins actuels (ça ne vous permettra pas de savoir qui il préfèrerait avoir comme voisin par contre !)
> Si un PNJ est voisin avec un PNJ qu'il adore, il aura un multiplicateur de 0.9
> Si un PNJ est voisin avec un PNJ qu'il aiment bien, il aura un multiplicateur de 0.95
> Si un PNJ est voisin avec un PNJ qu'il n'aime pas, il aura un multiplicateur de 1.05
> Si un PNJ est voisin avec un PNJ qu'il déteste, il aura un multiplicateur de 1.1
IMPORTANT : On pourrait penser que pour maximiser le bonheur d'un PNJ il faut le mettre à côté de tous les PNJs qu'il aime bien, mais en fait lui mettre un 2e voisin proche lui enlève le bonus de tranquillité, et les 3e/4e voisins lui donnent même le malus de surpopulation. Dans tous les cas le fait d'avoir un bon voisin ne compense pas le malus ou la perte de bonus. Donc pour maximiser le bonheur d'un PNJ il faut qu'il n'ait qu'un seul voisin proche, et qu'il s'agisse du PNJ qu'il adore (ou, à défaut, d'un PNJ qu'il aime bien)
Le biome
Chaque PNJ a un biome qu'il aime bien (ou adore), et un biome qu'il n'aime pas (ou déteste). Bizarrement, seul le Père Noël adore un biome (le biome neige) et en déteste un (le biome sable), tous les autres en aiment un et n'en aiment pas un autre.
Comme pour les voisins :
> Si le PNJ est dans le biome qu'il adore, il aura un multiplicateur de 0.9
> Si le PNJ est dans le biome qu'il aime bien, il aura un multiplicateur de 0.95
> Si le PNJ est dans le biome qu'il n'aime pas, il aura un multiplicateur de 1.05
> Si le PNJ est dans le biome qu'il déteste, il aura un multiplicateur de 1.1
Là encore, vous pouvez avoir l'avis du PNJ sur le biome actuel en lui parlant ou en regardant le tableau que j'ai posté, mais vous pouvez aussi connaître le biome qu'il aime bien/adore en regardant sa page du bestiaire : son sprite apparaîtra devant le fond de son biome préféré.
Les autres facteurs qui influent sur le bonheur
Si votre PNJ est à plus de 120 cases de sa maison, qu'il n'a pas de maison qu'il est dans un biome corrompu, il aura automatiquement le multiplicateur le plus haut (1.5). Donc acheter des items au gobelin, à la mécano ou au sorcier juste après les avoir secourus n'est pas une bonne idée
Pour le marchand ambulant, son multiplicateur dépend de sa distance horizontale par rapport au spawn : plus il est proche du spawn, plus il vend ses objets chers (+16.67% au centre de la map, -16.67% aux extrémités de la map)
Pour le squelette, ses multiplicateurs dépendent de la phase de la lune et de s'il fait jour ou nuit, et ils sont tous négatifs :
> pas de changement pendant la pleine lune (donc prix les plus bas)
> +10% pendant la lune gibbeuse
> +20% pendant les demi-lunes
> +30% pendant les croissants
> +40% pendant la nouvelle lune
> +10% le jour
Comment rendre un PNJ heureux ?
Pour résumer, si vous voulez qu'un PNJ ait le bonheur maximal, il faut impérativement :
1) qu'il soit dans son biome préféré : 0.95
2) qu'il ait exactement 1 voisin proche et que ça soit le PNJ qu'il adore : 0.9
3) qu'il ait au plus 3 voisins éloignés pour avoir le bonus de tranquilité : 0.9
Ainsi, le multiplicateur sera 0.95*0.9*0.9 = 76.95%, ce qui sera arrondi à 75%. C'est sauf erreur de ma part le seul moyen pour avoir le bonheur maximal.
S'il n'a pas de PNJ qu'il adore, lui mettre un PNJ qu'il apprécie donnera à la place un multiplicateur de 80%. Idem s'il n'est pas dans le bon biome mais qu'il a un PNJ qu'il adore
Et les pylons dans tout ça ?
Les pilonnes sont très faciles à obtenir : il suffit qu'un PNJ ait un bonheur inférieur ou égal à 85% pour qu'il vende le pilonne du biome dans lequel il se trouve. Ce n'est pas nécessaire qu'il soit dans son biome préféré. Aussi, il faut que le PNJ ait un onglet de vente (par ex le guide et l'infimière ne peuvent pas vendre de pilonne), et les 2 PNJ itinérants ne peuvent pas vendre de pilonne.
Il n'est pas non plus nécessaire d'avoir 2 PNJs dans le lieu pour acheter un pilonne, mais pour que le pilonne fonctionne il faut qu'il soit à proximité de 2 PNJs (peu importe leur bonheur). Vous pouvez rendre un PNJ heureux pour acheter un pilonne puis bouger vos PNJs et les rendre aussi malheureux que vous voulez, le pilonne restera utilisable tant qu'il y a 2 PNJs à proximité.
Voilà des exemples de setups simples qui permettent d'acheter un pilonne :
> Un PNJ seul dans son biome préféré lui donne un bonheur de 85%. Ajouter un 2e PNJ non-négatif permet de rendre le pilonne utilisable
> Un PNJ avec comme unique voisin proche un PNJ qu'il aime bien (et au plus 3 voisins éloignés pour le bonus de tranquillité) lui donne un bonheur de 85% (80% s'il adore le PNJ)
> Si vous voulez vraiment pas réfléchir : dans n'importe quel biome, si vous mettez le vendeur d'armes seul avec l'infirmière (avec au plus 3 autres PNJs en voisins éloignés), il vous vendra le pilonne du biome en question. Ça marche dans tous les biomes, même celui qu'il n'aime pas (à savoir le biome neige)
Voilà, j'espère que ça a été utile ! J'éditerai sans doute si y a des erreurs ou des modifications dans des futures màjs