Pokémon Go: Difference between revisions

Tag: Manual revert
 
(19 intermediate revisions by the same user not shown)
Line 24: Line 24:
CPMs range from 0.094 to 0.8403. Non-integer Levels are always defined using the quadratic mean (root of mean of squares): CPM(L + 0.5) = √((CPM(L)<sup>2</sup> + CPM(L + 1)<sup>2</sup>) / 2), getting us down to 50 constants.
CPMs range from 0.094 to 0.8403. Non-integer Levels are always defined using the quadratic mean (root of mean of squares): CPM(L + 0.5) = √((CPM(L)<sup>2</sup> + CPM(L + 1)<sup>2</sup>) / 2), getting us down to 50 constants.


There are five regimes of growth: 1–9.5, 10–19.5, 20–29.5, 30–39.5, and 40+. Beginning at Level 40, CPM growth becomes linear: 0.7903 (40), 0.8103 (44), 0.8303 (48), 0.8403 (50). So CPM is perfectly fit for integral Levels 40+ by the function ''0.01 * (L - 40) / 2 + 0.7903''. We can define all 99 half-level CPMs recursively in O(n) time and O(1) space using seven floating-point and six integer constants:
There are five regimes of growth: 1–9.5, 10–19.5, 20–29.5, 30–39.5, and 40+. Beginning at Level 40, CPM growth becomes linear: 0.7903 (40), 0.8103 (44), 0.8303 (48), 0.8403 (50). So CPM is perfectly fit for halflevels 79+ by the function ''0.0025 * (L - 79) + 0.7903''. We can define all 99 half-level CPMs recursively in O(n) time and O(1) space using seven floating-point and six integer constants:
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
float nextcpm(float cpm, float step){
float nextcpm(float cpm, float step){
   return sqrt(power(cpm, 2) + step);
   return sqrt(pow(cpm, 2) + step);
}
}


