Entête de wifeo  
 
 
FORMULES EN COMBAT DE DOFUS
 
Cette partie a pour but d’expliquer le plus possible les formules de combat sur Dofus et comment les calculer. Une autre partie appelée « formulaire » résume toutes les formules sans les explications.
 
Sommaire :
  1. Introduction à la fonction partie entière
  2. Formules de dégâts en général
  3. Formules de dégâts de poussée  
  4. Probabilité de retrait de PA ou PM
  5. Tacle, fuite et perte de PA et PM en taclant un adversaire
  6. Sorts de Soin
  7. Autres formules
    1) Introduction à la fonction partie entière E

De nombreux calculs sur Dofus amènent à des nombres décimaux ou fractionnaires, or pour que le jeu soit plus agréable il faut uniquement des nombres entiers. C’est pourquoi les games designers utilisent sans doute une fonction partie entière que l’on va noter E. Cette fonction associe à un nombre son entier inférieur.
 
Exemples : E(324,42) = 324                         E(12,6) = 12                        E(-3,56) = -4
 
Ici tous les nombres traités seront positifs et pas négatifs comme dans le dernier exemple. Pour les dégâts (qui sont à priori des nombres négatifs), il suffit juste de prendre l’opposé du résultat final des formules qui est un nombre positif.
    2) Formule de dégâts en général
 
Nous allons séparer la formule en 2 parties pour que ce soit plus simple, c’est à dire en dégâts max (appelés aussi dégâts infligés) avant l’application des résistances et en dégâts réels (appelés aussi dégâts subis) qui seront fonctions des résistances.
 
  1. Dégâts max
 
Les dégâts max ne dépendent que du personnage qui attaque, ils sont fonctions des éléments d’attaques, de la puissance, des dommages fixes et des dégâts de base.
 
Les dégâts de base sont les dégâts indiqués par le sort, leurs valeurs peuvent être aléatoire (c'est quasiment tout le temps le cas) et varier parmi tous les nombres entiers compris entre les valeurs indiquées.
 
Prenons le cas d’Aiguille (sort feu de Xélor), le coup normal du sort lvl 6 indique 25 à 29 de dégâts. Si on fait un coup normal, les dégâts de base du sort vont être 25, 26, 27, 28 ou 29 aléatoirement. (Y a t il une probabilité égale entre les valeurs ?)
 
Avec aucunes caractéristiques, le personnage va faire 100% de ces dégâts de base. Les caractéristiques (intelligence, chance, force et agilité) et la puissance sont des bonus en pourcentage des dégâts de base du sort et les dommages sont des bonus fixes qui viennent s’ajouter.

Si le sort est feu, il dépendra de l'élément intelligence, chance pour l’eau, force pour terre et neutre et agilité pour l’air. De même on associe les dommages élémentaires par élément d’attaque (dommages feu pour les attaques feu, etc). Les dommages (concernent les anciens items) comme ceux du voile d’encre donnent des dommages pour tous les éléments. En cas de coup critique, les dommages critiques viennent s’ajouter aux dégâts.
 
Ainsi, la formule des dégâts max est :
 
Dégâts max = E([dégâts de base]*(1 + (élément + puissance)/100) + dommages)
 
  1. Dégâts réels : résistances et coefficients
 
Cette fois-ci on va compter les résistances pour déduire les dégâts réels à partir des dégâts max, mais aussi d’autres bonus comme les pourcentages de dommages subis (tels que via vulnérabilité d’un pandawa ou bouclier feca) et les portails. On va faire plusieurs formules selon le cas en commençant par le cas simple majoritaire, sans bonus ou malus de dommage subi en %.
 
Les résistances sont composées de 2 termes : les résistances fixes (qui sont un peu comme des malus de dommages fixes) et les résistances en %. Les résistances fixes s’appliquent avant les résistances en %, de plus les sorts défensifs comme rempart du feca sont des bonus de résistances fixes. Comme pour les dégâts, on associe les résistances par élément d’attaque. En cas de coup critique, on ajoute aussi les résistances critiques dans les résistances fixes. Les dégâts réels sont tels que :
 
Dégâts réels = E((dégâts max – résistances fixes)*(1 – résistance en %))
 
S’il y a un coefficient de réduction ou d’augmentation de dommages subis, il s’applique à la fin (exemple : picole, vulnérabilité, bonus des portails éliotrope…). La formule devient :
 
Dégâts réels = E(E[(dégâts max – résistances fixes)*(1 – résistance en %)]*coefficient)
 
S’il y a plusieurs coefficients en jeu, ils se multiplient tous (double vulnérabilité par exemple ou cumul de plusieurs bonus différents). La formule devient :
 
Dégâts réels = E(E[(dégâts max – résistances fixes)*(1 – résistance en %)]*produit de tous les coefficients)
 
Problème non-résolue pour le moment : on n’obtient pas le bon résultat à l’unité près dans tous les cas avec cette formule comprenant les coefficients, de plus, j’ai remarqué que les dégâts peuvent varier suivant l’ordre d’envoûtement de la cible (vulné puis bouclier feca ne font pas les mêmes dégâts que bouclier feca puis vulné).
 
En plus des effets de sort, on peut avoir un coefficient par la plupart des sorts de zone (ce qui n’est pas le cas de synchro ou des bombes dans le combat contre la reine des voleurs par exemple). En effet, les dégâts d’un sort de zone diminuent de 10% par case d’éloignement de la case ciblée, c’est-à-dire que le coefficient sera de 100% sur la case centrale, 90% sur les cases à 1 PO de la case centrale, 80% sur les cases à 2 PO de la case centrale et ainsi de suite.
 
Coefficient d’un sort de zone = (10 – distance à la case centrale)/10
 
Remarque : le coefficient pour les cases adjacentes de la case centrale pour les bâtons, marteaux et pelles est de 75% (et non pas de 90%).
 
Coefficient des portails éliotrope : il sera redonné dans la partie autres formules et est calculé par :
 
Coefficient des portails = 1 + (bonus de niveau de sort) + (2*distance parcourue par les portails/100)
    3) Formule des dégâts de poussée
 
