Comment repasser des pourcentages aux fonctions affines dans Heroes of the Storm ?
Note de JudgeHype : L'article est écrit par Aurorus, dont vous pouvez retrouver les builds Heroes sur Heroes Builder.
Vous pouvez télécharger l'article ci-dessous en 3 fichiers Word et Excel en cliquant ici.
Le 17 novembre lors de la mise à jour Cho'Gall, Blizzard nous a dit que désormais, chaque niveau gagné représente une progression de 4% pour les points de vie et 4% pour les dégâts à
la place d'une fonction affine.
Sauf qu'à cause de cette nouvelle augmentation de 4% par niveau, il est très fréquent que le chiffre obtenu ne soit pas exact, ce qui veut dire qu'il faut l'arrondir. Sauf que Blizzard
ne nous avait pas dit que les arrondis étaient fait de façon arbitraire. Comme exemple, j'ai pris le Blizzard de Jaina (désolé pour la multitude de Blizzard qui traîne).
La colonne "pourcentage" est celle calculée par le calculateur, dans laquelle il n'y a aucune erreur possible. La colonne "vraies valeurs" est la colonne dans laquelle j'ai relevé TOUTES
les valeurs du Blizzard de Jaina en boutique. Voir le tableur Excel, la colonne "le pourcentage exact", "les vraies valeurs" et "Différence entre Le pourcentage exact et vraies valeurs".
Niveaux |
Pourcentage exact |
Vraies valeurs |
Fonction affine |
Différence entre les vraies valeurs et la fonction affine |
Différence entre les pourcentages exacts et les vraies valeurs |
1 |
174 |
174 |
61 |
113 |
0 |
2 |
181 |
181 |
77 |
104 |
0 |
3 |
188 |
188 |
93 |
95 |
0 |
4 |
196 |
195 |
109 |
86 |
1 |
5 |
204 |
203 |
125 |
78 |
1 |
6 |
212 |
211 |
141 |
70 |
1 |
7 |
220 |
220 |
157 |
63 |
0 |
8 |
229 |
229 |
157 |
63 |
0 |
9 |
238 |
238 |
189 |
49 |
0 |
10 |
248 |
247 |
205 |
42 |
1 |
11 |
258 |
257 |
221 |
36 |
1 |
12 |
268 |
267 |
237 |
30 |
1 |
13 |
279 |
278 |
253 |
25 |
1 |
14 |
290 |
289 |
269 |
20 |
1 |
15 |
302 |
301 |
285 |
16 |
1 |
16 |
314 |
313 |
301 |
12 |
1 |
17 |
327 |
325 |
317 |
8 |
2 |
18 |
340 |
339 |
333 |
6 |
1 |
19 |
354 |
352 |
349 |
3 |
2 |
20 |
368 |
366 |
365 |
1 |
2 |
21 |
383 |
381 |
381 |
0 |
2 |
22 |
398 |
396 |
397 |
-1 |
2 |
23 |
414 |
412 |
413 |
-1 |
2 |
24 |
431 |
428 |
429 |
-1 |
3 |
25 |
448 |
446 |
445 |
1 |
2 |
26 |
466 |
463 |
461 |
2 |
3 |
27 |
485 |
482 |
477 |
5 |
3 |
28 |
504 |
501 |
493 |
8 |
3 |
29 |
524 |
521 |
509 |
12 |
3 |
30 |
545 |
542 |
525 |
17 |
3 |
Comme cette soustraction nous le confirme, il y a une différence entre les pourcentages exacts et les valeurs relevées en jeu, du à l'arrondi made in Blizzard. Par exemple, la valeur du
niveau 6 du Blizzard de Jaina en pourcentage est exactement = 211.697605. Donc, si j'arrondis pour qu'il y ait 0 chiffre après la virgule (parce que dans le jeu il n'y a jamais de chiffre
derrière une virgule), ça serait = 212, sauf que dans le jeu c'est = 211. L'explication peut venir du fait qu'il doivent toujours se rapprocher au maximum de la fonction affine de départ
et de s'en éloigner au minimum.
Ce qui veut dire que même si les fonctions affines ont disparu, il reste une infime partie d'elles ! Car comme les chiffres nous le montre, la différence entre les "vraies valeurs" et "la
fonction affine" se réduit jusqu'au niveau 20. Blizzard a considérablement changé l'early game mais pas du tout le late game, ce qui veut dire que les sorts enlèvent toujours autant
de dégâts au niveau 20.
Voir le tableur Excel, colonne "différence entre les vraies valeurs et La fonction affine".
Donc maintenant vient le graphique détaillé du sort Blizzard de Jaina. Pourquoi ai-je choisi Jaina alors qu'on connait déjà ces fonctions et que seules celles de Lunara et Cho'Gall
sont inconnues ? Car comme les fonctions de Jaina sont déjà affichées sur le net. Si ma méthode est juste, je devrais les retrouver, et ensuite appliquer la méthode sur Lunara et
Cho'Gall.
On peut voir que les niveaux suivants le 20 sont très proches de l'ancienne fonction f(x) du blizzard de Jaina (même si j'admets que le graphique est assez imprécis). En d'autres termes,
il suffit juste de récupérer le chiffre du niveau 20 et 21 pour obtenir deux équations !
f(20)=a*20+b=365 et f(21)=a*21+b=381
Sauf qu'il manque un chiffre... Il nous faut soit le a, soit le b... Et bien le a est (heureusement) très facilement trouvable, puisqu'il est égal à la différence du résultat de a=f(21)-f(20)
<=>a=381-365=16
Maintenant on a tout pour résoudre cette équation.
16*20+b=365
b=365-(16*20)
b=365-320
b=45
f(x) de Blizzard =16x+45 est la VRAIE fonction de Blizzard, maintenant il ne me reste plus qu'à faire ça pour Lunara et Cho'Gall (c'est déjà fait), sauf qu'un problème se pose, les
pourcentages ont 1 de marge d'erreur à chaque fois, donc il y a 2 fonctions possibles pour les héros, soit une fonction allant de 5 en 5 (ou plutôt appelée divisible par 5) ou une "libre".
Un exemple sera plus parlant : l'éclair de Givre de Jaina.
f(x)=15x+50 Cette fonction suivra la table de 5 peu importe le x, le résultat de la fonction sera un multiple de 5, sauf qu'avec les pourcentages arrondis de façon arbitraires, au
niveau 20 l'éclair de givre enlève 351 points de vie (au lieu de 350 avec les fonctions affines) et au niveau 21 il enlève 365 (qui est le chiffre juste).
Donc si j'utilise ma méthode (genre je cherche la fonction f(x) de l'éclair de givre) je fais :
a=f(21)-f(20) <=> 365-351=14
b=f(20)-(a*20) <=> 351-(14*20)
351-280=71
Donc la fonction f(x)=14X+71 (au lieu de 15x+50 qui est la fonction exacte)
Voir le graphique de l'éclair de givre et les chiffres de l'éclair.
Faux éclair de givre |
Vrai éclair de givre |
Pourcentage de différence en % |
85 |
65 |
31 |
99 |
80 |
24 |
113 |
95 |
19 |
127 |
110 |
15 |
141 |
125 |
13 |
155 |
140 |
11 |
169 |
155 |
9 |
183 |
170 |
8 |
197 |
185 |
6 |
211 |
200 |
6 |
225 |
215 |
5 |
239 |
230 |
4 |
253 |
245 |
3 |
267 |
260 |
3 |
281 |
275 |
2 |
295 |
290 |
2 |
309 |
305 |
1 |
323 |
320 |
1 |
337 |
335 |
1 |
351 |
350 |
0 |
365 |
365 |
0 |
379 |
380 |
0 |
393 |
395 |
-1 |
407 |
410 |
-1 |
421 |
425 |
-1 |
435 |
440 |
-1 |
449 |
445 |
-1 |
463 |
470 |
-1 |
477 |
485 |
-2 |
491 |
500 |
-2 |
On peut en conclure d'après les chiffres et les pourcentages, que la fausse formule est beaucoup plus "early game" c'est-à-dire qu'elle fait plus de dégâts en début de partie que la vraie
fonction mais elle fait moins de dégâts que la vrai fonction en fin de partie. La question intéressante maintenant est de se demander si la vraie formule est toujours celle qui fait le moins
de dégâts en early game.
Si la réponse était oui, alors la bonne formule serait toujours celle qui est le moins "early" mais ce n'est pas le cas hélas, c'est Rexxar qui nous le prouve avec son sort "Misha, charge !".
Car au niveau 20 ce sort enlève 129 pv au lieu de 130, la (vraie) fonction étant 5x+30, or la fausse fonction serait égale à f(x)=6X+9.
Voir le graphique de Misha
Fausse Misha |
Vraie Misha |
15 |
35 |
21 |
40 |
27 |
45 |
33 |
50 |
39 |
55 |
45 |
60 |
51 |
65 |
57 |
70 |
63 |
75 |
69 |
80 |
75 |
85 |
81 |
90 |
87 |
95 |
93 |
100 |
99 |
105 |
105 |
110 |
111 |
115 |
117 |
120 |
123 |
125 |
129 |
130 |
135 |
135 |
141 |
140 |
147 |
145 |
153 |
150 |
159 |
155 |
165 |
160 |
171 |
165 |
177 |
170 |
183 |
175 |
183 |
180 |
Comme le graphique nous le confirme, la courbe de la "vraie Misha" est la plus "early" donc on ne peut être sûr de rien ! Soit la fonction f(x) au niveau 20 est imprécise et elle est
censée se terminer par 0 ou 5 ou elle est juste et se termine par 1 ou 9 comme le Blizzard de Jaina au niveau 21 nous le confirme. En conclusion, on ne peut jamais être sûr de sa fonction
à 100% car il y aura 1 point en trop ou justement en moins ! La seule exception que j'ai vu c'est au niveau 21 de Jaina, pour lequel la différence est de 0. Ce qui signifie également que
les 2 niveaux qui ont le moins de marge d'erreur sont le niveau 20 et 21.
En résumé :
Pour ceux qui n'ont rien compris, pour retrouver la fonction affine d'un sort d'un nouveau héros, vous relevez les dégâts fait par ce sort au niveau 20 et 21, car ce sont ces 2 niveaux qui
ont la plus petite marge d'erreur. Vous appliquez :
f(21)-f(20)=a
b=f(20)-(a*20)
Et vous avez a et b et ainsi ax+b
Maintenant que vous avez (j'espère) compris, voici le document avec les fonctions de Lunara et Cho'Gall.
Mise à jour
Remplacer f(21) par f(24) donnera une fonction plus précise. De plus, il NE faut PAS que la fonction dépasse 3 de marge d'erreur avec les pourcentages d'origine.
Les Pourcentages et les Fonctions affines des héros de Heroes of the Storm !
Lunara
- Fleurs Noctives = 15X+50 Ou 14x+71
- Couronne d'Epines = 15X+60 Ou 14X+80
- Frappe Bondissante = 22X+99 Ou 20X+140 ou 23x+79
- Toxine Naturelle = 3X+10
- Toxine Drainante = 2X-1
- PV = 115X+550 OU 114X+571
- Auto-attaque = 8X+37
- Régénération PV = 0.23X+1.29
Cho
- A = 5X
- Z = 12X+54 et 24X+116 Ou 10X+94 ET 25X+95
- E = 8X+40
- R Marteau = 17X+36
- R Tumulte = 4X+30
- Auto-attaque = 13X+29
- Régénération PV = 0.81X+1.44
- PV = 381X+876 Ou 380X+900
Gall
- A = 20X-10
- Z = 20X-7
- E = 25X+100 (au maximum de sa canalisation)
- R Néant = 30X+150
- R Salve = 9X+46 Ou 10X+25
- Bouclier de l'effroi = 23X+101 Ou 25X+60
Légende
- Celle qui a été arrondies à partir de f(21)-f(20)
- Celle annoncées par le calculs de f(21)-f(20)
- Celle qui n'a pas été annoncé par le calcul mais que je suis sûr
- Fonction trouvée à partir de f(24)-f(20)/4 (qui est la plus précise)
Le plus étonnant dans ces fonctions, c'est que pour la première fois, certaines fonctions ont un b négatif. De plus, celles dont je suis sûr sont toujours des fonctions en rapport avec
les points de vie du héros, les anciennes fonctions des points de vie des héros étaient TOUJOURS divisibles par 5. Les fonctions pour les auto-attaques en revanche, c'est plutôt l'inverse,
dont celles énoncées par le calculs sont probablement les bonnes.