Le manuel

Formules

Toutes les équations du jeu, telles qu’elles sont écrites dans le code, avec le chemin du fichier qui les implémente. Les constantes viennent du catalogue d’équilibrage et sont régénérées à chaque changement : si un chiffre bouge dans le jeu, il bouge ici, ou la suite de tests refuse de passer.

Ce que cette page garantit

Une page de theorycraft ne vaut que par sa fiabilité. Voici précisément ce qui est tenu, et par quel moyen.

  • Les chiffres ne sont pas recopiés. Ils sont extraits du catalogue d’équilibrage du serveur par un script, et un test compare l’extrait à la source. Un rééquilibrage non répercuté fait échouer la suite de tests — la doc casse le build au lieu de mentir.
  • Chaque formule cite son fichier. Vous n’avez pas à nous croire : le chemin sous chaque équation est celui du module qui la calcule pour de bon.
  • Les calculatrices exécutent le code du jeu. Elles importent les mêmes fonctions pures que le serveur, pas une réimplémentation.

Le piège

Une chose n’est pas publiée ici et ne le sera pas : les seuils de la détection anti-triche. Publier un garde-fou, c’est en publier le contournement. Tout le reste de l’équilibrage est sur cette page.

Économie

Total = (1+ΣDistrict) × (1+ΣBâtiment) × (1+ΣEncadrement) × (1+ΣCarte) × (1+ΣTemporaires) × (1+ΣPermanents)

La règle centrale du jeu. Les bonus d’une même catégorie s’additionnent, les catégories se multiplient. C’est pourquoi un sixième bonus de bâtiment rapporte moins qu’un premier bonus d’encadrement : ouvrir une catégorie vide vaut toujours mieux que renforcer une catégorie déjà pleine.

Implémenté dans src/domain/multipliers.ts

Gain = (base + perCharme × Charme_eff) × T_client × Multiplicateur_total

Le gain d’UN client. `T_client` est le multiplicateur du type de client tiré (d’un Standard à ×1 jusqu’à une Célébrité à ×8). Le Charme effectif entre linéairement : doubler le Charme ne double pas le gain, il double seulement la part `perCharme × Charme_eff`.

Implémenté dans src/domain/clients.ts

Gain_tick = ⌊ Gain × M_bonheur × M_nuit × M_épuisée × M_buff ⌋ + boisson + contrebande

Les correctifs appliqués au moment du tick, après le gain de base. `M_nuit` vaut 1+bonus de nuit entre 22 h et 6 h UTC, `M_épuisée` retire 25 % sous le seuil d’Endurance, `M_bonheur` suit les paliers d’humeur — et tombe à 0 sous 10 de Bonheur : une fille malheureuse ne rapporte rien du tout.

Implémenté dans src/domain/kernel.ts

N_clients ~ Poisson(λ) ; λ = λ_lieu × (1 + freq) × durée_du_tick_en_minutes

Le nombre de clients par tick est un tirage de Poisson, pas une moyenne fixe : deux ticks identiques ne donnent pas le même nombre de clients. `λ_lieu` vaut `streetBase` en rue, et `buildingBase + buildingPerLevel × niveau` en bâtiment — c’est la vraie raison pour laquelle monter un bâtiment de niveau rapporte, même sans bonus de gain.

Implémenté dans src/domain/clients.ts

Taux_affiché = espérance(clients/s) × espérance(gain/client)

Le taux que l’interface affiche est une espérance, pas une promesse : sur une minute donnée le Poisson décide. Cette fonction doit refléter le noyau au chiffre près — son commentaire documente trois divergences passées, chacune payée en Cash gratuit. C’est elle qu’il faut lire, jamais une reconstruction.

Implémenté dans src/server/game/service.ts

Boisson = p × cashPerBarLevel × niveau_du_bar_du_district × (1 + bonus_encadrement)

La vente annexe, ajoutée à chaque client. Elle dépend du niveau du Bar du district, pas du lieu où la fille travaille : un Bar monté haut arrose toutes les places du quartier. La probabilité `p` double dans la Rue de la Soif.

Implémenté dans src/server/game/service.ts

Salaire_cycle = Σ salaire(rareté) × (si Diva : divaMultiplier) × (1 + bonus_de_salaire)

Prélevé à chaque cycle de paie. Le salaire suit la rareté, pas le niveau : une Platinum niveau 1 coûte déjà vingt Bronzes. Deux cycles impayés déclenchent la grève, trois la démission.

