10 avril 2023
Calcul des dégâts
Comme nous l’avons vu précédemment, les dégâts infligés par une attaque sont :
- proportionnels à la puissance de l’attaque : PUIATT
- éventuellement multipliés par le bonus de type : STABATT
- multipliés par le coefficient d’efficacité du type de l’attaque sur le type du Pokémon adverse : CETATT / ADV
- proportionnels à l’attribut d’attaque du Pokémon : ATTREEL
- inversement proportionnels à l’attribut de défense du Pokémon adverse : DEFREEL
Dans la pratique, le jeu utilise la formule suivante pour calculer les dégâts infligés par une attaque :
DGTATT = 1/2 * PUIATT * STABATT * CETATT / ADV * ATTREEL / DEFREEL ADV + 1
Comme d’habitude, le résultat est arrondi à l’entier inférieur.
Cette valeur de dégâts est soustraite des PVs de l’adversaire, qui tombe KO quand ses PV atteignent 0.
On peut donc calculer les dégâts infligés par l’attaque immédiate et par l’attaque chargée :
DGTIMM = 1/2 * PUIIMM * STABIMM * CETIMM / ADV * ATTREEL / DEFREEL ADV + 1
DGTCHG = 1/2 * PUICHG * STABCHG * CETCHG / ADV * ATTREEL / DEFREEL ADV + 1
Le nombre d’attaques immédiates nécessaires pour déclencher l’attaque chargée dépend de :
• l’énergie générée par l’attaque immédiate : NRJIMM.
• l’énergie nécessaire à l’attaque chargée : NRJCHG
N = NRJCHG / NRJIMM
On peut donc calculer le total des dégâts infligés par un Pokémon à son adversaire sur le cycle complet constitué des N attaques immédiates et de l’attaque chargée:
DGTCYCLE = DGTIMM * N + DGTCHG
Calcul de l’efficacité (DPS)
L’efficacité d’un Pokémon face à son adversaire doit prendre en compte la durée du cycle ci-dessus : plus les attaques sont rapides, plus des dégâts du cycle seront infligés souvent.
L’efficacité d’un Pokémon se mesure donc en Dégâts Par Seconde (DPS). C’est le rapport entre les dégâts infligés pendant le cycle et la durée totale du cycle.
DPSCYCLE = ( DGTIMM * N + DGTCHG ) / ( DURIMM * N + DURCHG )
Exemple
Etudions le cas d’un Mackogneur [ Riposte + Dynamopoing ], niveau 30 et IV=100%, contre un Tyranocif et un Ectoplasma, niveau 30 et IV=100% également.
Attaques de Mackogneur | Riposte | Dynamopoing |
---|---|---|
PUI | 12 | 90 |
DUR (seconde) | 0.9 | 2.7 |
NRJIMM | 8 | - |
NRJCHG | - | 50 |
50 / 8 = 6.25, on en déduit que N = 7.
Adversaire : Tyranocif
DGTRIPOSTE = [ 1/2 * 12 * 1.2 * 2.56 * 182.2 / 162.4 + 1 ] = 21
DGTDYNAMOPOING = [ 1/2 * 90 * 1.2 * 2.56 * 182.2 / 162.4 + 1 ] = 156
DPSCYCLE = ( 21 * 7 + 156 ) / (0.9 * 7 + 2.7 ) = 33.67
Adversaire : Ectoplasma
DGTRIPOSTE = [ 1/2 * 12 * 1.2 * 0.244 * 182.2 / 120.0 + 1 ] = 3
DGTDYNAMOPOING = [ 1/2 * 90 * 1.2 * 0.244 * 182.2 / 120.0 + 1 ] = 21
DPSCYCLE = ( 3 * 7 + 21 ) / (0.9 * 7 + 2.7 ) = 4.67
L’efficacité d’un Pokémon n’est pas absolue, elle varie beaucoup d’un adversaire à l’autre.
Calcul des dégâts totaux (TDO)
Pour les combats de raid, au-delà de ses DPS, il est important de savoir combien de dégâts votre Pokémon va infliger au total avant d’être mis KO, car ce sera sa vraie contribution lors d’un raid. Les dégâts totaux sont usuellement appelés TDO, pour Total Damage Output.
Avec les DPSCYCLE, cette donnée complète la performance d’un Pokémon en combat.
• Un Pokémon avec des DPSCYCLE très élevés mais qui n’a aucune résistance ne fait que peu de dégâts au total : il faut plus de Pokémons pour arriver à bout du Boss de raid.
• A contrario, un Pokémon très résistant mais avec des DPSCYCLE faibles peut faire des dégâts respectables, mais très lentement : il vaudrait mieux utiliser deux Pokémons plus percutants à la place.
Les Boss de raid ne se comportent pas comme les joueurs humains. Mais nous connaissons l’algorithme pseudo-aléatoire utilisé (pseudo car statistiquement déterminé et prévisible) :
- Le Boss déclenche une attaque toutes les 2 secondes, la durée des attaques n’est pas prise en compte.
- Par défaut, le Boss joue une attaque immédiate, qui recharge la jauge d’énergie.
- Quand la jauge est pleine, il y a une chance sur deux que le Boss déclenche l’attaque chargée. Sinon, il utilise une autre attaque immédiate.
Statistiquement, le Boss déclenche donc son attaque 2 tours (4 secondes) après que la jauge d’énergie a été chargée (je vous laisse vérifier la valeur de la somme des inverses des puissances de 2).
Nous pouvons donc calculer la Durée de Vie (DV) de votre Pokémon, le temps (en secondes) pendant lequel votre Pokémon va rester au combat avant de tomber KO.
On a alors de manière évidente :
TDO = DV * DPSCYCLE |
Dernier cycle avant KO
Malheureusement, le calcul ci-dessus est théorique et ne correspond pas à la réalité.
Il est exact sur un cycle complet, mais devient faux si vous n’avez pas le temps de déclencher votre dernière attaque chargée, car les dégâts de l’attaque chargée sont les premiers contributeurs aux DPSCYCLE.
Or :
- DV n’est pas un multiple du temps d’exécution du cycle : votre Pokémon n’est mis pas toujours mis KO juste après avoir déclenché votre attaque chargée.
- DV est une moyenne statistique, car l’algorithme pseudo-aléatoire du pokémon adverse crée des variations d’un combat à l’autre : le Boss peut déclencher l’attaque chargée fatale 2 secondes plus tôt ou plus tard.
Nous allons affiner le calcul pour la dernière portion de cycle avant que votre Pokémon ne soit KO.
Comparons les dégâts théoriques infligés dans le temps avec la droite obtenue en multipliant les DPSCYCLE par le temps.
Les valeurs sont identiques à la fin du cycle. Mais tant que vous utilisez l’attaque immédiate, les dégâts théoriques sont bien en dessous de la moyenne, et ce jusqu’à ce que vous utilisiez l’attaque chargée.
Si le calcul donne DV = 8 secondes, il y a en réalité une chance sur deux que l’attaque chargée fatale du Boss se produise plus tôt, donc que votre Pokémon n’ait pas le temps de déclencher son attaque chargée.
En conséquence, la moyenne statistique des dégâts réellement infligés (croix verte) reste bien en dessous de la valeur théorique.
Après calculs, voici la courbe des Dégâts Réels (en vert) qui représente les dégâts réels moyens (statistiques) infligés en fonction de DV.
On ne peut donc pas calculer le TDO à partir des DPSCYCLE qui ne sont jamais atteints.
Il est impératif de simuler le combat dans le temps : calculer DVREEL et ses variations possibles en fonction des aléas de l’algorithme du Boss, déterminer combien d’attaques votre Pokémon peut déclencher en moyenne pendant ce temps, et en déduire les dégâts totaux moyens qu’il inflige à l’adversaire : TDOREEL.
Alors seulement, on peut calculer combien de dégâts il a infligé par unité de temps : DPSREEL.
DVREEL = Résultat de la simulation
TDOREEL = Résultat statistique de la simulation
DPSREEL = TDOREEL / DVREEL
Cette valeur réelle des DPS est très différente de la valeur théorique des attaques, et mesure la véritable efficacité du Pokémon et de ses attaques contre un adversaire donné.
Cette valeur DPSREEL est calculée par mon simulateur et présentée dans les fiches de raid.
Exemples
• Deoxys forme Attaque est doté du meilleur attribut d’attaque du jeu, mais du plus petit attribut de défense et de peu de PV. La plupart du temps, il ne vit pas assez longtemps pour déclencher son attaque chargée et devient donc complètement inutile.
• Même chose pour Kyogre contre Groudon quand celui-ci est équipé de l’attaque chargée Lance-Soleil.
Energie générée par les dégâts encaissés
En combat de raid et d’arène (mais pas en PvP), à chaque fois qu’un Pokémon subit des dégâts, il gagne une quantité d’énergie égale à la moitié des PVs perdus.
Au cours du combat, un Pokémon reçoit donc une quantité d’énergie égale à la moitié de ses propres PV, même si souvent il ne peut pas utiliser les derniers points d’énergie reçus puisqu’il sera instantanément KO.
Le phénomène, qui concerne attaquants, Boss de raid et défenseurs d’arène, est amplifié par le nombre de joueurs attaquants. Grâce à cette énergie complémentaire, les Pokémons déclenchent leur attaque chargée plus rapidement, dans la limite d’une attaque chargée en moyenne tous les deux tours pour le Boss.
L’impact dynamique sur le combat n’est pas calculable a priori, mais la simulation montre que cela agit comme un accélérateur du combat : la durée de vie des Pokémon diminue sensiblement, mais les dégâts totaux moyens diminuent dans une moindre proportion, et globalement les DPSREEL ont tendance à augmenter.
Mon simulateur intègre cette mécanique pour calculer DVREEL, TDOREEL et donc DPSREEL.
Cas calculs sont principalement utiles pour les combats de raid.
Dans les combats de dresseurs ou contre la Team Go Rocket, la simulation est différente car l’enjeu est plus basiquement de survivre à l’adversaire.
Une fois que vous connaissez les meilleurs Pokémons pour chaque type de combat, vous devez entraîner vos Pokémons.