// halflevel: positive integer (usually less than 100) equal to L * 2 - 1
// halflevel: positive integer (usually less than 100) equal to L * 2 - 1
float cpm(int halflevel){
float cpm(int halflevel){
  float step;
   if(halflevel >= 79){ // Levels 40 and above are computed directly
   if(halflevel >= 79){ // Levels 40 and above are computed directly
     return 0.0025 * (halflevel - 39) + 0.7903;
     return 0.0025 * (halflevel - 79) + 0.7903;
   }else if(halflevel >= 59){ // Levels 30..39.5
   }else if(halflevel >= 59){ // Levels 30..39.5
     step = 0.00445946079;
     step = 0.00445946079;
Line 48: Line 49:
}
}
</syntaxhighlight>
</syntaxhighlight>
Powering up has a cost in Stardust and XL Candy. The XL Candy cost is 0 until Level 40.5, at which point it costs 10 to power up to 41, up to 20 to power up from 49.5 to 50. The total cost from Levels 40 to 50 is 250k Stardust and 296 XL Candy.
Powering up has a cost in Stardust, Candy, and [[XL Candy]]. The XL Candy cost is 0 until Level 40, at which point it costs 10 to power up to 40.5, up to 20 to power up from 49.5 to 50. The total cost from Levels 40 to 50 is 250k Stardust and 296 XL Candy.


{{:Pokémon_Go_CPM_data}}
{{:Pokémon_Go_CPM_data}}
Line 203: Line 204:
*** Impact of IVs goes down as Pokémon grow more absolutely powerful and 15 << base stats
*** Impact of IVs goes down as Pokémon grow more absolutely powerful and 15 << base stats
*** In mismatched battles, an IV advantage ''for the weaker Pokémon'' can shrink the difference; an IV advantage for the stronger Pokémon has much less effect
*** In mismatched battles, an IV advantage ''for the weaker Pokémon'' can shrink the difference; an IV advantage for the stronger Pokémon has much less effect
* All CPMs are less than 1, shrinking the effective values
* CPM ratio has less range than A/D
** We can factor out the CPM ratio and define a constant 100x100 symmetric matrix
** We can factor out the CPM ratio and define a constant 100x100 symmetric matrix
** Minimum value: 0.094 / 0.8403 ~= 0.11186
** Minimum value: 0.094 / 0.8403 ~= 0.11186
Line 226: Line 227:
| '''Normal''' || 0 || 0 || 0 || 0 || 0 || -1 || 0 || -2 || -1 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || '''-4'''
| '''Normal''' || 0 || 0 || 0 || 0 || 0 || -1 || 0 || -2 || -1 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || '''-4'''
|-
|-
| '''Fighting''' || 1 || 0 || -1 || -1 || 0 || 1 || -1 || -2 || 1 || 0 || 0 || 0 || 0 || -1 || 1 || -1 || 1 || -1 || '''-3'''
| '''Fighting''' || 1 || 0 || -1 || -1 || 0 || 1 || -1 || -2 || 1 || 0 || 0 || 0 || 0 || -1 || 1 || 0 || 1 || -1 || '''-2'''
|-
|-
| '''Flying''' || 0 || 1 || 0 || 0 || 0 || 0 || 1 || 0 || -1 || 0 || 0 || 1 || -1 || 0 || 0 || 0 || 0 || 0 || '''1'''
| '''Flying''' || 0 || 1 || 0 || 0 || 0 || -1 || 1 || 0 || -1 || 0 || 0 || 1 || -1 || 0 || 0 || 0 || 0 || 0 || '''0'''
|-
|-
| '''Poison''' || 0 || 0 || 0 || -1 || -1 || -1 || 0 || -1 || -2 || 0 || 0 || 1 || 0 || 0 || 0 || 0 || 0 || 1 || '''-4'''
| '''Poison''' || 0 || 0 || 0 || -1 || -1 || -1 || 0 || -1 || -2 || 0 || 0 || 1 || 0 || 0 || 0 || 0 || 0 || 1 || '''-4'''
Line 254: Line 255:
| '''Ice''' || 0 || 0 || 1 || 0 || 1 || 0 || 0 || 0 || -1 || -1 || -1 || 1 || 0 || 0 || -1 || 1 || 0 || 0 || '''0'''
| '''Ice''' || 0 || 0 || 1 || 0 || 1 || 0 || 0 || 0 || -1 || -1 || -1 || 1 || 0 || 0 || -1 || 1 || 0 || 0 || '''0'''
|-
|-
| '''Dragon''' || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || -1 || 0 || 0 || 0 || 0 || 0 || 0 || 1 || 0 || -2 || '''-1'''
| '''Dragon''' || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || -1 || 0 || 0 || 0 || 0 || 0 || 0 || 1 || 0 || -2 || '''-2'''
|-
|-
| '''Dark''' || 0 || -1 || 0 || 0 || 0 || 0 || 0 || 1 || 0 || 0 || 0 || 0 || 0 || 1 || 0 || 0 || -1 || -1 || '''-1'''
| '''Dark''' || 0 || -1 || 0 || 0 || 0 || 0 || 0 || 1 || 0 || 0 || 0 || 0 || 0 || 1 || 0 || 0 || -1 || -1 || '''-1'''
Line 260: Line 261:
| '''Fairy''' || 0 || 1 || 0 || -1 || 0 || 0 || 0 || 0 || -1 || -1 || 0 || 0 || 0 || 0 || 0 || 1 || 1 || 0 || '''0'''
| '''Fairy''' || 0 || 1 || 0 || -1 || 0 || 0 || 0 || 0 || -1 || -1 || 0 || 0 || 0 || 0 || 0 || 1 || 1 || 0 || '''0'''
|- style="font-weight: bold"
|- style="font-weight: bold"
| Total<br>(Defense) || -1 || 0 || -2 || -3 || -1 || 2 || 0 || -4 || -9 || -3 || -2 || 1 || -2 || 1 || 3 || -2 || -1 || -3 || -25
| Total<br>(Defense) || -1 || 0 || -2 || -3 || -1 || 1 || 0 || -4 || -9 || -3 || -2 || 1 || -2 || 1 || 3 || -1 || -1 || -3 || -26
|-
|-
|}
|}