Implémenté dans src/domain/payroll.ts

p_démission = max(0,05 ; (30 − Bonheur) / 100)

Au troisième cycle impayé, chaque fille tire sa démission. Le plancher de 5 % s’applique même à une fille parfaitement heureuse : la dette finit toujours par coûter une carte. À 0 de Bonheur, c’est 30 % par cycle.

Implémenté dans src/domain/payroll.ts

Cartes & progression

Stat_eff = ⌊ Base_lignée × M_forme × (1 + 0,05 × (niveau − 1)) × (1 + 0,02 × éveil) × M_shiny ⌋ + points_entraînés

La formule unique de toute statistique du jeu. `M_shiny` vaut 1,10 sur une forme en variante Shiny, 1 sinon. Les points d’entraînement sont ajoutés après la multiplication : ils ne profitent donc ni du niveau, ni de la forme, ni de l’éveil, ni du Shiny. Entraîner tôt une carte qu’on fera évoluer est un mauvais calcul.

Implémenté dans src/domain/stats.ts

XP(n) = ⌊ 100 × n^1,45 ⌋

XP nécessaire pour passer du niveau n au suivant. L’exposant a été adouci de 1,6 à 1,45 le 14/08 : le passage 49 → 50 est tombé d’environ 52 300 à 29 000 XP, parce que la fin de partie était devenue un mur.

Implémenté dans src/domain/kernel.ts

XP_gagnée = (2 × T_client + bonus_xp_du_client) × multiplicateur_xp_de_la_carte

L’XP suit le type de client, pas le gain en Cash. Un Touriste (×1,2, +1 XP) fait donc mieux monter qu’un Généreux (×2, +1 XP) rapporté à ce qu’il rapporte. Chaque niveau gagné rend aussi +5 de Bonheur.

Implémenté dans src/domain/kernel.ts

Coût(niveau → niveau+1) = round( baseCost × growth^niveau × mult_rareté × mult_ville )

La seconde voie : payer le niveau. La marche grandit à chaque niveau, si bien que pousser une carte au cap coûte plusieurs fois ce qu’elle rapporte entre-temps. C’est volontaire — c’est le puits de Cash non plafonné du jeu, et un coup d’accélérateur ciblé, jamais la façon normale de progresser.

Implémenté dans src/domain/leveling.ts

Coût_évo = base × mult_objet(rareté) pour les objets, base × mult_cash(rareté) pour le Cash

Deux paliers : Stade II au niveau 15 (Chaînes en Or), Stade III au niveau 30 (Bagues en Diamant). Le barème suit la rareté sur deux échelles différentes — les objets en 2/3/4/5, le Cash en 1/2/5/12. Faire évoluer une Platinum coûte douze fois le Cash d’une Bronze, mais seulement deux fois et demie ses objets.

Implémenté dans src/domain/evolution.ts

Bonus_éveil = +2 % par palier, multiplicatif dans Stat_eff ; 5 paliers au maximum

Un doublon n’est jamais perdu : il éveille la carte que vous possédez déjà. Le doublon EST le prix — aucune Étoile n’est débitée. Le jeu choisit automatiquement la meilleure copie comme cible (rareté, puis éveil, puis stade, puis niveau).

Implémenté dans src/domain/gacha.ts

XP_Boss(niveau) = round( 100 × niveau^1,5 )

Votre niveau à vous. Il ne débloque plus rien depuis que les déblocages sont passés au Cash : il ne sert qu’aux messages du Mentor et au classement. L’XP vient d’actions (construire, faire évoluer, remporter un contrat), pas du temps passé.

Implémenté dans src/domain/progression.ts

Travail, repos & police

Perte_end = (enduranceLossBase + T_client + extra_client) × (1 − réduction) × (rue : ×1,25)

Les gros clients fatiguent plus : le multiplicateur du client entre directement dans la perte. Les réductions s’additionnent puis sont plafonnées à 60 % — c’est le seul plafond, et il empêche l’endurance infinie.

Implémenté dans src/domain/kernel.ts

Perte_bonheur = bonheurLossPerClient × (1 − réduction), par client servi

Le Bonheur descend par client, pas par minute : une place très fréquentée use l’humeur bien plus vite qu’une place calme, à durée égale. C’est le vrai coût caché des bons emplacements.

Implémenté dans src/domain/kernel.ts