Lorsqu’un personnage est arrêté par un obstacle après qu’il ait été poussé par un sort, il subit des dégâts de poussée si le sort pouvait le pousser plus loin s’il n’y avait pas eu d’obstacle, ce que l’on appellera la distance de poussée restante. Le personnage peut ne pas être déplacé du tout (c’est-à-dire qu’il y a derrière lui un obstacle avant même que le sort ne soit lancé), les dégâts de poussés seront alors maximum. La distance de poussée restante est le nombre de cases de poussée du sort moins le nombre de cases parcourues. Un obstacle est un autre personnage ou une case où l’on ne peut pas jouer (case vide ou bloc).
 
Pour la cible du sort :
 
Dégâts de poussée = ([Niveau de l’attaquant]/2 + [dommages de poussée de l’attaquant – résistances de poussée de la cible] + 32) * [Distance de poussée restante]/4
 
Si la cible du sort est arrêtée par un personnage, ce dernier subi lui aussi des dégâts de poussée :
 
Pour la personne arrêtant la cible :
 
Dégâts de poussée = ([Niveau de l’attaquant]/2 + [dommages de poussée de l’attaquant – résistances de poussée de la cible] + 32) * [Distance de poussée restante]/8
 
S’il y a encore d’autres personnes qui se collent derrière, elles subissent tous des dégâts de poussée en divisant par 2 à chaque fois en partant de la personne arrêtant la cible (plus on est loin du personnage faisant obstacle, moins on subit de dommages de poussée).
    4) Probabilité de retrait de PA ou de PM
 
La plupart des retraits des sorts d’entraves de PA ou de PM sont esquivables (certains sorts sont inesquivables comme la retraite anticipée ou flou), la probabilité d’entraver augmente avec le retrait du lanceur et diminue avec l’esquive de la cible. Que ce soit pour le retrait de PA ou de PM, la probabilité est calculée pour chaque retrait d’un PA ou d’un PM (une maladresse ne retire pas 3 PM d’un coup mais 1 PM puis 1 PM puis 1 PM avec un calcul pour chaque).
 
Probabilité de retrait = 1/2 * (retrait du lanceur/esquive de la cible) * Points actuels/Points max
 
En effet, le coefficient points actuels/points max signifient que la probabilité diminue au fur et à mesure que l’on retire des PA ou des PM à la cible.
 
De plus la probabilité ne peut être comprise qu’entre 10% et 90%, cela veut dire que si on obtient moins de 10% par le calcul, la probabilité sera 10%, et si on obtient plus de 90%, la probabilité sera de 90%.
 
Le montant de retrait et d’esquive est déterminé par la sagesse divisé par dix ainsi que par les bonus spécifiques des équipements ou des envoûtements :
 
