Pokémon Go: Difference between revisions
| (51 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 | 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( | 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 - | 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 | 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 84: | Line 85: | ||
* Eff<sub>S</sub> = (181 + 15) * CPM = 196 * 0.6811649 = 133.5083204 | * Eff<sub>S</sub> = (181 + 15) * CPM = 196 * 0.6811649 = 133.5083204 | ||
Taking the floor of Eff<sub>S</sub> tells you maximum HP. | Taking the floor of Eff<sub>S</sub> tells you maximum HP. | ||
* MHP = ⌊Eff<sub>S</sub>⌋ = 133 | * MHP = min(1, ⌊Eff<sub>S</sub>⌋) = 133 | ||
''nb: i've seen other formulas claimed for maximum HP, but they don't seem to match reality. everywhere i've checked, maximum HP = ⌊Eff<sub>S</sub>⌋'' | ''nb: i've seen other formulas claimed for maximum HP, but they don't seem to match reality. everywhere i've checked, maximum HP = ⌊Eff<sub>S</sub>⌋'' | ||
| Line 100: | Line 101: | ||
{{:Pokémon_Go_charged_Attack_data}} | {{:Pokémon_Go_charged_Attack_data}} | ||
====Stat Effects==== | |||
Charged Attacks can have effects on either Pokémons' Eff<sub>A</sub> or Eff<sub>D</sub> lasting the duration of a battle. Some of these effects are probabilistic (I believe this to be the only use of random numbers in battles). | |||
====Adventure Effects==== | ====Adventure Effects==== | ||
| Line 122: | Line 125: | ||
==Battle mechanics== | ==Battle mechanics== | ||
Battles proceed in "turns" corresponding to half-second quanta. | Battles proceed in "turns" corresponding to half-second quanta. Fundamentally, active Pokémon use Fast Attacks to deal Damage and build up Energy. When sufficient Energy has been accumulated, a more powerful Charged Attack can be used, consuming Energy. | ||
===Types of combat=== | ===Types of combat=== | ||
* ''Gym battles'' occur when a Gym occupied by one Team is assaulted by Trainers of other teams. A Gym is defended by between one and six Pokémon of the same Team. Each Trainer can bring six Pokémon to the assault. The attackers fight the defenders in series. When a defender is KOd, it is returned (with zero health) to its Trainer. When all defenders are KOd, the Gym is cleared, and a new Team can take it by leaving a defender. Defenders cannot be recalled. There are no shields, but play is otherwise in the style of Trainer Battles. | * ''Gym battles'' occur when a Gym occupied by one Team is assaulted by Trainers of other teams. A Gym is defended by between one and six Pokémon of the same Team. Each Trainer can bring six Pokémon to the assault. The attackers fight the defenders in series. When a defender is KOd, it is returned (with zero health) to its Trainer. When all defenders are KOd, the Gym is cleared, and a new Team can take it by leaving a defender. Defenders cannot be recalled. There are no shields, but play is otherwise in the style of Trainer Battles. | ||
* ''Raids'' task one or more (up to twenty) Trainers with defeating a powerful raid boss within a time limit. Each Trainer can bring six Pokémon into the battle at a time. If all six are defeated, the Trainer can reenter the raid with another six (assuming there is time left). | * ''Raids'' task one or more (up to twenty) Trainers with defeating a powerful raid boss within a time limit. Each Trainer can bring six Pokémon into the battle at a time. If all six are defeated, the Trainer can reenter the raid with another six (assuming there is time left). | ||
* ''Max battles'' task one or more (up to four) Trainers with defeating a powerful Dynamax or Gigantamax Pokémon in a form similar to a Raid. They furthermore feature a "Max Meter", shared by all Trainers. When the Max Meter fills, active Pokémon shift to their Dynamax or Gigantimax forms, and can execute three Max Moves. They then revert to their normal forms, and the Meter is reset. The Meter advances whenever damage is done to the opponent, when defeated Trainers cheer, and when active Pokémon pick up a Max Bonus on the field. Each Trainer can bring three Dynamax-capable Pokémon into the battle. If all three are defeated, the Trainer can cheer remaining Trainers | * ''Max battles'' task one or more (up to four) Trainers with defeating a powerful Dynamax or Gigantamax Pokémon in a form similar to a Raid. They furthermore feature a "Max Meter", shared by all Trainers. When the Max Meter fills, active Pokémon shift to their Dynamax or Gigantimax forms, and can execute three Max Moves. They then revert to their normal forms, and the Meter is reset. The Meter advances whenever damage is done to the opponent, when defeated Trainers cheer, and when active Pokémon pick up a Max Bonus on the field. Each Trainer can bring three Dynamax-capable Pokémon into the battle. If all three are defeated, the Trainer can cheer remaining Trainers | ||
* ''Trainer Battles'' pit two teams of three Pokémon against one another. One Pokémon is active for each side at a time. The Battle is over when one or both sides have no Pokémon left standing (or surrender). Each team gets two Shields capable of blocking Charged Attacks. Trainers can pick the next active Pokémon when one is KOd, and there are limited substitutions. | |||
====Trainer Battle details==== | |||
Trainer Battles are in my mind the most interesting element of PGO. | |||
When both Pokémon launch a Charged Attack on the same turn, Charged Move Priority determines which goes first. CMP is currently decided by the greater base ATK, i.e. ''unmodified'' by IVs or stat effects. | |||
===Damage=== | |||
Calculating | Calculating Damage dealt requires the attacker's Eff<sub>A</sub>, the defender's Eff<sub>D</sub>, two multipliers M and M<sub>M</sub>, and the Attack's P. The result is subtracted from the defender's HP. We will see that damage is always a positive integer, and thus HP is always an integer. | ||
Multiplier M is defined as the product of: | Multiplier M is defined as the product of: | ||
| Line 194: | 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 | ||
* | * 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 210: | Line 220: | ||
An interesting observation is that Attack effectiveness is 1.6x as potent as Attack resistance (60% increase vs 37.5% decrease), ''but'' Attack effectiveness is completely negated by Attack resistance (-1 + 1 == 0). For instance, an Electric Attack on a Dragon-Flying Pokémon like [https://db.pokemongohub.net/pokemon/149 Dragonite] is neutral, because Dragon is resistant to Electric, and Flying is vulnerable. | An interesting observation is that Attack effectiveness is 1.6x as potent as Attack resistance (60% increase vs 37.5% decrease), ''but'' Attack effectiveness is completely negated by Attack resistance (-1 + 1 == 0). For instance, an Electric Attack on a Dragon-Flying Pokémon like [https://db.pokemongohub.net/pokemon/149 Dragonite] is neutral, because Dragon is resistant to Electric, and Flying is vulnerable. | ||
These data were taken from [https://niantic.helpshift.com/hc/en/6-pokemon-go/faq/2132-type-effectiveness-in-battle/ Niantic's site] 2025-05-24. Note that type effectiveness has changed over time, e.g. Water used to be effective against Electric, but no longer is. | |||
{| class="wikitable sortable" style="text-align: center" | {| class="wikitable sortable" style="text-align: center" | ||
|+ Attack type (rows) vs defender species type(s) (columns). Smaller numbers favor defense. | |+ Attack type (rows) vs defender species type(s) (columns). Smaller numbers favor defense. | ||
| Line 216: | 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 || | | '''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 || | | '''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 244: | 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 || '''- | | '''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 250: | 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 || - | | 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 - | 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 | 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 266: | Line 277: | ||
| '''Normal''' || -4 || -1 || -3 | | '''Normal''' || -4 || -1 || -3 | ||
|- | |- | ||
| '''Fighting''' || - | | '''Fighting''' || -2 || 0 || -2 | ||
|- | |- | ||
| '''Flying''' || | | '''Flying''' || 0 || -2 || 2 | ||
|- | |- | ||
| '''Poison''' || -4 || -3 || -1 | | '''Poison''' || -4 || -3 || -1 | ||
| Line 274: | Line 285: | ||
| '''Ground''' || 1 || -1 || 0 | | '''Ground''' || 1 || -1 || 0 | ||
|- | |- | ||
| '''Rock''' || 1 || | | '''Rock''' || 1 || 1 || 0 | ||
|- | |- | ||
| '''Bug''' || -4 || 0 || -4 | | '''Bug''' || -4 || 0 || -4 | ||
| Line 294: | Line 305: | ||
| '''Ice''' || 0 || 3 || -3 | | '''Ice''' || 0 || 3 || -3 | ||
|- | |- | ||
| '''Dragon''' || - | | '''Dragon''' || -2 || -1 || -1 | ||
|- | |- | ||
| '''Dark''' || -1 || -1 || 0 | | '''Dark''' || -1 || -1 || 0 | ||
| Line 329: | 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" | ||
! | ! Type !! BN2 !! BN1 !! B0 !! BP1 !! -3 !! -2 !! -1 !! 0 !! 1 !! 2 !! Total | ||
|- | |- | ||
| '''Normal''' || 1 || 2 || 15 || 0 || 2 || 17 || | | '''Normal''' || 1 || 2 || 15 || 0 || 2 || 17 || 32 || 118 || 0 || 0 || '''-72''' | ||
|- | |- | ||
| '''Fighting''' || 1 || | | '''Fighting''' || 1 || 5 || 7 || 5 || 5 || 18 || 45 || 53 || 40 || 10 || '''-36''' | ||
|- | |- | ||
| '''Flying''' || 0 || | | '''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 355: | 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 || '''- | | '''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 361: | 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 || '''- | | '''Dragon''' || 1 || 1 || 15 || 1 || 1 || 16 || 17 || 121 || 16 || 0 || '''-36''' | ||
|- | |- | ||
| '''Dark''' || 0 || 3 || 13 || 2 || 0 || 3 || | | '''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 420: | 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. | ||
==XP rewards== | ==XP rewards== | ||
| Line 536: | Line 540: | ||
==Evolution== | ==Evolution== | ||
Evolution does not preserve Attacks, though it does preserve IVs. Evolution preserves Max Move levels. Evolution generates 1 Candy of the Pokémon's Candy type. Evolution counts as capturing the target Pokémon. Shiny Pokémon stay Shiny through Evolution, and Evolution cannot Shiny up a non-Shiny Pokémon. A Pokémon can be Evolved even at 0 HP. A freshly-Evolved Pokémon has full HP. Evolution does not change Level. Evolution typically raises CP, but not always (and it might even lower it). Evolution preserves traded status. | Evolution does not necessarily preserve Attacks, though it does preserve IVs. Evolution preserves Max Move levels. Evolution generates 1 Candy of the Pokémon's Candy type. Evolution counts as capturing the target Pokémon. Shiny Pokémon stay Shiny through Evolution, and Evolution cannot Shiny up a non-Shiny Pokémon. A Pokémon can be Evolved even at 0 HP. A freshly-Evolved Pokémon has full HP. Evolution does not change Level. Evolution typically raises CP, but not always (and it might even lower it). Evolution preserves traded status. | ||
===Item required=== | ===Item required=== | ||
Some evolutions require an item in addition to Candy. The item will be consumed. | Some evolutions require an item in addition to Candy. The item will be consumed. | ||
{|class="wikitable" | {|class="wikitable" | ||
! Target | ! Target !! Base !! Requirements | ||
|- | |||
| [https://db.pokemongohub.net/pokemon/182 Bellossom] || [https://db.pokemongohub.net/pokemon/44 Gloom] || 100 Oddish Candy + Sun Stone | |||
|- | |||
| [https://db.pokemongohub.net/pokemon/192 Sunflora] || [https://db.pokemongohub.net/pokemon/191 Sunkern] || 50 Sunkern Candy + Sun Stone | |||
|- | |||
| [https://db.pokemongohub.net/pokemon/547 Whimsicott] || [https://db.pokemongohub.net/pokemon/546 Cottonee] || 50 Cottonee Candy + Sun Stone | |||
|- | |||
| [https://db.pokemongohub.net/pokemon/549 Lilligant] || [https://db.pokemongohub.net/pokemon/548 Petilil] || 50 Petilil Candy + Sun Stone | |||
|- | |||
| [https://db.pokemongohub.net/pokemon/695 Heliolisk] || [https://db.pokemongohub.net/pokemon/694 Helioptile] || 50 Helioptile Candy + Sun Stone | |||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/230 Kingdra] || [https://db.pokemongohub.net/pokemon/117 Seadra] | | [https://db.pokemongohub.net/pokemon/230 Kingdra] || [https://db.pokemongohub.net/pokemon/117 Seadra] || 100 Horsea Candy + Dragon Scale | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/233 Porygon2] || [https://db.pokemongohub.net/pokemon/137 Porygon] | | [https://db.pokemongohub.net/pokemon/233 Porygon2] || [https://db.pokemongohub.net/pokemon/137 Porygon] || 25 Porygon Candy + Upgrade | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/474 Porygon-Z] || [https://db.pokemongohub.net/pokemon/233 Porygon2] | | [https://db.pokemongohub.net/pokemon/474 Porygon-Z] || [https://db.pokemongohub.net/pokemon/233 Porygon2] || 100 Porygon Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/463 Lickilicky] || [https://db.pokemongohub.net/pokemon/108 Lickitung] | | [https://db.pokemongohub.net/pokemon/463 Lickilicky] || [https://db.pokemongohub.net/pokemon/108 Lickitung] || 100 Lickitung Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/465 Tangrowth] || [https://db.pokemongohub.net/pokemon/114 Tangela] | | [https://db.pokemongohub.net/pokemon/465 Tangrowth] || [https://db.pokemongohub.net/pokemon/114 Tangela] || 100 Tangela Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/466 Electivire] || [https://db.pokemongohub.net/pokemon/125 Electabuzz] | | [https://db.pokemongohub.net/pokemon/466 Electivire] || [https://db.pokemongohub.net/pokemon/125 Electabuzz] || 100 Elekid Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/467 Magmortar] || [https://db.pokemongohub.net/pokemon/126 Magmar] | | [https://db.pokemongohub.net/pokemon/467 Magmortar] || [https://db.pokemongohub.net/pokemon/126 Magmar] || 100 Magby Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/461 Weavile] || [https://db.pokemongohub.net/pokemon/215 Sneasel] | | [https://db.pokemongohub.net/pokemon/461 Weavile] || [https://db.pokemongohub.net/pokemon/215 Sneasel] || 100 Sneasel Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/468 Togekiss] || [https://db.pokemongohub.net/pokemon/176 Togetic] | | [https://db.pokemongohub.net/pokemon/468 Togekiss] || [https://db.pokemongohub.net/pokemon/176 Togetic] || 100 Togepi Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/469 Yanmega] || [https://db.pokemongohub.net/pokemon/193 Yanma] | | [https://db.pokemongohub.net/pokemon/469 Yanmega] || [https://db.pokemongohub.net/pokemon/193 Yanma] || 100 Yanma Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/472 Gliscor] || [https://db.pokemongohub.net/pokemon/207 Gligar] | | [https://db.pokemongohub.net/pokemon/472 Gliscor] || [https://db.pokemongohub.net/pokemon/207 Gligar] || 100 Gligar Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/430 Honchkrow] || [https://db.pokemongohub.net/pokemon/198 Murkrow] | | [https://db.pokemongohub.net/pokemon/430 Honchkrow] || [https://db.pokemongohub.net/pokemon/198 Murkrow] || 100 Murkrow Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/475 Gallade] || Male [https://db.pokemongohub.net/pokemon/281 Kirlia] | | [https://db.pokemongohub.net/pokemon/475 Gallade] || Male [https://db.pokemongohub.net/pokemon/281 Kirlia] || 100 Ralts Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/429 Mismagius] || [https://db.pokemongohub.net/pokemon/200 Misdreavus] | | [https://db.pokemongohub.net/pokemon/429 Mismagius] || [https://db.pokemongohub.net/pokemon/200 Misdreavus] || 100 Misdreavus Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/473 Mamoswine] || [https://db.pokemongohub.net/pokemon/221 Piloswine] | | [https://db.pokemongohub.net/pokemon/473 Mamoswine] || [https://db.pokemongohub.net/pokemon/221 Piloswine] || 100 Swinub Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/477 Dusknoir] || [https://db.pokemongohub.net/pokemon/356 Dusclops] | | [https://db.pokemongohub.net/pokemon/477 Dusknoir] || [https://db.pokemongohub.net/pokemon/356 Dusclops] || 100 Duskull Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/478 Froslass] || Female [https://db.pokemongohub.net/pokemon/361 Snorunt] | | [https://db.pokemongohub.net/pokemon/478 Froslass] || Female [https://db.pokemongohub.net/pokemon/361 Snorunt] || 100 Snorunt Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/424 Ambipom] || [https://db.pokemongohub.net/pokemon/190 Aipom] | | [https://db.pokemongohub.net/pokemon/424 Ambipom] || [https://db.pokemongohub.net/pokemon/190 Aipom] || 100 Aipom Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/407 Roserade] || [https://db.pokemongohub.net/pokemon/315 Roselia] | | [https://db.pokemongohub.net/pokemon/407 Roserade] || [https://db.pokemongohub.net/pokemon/315 Roselia] || 100 Budew Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/212 Scizor] || [https://db.pokemongohub.net/pokemon/123 Scyther] | | [https://db.pokemongohub.net/pokemon/212 Scizor] || [https://db.pokemongohub.net/pokemon/123 Scyther] || 50 Scyther Candy + Metal Coat | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/208 Steelix] || [https://db.pokemongohub.net/pokemon/95 Onix] | | [https://db.pokemongohub.net/pokemon/208 Steelix] || [https://db.pokemongohub.net/pokemon/95 Onix] || 50 Onix Candy + Metal Coat | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/186 Politoed] || [https://db.pokemongohub.net/pokemon/61 Poliwhirl] | | [https://db.pokemongohub.net/pokemon/186 Politoed] || [https://db.pokemongohub.net/pokemon/61 Poliwhirl] || 100 Poliwag Candy + King's Rock | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/199 Slowking] || [https://db.pokemongohub.net/pokemon/79 Slowpoke] | | [https://db.pokemongohub.net/pokemon/199 Slowking] || [https://db.pokemongohub.net/pokemon/79 Slowpoke] || 50 Slowpoke Candy + King's Rock | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/841 Flapple] || [https://db.pokemongohub.net/pokemon/840 Applin] | | [https://db.pokemongohub.net/pokemon/841 Flapple] || [https://db.pokemongohub.net/pokemon/840 Applin] || 200 Applin Candy + 20 Tart Apples | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/842 Appletun] || [https://db.pokemongohub.net/pokemon/840 Applin] | | [https://db.pokemongohub.net/pokemon/842 Appletun] || [https://db.pokemongohub.net/pokemon/840 Applin] || 200 Applin Candy + 20 Sweet Apples | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/464 Rhyperior] || [https://db.pokemongohub.net/pokemon/112 Rhydon] | | [https://db.pokemongohub.net/pokemon/464 Rhyperior] || [https://db.pokemongohub.net/pokemon/112 Rhydon] || 100 Rhyhorn Candy + Sinnoh Stone | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/718-Fifty_Percent Zygarde 50% Form] || [https://db.pokemongohub.net/pokemon/718-Ten_Percent Zygarde 10% Form] | | [https://db.pokemongohub.net/pokemon/718-Fifty_Percent Zygarde 50% Form] || [https://db.pokemongohub.net/pokemon/718-Ten_Percent Zygarde 10% Form] || 50 Zygarde Cells | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/718-Complete Zygarde Complete Form] || [https://db.pokemongohub.net/pokemon/718-Fifty_Percent Zygarde 50% Form] | | [https://db.pokemongohub.net/pokemon/718-Complete Zygarde Complete Form] || [https://db.pokemongohub.net/pokemon/718-Fifty_Percent Zygarde 50% Form] || 200 Zygarde Cells | ||
|- | |- | ||
|} | |} | ||
===Special requirements=== | ===Special requirements=== | ||
The special requirements must be fulfilled while the Pokémon to be evolved is your Buddy. | |||
{|class="wikitable" | {|class="wikitable" | ||
! Target | ! Target !! Base !! Requirements | ||
|- | |||
| [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/983 Kingambit] || [https://db.pokemongohub.net/pokemon/625 Bisharp] || 100 Pawniard Candy + defeat 15 Dark- or Steel-type in raids | |||
|- | |||
| [https://db.pokemongohub.net/pokemon/979 Annihilape] || [https://db.pokemongohub.net/pokemon/57 Primeape] || 100 Mankey Candy + defeat 30 Psychic- or Ghost-type in battles | |||
|- | |||
| [https://db.pokemongohub.net/pokemon/671 Florges] || [https://db.pokemongohub.net/pokemon/670 Floette] || 100 Flabébé Candy + earn 20 hearts | |||
|- | |||
| [https://db.pokemongohub.net/pokemon/936 Armarouge] || [https://db.pokemongohub.net/pokemon/935 Charcadet] || 50 Charcadet Candy + defeat 30 Psychic-type in battles | |||
|- | |||
| [https://db.pokemongohub.net/pokemon/937 Ceruledge] || [https://db.pokemongohub.net/pokemon/935 Charcadet] || 50 Charcadet Candy + defeat 30 Ghost-type in battles | |||
|- | |||
| [https://db.pokemongohub.net/pokemon/904 Overqwil] || [https://db.pokemongohub.net/pokemon/211-Hisuian Hisuian Qwilfish] || 50 Qwilfish Candy + win 10 raids | |||
|- | |||
| [https://db.pokemongohub.net/pokemon/892-Rapid_Strike Rapid Strike Style Urshifu] || [https://db.pokemongohub.net/pokemon/891 Kubfu] || 200 Kubfu Candy + defeat 30 Water-type in raids or Max battles | |||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/ | | [https://db.pokemongohub.net/pokemon/892-Single_Strike Single Strike Style Urshifu] || [https://db.pokemongohub.net/pokemon/891 Kubfu] || 200 Kubfu Candy + defeat 30 Dark-type in raids or Max battles | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/ | | [https://db.pokemongohub.net/pokemon/687 Malamar] || [https://db.pokemongohub.net/pokemon/686 Inkay] || 50 Inkay Candy + turning the mobile device upside-down | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/ | | [https://db.pokemongohub.net/pokemon/416 Vespiquen] || Female [https://db.pokemongohub.net/pokemon/415 Combee] || 50 Combee Candy | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/ | | [https://db.pokemongohub.net/pokemon/699 Aurorus] || [https://db.pokemongohub.net/pokemon/698 Amaura] || 50 Amaura Candy, and evolve at night | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/ | | [https://db.pokemongohub.net/pokemon/697 Tyrantrum] || [https://db.pokemongohub.net/pokemon/696 Tyrunt] || 50 Tyrunt Candy, and evolve during the day | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/ | | [https://db.pokemongohub.net/pokemon/675 Pangoro] || [https://db.pokemongohub.net/pokemon/674 Pancham] || 50 Pancham Candy + capture 32 Dark-type | ||
|- | |- | ||
| | |} | ||
===Walk-assisted=== | |||
The Pokémon to be evolved must be walked a certain distance while actively "on your adventure", i.e. on the map screen. | |||
{|class="wikitable" | |||
! Target !! Base !! Requirements | |||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/ | | [https://db.pokemongohub.net/pokemon/528 Swoobat] || [https://db.pokemongohub.net/pokemon/527 Woobat] || 50 Woobat Candy + 1km | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/ | | [https://db.pokemongohub.net/pokemon/903 Sneasler] || [https://db.pokemongohub.net/pokemon/215-Hisuian Hisuian Sneasel] || 100 Sneasel Candy + 7km, and evolve during the day | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/ | | [https://db.pokemongohub.net/pokemon/122 Mr. Mime] || [https://db.pokemongohub.net/pokemon/439 Mime Jr.] || 50 Mime Jr. Candy + 15km | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/ | | [https://db.pokemongohub.net/pokemon/185 Sudowoodo] || [https://db.pokemongohub.net/pokemon/438 Bonsly] || 50 Bonsly Candy + 15km | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/ | | [https://db.pokemongohub.net/pokemon/113 Chansey] || [https://db.pokemongohub.net/pokemon/440 Happiny] || 25 Happiny Candy + 15km | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/ | | [https://db.pokemongohub.net/pokemon/350 Milotic] || [https://db.pokemongohub.net/pokemon/349 Feebas] || 100 Feebas Candy + 20km | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/ | | [https://db.pokemongohub.net/pokemon/923 Pawmot] || [https://db.pokemongohub.net/pokemon/922 Pawmo] || 100 Pawmi Candy + 25km | ||
|- | |- | ||
|} | |} | ||
| Line 639: | Line 678: | ||
Some Pokémon require no Candy to evolve ''once they have been traded.'' Without a trade, they have usual Candy requirements. The trade can take place prior to the specified Evolution, i.e. a traded Machop Evolved to Machoke can be evolved to Machamp for zero Candy. | Some Pokémon require no Candy to evolve ''once they have been traded.'' Without a trade, they have usual Candy requirements. The trade can take place prior to the specified Evolution, i.e. a traded Machop Evolved to Machoke can be evolved to Machamp for zero Candy. | ||
{|class="wikitable" | {|class="wikitable" | ||
! Target | ! Target !! Base !! Requirements | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/65 Alakazam] || [https://db.pokemongohub.net/pokemon/64 Kadabra] | | [https://db.pokemongohub.net/pokemon/65 Alakazam] || [https://db.pokemongohub.net/pokemon/64 Kadabra] || 100 Abra Candy OR the Kadabra was traded | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/68 Machamp] || [https://db.pokemongohub.net/pokemon/67 Machoke] | | [https://db.pokemongohub.net/pokemon/68 Machamp] || [https://db.pokemongohub.net/pokemon/67 Machoke] || 100 Machop Candy OR the Machoke was traded | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/76 Golem] || [https://db.pokemongohub.net/pokemon/75 Graveler] | | [https://db.pokemongohub.net/pokemon/76 Golem] || [https://db.pokemongohub.net/pokemon/75 Graveler] || 100 Geodude Candy OR the Graveler was traded | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/75-Alola Alolan Golem] || [https://db.pokemongohub.net/pokemon/75-Alola Alolan Graveler] | | [https://db.pokemongohub.net/pokemon/75-Alola Alolan Golem] || [https://db.pokemongohub.net/pokemon/75-Alola Alolan Graveler] || 100 Geodude Candy OR the Alolan Graveler was traded | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/93 Haunter] || [https://db.pokemongohub.net/pokemon/94 Gengar] | | [https://db.pokemongohub.net/pokemon/93 Haunter] || [https://db.pokemongohub.net/pokemon/94 Gengar] || 100 Gastly Candy OR the Gengar was traded | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/534 Conkeldurr] || [https://db.pokemongohub.net/pokemon/533 Gurdurr] | | [https://db.pokemongohub.net/pokemon/534 Conkeldurr] || [https://db.pokemongohub.net/pokemon/533 Gurdurr] || 200 Timburr Candy OR the Gurdurr was traded | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/526 Gigalith] || [https://db.pokemongohub.net/pokemon/525 Boldore] | | [https://db.pokemongohub.net/pokemon/526 Gigalith] || [https://db.pokemongohub.net/pokemon/525 Boldore] || 200 Roggenrola Candy OR the Boldore was traded | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/589 Escavlier] || [https://db.pokemongohub.net/pokemon/588 Karrablast] | | [https://db.pokemongohub.net/pokemon/589 Escavlier] || [https://db.pokemongohub.net/pokemon/588 Karrablast] || 200 Karrablast Candy OR the Karrablast was traded | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/617 Accelgor] || [https://db.pokemongohub.net/pokemon/616 Shelmet] | | [https://db.pokemongohub.net/pokemon/617 Accelgor] || [https://db.pokemongohub.net/pokemon/616 Shelmet] || 200 Shelmet Candy OR the Shelmet was traded | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/709 Trevenant] || [https://db.pokemongohub.net/pokemon/708 Phantump] | | [https://db.pokemongohub.net/pokemon/709 Trevenant] || [https://db.pokemongohub.net/pokemon/708 Phantump] || 200 Phantump Candy OR the Phantump was traded | ||
|- | |- | ||
| [https://db.pokemongohub.net/pokemon/711 Gourgeist] || [https://db.pokemongohub.net/pokemon/710 Pumpkaboo] | | [https://db.pokemongohub.net/pokemon/711 Gourgeist] || [https://db.pokemongohub.net/pokemon/710 Pumpkaboo] || 200 Pumpkaboo Candy OR the Pumpkaboo was traded | ||
|- | |- | ||
|} | |} | ||
| Line 726: | Line 765: | ||
CP overvalues Eff<sub>A</sub> (which gets divided by Eff<sub>D</sub> when calculating damage). It overvalues Eff<sub>A</sub> '''a lot'''. The max Eff<sub>A</sub> would be 414+15=429; its square root is ~21, a reduction of over 95%! The lowest Eff<sub>A</sub> is 10; its square root is ~3.2, a reduction of about 68%. Eff<sub>A</sub> isn't being counted twice as much as other stats, but ''many times more''. Even worse is level. With a bit of substitution, we can rewrite the CP equation: | CP overvalues Eff<sub>A</sub> (which gets divided by Eff<sub>D</sub> when calculating damage). It overvalues Eff<sub>A</sub> '''a lot'''. The max Eff<sub>A</sub> would be 414+15=429; its square root is ~21, a reduction of over 95%! The lowest Eff<sub>A</sub> is 10; its square root is ~3.2, a reduction of about 68%. Eff<sub>A</sub> isn't being counted twice as much as other stats, but ''many times more''. Even worse is level. With a bit of substitution, we can rewrite the CP equation: | ||
* CP = ⌊max(10, (ATK + IV<sub>A</sub>) * CPM * √(DEF + IV<sub>D</sub> * CPM) * √(STA + IV<sub>S</sub> * CPM) * CPM² / 10)⌋ | * CP = ⌊max(10, (ATK + IV<sub>A</sub>) * CPM * √((DEF + IV<sub>D</sub>) * CPM) * √((STA + IV<sub>S</sub>) * CPM) * CPM² / 10)⌋ | ||
* CP = ⌊max(10, (ATK + IV<sub>A</sub>) * CPM * √(DEF + IV<sub>D</sub>) * √CPM * √(STA + IV<sub>S</sub>) * √CPM * CPM² / 10)⌋ | * CP = ⌊max(10, (ATK + IV<sub>A</sub>) * CPM * √(DEF + IV<sub>D</sub>) * √CPM * √(STA + IV<sub>S</sub>) * √CPM * CPM² / 10)⌋ | ||
* CP = ⌊max(10, (ATK + IV<sub>A</sub>) * √(DEF + IV<sub>D</sub>) * √(STA + IV<sub>S</sub>) * CPM⁴ / 10)⌋ | * CP = ⌊max(10, (ATK + IV<sub>A</sub>) * √(DEF + IV<sub>D</sub>) * √(STA + IV<sub>S</sub>) * CPM⁴ / 10)⌋ | ||
| Line 746: | Line 785: | ||
Attack isn't simply "more important" in PvE; rather, stats have no cost (as there are no CP ceilings, aside from some very specific endgame). You thus want all the stats you can get. Since raids allow you to absorb effectively infinite damage, but have a time component, strong ATK is indeed critical (justifying to a degree its overvaluation in CP ''for raids''). | Attack isn't simply "more important" in PvE; rather, stats have no cost (as there are no CP ceilings, aside from some very specific endgame). You thus want all the stats you can get. Since raids allow you to absorb effectively infinite damage, but have a time component, strong ATK is indeed critical (justifying to a degree its overvaluation in CP ''for raids''). | ||
==== | The floor function makes small improvements over unity meaningless, but magnifies small losses from unity. If Power is 4, and the other products yield 1.1, the Damage is unchanged at 4. If other products yield 0.9, the Damage is 3 (a 25% loss). With equal ATK and DEF, a slightly higher level is unlikely to change Damage inflicted, but is likely to reduce Damage suffered. Level 50 against Level 10 is 0.8378 vs 0.4225, an ATK multiplier of ~1.983 for the L50 and a multiplier of ~0.504 for the L10. The CPM contributions to CP are ~0.493 and ~0.032, a multiple of 15.4. Within the 93.5%, can we make up for the ATK/DEF ratio losses with base stats? At L50, we hit CP 1499 with e.g. DEF=STA=169 and ATK=180. At L10, we hit CP 1500 with e.g. DEF=900, STA=ATK=625. The L10 mon would ''devastate'' the L50 mon: ATK/DEF when attacking is ~3.7, for a total product of ~1.9, while ATK/DEF when defending is ~0.4. Of course, no such mon is actually available. The lesson is that L10 has 50% of the L50 CPM, and offsetting this requires a DEF twice the L50's ATK and an ATK twice the L50's DEF. | ||
L40 / L20 ~= 1.3, L20 / L40 ~= 0.75. Offsetting this 20 Level gap requires an ATK 133% the L40's DEF, and a DEF 130% the L40's ATK. Look at the histograms from [[#Essential_constants|earlier]]. They're not far from Gaussian, with centers very roughly at 200 and σ below 100: we'll rarely see 200% improvements over an opponent's base statistics. With these stats clinging to a center, Level differences converge towards zero. Our intuition, then, is that we want to maximize DEF, then STA, then ATK, then Level (though not exactly). What's the precise relation? | |||
====Don't overvalue IVs==== | |||
IVs are largely inconsequential for ATK and DEF, due to usually being a small percentage of the effective stat's total range. Their impact is further reduced (and possibly eliminated) by the floor function used to compute damage. Read that again: the use of the floor function when calculating damage means a 15 IV might have ''absolutely no impact'' vis-à-vis a 0. One more time: no, there is not always "some small advantage" to a higher IV, since the impact might be completely hidden by the floor function. | IVs are largely inconsequential for ATK and DEF, due to usually being a small percentage of the effective stat's total range. Their impact is further reduced (and possibly eliminated) by the floor function used to compute damage. Read that again: the use of the floor function when calculating damage means a 15 IV might have ''absolutely no impact'' vis-à-vis a 0. One more time: no, there is not always "some small advantage" to a higher IV, since the impact might be completely hidden by the floor function. | ||
'''FIXME Demonstrate that IV changes usually result in zero change to damage for powerful Pokémon (i.e. those with large ATK/DEF)''' | '''FIXME Demonstrate that small IV changes usually result in zero change to damage for powerful Pokémon (i.e. those with large ATK/DEF)''' | ||
Note that the CPM combined with the floor function imply hit points only actually growing by 1 for every 1/CPM points added to Eff<sub>S</sub>. Read that again: '''An IV<sub>S</sub> of n + 1 might have absolutely no improvement over n.''' This is of course not always true, and in any case only relevant when CP ceilings are in effect. | |||
Especially for powerful Pokémon, Attack Power, STAB, and type effectiveness have ''much'' greater impact than any difference in IVs. | Especially for powerful Pokémon, Attack Power, STAB, and type effectiveness have ''much'' greater impact than any difference in IVs. | ||
A base ATK of 115 with an IV<sub>A</sub> of 0 is in every way equivalent to a base ATK of 100 with an IV<sub>A</sub> of 15. | |||
====Type effectiveness isn't everything==== | ====Type effectiveness isn't everything==== | ||
| Line 789: | Line 834: | ||
How do we optimize for PvP? To first order, we optimize our Attacks, carefully considering P, T, and Attack type. This must be considered along with the populations of each typing. If we can build a spanning set of Attacks, all enjoying STAB, we ought be able to get a 1.92 multiplier from type. With two Charged Attacks available to each Pokémon, it ought be possible to saturate the spanning set with our three (nine total Attacks, when we know seven can cover the defensive types). Even without expensive secondary Charged Attacks, using dual-type species we can get at least six types, all STAB-positive. Charged Attacks pretty much always exceed Fast Attacks in Damage per unit time ''even if the Fast Attack enjoys a type bonus while the Charged Attack suffers a type penalty'', so it's almost never to our advantage to forego Charged Attacks (the calculation is trivial, if you want to verify). Find optimal sets of moves, and the populations which can provide them. Find species which provide these moves, preferring low ATK, high DEF, and high STA. Level these species up as high as you can without exceeding the ceiling. | How do we optimize for PvP? To first order, we optimize our Attacks, carefully considering P, T, and Attack type. This must be considered along with the populations of each typing. If we can build a spanning set of Attacks, all enjoying STAB, we ought be able to get a 1.92 multiplier from type. With two Charged Attacks available to each Pokémon, it ought be possible to saturate the spanning set with our three (nine total Attacks, when we know seven can cover the defensive types). Even without expensive secondary Charged Attacks, using dual-type species we can get at least six types, all STAB-positive. Charged Attacks pretty much always exceed Fast Attacks in Damage per unit time ''even if the Fast Attack enjoys a type bonus while the Charged Attack suffers a type penalty'', so it's almost never to our advantage to forego Charged Attacks (the calculation is trivial, if you want to verify). Find optimal sets of moves, and the populations which can provide them. Find species which provide these moves, preferring low ATK, high DEF, and high STA. Level these species up as high as you can without exceeding the ceiling. | ||
==Towards a better CP== | ==Towards a better CP== | ||
I've argued that CP is irredeemably busted as a single summary of power. Some people like the ''stat product'', the product of ATK, DEF, and STA (or, for an individual Pokémon, the product of Eff<sub>A</sub>, Eff<sub>D</sub>, and Eff<sub>S</sub>). I disagree. | I've argued that CP is irredeemably busted as a single summary of power. Some people like the ''stat product'', the product of ATK, DEF, and STA (or, for an individual Pokémon, the product of Eff<sub>A</sub>, Eff<sub>D</sub>, and Eff<sub>S</sub>). I disagree. | ||
The usefulness of ATK and DEF fall off as they grow. Assume you're attacking an opponent with 100 DEF. The ATK/DEF ratio (ignoring IVs and CPM) for an ATK of 1, 50, 100, 150, 200, and 250 are 0.01, 0.5, 1, 1.5, 2, and 2.5 | The usefulness of ATK and DEF fall off as they grow. Assume you're attacking an opponent with 100 DEF. The ATK/DEF ratio (ignoring IVs and CPM) for an ATK of 1, 50, 100, 150, 200, and 250 are 0.01, 0.5, 1, 1.5, 2, and 2.5. This ratio is then used in the product determining Damage, which (as noted before) is dominated by the particular Attack's Power. Against a DEF of 100, 20 more points of ATK are equivalent to a weather bonus. Against a DEF of 100, if the rest of the product (P * M * M<sub>M</sub>) is 5, each additional point of Damage (equivalent to a hit point) requires an extra 20 ATK. It's not exactly a 20:1 mapping due to CPM scaling of STA, but for this instance, each STA point of the defender is probably more useful than each ATK point of the attacker. | ||
This does break down if ATK >> DEF. The ATK/DEF ratio can grow quite large (if DEF >> ATK, you're inflicting only a few points of Damage per Attack, but never zero). An Eff<sub>A</sub> of 200 against an Eff<sub>D</sub> of 20 yields a ratio of 10, a very serious multiplier (it's important to remember that CPM is generally going to drive wildly unbalanced ratios towards 1). But a DEF of at least 140 means an attacker of equal level requires 280 ATK to get a 2x multiplier. More than half of all species have a base DEF of 140, while only a few have an ATK of 280+. Adding a few ATK is likely to get lost in the floor function when calculating actual Damage, whereas a few more STA can mean surviving another attack. When DEF >> ATK, the effect is most pronounced on Charged Attacks, as the guaranteed point of Damage represents a lesser return on the Power. In such a case, it might behoove an attacker in PvE mode to dispense with Charged Attacks entirely. In any case, it is rare that such extreme deltas in base stats exist. | This does break down if ATK >> DEF. The ATK/DEF ratio can grow quite large (if DEF >> ATK, you're inflicting only a few points of Damage per Attack, but never zero). An Eff<sub>A</sub> of 200 against an Eff<sub>D</sub> of 20 yields a ratio of 10, a very serious multiplier (it's important to remember that CPM is generally going to drive wildly unbalanced ratios towards 1). But a DEF of at least 140 means an attacker of equal level requires 280 ATK to get a 2x multiplier. More than half of all species have a base DEF of 140, while only a few have an ATK of 280+. Adding a few ATK is likely to get lost in the floor function when calculating actual Damage, whereas a few more STA can mean surviving another attack. When DEF >> ATK, the effect is most pronounced on Charged Attacks, as the guaranteed point of Damage represents a lesser return on the Power. In such a case, it might behoove an attacker in PvE mode to dispense with Charged Attacks entirely. In any case, it is rare that such extreme deltas in base stats exist. | ||
| Line 846: | Line 889: | ||
===On-device=== | ===On-device=== | ||
* <tt>Android/data/com.nianticlabs.pokemongo/files/il2cpp/Metadata/global-metadata.dat</tt> (salt for your OS) | * <tt>Android/data/com.nianticlabs.pokemongo/files/il2cpp/Metadata/global-metadata.dat</tt> (salt for your OS) | ||
** il2cpp indicates [https://docs.unity3d.com/Manual/scripting-backends-il2cpp.html Unity stuff] fwiw | ** il2cpp indicates [https://docs.unity3d.com/Manual/scripting-backends-il2cpp.html Unity stuff] fwiw, including in <tt>global-metadata.dat</tt> | ||
** you can use e.g. [https://github.com/djkaty/Il2CppInspector Il2CppInspector] to tear this apart | |||
==External links== | ==External links== | ||
| Line 855: | Line 899: | ||
* [https://www.pokebattler.com/ Pokebattler] is legit | * [https://www.pokebattler.com/ Pokebattler] is legit | ||
* [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 | |||
[[CATEGORY: PGO]] | |||