Bonheur −= (rue sans surveillance) + (endurance à 0) + (sacoche pleine au-delà du délai de grâce) + (laissée au vivier)

Trois érosions passives frappent une fille au travail, calibrées ensemble pour amener 100 → 0 en environ 48 h chacune prise isolément. Elles se cumulent : une fille en rue, épuisée et la sacoche pleine s’effondre en une nuit. La quatrième est d’une tout autre échelle : une fille laissée au vivier s’étiole d’environ 3 points par jour — un mois pour devenir volable, le temps qu’il faut pour l’oublier vraiment.

Implémenté dans src/domain/kernel.ts

Endurance = clamp( Endurance − postEnduranceLossPerMin × minutes_postées ; 0 ; max )

L’usure d’une intendante est calculée en forme close, pas tick par tick : elle est donc exacte même après une longue absence. À 0 elle garde son poste mais tous ses effets tombent — son périmètre cesse simplement de tourner, sans le moindre message.

Implémenté dans src/domain/kernel.ts

Regain/min = taux_du_lit × (1 + 0,1 × (niveau_bâtiment − 1)) × (1 + bonus_Confort)

Un repos se termine quand l’Endurance est pleine — c’est elle que le lit sert d’abord à refaire. Chaque lit a son taux, amélioré de 10 % par niveau de bâtiment. Le Bonheur reste un appoint : nul au QG, de un à quatre points par repos complet dans les lits payants selon leur gamme et leur niveau — jamais de quoi compenser une tournée, qui en coûte près de cinq. Les meilleurs lits posent en plus un buff, dont le minuteur ne démarre qu’au redéploiement.

Implémenté dans src/server/game/service.ts

CALME < 50 ≤ SURVEILLANCE < 80 ≤ ALERTE < 100 = DESCENTE ; pénalité de gains dès SURVEILLANCE

La jauge ne redescend jamais toute seule : chaque client servi l’alimente, et seules la page Police, la descente elle-même ou un objet la remettent à zéro. La pénalité de gains s’applique en tout ou rien dès 50 : passer de 49 à 50 coûte d’un coup 20 % de revenus, et laisser filer au-delà ne coûte pas plus en gains — mais rapproche de la descente. À 80, elle est annoncée ; à 100 elle tombe, que tu sois connecté ou non.

Implémenté dans src/domain/heat.ts

Heat/min = Σ(clients servis × tarif du lieu) × (1 − min(plafond ; S / (S + 4 × postes)))

Le Heat est l’ombre de ton rendement : il monte avec les clients servis, et d’autant plus vite que le lieu est exposé (la rue en tête, l’Hôtel Particulier en queue). Les surveillantes ne le font pas baisser — elles ralentissent sa montée, et le plafond garantit qu’elles ne l’annulent jamais. Un quartier qui fait travailler plus de filles exige plus de Sang-froid pour le même répit.

Implémenté dans src/domain/heat.ts

p_arrestation = plancher + (base − plancher) × arrestRefScore / (S + arrestRefScore)

La Surveillance du quartier réduit le risque d’arrestation, mais jamais sous le plancher : aucun mur de sang-froid ne rend une descente inoffensive. La courbe est continue — chaque point de S compte encore tout en haut de l’échelle. La capacité Bras Long peut en plus annuler la descente entière, plafonnée à 45 %.

Implémenté dans src/domain/heat.ts

S = Sangfroid_eff × (1 + ΣŒilDeLynx) × (1 + InstinctDeMeute) × (1 + RegardDAcier) + points_Sirène

Le score qui protège un district. Les districts voisins ne comptent qu’à 30 % : une surveillante ne couvre vraiment que là où elle est postée. Les points de Sirène sont plats et s’ajoutent après les pourcentages.

Implémenté dans src/domain/heat.ts

Recrutement

P(carte de rareté r) = cardChance(palier) × rates(palier)[r]

⚠️ Les taux du palier sont conditionnels : ils ne s’appliquent qu’une fois décidé qu’une carte tombe. Au palier 6, une Platinum ne sort pas 2 fois sur 100 parties mais 2 % × 60 % ≈ 1,2 %. C’est la table qui compte — celle des raretés de base est résiduelle.

Implémenté dans src/domain/find-girls-run.ts

si compteur_Platinum + 1 ≥ seuil → PLATINUM ; sinon si compteur_Gold + 1 ≥ seuil et rareté < GOLD → GOLD