Retrait ou esquive d’un personnage = E(sagesse/10) + bonus spécifiques
    5) Tacle, fuite et perte de PA et de PM en taclant un adversaire
 
Lorsque deux personnages de camps différents sont sur des cases adjacentes (donc si les deux personnages sont au corps à corps, côte à côte), ils se taclent mutuellement, c’est-à-dire qu’ils pourront perdre des PA et des PM si ils tentent de sortir de leur case en utilisant des PM (et pas en se téléportant, s’attirant à quelque chose, etc). Ainsi le tacle est une méthode d’entrave.
 
Le montant de tacle et de fuite est déterminé par l’agilité divisé par dix ainsi que par les bonus spécifiques des équipements ou des envoûtements :
 
Tacle ou fuite d’un personnage = E(agilité/10) + bonus spécifiques
 
Un seul tacleur :
 
Le pourcentage restant de PA et de PM est alors calculé comme ci-dessous :
 
Pourcentage = (fuite + 2)/(2*(tacle + 2))
 
Sachant qu’on prend la fuite de celui qui tente de fuir et le tacle de son adversaire qui le colle. Les coefficients (+ 2) sont utilisés pour que le système fonctionne bien dans les cas où les personnages ont des tacles et fuites très faibles (cf devblog du 16/03/2011, tacle déterministe).
 
La perte de PA ou de PM peut être calculée par :
 
Perte de points = Points actuels * (1 – pourcentage)
 
Le résultat final est l’arrondi le plus proche à l’unité de ce calcul et non pas la partie entière, si on obtient 6,52 par le calcul, le résultat final sera 7.
 
Plusieurs tacleurs :
 
On calcul un pourcentage pour chaque tacleur individuellement, le pourcentage final sera le produit de tous les pourcentages individuels.
 
Par exemple, si un personnage avec une certaine fuite tente de fuir du tacle de deux adversaires ayant des tacles tacle1 et tacle2, on aura :
 
Pourcentage = Pourcentage1 * Pourcentage2
Pourcentage = (fuite + 2)/(2*(tacle1 + 2)) * (fuite + 2)/(2*(tacle2 + 2))
 
De ces formules, on peut déterminer les points à avoir pour totalement fuir ou tacler une cible :
 
Fuite totale :
 
Pour un seul tacleur, on veut que pourcentage = 100% = 1 donc :
2*(tacle + 2) = fuite + 2 <-> fuite = 2*(tacle + 2) – 2
 
<--> Fuite minimum = 2*(tacle + 1)
 
Pour plusieurs tacleurs, il suffit d’avoir la fuite minimum nécessaire pour fuir totalement le personnage tacleur qui a le plus de tacle.

Cepandant cette formule n’est pas rigoureuse, elle assure d’avoir assez de fuite mais n’est pas nécessaire.
 
Pour garder ses points en fuyant un adversaire, il faut que la perte de points soit inférieur à 0,5 (et donc de 0 en arrondissant). Soit P le nombre de PA ou de PM :
 
Perte de points  <  0,5

<-->  P * (1 - pourcentage)  <  0,5

<-->  P * (1- ((fuite + 2)/2*(tacle + 2))  <  0,5

<-->  1 - ((fuite + 2)/2*(tacle + 2))  <  0,5/P

<-->  - (fuite +2)/2*(tacle + 2)  <  0,5/P  -  1

<-->  fuite + 2  >  -2*(tacle + 2)*[0,5/P  -  1]

<-->  fuite  >  -2*(tacle + 2)*[0,5/P  -  1] – 2

                                                                                          

Ainsi, pour garder tous ses points (PA et PM) en fuyant un adversaire, il faut prendre la formule en remplaçant P par le nombre le plus élevé au moment de la fuite entre les PA et les PM. Cette formule indique donc que la fuite nécessaire est moins élevée qu’avec la formule précédente puisque elle est diminuée par le terme – 0,5/P.

 
Tacle totale :
 
Dans le cas d’un seul tacleur, pour totalement tacler un adversaire, il faut qu’il ne puisse pas bouger donc avoir une perte à l’arrondi de 100% de ses PM, sachant qu’on arrondi au supérieur (x + 1) à partir de x,5 donc :
 
Pertes de PM minimum = PM – 0,5 = PM*(1 – pourcentage minimum)
 
<--> PM * pourcentage minimum = 0,5
 
<--> PM * (fuite + 2)/(2*(tacle + 2)) = 0,5
 
<--> PM * (fuite + 2) = tacle + 2
 
<--> Tacle minimum = PM * (fuite + 2) – 2
 
Dans le cas de plusieurs tacleurs, cela dépend de quels paramètres on veut changer ou fixer, il faut reprendre la formule à partir de : Pourcentage minimum = 0,5/PM, sachant que ce pourcentage est le produit de tous les pourcentages individuels, puis fixer certains pourcentages pour en déduire le dernier et son tacle.
    6) Sorts de Soin :
 
