Pokémon Go: Difference between revisions

 
(9 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 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 || 32 || 118 || 0 || 0 || '''-72'''
| '''Normal''' || 1 || 2 || 15 || 0 || 2 || 17 || 32 || 118 || 0 || 0 || '''-72'''
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]]