La garantie est vérifiée avant le tirage pour la Platinum, et après pour la Gold : une Platinum tirée naturellement ne consomme donc pas la garantie Gold. Les deux compteurs sont persistants et affichés.

Implémenté dans src/domain/gacha.ts

EV(continuer) = P(réussite) × valeur(palier suivant) − valeur(palier acquis)

Le vrai calcul de la table : continuer ou encaisser. La valeur du lot de cadeaux est bornée par la validation de config (elle doit rester sous ~2,4 Étoiles-équivalent), faute de quoi continuer deviendrait perdant en espérance et le mode se saborderait.

Implémenté dans src/domain/find-girls-run.ts

Modes de jeu

Dégâts = ⌊ Stat × facteur_couleur × longueur × (1 + 0,1 × (longueur − 1)) × (1 + 0,25 × index_tracé) × élémentaire ⌋

La longueur compte deux fois (linéairement, puis en bonus) : un tracé de 6 fait bien plus du double d’un tracé de 3. Et l’index du tracé récompense les chaînes dans un même tour — le quatrième tracé frappe à +75 %.

Implémenté dans src/domain/duel.ts

facteur_couleur : charme ×1 · ruse ×2,2 · sangfroid ×2,45 · tchatche ×2,6

Ces facteurs ne sont pas arbitraires : ils sont l’inverse du ratio de puissance d’escouade mesuré dans le jeu (charme 1002 · ruse 462 · sangfroid 408 · tchatche 381). Sans eux, le Charme — déjà roi de l’économie — aurait aussi gagné le duel. C’est un correctif d’anti-cannibalisation, pas un bonus.

Implémenté dans src/domain/duel.ts

PV_max = round( pReq × hpTurnFactor × tours_cible )

Les PV d’une maison sont dérivés de la puissance qu’elle exige et du nombre de tours visé, jamais posés à la main. Deux invariants sont vérifiés par la validation de config : la maison doit être gagnable (la somme de ses attaques sur les tours visés reste sous 100 % de vos PV) et bornée (l’enrage monte de 20 %/tour, sans plafond).

Implémenté dans src/domain/duel.ts

Dégâts_ennemi = round( dégâts_de_base × (1 + stepPct × max(0 ; tour − afterTurn)) )

Passé son tour de patience, l’adversaire monte en puissance sans plafond : traîner est toujours perdant. Les attaques suivent en revanche une rotation scriptée (tour − 1) modulo le nombre d’attaques — aucun aléatoire, donc le jeu peut vous les annoncer à l’avance.

Implémenté dans src/domain/duel.ts

Cash = round( cash_base × (première victoire : ×2) × (rejoué hors Passe du soir : ×0,5) )

Les Étoiles ne tombent qu’à la première victoire. Le partage à 50 % en rejeu existe parce qu’à l’échelle de référence — un barreau vaut environ 6 fois le travail — un mode rejouable sans bride remplacerait l’économie au lieu de la compléter.

Implémenté dans src/domain/duel.ts

XP = round( ⌊ XP_requise(niveau) × fraction_du_palier ⌋ × (1 + bonus_perso) × (1 + bonus_Stratège) )

La récompense est une fraction du niveau courant, donc le Coaching reste utile à tous les niveaux au lieu de devenir dérisoire. Le palier 3 offre la moitié d’un niveau d’un coup.

Implémenté dans src/domain/zip.ts

XP/h = max( plancher ; XP_requise(niveau) × niveaux_par_jour / 24 ) × bonus, bonus plafonné

Le taux est recalculé à chaque niveau franchi, si bien que le temps par niveau reste constant : l’Académie donne un rythme, pas une quantité. Le plafond de bonus est le seul point de plafonnement — sans lui, les cinq sources cumulées atteignaient ×5,24, soit une dizaine de niveaux par jour.

Implémenté dans src/domain/training.ts

Puissance = Σ stat_dominante_de_chaque_membre × (1 + Σ % du domaine / 100)

Seule la stat du domaine du contrat compte : une escouade de Charme ne vaut rien sur un contrat de Ruse. Les pourcentages de capacités du domaine s’additionnent d’abord, puis multiplient la somme.

Implémenté dans src/domain/contracts.ts

CRITIQUE ≥ 1,5 × pReq · RÉUSSITE ≥ pReq · PARTIEL ≥ 0,8 × pReq · sinon ÉCHEC