Il existe 3 types de sorts de soin : ceux classiques qui sont similaire à des sort de dégâts avec un jet variable, ceux en pourcentage fixes de vitalité max et ceux en fonction des dégâts infligés (ou dégâts max).
 
a) Soin classique :
 
C’est le cas pour les armes de soin (arc hétype, baguette mallefisk…) et pour certains sorts (mot sélectif, secourisme, mot déroutant…). Le soin est fonction de l’intelligence et des bonus soin fixes, sachant qu’on a de base 100% de la puissance du sort :
 
Soin = E([Soin de base]*(1 + intelligence/100) + Bonus soin)
 
Si le sort a une zone (mot sélectif par exemple), il faut prendre en compte le coefficient d’éloignement comme pour les sorts de dégâts. On peut aussi avoir parfois des coefficients intervenant uniquement sur le soin (mot stimulant, propagation…) et qui interviennent dans le calcul comme pour les sorts de dégâts :
 
Soin = E(E([Soin de base]*(1 + intelligence/100) + Bonus soin)* produit de tous les coefficients)
 
b) Soin en pourcentage :
 
C’est le cas pour des sorts qui indiquent un pourcentage tels que cicatrisation, mot de régénération, etc.
 
Le soin des sorts comme cicatrisation indiquant un pourcentage de vitalité maximum se calcule comme-ci :
 
Soin = E(E(pourcentage * vitalité max) * produit de tous les coefficients)
 
La vitalité max peut diminuer avec les dégâts et l’érosion, formule traitée quelques lignes plus loin.

c) Soin en fonction des dégâts max
 
Le soin des sorts eau et air de l’eniripsa ou distribution de l’éliotrope est fonction des dégâts infligés et des coefficients, il n’est pas fonction des résistances de la cible, on peut même soigner avec ces sorts en frappant sur un adversaire invulnérable. Il se calcule comme ci :
 
Soin = E(E(dégâts max * coefficient augmentant les dégâts) * coefficients liés au sort et à la zone)
 
Remarquez que les coefficients diminuant les dégâts tels que bouclier feca par exemple n’interviennent pas dans le calcul, mais ceux des portails éliotrope ou du dofus turquoise oui.
 
Par exemple, si je veux calculer le soin du sort distribution (35% de soin) en me mettant à 1 PO de la cible (donc 90% de coefficient d’éloignement) et avec un bonus de 4% du dofus turquoise, le soin sera de :
 
Soin = E(E(dégâts max * 1,04) * 0,35 * 0,9)
 
Sachant que les dégâts max correspondent au terme définis précédemment et dépendant des caractéristiques du personnage (élément, puissance et dommages).
    7) Autres formules
 
  1. Coefficient des portails éliotrope
 
Les sorts de soin ou de dégâts lancés à travers les portails sont augmentés par un coefficient dépendant du niveau du sort portail et de la distance totale parcourue par le réseau de portail. Pour savoir comment il intervient dans les calculs, je vous invite à lire les parties « sorts de soin » et « formules de dégâts en général ». Le coefficient est calculé comme ci-dessous :
 
Coefficient des portails = 1 + (bonus de niveau de sort) + (2*distance totale parcourue par le réseau de portails/100)
 
Pour connaître la distance totale parcourue par le réseau à partir d’un portail d’entrée donné, il faut compter le nombre de cases nécessaires pour aller jusqu’au portail de sortie en respectant le chemin définit par la priorité des portails, c’est-à-dire que si on a 4 portails, il faut compter le nombre de cases nécessaires pour aller du portail d’entrée au 2ème portail, puis du 2ème portail au 3ème portail et enfin du 3ème portail au portail de sortie. Pour une explication complète sur les portails éliotrope, je vous invite à regarder la page « Portails éliotrope ».
 
  1. Cadran du xélor (sort au niveau 6)
 
Le cadran du xélor frappe en feu avec son sort oscillation tous les ennemis en état téléfrag dans la zone de 4 PO autour de lui, ses dégâts dépendent des caractéristiques de base de son lanceur :
 