The rightmost column is the sum over given Attack types (larger is better). The bottommost row is the sum over given base types (smaller is better). The rightmost, bottommost cell is the sum over all relationships; equally, it is the sum over the rightmost column; equally, it is the sum over the bottommost row. Its value of -25 indicates that type effectiveness favors the defender overall, though the most common relationship is neutrality: there are 324 total interactions, and 208 of them (~64.2%) are neutral. Note that this completely ignores e.g. type population and strength of type population.
The rightmost column is the sum over given Attack types (larger is better). The bottommost row is the sum over given base types (smaller is better). The rightmost, bottommost cell is the sum over all relationships; equally, it is the sum over the rightmost column; equally, it is the sum over the bottommost row. Its value of -26 indicates that type effectiveness favors the defender overall, though the most common relationship is neutrality: there are 324 total interactions, and 208 of them (~64.2%) are neutral. Note that this completely ignores e.g. type population and strength of type population.


It is interesting (surprising?) to note that different Attack types have different total strengths. Only two Attack types are strong against their own type: Ghost and Dragon. Nine are weak against their own type: Fire, Water, Grass, Electric, Ice, Poison, Psychic, Dark, and Steel. Only three Attack types have overall net effectiveness: Flying, Ground, and Rock, each with a net 1. Four types sum to -4: Grass, Bug, Normal, and Poison. Electric and Fighting have -3. Psychic has -2.
It is interesting (surprising?) to note that different Attack types have different total strengths. Only two Attack types are strong against their own type: Ghost and Dragon. Nine are weak against their own type: Fire, Water, Grass, Electric, Ice, Poison, Psychic, Dark, and Steel. Only three Attack types have overall net effectiveness: Flying, Ground, and Rock, each with a net 1. Four types sum to -4: Grass, Bug, Normal, and Poison. Electric and Fighting have -3. Psychic has -2.


Likewise, different species types provide different total defense. Rock, Grass, Psychic, and Ice all have net weakness, especially Ice (3) and Rock (2). Fighting and Bug are neutral; each have three weaknesses balanced out by three strengths. Water, Electric, and Dragon at -2 have nothing to be embarrassed about. Fire and Poison both enjoy -3. Ghost is less generally robust than its -4 suggests, due to -2 against Normal and Fighting. Steel is pretty insane at -9, with resistance to 10 different types, weakness against three, and strong resistance to Poison. As Josef Stalin said, it's good to be Steel.
Likewise, different species types provide different total defense. Rock, Grass, Psychic, and Ice all have net weakness, especially Ice (3). Fighting and Bug are neutral; each have three weaknesses balanced out by three strengths. Water, Electric, and Dragon at -2 have nothing to be embarrassed about. Fire and Poison both enjoy -3. Ghost is less generally robust than its -4 suggests, due to -2 against Normal and Fighting. Steel is pretty insane at -9, with resistance to 10 different types, weakness against three, and strong resistance to Poison. As Josef Stalin said, it's good to be Steel.