Récompenses ×1,5 / ×1 / ×0,5 / ×0, et Bonheur +5 / 0 / 0 / −10. Viser le critique à 150 % vaut donc mieux que d’enchaîner deux réussites justes — mais un échec coûte du Bonheur en plus du temps immobilisé.

Implémenté dans src/domain/contracts.ts

pReq = max( 1 ; round( pReq_du_palier × facteur_du_domaine ) )

Le miroir exact du facteur de couleur du duel, dans l’autre sens : le Charme exige 100 % de la puissance affichée, les autres domaines entre 40 et 45 %. Sans ce correctif, les contrats hors Charme auraient été infaisables.

Implémenté dans src/domain/contracts.ts

Cible = round( (base + perBoss × Boss) × croissance^Boss )

Les missions suivent votre niveau de Boss, affine puis géométrique. Les missions de volume utilisent une croissance plus douce, parce que le nombre de clients servis sature (autour de 8 200/jour) là où le revenu, lui, continue de croître.

Implémenté dans src/domain/missions.ts

I = Σ Ruse_eff × (1 + ΣPassePartout + BeauParleur) × (1 + SangDeGlace) × (1 + bonus_archétype) + points_plats

Le score de votre escouade d’infiltration. Face à lui, la discrétion du défenseur vaut `I × (1 + réduction)` — le code applique bien (1 + r) là où le cahier des charges écrivait (1 − r) ; la divergence est assumée et commentée.

Implémenté dans src/domain/poach.ts

p_vol = clamp( 0,20 + 0,012 × (25 − Bonheur) + 0,0006 × (I − S) ; 0,05 ; 0,90 )

Malgré son nom, `p_vol` n’est plus une probabilité : un vol se joue, il ne se tire pas. Elle sert à deux choses — au plancher (0,05) la cible est hors de portée et l’attaque est refusée sans débit ; au-dessus, elle se convertit en handicap sur votre escouade (de ×0,80 à ×1,25) pour la Passe qui décide. Le Bonheur de la cible y pèse vingt fois plus que l’écart de score : garder ses filles heureuses reste la première défense PvP — mais elle n’est plus la dernière, puisqu’on peut désormais défendre en jouant.

Implémenté dans src/domain/poach.ts

vol = score_attaquant > score_défenseur, sur 5 tableaux × 3 tracés

La décision. Les deux camps jouent les mêmes plateaux (même graine) avec 3 filles chacun, sur le moteur de La Passe de Minuit ; le score est la somme des dégâts. Le défenseur a 24 h : ne pas répondre est un forfait, et un forfait coûte la carte. À égalité, le défenseur la garde. Les six filles engagées partent 24 h en Opération — involables, mais improductives.

Implémenté dans src/server/game/poach-duel.ts

p_détection = clamp( 0,10 + 0,0035 × (S − D) ; 0,05 ; 0,95 )

La surveillance du défenseur contre votre discrétion. C’est la seule chose que la détection décide encore : le défenseur est toujours prévenu qu’on vient chercher une de ses filles — sans quoi il ne pourrait pas la défendre — mais il n’apprend votre nom (et celui de votre escouade) que s’il vous a repéré. Une détection verrouille en outre ce défenseur pendant 48 h.

Implémenté dans src/domain/poach.ts

Prime = max( base × rareté × ville ; Cash_total_de_montée(1 → niveau) × part ) × (1 − meilleure_réduction)

Le prix d’un vol est un maximum de deux barèmes : le forfait de rareté, et une part de ce que la carte a réellement coûté à monter. Voler une carte très montée se paie à ce qu’elle vaut, pas à ce que sa rareté suggère.

Implémenté dans src/domain/poach.ts

Ville & bâtiments

C(n) = C(1) × upgradeFactor^(n−1)

Le facteur a été relevé de 2,2 à 2,4 : monter un bâtiment au niveau 5 est passé de 42,1 à 56,2 fois son prix initial. Les emplacements gagnés par niveau, eux, ne suivent pas cette courbe — d’où l’arbitrage entre monter un bâtiment et en ouvrir un autre.

Implémenté dans src/server/config/catalog.ts

Coût_emplacement = coût_de_base × multiplicateur_du_district × multiplicateur_de_la_ville

Les deux multiplicateurs se composent : un emplacement de bâtiment au Centre-Ville à Tokyo coûte 2,5 × 27 = 67,5 fois son prix en Banlieue à Los Angeles. C’est ce qui rend chaque nouvelle ville réellement dure, et non seulement plus lente.