Oscillation = E [(E ((31 à 35) * (5 + (intelligence + puissance) / 200)) + E ((dommages + dommages feu)/2)) * coefficient de zone]
 
Le coefficient de zone est exceptionnellement de 100% à 1 PO puis 90% à 2 PO, 80% à 3 PO et 70% à 4 PO.
 
Pour écrire la formule plus simplement mais sans être rigoureux (oui car avec tous ces E on s’y perd un peu) :
 
Oscillation = [ (31 à 35) * (5 + (intelligence + puissance) / 200) + (dommages + dommages feu)/2 ] * coefficient de zone
 
Les résistances s’appliquent seulement après le coefficient de zone ce qui fait que sur des résistances :
 
Dégâts réels du cadran = E [(Oscillation – résistance fixe) * (1 – résistance en %)]
 
  1. Bombes roublardes (sorts aux niveaux 6)
 
Les bombes roublardes ont 3 modes de dégâts différents : le lancer direct sur cible, le mur de bombes et enfin l’explosion de bombe via un déclencheur. Pour plus de détails sur les bombes roublardes, allez à la page « Bombes roublardes ».
 
  1. Lancer direct sur cible
 
Les bombes sont alors considérées comme tout autre sort classique mais les dégâts de base de ce mode de dégâts n’est pas celui indiqué (ils correspondent à ceux à l’explosion par déclencheur).
 
Dégâts de base :
 
Bombe feu -> 12 à 13
 
Bombe eau ou air -> 10 à 11
 
  1. Mur de Bombes
 
Comme pour le lancer direct sur cible, les dégâts de base des murs de bombes est différent de celui indiqué. Ils se calculent comme des dégâts de sort classique en ajoutant le coefficient lié au bonus de combo des bombes. Les dégâts des murs de bombes ne dépendent pas de la longueur du mur (6 cases au maximum) ni de la position ou se trouve la cible sur le mur. Les bonus de combo interviennent dans le calcul et le bonus total du mur est égal à la somme des bonus des deux bombes :
 
Dégâts de base :
 
Bombe feu -> 19 à 21
 
Bombe eau ou air -> 15 à 17
 
Dégâts d’un mur de bombes feu = E [E ((19 à 21)*(intelligence + puissance + 100)/100 + dommages) * (1 + somme des bonus des deux bombes)]
 
Dégâts d’un mur de bombes eau ou air = E [E ((15 à 17)*(élément + puissance + 100)/100 + dommages) * (1 + somme des bonus des deux bombes)]
 
Les résistances sont appliquées après les coefficients de bonus de combo des bombes.
 
  1. Explosion de bombes
 
Cette fois-ci les dégâts de base sont ceux indiqués par le sort. Il faut prendre en compte le coefficient d’éloignement du centre (la bombe tapant en cercle de 2 PO, il sera de 90% ou 80%). Si l’explosion fait exploser plusieurs bombes en même temps, chaque bombe aura le même bonus de combo qui sera la somme de tous les bonus de combo de chaque bombe.
 
Si par exemple on a une bombe à 100% de bonus, une bombe à 180% de bonus et une bombe à 40% de bonus avec l’effet rebours en coup normal (50%) et qu’elles explosent toutes les 3 par l’effet rebours, le bonus de chaque bombe sera la somme des 3 donc 370%, soit un coefficient de 4,7.
 
Dégâts d’une bombe = E [(dégâts max) * (1 + somme de tous les bonus de combo) * coefficient d’éloignement]
 
De même, les résistances sont appliquées après tous ces coefficients. La formule des dégâts max est donnée en partie 1.
 
Remarque importante : il existe 3 modes de déclenchement :
  • La détonation
  • Rebours (explose après 1 tour de jeu)
  • Poudre (explose quand la bombe perd tous ses pdv)
  •  
    Les bonus de combo de Rebours et Poudre ne sont appliqués que si le déclenchement est respecté (logique), il est donc inutile d’essayer de les combiner. Donc si vous faîtes rebours puis poudre puis détonation sur une même bombe, sachez que c’est débile puisque les bonus de rebours et poudre ne s’appliqueront pas. Je le dis parce que le nombre de fois où j’ai vu des roublards le faire…


     
    Toutes les illustrations de Dofus sont la propriété d'Ankama Studio - Tous droits réservés - Crédits : Ankama Games



    Créer un site
    Créer un site