Grass eats the shit sandwich of type effectiveness as the only type both net-susceptible (1) and net-weak (-4). Subtracting the defense total from the attack total for a type yields a net core effectiveness, ranging from -5 (Grass) to a stunning 8 (Steel).
Grass eats the shit sandwich of type effectiveness as the only type both net-susceptible (1) and net-weak (-4). Subtracting the defense total from the attack total for a type yields a net core effectiveness, ranging from -5 (Grass) to a stunning 8 (Steel).
Line 276: Line 277:
| '''Normal''' || -4 || -1 || -3
| '''Normal''' || -4 || -1 || -3
|-
|-
| '''Fighting''' || -3 || 0 || -3
| '''Fighting''' || -2 || 0 || -2
|-
|-
| '''Flying''' || 1 || -1 || 2
| '''Flying''' || 0 || -2 || 2
|-
|-
| '''Poison''' || -4 || -3 || -1
| '''Poison''' || -4 || -3 || -1
Line 284: Line 285:
| '''Ground''' || 1 || -1 || 0
| '''Ground''' || 1 || -1 || 0
|-
|-
| '''Rock''' || 1 || 2 || -1
| '''Rock''' || 1 || 1 || 0
|-
|-
| '''Bug''' || -4 || 0 || -4
| '''Bug''' || -4 || 0 || -4
Line 304: Line 305:
| '''Ice''' || 0 || 3 || -3
| '''Ice''' || 0 || 3 || -3
|-
|-
| '''Dragon''' || -1 || -2 || 1
| '''Dragon''' || -2 || -1 || -1
|-
|-
| '''Dark''' || -1 || -1 || 0
| '''Dark''' || -1 || -1 || 0
Line 339: Line 340:
The scaled total sums over the products of typing count and net exponent.
The scaled total sums over the products of typing count and net exponent.
{| class="wikitable sortable" style="text-align: center"
{| class="wikitable sortable" style="text-align: center"
! Attack type !! BN2 !! BN1 !! B0 !! BP1 !! -3 !! -2 !! -1 !! 0 !! 1 !! 2 !! Total (scaled)
! Type !! BN2 !! BN1 !! B0 !! BP1 !! -3 !! -2 !! -1 !! 0 !! 1 !! 2 !! Total
|-
|-
| '''Normal''' || 1 || 2 || 15 || 0 || 2 || 17 || 34 || 118 || 0 || 0 || '''-74'''
| '''Normal''' || 1 || 2 || 15 || 0 || 2 || 17 || 32 || 118 || 0 || 0 || '''-72'''
|-
|-
| '''Fighting''' || 1 || 6 || 6 || 5 || 6 || 22 || 41 || 51 || 42 || 10 || '''-41'''
| '''Fighting''' || 1 || 5 || 7 || 5 || 5 || 18 || 45 || 53 || 40 || 10 || '''-36'''
|-
|-
| '''Flying''' || 0 || 2 || 13 || 3 || 0 || 1 || 28 || 97 || 42 || 3 || '''18'''
| '''Flying''' || 0 || 3 || 12 || 3 || 0 || 3 || 39 || 87 || 39 || 3 || '''0'''
|-
|-
| '''Poison''' || 1 || 4 || 11 || 2 || 4 || 18 || 50 || 74 || 24 || 1 || '''-72'''
| '''Poison''' || 1 || 4 || 11 || 2 || 4 || 18 || 50 || 74 || 24 || 1 || '''-72'''
Line 365: Line 366:
| '''Grass''' || 0 || 7 || 8 || 3 || 0 || 21 || 63 || 57 || 27 || 3 || '''-72'''
| '''Grass''' || 0 || 7 || 8 || 3 || 0 || 21 || 63 || 57 || 27 || 3 || '''-72'''
|-
|-
| '''Electric''' || 1 || 3 || 12 || 2 || 3 || 11 || 41 || 89 || 26 || 1 || '''-44'''
| '''Electric''' || 1 || 3 || 12 || 2 || 3 || 11 || 41 || 89 || 26 || 1 || '''-54'''
|-
|-
| '''Psychic''' || 1 || 2 || 13 || 2 || 2 || 15 || 30 || 95 || 28 || 1 || '''-36'''
| '''Psychic''' || 1 || 2 || 13 || 2 || 2 || 15 || 30 || 95 || 28 || 1 || '''-36'''
Line 371: Line 372:
| '''Ice''' || 0 || 4 || 10 || 4 || 0 || 6 || 44 || 71 || 44 || 6 || '''0'''
| '''Ice''' || 0 || 4 || 10 || 4 || 0 || 6 || 44 || 71 || 44 || 6 || '''0'''
|-
|-
| '''Dragon''' || 1 || 1 || 15 || 1 || 1 || 16 || 17 || 121 || 16 || 0 || '''-42'''
| '''Dragon''' || 1 || 1 || 15 || 1 || 1 || 16 || 17 || 121 || 16 || 0 || '''-36'''
|-
|-
| '''Dark''' || 0 || 3 || 13 || 2 || 0 || 3 || 43 || 96 || 28 || 1 || '''-19'''
| '''Dark''' || 0 || 3 || 13 || 2 || 0 || 3 || 42 || 97 || 28 || 1 || '''-18'''
|-  
|-  
| '''Fairy''' || 0 || 3 || 12 || 3 || 0 || 3 || 39 || 87 || 39 || 3 || '''0'''
| '''Fairy''' || 0 || 3 || 12 || 3 || 0 || 3 || 39 || 87 || 39 || 3 || '''0'''
Line 430: Line 431:


'''FIXME:''' Now, we know the target type for Raids and Max battles, so this is only really relevant for PvP. We can only bring 3 Pokémon to a PvP battle, but each can have a different type of Fast Attack and (technically two different) Charged Attacks. So it would be nice to know three sets of two (or three) where one of the Attacks is efficient against a type, and the other class of Attacks is not inefficient against that same type.
'''FIXME:''' Now, we know the target type for Raids and Max battles, so this is only really relevant for PvP. We can only bring 3 Pokémon to a PvP battle, but each can have a different type of Fast Attack and (technically two different) Charged Attacks. So it would be nice to know three sets of two (or three) where one of the Attacks is efficient against a type, and the other class of Attacks is not inefficient against that same type.
==Spawns==
==Catch rate==
==Stardust rewards==


==XP rewards==
==XP rewards==
Line 627: Line 621:
|-
|-
| [https://db.pokemongohub.net/pokemon/462 Magnezone] || [https://db.pokemongohub.net/pokemon/82 Magneton] || 100 Magnemite Candy + Evolve near an active Magnetic Lure
| [https://db.pokemongohub.net/pokemon/462 Magnezone] || [https://db.pokemongohub.net/pokemon/82 Magneton] || 100 Magnemite Candy + Evolve near an active Magnetic Lure
|-
| [https://db.pokemongohub.net/pokemon/476 Probopass] || [https://db.pokemongohub.net/pokemon/299 Nosepass] || 50 Nosepass Candy + Evolve near an active Magnetic Lure
|-
|-
| [https://db.pokemongohub.net/pokemon/706 Goodra] || [https://db.pokemongohub.net/pokemon/705 Sliggoo] || 100 Goomy Candy + Evolve near an active Rainy Lure
| [https://db.pokemongohub.net/pokemon/706 Goodra] || [https://db.pokemongohub.net/pokemon/705 Sliggoo] || 100 Goomy Candy + Evolve near an active Rainy Lure
Line 904: Line 900:
* [https://www.reddit.com/r/TheSilphArena/comments/aa3e1z/guide_primer_on_stats_and_level_when_constrained/ Primer on stats and levels when constrained by CP] by u/glencurio on r/TheSilphArena
* [https://www.reddit.com/r/TheSilphArena/comments/aa3e1z/guide_primer_on_stats_and_level_when_constrained/ Primer on stats and levels when constrained by CP] by u/glencurio on r/TheSilphArena
* [https://pogo.gamepress.gg/attack-based-charged-move-priority-added-trainer-battles Attack-Based Charged Move Priority Added to Trainer Battles] by Tyler on Gamepress
* [https://pogo.gamepress.gg/attack-based-charged-move-priority-added-trainer-battles Attack-Based Charged Move Priority Added to Trainer Battles] by Tyler on Gamepress
[[CATEGORY: PGO]]