Check out my first novel, midnight's simulacra!

Pokémon Go: Difference between revisions

From dankwiki
Jump to navigation Jump to search
Line 222: Line 222:
|}
|}


Each Pokémon species has three base stats defined at each of 50 levels.
Additionally, each Pokémon species has three base stats defined at each level:


* Attack (ATK): 17 ([https://pokemongo.fandom.com/wiki/Shuckle Shuckle]) to 414 ([https://pokemongo.fandom.com/wiki/Deoxys#Attack Deoxys (Attack Forme)])
* Attack (ATK): 17 ([https://pokemongo.fandom.com/wiki/Shuckle Shuckle]) to 414 ([https://pokemongo.fandom.com/wiki/Deoxys#Attack Deoxys (Attack Forme)])
Line 228: Line 228:
* Stamina (STA): 1 ([https://bulbapedia.bulbagarden.net/wiki/Shedinja_(Pok%C3%A9mon) Shedinja]) to 496 ([https://bulbapedia.bulbagarden.net/wiki/Blissey_(Pok%C3%A9mon) Blissey])
* Stamina (STA): 1 ([https://bulbapedia.bulbagarden.net/wiki/Shedinja_(Pok%C3%A9mon) Shedinja]) to 496 ([https://bulbapedia.bulbagarden.net/wiki/Blissey_(Pok%C3%A9mon) Blissey])


These are augmented by three IVs, specific to an individual Pokémon, ranging from 0 to 15. Adding the former to the latter and scaling by the appropriate CPM generates an ''effective attack'' Eff<sub>A</sub>, ''effective defense'' Eff<sub>D</sub>, and ''maximum HP'' MHP for that Pokémon, all positive rationals.
===Effective stats===
 
Each individual Pokémon augments its base species stats with three ''individual values'' (IVs) ranging from 0 to 15. Adding the former to the latter and scaling by the appropriate CPM generates an ''effective attack'' Eff<sub>A</sub>, ''effective defense'' Eff<sub>D</sub>, and ''maximum HP'' MHP for that Pokémon, all positive rationals.


* Eff<sub>x</sub> = (Base<sub>x</sub> + IV<sub>x</sub>) * CPM(Level) = Base<sub>x</sub> * CPM(Level) + IV<sub>x</sub> * CPM(Level)
* Eff<sub>x</sub> = (Base<sub>x</sub> + IV<sub>x</sub>) * CPM(Level) = Base<sub>x</sub> * CPM(Level) + IV<sub>x</sub> * CPM(Level)

Revision as of 08:47, 7 May 2025

I know very little about the other Pokémon games.

Fucking with the APK

The APK can be downloaded from APKMirror and analyzed with e.g. Apktool.

Important content includes (in base/assets/):

  • the plaintext, key-value text/i18n_en-us.json (salt for your language)
  • the binary bin/Data/Managed/Metadata/global-metadata.dat

On-device

  • Android/data/com.nianticlabs.pokemongo/files/il2cpp/Metadata/global-metadata.dat (salt for your OS)

Essential constants

CP multipliers are defined at increments of 0.5 for all levels 1 through 50 (plus a few more), constant across all species and stats. CPMs range from 0.094 to 0.8403.

Level CPM Stardust requirement
1 0.094 200
1.5 0.1351374318 200
2 0.16639787 200
2.5 0.192650919 200
3 0.21573247 400
3.5 0.2365726613 400
4 0.25572005 400
4.5 0.2735303812 400
5 0.29024988 600
5.5 0.3060573775 600
6 0.3210876 600
6.5 0.3354450362 600
7 0.34921268 800
7.5 0.3624577511 800
8 0.3752356 800
8.5 0.387592416 800
9 0.39956728 1000
9.5 0.4111935514 1000
10 0.4225 1000
10.5 0.4329264091 1000
11 0.44310755 1300
11.5 0.4530599591 1300
12 0.4627984 1300
12.5 0.472336093 1300
13 0.48168495 1600
13.5 0.4908558003 1600
14 0.49985844 1600
14.5 0.508701765 1600
15 0.51739395 1900
15.5 0.5259425113 1900
16 0.5343543 1900
16.5 0.5426357375 1900
17 0.5507927 2200
17.5 0.5588305862 2200
18 0.5667545 2200
18.5 0.5745691333 2200
19 0.5822789 2500
19.5 0.5898879072 2500
20 0.5974 2500
20.5 0.6048236651 2500
21 0.6121573 3000
21.5 0.6194041216 3000
22 0.6265671 3000
22.5 0.6336491432 3000
23 0.64065295 3500
23.5 0.6475809666 3500
24 0.65443563 3500
24.5 0.6612192524 3500
25 0.667934 4000
25.5 0.6745818959 4000
26 0.6811649 4000
26.5 0.6876849038 4000
27 0.69414365 4500
27.5 0.70054287 4500
28 0.7068842 4500
28.5 0.7131691091 4500
29 0.7193991 5000
29.5 0.7255756136 5000
30 0.7317 5000
30.5 0.7347410093 5000
31 0.7377695 6000
31.5 0.7407855938 6000
32 0.74378943 6000
32.5 0.7467812109 6000
33 0.74976104 7000
33.5 0.7527290867 7000
34 0.7556855 7000
34.5 0.7586303683 7000
35 0.76156384 8000
35.5 0.7644860647 8000
36 0.76739717 8000
36.5 0.7702972656 8000
37 0.7731865 9000
37.5 0.7760649616 9000
38 0.77893275 9000
38.5 0.7817900548 9000
39 0.784637 10000
39.5 0.7874736075 10000
40 0.7903 10000
40.5 0.792803968 10000
41 0.79530001 11000
41.5 0.797800015 11000
42 0.8003 11000
42.5 0.802799995 11000
43 0.8053 12000
43.5 0.8078 12000
44 0.81029999 12000
44.5 0.812799985 12000
45 0.81529999 13000
45.5 0.81779999 13000
46 0.82029999 13000
46.5 0.82279999 13000
47 0.82529999 14000
47.5 0.82779999 14000
48 0.83029999 14000
48.5 0.83279999 14000
49 0.83529999 15000
49.5 0.83779999 15000
50 0.84029999
50.5 0.84279999
51 0.84529999

Additionally, each Pokémon species has three base stats defined at each level:

Effective stats

Each individual Pokémon augments its base species stats with three individual values (IVs) ranging from 0 to 15. Adding the former to the latter and scaling by the appropriate CPM generates an effective attack EffA, effective defense EffD, and maximum HP MHP for that Pokémon, all positive rationals.

  • Effx = (Basex + IVx) * CPM(Level) = Basex * CPM(Level) + IVx * CPM(Level)

Shadow Pokémon have their A divided by ⅚, and their D multiplied by ⅚.

Battle mechanics

Each named Attack (both Fast and Charged) has a base power P, a non-negative integer.

Executing an Attack uses the attacker's EffA, the defender's EffD, and the Attack's P.

Multiplier M is defined as the product of:

  • the Attack's type effectiveness relative to the defender (see below)
  • the Attack's type effectiveness relative to the attacker
    • 1.2 if the attacker shares type with the Attack, 1 otherwise

A subsequent multiplier MM is different depending on whether the battle is PvE or PvP.

PvE mode (raids, Team Rocket, gyms, Max battles)

Multiplier MM is defined as the product of

  • 0.5
  • 0.25 if the Attack is dodged, 1 otherwise
  • 1.2 if the Attack is weather-boosted, 1 otherwise
  • A friendship bonus: 1 unless
    • 1.03 if battling with at least one Good Friend, unless
    • 1.05 if battling with at least one Great Friend, unless
    • 1.07 if battling with at least one Ultra Friend, unless
    • 1.1 if battling with at least one Best Friend
  • A Mega bonus: 1 unless
    • 1.1 if battling with at least one Mega Pokémon, unless
    • 1.3 if battling with at least one Mega Pokémon of the Attack's type
  • A Max bonus at Power Stops: 1 unless
    • 1.1 for level 1 support (1 placed Pokémon), unless
    • 1.15 for level 2 support (2–3 placed Pokémon), unless
    • 1.188 for level 3 support (4–14 placed Pokémon), unless
    • 1.2 for level 4 support (15+ placed Pokémon)

PvP mode

Multiplier MM is defined as the product of

  • 0.65
  • Minigame score for Charged Attacks, ranging from 0.25 to 1
    • "Excellent!" is necessary and sufficient for a 1
    • "Great!" maps to [0.75, 1)
    • "Nice!" maps to [0.5, 0.75)
    • otherwise [0.25, 0.5)

Damage calculation

At this point, P is a non-negative integer, while EffA, EffD, M, and MM are positive rationals.

Damage = ⌊P * EffA / EffD * M * MM⌋ + 1

Some notes:

  • A / D yields a positive rational
    • The floor function yields an integer, but A / D is calculated with reasonable precision
  • Damage is always a positive integer
  • P is typically the dominant term
  • Maximum A / D is 414/32 = 12.9375, worst A / D is 17/396 = 0.0429
    • Maximum (Base+IV)A / (Base+IV)D is 429/32 = 13.40625, a ~3.6% gain
    • Minimum (Base+IV)D / (Base+IV)D is 17/411 = 0.0413625, a ~3.4% loss
    • Now make both sides 15: for A, 429 / 47 = 9.12765, a ~29.5% loss
    • Now make both sides 15: for D,
  • All CPMs are less than 1, shrinking the effective values
    • We can factor out the CPM ratio and define a constant 100x100 symmetric matrix
    • Minimum value: 0.094 / 0.8403 ~= 0.11186
    • Maximum value: 0.8403 / 0.094 ~= 8.939

Type effectiveness

Attacker Normal
Normal
Fire
Water
Grass
Electric
Ice
Fighting
Poison
Ground
Flying
Psychic

Catch rate

Stardust rewards

XP rewards

Many events in Pokémon Go result in XP. Lucky Eggs double XP rewards while active (only one can be used at a time). Certain events double XP as well (this stacks with a Lucky Egg). Research can award various amounts of XP; a Research Breakthrough always awards 3000 XP.

Things which typically do not reward XP include:

  • opening the game or leaving it running (whether moving or stationary)
  • accepting or sending a Friend request
  • interactions with Team Rocket
  • PvP battles
  • buddy hearts and buddy level progression
  • trading Pokémon
  • use of berries in an encounter
  • creation of a Route or Pokéstop
  • any non-capturing throws in an encounter
  • opening gifts (from Friends or Mateo)
  • receiving items (from gifts, Pokéstops, route completion, or battles)
  • using items
  • and transferring Pokémon to the Professor for soul harvesting.

Of course, XP can result when these are part of Research tasks.

Encounters

An "encounter" includes all interactions with a distinct Pokémon, including those following wins against Team Rocket and those following wins in Raids and Max Battles. Leaving the encounter screen and returning to the same Pokémon, even multiple times, is all one encounter. An encounter does not end until the Pokémon is captured or flees.

  • If the Pokémon flees, the reward is 25 XP.
  • If the Pokémon is captured, the reward is 100 XP, plus zero or more bonuses:
    • A possible bonus for capture with a high-quality throw:
      • 1000 XP for Excellent, or
      • 100 XP for Great, or
      • 20 XP for Nice.
    • 20 XP for capture with a curveball.
    • 50 XP for capture with the first throw of the encounter.
    • 100 XP for 100th collection of each species (all subtypes count as one species) ("Collector")
    • 300 XP for using AR Plus ("Expert Handler")
    • A possible bonus for first capture of the day:
      • 6000 XP for a 7 day streak of at least one capture (the streak resets), or
      • 1500 XP otherwise.
    • 1000 XP for capture with a Master Ball.

Hatching eggs

Hatching an Egg yields XP corresponding to the class of the Egg as expressed in kilometers.

Km XP
2 500
5 1000
7 1000
10 2000
12 4000

Battles

No XP is awarded for battling Team Rocket, nor PvP games.

Event XP
Giving a berry to a Pokémon in a gym 50

Friendship

200 XP is awarded whenever one sends a Gift (this is awarded when the Gift is sent, not when it is opened). You can open up to 30 and send up to 200 Gifts per day.

XP is awarded whenever a friendship reaches a new level.

Level XP
Good Friend 3000
Great Friend 10000
Ultra Friend 50000
Best Friend 100000

Removing a friend does not reset the friendship level until 120 days (of Sodom?) have passed. Adding the friend back during this period will reset the counter.

Routes

Completing a Route always awards XP. The first Route completed on a given day yields 4000 XP. Subsequent Routes award 2000 XP each. Route awards are limited only by time.

A streak of seven days with completed Routes awards 12000 XP, and resets the streak counter.

Strategy

Leveling up

Leveling up (through Level 40) is strictly a matter of accumulating XP. Level 2 requires only one thousand XP; Level 40 requires five million beyond Level 39, for twenty million total. Levels 41 through 50 have additional, formidable Research requirements beyond their already brutal XP demands.