Implémenté dans src/server/services/config.ts

Méta-progression

Disques = max( 0 ; ⌊ √(Cash_total_gagné / cashPerDo) × mult_ville ⌋ − déjà_gagnés )

La racine carrée : quadrupler ses gains ne double que les Disques. Le calcul porte sur le Cash total gagné depuis toujours, jamais sur le solde — thésauriser avant un Prestige ne rapporte rien.

Implémenté dans src/domain/prestige.ts

Cap_effectif = min( capMax ; cap_de_base + levelCapPerRank × rang_Confort )

La branche Confort est la seule façon de dépasser le cap de niveau de départ, et ses dix rangs y mènent exactement : chacun en ajoute cinq, la branche pleine vaut le cap absolu. Les rangs coûtent de plus en plus cher, du premier Disque au dernier.

Implémenté dans src/domain/prestige.ts

Points = Cash_de_la_fenêtre / cashPerPoint + victoires_PvP + contrats_haut_palier + galas

Le score de saison se lit sur une fenêtre glissante, pas depuis le début : un joueur revenu après une pause n’est pas condamné. Le Cash reste la source principale, mais le PvP et les galas valent chacun plusieurs centaines de milliers de Cash.

Implémenté dans src/domain/seasons.ts

Bonus = Σ lignées_complètes × bonus_lignée + Σ raretés_complètes × bonus_rareté

Un bonus permanent de gains, donc une catégorie entière de l’empilement des multiplicateurs. Une lignée n’est « complète » que si toutes ses formes finales sont acquises — ce que le nombre de domaines d’Ombre de la lignée détermine.

Implémenté dans src/domain/album.ts

Les invariants tenus par la CI

Certaines propriétés ne sont pas des choix d’équilibrage : ce sont des contraintes que la validation de configuration refuse de laisser franchir. Elles sont vérifiées à chaque changement, et elles valent donc plus qu’une intention.

InvariantCe qu’il garantit au joueur
La somme des taux de rareté vaut exactement 1, à chaque palier.Aucune probabilité résiduelle cachée : les tables publiées sont complètes.
La somme des probabilités de client vaut 1, et le gain moyen par client reste dans une fourchette étroite.Une table de rencontres exotique ne peut pas doubler vos revenus par accident.
Les taux de réussite visés des tables de recrutement (6 paliers) sont mesurés, avec une tolérance de ±8 points.La difficulté annoncée d’un palier est vérifiée, pas estimée à vue.
Chaque maison de duel est gagnable : la somme de ses attaques sur ses 4 tours visés reste sous vos points de vie.Aucune maison n’est mathématiquement imbattable à la puissance requise.
Chaque maison de duel est bornée : la furie monte sans plafond passé son tour de patience.Aucun duel ne peut être gagné en jouant la montre indéfiniment.
La valeur du lot de cadeaux du recrutement reste sous un seuil.Monter d’un palier reste rentable en espérance : le risque est la variance, pas le barème.

Calculatrices

Calculatrices

Elles exécutent les fonctions du jeu, pas une copie : ce qu’elles affichent est ce que le serveur calculera.

XP d’une montée de niveau

XP à accumuler59 044

Le cap de niveau de départ est de 50 ; la branche Confort du Prestige peut le pousser jusqu’à 100.

Cash d’une montée payée

Cash à dépenser126 406 $

Là où le code diverge du cahier des charges

Le jeu a été conçu sur un cahier des charges, puis corrigé à l’usage. Quand les deux se contredisent, c’est le code qui fait foi — et c’est le code qui est documenté ici. Trois divergences méritent d’être connues, parce qu’elles circulent encore sous leur ancienne forme.

  • Les taux de tirage vivants sont ceux des paliers des tables de recrutement, pas l’ancienne table de raretés « standard/premium », devenue résiduelle. C’est le chiffre le plus souvent cité de travers.
  • Les rotations d’intendantes ont lieu toutes les 15 minutes, alignées sur le balayage du serveur — et non toutes les 30 minutes comme on le lit parfois.
  • La discrétion du défenseur en débauchage multiplie par (1 + réduction) là où le cahier des charges écrivait (1 − réduction). La divergence est assumée : elle est commentée dans le module concerné.

À retenir

La courbe d’XP a elle aussi bougé : l’exposant est passé de 1,6 à 1,45. Les tableaux de progression publiés avant ce changement sur-estiment nettement le grind de fin de partie.