Browse Source

- Parseing most pokemon now

master
Quildra 1 year ago
parent
commit
dd3496e61e
  1. 108
      Utilities/DetermineOriginGame.py
  2. 152
      pokemon_earliest_games.csv

108
Utilities/DetermineOriginGame.py

@ -39,7 +39,7 @@ all_games = [
"Sword", "Shield", "Expansion Pass",
"Brilliant Diamond", "Shining Pearl",
"Legends: Arceus",
"Scarlet", "Violet", "The Teal Mask", "The Hidden Treasure of Area Zero",
"Scarlet", "Violet", "The Teal Mask", "The Hidden Treasure of Area Zero", "The Hidden Treasure of Area Zero (Scarlet)", "The Hidden Treasure of Area Zero (Violet)", "The Teal Mask (Scarlet)", "The Teal Mask (Violet)",
"Unknown"
]
@ -173,15 +173,15 @@ class Pokemon:
non_catchable_methods.append("event")
for encounter in self.encounter_information:
encounter.method = None
for location in encounter.locations:
encounter.method = "Catchable"
skip_location = False
for non_catchable in non_catchable_methods:
if non_catchable in location.lower():
encounter.method = None
skip_location = True
break
if encounter.method is None:
if skip_location:
continue
if "first partner" in location.lower():
@ -235,6 +235,8 @@ class EvolutionStage:
self.stage = stage
self.is_baby = self.stage is not None and 'Baby' in self.stage
self.pokemon_reference = find_pokemon(pokemon, form)
if self.pokemon_reference == None:
self.pokemon_reference = find_pokemon(pokemon, None)
self.form = form
@ -564,7 +566,12 @@ def get_evolution_data_from_bulbapedia(pokemon_name, form, cache):
if not evolution_table:
return None
evolution_chain = parse_evolution_chain(evolution_table, form)
eeveelutions = ["eevee", "vaporeon", "jolteon", "flareon", "espeon", "umbreon", "leafeon", "glaceon", "sylveon"]
if pokemon_name == "Eevee":
evolution_chain = parse_eevee_evolution_chain(evolution_table)
else:
evolution_chain = parse_evolution_chain(evolution_table, form)
return evolution_chain
# This is going to be a little odd.
@ -575,7 +582,43 @@ def get_evolution_data_from_bulbapedia(pokemon_name, form, cache):
# a table in a TD is information about the current Pokémon in that evolution stage
# a TD without a table is information on how to trigger the next evolution
def parse_pokemon_subtable(td):
if td.find('table'):
# This TD contains Pokemon information
pokemon_name = extract_pokemon_name(td)
stage = extract_stage_form(td)
return pokemon_name, stage
return None, None
def parse_eevee_evolution_chain(table):
tbody = table.find('tbody', recursive=False)
if not tbody:
return []
rows = tbody.find_all('tr', recursive=False)
eevee_row = rows[1]
method_row = rows[2]
eeveelutions_row = rows[3]
eevee_td = eevee_row.find('td', recursive=False)
pokemon_name, stage = parse_pokemon_subtable(eevee_td)
eevee_stage = EvolutionStage(pokemon_name, None, stage, None)
methods = []
for method in method_row.find_all('td', recursive=False):
methods.append(extract_evolution_method(method))
eeveelutions = []
index = 0
for eeveelution in eeveelutions_row.find_all('td', recursive=False):
pokemon_name, stage = parse_pokemon_subtable(eeveelution)
eeveelutions.append(EvolutionStage(pokemon_name, methods[index], stage, None))
index += 1
eevee_stage.branches.append(eeveelutions)
return [eevee_stage]
def get_locations_from_bulbapedia(pokemon_name, form, cache):
@ -674,6 +717,9 @@ def get_locations_from_bulbapedia(pokemon_name, form, cache):
if not main_form:
continue
if main_form == "All Forms":
main_form = form
main_form_match = fuzz.partial_ratio(form.lower(), main_form.lower()) >= 80
sub_form_match = False if not sub_form else fuzz.partial_ratio(form.lower(), sub_form.lower()) >= 80
@ -796,7 +842,11 @@ list_of_shifting_form_pokemon = [
"Zygarde",
"Magearna",
"Vivillon",
"Minior"
"Minior",
"Urshifu",
"Oinkologne",
"Basculegion",
"Enamorus",
]
def handle_form_shift(pokemon, encounter_data):
@ -813,8 +863,9 @@ def handle_form_shift(pokemon, encounter_data):
pokemon.encounter_information = normal_form_pokemon.encounter_information
phony_authentic = ["Sinistea", "Polteageist"]
countefieit_atrisan = ["Sinistcha", "Poltchageist"]
bad_tea_pokemon = phony_authentic + countefieit_atrisan
countefieit_atrisan = ["Poltchageist"]
unremarkable_masterpiece = ["Sinistcha"]
bad_tea_pokemon = phony_authentic + countefieit_atrisan + unremarkable_masterpiece
def get_bad_tea_form(pokemon):
if not pokemon.name in bad_tea_pokemon:
@ -831,6 +882,12 @@ def get_bad_tea_form(pokemon):
return "Counterfeit Form"
if pokemon.form == "Artisan Form":
return None
if pokemon.name in unremarkable_masterpiece:
if pokemon.form == None:
return "Unremarkable Form"
else:
return pokemon.form
def determine_earliest_games(pokemon_list, cache):
for pokemon in big_pokemon_list:
@ -838,6 +895,8 @@ def determine_earliest_games(pokemon_list, cache):
form_to_find = pokemon.form
if pokemon.name == "Minior" and pokemon.form == "Orange Core":
form_to_find = None
if pokemon.name == "Squawkabilly" and pokemon.form:
form_to_find = pokemon.form.replace("Plumage", "").strip()
if pokemon.name == "Alcremie":
form_to_find = None
if pokemon.name in bad_tea_pokemon:
@ -848,6 +907,8 @@ def determine_earliest_games(pokemon_list, cache):
pokemon.encounter_information.append(encounter_information)
handle_unown(pokemon, encounter_data)
handle_form_shift(pokemon, encounter_data)
if pokemon.name == "Gimmighoul" and pokemon.form == "Roaming Form":
continue
pokemon.determine_earliest_game()
print(f"Processed {pokemon}: {pokemon.earliest_game.game} ({pokemon.earliest_game.method})")
@ -928,6 +989,7 @@ def adjust_for_evolution(pokemon_list, cache):
pokemon.add_evolution_chain(evolution_chain)
game, method = pokemon.get_earliest_game_and_method()
print(f"Adjusted {pokemon}: {game} ({method})")
return []
pokemon_dict = {f"{pokemon['base_name']}_{pokemon['form']}".lower(): pokemon for pokemon in pokemon_list}
@ -969,13 +1031,17 @@ def save_to_csv(pokemon_list, filename='pokemon_earliest_games.csv'):
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for pokemon in pokemon_list:
for pokemon in big_pokemon_list:
encounter_locations = []
for encounter in pokemon.encounter_information:
if encounter.game == pokemon.earliest_game and encounter.method == pokemon.obtain_method:
encounter_locations.append(encounter.locations)
writer.writerow({
'number': pokemon['number'],
'name': pokemon['name'],
'earliest_game': pokemon['earliest_game'],
'obtain_method': pokemon['obtain_method'],
'encounter_locations': pokemon['encounter_locations']
'number': pokemon.number,
'name': pokemon.name,
'earliest_game': pokemon.earliest_game,
'obtain_method': pokemon.obtain_method,
'encounter_locations': ' | '.join(str(item) for item in encounter_locations)
})
def parse_encounter_locations(encounter_data, game):
@ -1084,6 +1150,12 @@ def check_alternative_sources(pokemon, cache):
return "Unknown", "Unknown"
def handle_unknown_encounters(pokemon_list, cache):
for pokemon in big_pokemon_list:
if pokemon.earliest_game == None or pokemon.obtain_method == None:
print(f"Checking alternative sources for {pokemon.name}")
return
for pokemon in pokemon_list:
if pokemon['earliest_game'] == "Unknown" or pokemon['obtain_method'] == "Unknown":
new_game, new_method = check_alternative_sources(pokemon, cache)
@ -1104,8 +1176,8 @@ if __name__ == "__main__":
pokemon_list_with_games = determine_earliest_games(pokemon_list, cache)
pokemon_list_adjusted = adjust_for_evolution(pokemon_list_with_games, cache)
pokemon_list_with_locations = add_encounter_locations(pokemon_list_adjusted, cache)
pokemon_list_final = handle_unknown_encounters(pokemon_list_with_locations, cache)
#pokemon_list_with_locations = add_encounter_locations(pokemon_list_adjusted, cache)
pokemon_list_final = handle_unknown_encounters(pokemon_list_adjusted, cache)
save_to_csv(pokemon_list_final)
save_cached_data() # Save any remaining new entries

152
pokemon_earliest_games.csv

@ -1,152 +0,0 @@
number,name,earliest_game,obtain_method,encounter_locations
0001,Bulbasaur,Yellow,Gift,N/A
0002,Ivysaur,Yellow,Evolve,N/A
0003,Venusaur,Yellow,Evolve,N/A
0004,Charmander,Yellow,Gift,N/A
0005,Charmeleon,Yellow,Evolve,N/A
0006,Charizard,Yellow,Evolve,N/A
0007,Squirtle,Yellow,Gift,N/A
0008,Wartortle,Yellow,Evolve,N/A
0009,Blastoise,Yellow,Evolve,N/A
0010,Caterpie,Yellow,Catchable,viridian-forest-area (walk)
0011,Metapod,Yellow,Evolve,N/A
0012,Butterfree,Yellow,Evolve,N/A
0013,Weedle,Red,Catchable,kanto-route-2-south-towards-viridian-city (walk) | kanto-route-24-area (walk) | kanto-route-25-area (walk) | viridian-forest-area (walk)
0014,Kakuna,Red,Evolve,N/A
0015,Beedrill,Red,Evolve,N/A
0016,Pidgey,Yellow,Catchable,kanto-route-12-area (walk) | kanto-route-1-area (walk) | kanto-route-2-south-towards-viridian-city (walk) | kanto-route-5-area (walk) | kanto-route-6-area (walk) | kanto-route-7-area (walk) | kanto-route-8-area (walk) | kanto-route-11-area (walk) | kanto-route-13-area (walk) | kanto-sea-route-21-area (walk) | kanto-route-24-area (walk) | kanto-route-25-area (walk) | viridian-forest-area (walk)
0017,Pidgeotto,Yellow,Evolve,N/A
0018,Pidgeot,Yellow,Evolve,N/A
0019,Rattata,Yellow,Catchable,kanto-route-1-area (walk) | kanto-route-2-south-towards-viridian-city (walk) | kanto-route-3-area (walk) | kanto-route-4-area (walk) | kanto-route-5-area (walk) | kanto-route-6-area (walk) | kanto-route-7-area (walk) | kanto-route-8-area (walk) | kanto-route-9-area (walk) | kanto-route-10-area (walk) | kanto-route-11-area (walk) | kanto-route-16-area (walk) | kanto-route-18-area (walk) | kanto-sea-route-21-area (walk) | kanto-route-22-area (walk) | pokemon-mansion-1f (walk) | pokemon-mansion-2f (walk) | pokemon-mansion-3f (walk)
0019,Rattata (Alolan Form),Ultra Sun,Catchable,Unknown
0020,Raticate,Yellow,Evolve,N/A
0020,Raticate (Alolan Form),Ultra Sun,Evolve,N/A
0021,Spearow,Yellow,Catchable,kanto-route-3-area (walk) | kanto-route-4-area (walk) | kanto-route-9-area (walk) | kanto-route-16-area (walk) | kanto-route-18-area (walk) | kanto-route-22-area (walk)
0022,Fearow,Yellow,Evolve,N/A
0023,Ekans,Red,Catchable,kanto-route-4-area (walk) | kanto-route-8-area (walk) | kanto-route-9-area (walk) | kanto-route-10-area (walk) | kanto-route-11-area (walk) | kanto-route-23-area (walk)
0024,Arbok,Red,Evolve,N/A
0025,Pikachu,Yellow,Catchable,pallet-town-area (gift)
0025,Pikachu (Original Cap),Event,Event,N/A
0025,Pikachu (Hoenn Cap),Event,Event,N/A
0025,Pikachu (Sinnoh Cap),Event,Event,N/A
0025,Pikachu (Unova Cap),Event,Event,N/A
0025,Pikachu (Kalos Cap),Event,Event,N/A
0025,Pikachu (Alola Cap),Event,Event,N/A
0025,Pikachu (Partner Cap),Event,Event,N/A
0025,Pikachu (World Cap),Unknown,Unknown,N/A
0026,Raichu,Yellow,Evolve,N/A
0026,Raichu (Alolan Form),Ultra Sun,Evolve,N/A
0027,Sandshrew,Yellow,Catchable,mt-moon-1f (walk) | kanto-route-3-area (walk) | kanto-route-4-area (walk)
0027,Sandshrew (Alolan Form),Ultra Moon,Catchable,Unknown
0028,Sandslash,Yellow,Evolve,N/A
0028,Sandslash (Alolan Form),Ultra Moon,Evolve,N/A
0029,Nidoran-f,Unknown,Unknown,N/A
0030,Nidorina,Yellow,Catchable,kanto-route-9-area (walk) | kanto-route-23-area (walk) | kanto-safari-zone-area-1-east (walk) | kanto-safari-zone-area-2-north (walk)
0031,Nidoqueen,Yellow,Evolve,N/A
0032,Nidoran-m,Unknown,Unknown,N/A
0033,Nidorino,Yellow,Catchable,kanto-route-9-area (walk) | kanto-route-23-area (walk) | kanto-safari-zone-middle (walk) | kanto-safari-zone-area-3-west (walk)
0034,Nidoking,Yellow,Evolve,N/A
0035,Clefairy,Yellow,Catchable,mt-moon-1f (walk) | mt-moon-b1f (walk) | mt-moon-b2f (walk)
0036,Clefable,Yellow,Evolve,N/A
0037,Vulpix,Yellow,Catchable,Unknown
0037,Vulpix (Alolan Form),Ultra Sun,Catchable,Unknown
0038,Ninetales,Yellow,Evolve,N/A
0038,Ninetales (Alolan Form),Ultra Sun,Evolve,N/A
0039,Jigglypuff,Yellow,Catchable,kanto-route-5-area (walk) | kanto-route-6-area (walk) | kanto-route-7-area (walk) | kanto-route-8-area (walk)
0040,Wigglytuff,Yellow,Evolve,N/A
0041,Zubat,Yellow,Catchable,seafoam-islands-1f (walk) | seafoam-islands-b1f (walk) | seafoam-islands-b2f (walk) | seafoam-islands-b3f (walk) | seafoam-islands-b4f (walk) | mt-moon-1f (walk) | rock-tunnel-b1f (walk) | mt-moon-b1f (walk) | mt-moon-b2f (walk) | rock-tunnel-b2f (walk) | kanto-victory-road-2-1f (walk) | kanto-victory-road-2-2f (walk)
0042,Golbat,Yellow,Evolve,N/A
0043,Oddish,Yellow,Catchable,kanto-route-12-area (walk) | kanto-route-13-area (walk) | kanto-route-14-area (walk) | kanto-route-15-area (walk) | kanto-route-24-area (walk) | kanto-route-25-area (walk)
0044,Gloom,Yellow,Evolve,N/A
0045,Vileplume,Yellow,Evolve,N/A
0046,Paras,Yellow,Catchable,mt-moon-b1f (walk) | mt-moon-b2f (walk) | kanto-safari-zone-middle (walk)
0047,Parasect,Yellow,Evolve,N/A
0048,Venonat,Yellow,Catchable,kanto-route-14-area (walk) | kanto-route-15-area (walk) | kanto-route-24-area (walk) | kanto-route-25-area (walk)
0049,Venomoth,Yellow,Evolve,N/A
0050,Diglett,Yellow,Catchable,digletts-cave-area (walk)
0050,Diglett (Alolan Form),Ultra Sun,Catchable,Unknown
0051,Dugtrio,Yellow,Evolve,N/A
0051,Dugtrio (Alolan Form),Ultra Sun,Evolve,N/A
0052,Meowth,Blue,Catchable,kanto-route-5-area (walk) | kanto-route-6-area (walk) | kanto-route-7-area (walk) | kanto-route-8-area (walk)
0052,Meowth (Alolan Form),Ultra Sun,Catchable,Unknown
0052,Meowth (Galarian Form),Sword,Catchable,Unknown
0053,Persian,Blue,Evolve,N/A
0053,Persian (Alolan Form),Ultra Sun,Evolve,N/A
0054,Psyduck,Yellow,Catchable,kanto-route-6-area (surf)
0055,Golduck,Yellow,Evolve,N/A
0056,Mankey,Yellow,Catchable,kanto-route-3-area (walk) | kanto-route-4-area (walk) | kanto-route-22-area (walk) | kanto-route-23-area (walk)
0057,Primeape,Yellow,Evolve,N/A
0058,Growlithe,Yellow,Catchable,pokemon-mansion-1f (walk)
0058,Growlithe (Hisuian Form),Legends: Arceus,Catchable,Unknown
0059,Arcanine,Yellow,Evolve,N/A
0059,Arcanine (Hisuian Form),Legends: Arceus,Evolve,N/A
0060,Poliwag,Yellow,Catchable,seafoam-islands-b3f (good-rod) | seafoam-islands-b4f (good-rod) | kanto-route-12-area (good-rod) | kanto-sea-route-19-area (good-rod) | kanto-sea-route-20-area (good-rod) | cinnabar-island-area (good-rod) | viridian-city-area (good-rod) | viridian-city-area (super-rod) | cerulean-city-area (good-rod) | vermilion-city-area (good-rod) | celadon-city-area (good-rod) | fuchsia-city-area (good-rod) | pallet-town-area (good-rod) | kanto-route-6-area (good-rod) | kanto-route-10-area (good-rod) | kanto-route-11-area (good-rod) | kanto-route-13-area (good-rod) | kanto-route-17-area (good-rod) | kanto-route-18-area (good-rod) | kanto-sea-route-21-area (good-rod) | kanto-route-22-area (good-rod) | kanto-route-22-area (super-rod) | kanto-route-24-area (good-rod) | kanto-route-25-area (good-rod) | cerulean-cave-1f (good-rod) | cerulean-cave-b1f (good-rod) | kanto-route-23-area (good-rod) | kanto-route-23-area (super-rod) | kanto-safari-zone-middle (good-rod) | kanto-safari-zone-area-1-east (good-rod) | kanto-safari-zone-area-2-north (good-rod) | kanto-safari-zone-area-3-west (good-rod)
0061,Poliwhirl,Yellow,Evolve,N/A
0062,Poliwrath,Yellow,Evolve,N/A
0063,Abra,Yellow,Catchable,kanto-route-5-area (walk) | kanto-route-6-area (walk) | kanto-route-7-area (walk) | kanto-route-8-area (walk)
0064,Kadabra,Yellow,Evolve,N/A
0065,Alakazam,Yellow,Evolve,N/A
0066,Machop,Yellow,Catchable,rock-tunnel-b1f (walk) | kanto-route-10-area (walk) | rock-tunnel-b2f (walk)
0067,Machoke,Yellow,Evolve,N/A
0068,Machamp,Yellow,Evolve,N/A
0069,Bellsprout,Yellow,Catchable,kanto-route-12-area (walk) | kanto-route-13-area (walk) | kanto-route-14-area (walk) | kanto-route-15-area (walk) | kanto-route-24-area (walk) | kanto-route-25-area (walk)
0070,Weepinbell,Yellow,Evolve,N/A
0071,Victreebel,Yellow,Evolve,N/A
0072,Tentacool,Yellow,Catchable,seafoam-islands-b3f (surf) | seafoam-islands-b4f (surf) | kanto-sea-route-19-area (surf) | kanto-sea-route-19-area (super-rod) | kanto-sea-route-20-area (surf) | kanto-sea-route-20-area (super-rod) | cinnabar-island-area (super-rod) | vermilion-city-area (super-rod) | pallet-town-area (super-rod) | kanto-route-11-area (super-rod) | kanto-route-13-area (super-rod) | kanto-route-17-area (super-rod) | kanto-route-18-area (super-rod) | kanto-sea-route-21-area (surf) | kanto-sea-route-21-area (super-rod) | vermilion-city-ss-anne-dock (super-rod)
0073,Tentacruel,Yellow,Evolve,N/A
0074,Geodude,Yellow,Catchable,mt-moon-1f (walk) | rock-tunnel-b1f (walk) | mt-moon-b1f (walk) | mt-moon-b2f (walk) | rock-tunnel-b2f (walk) | kanto-victory-road-2-1f (walk) | kanto-victory-road-2-2f (walk) | kanto-victory-road-2-3f (walk)
0074,Geodude (Alolan Form),Ultra Sun,Catchable,Unknown
0075,Graveler,Yellow,Evolve,N/A
0075,Graveler (Alolan Form),Ultra Sun,Evolve,N/A
0076,Golem,Yellow,Evolve,N/A
0076,Golem (Alolan Form),Ultra Sun,Evolve,N/A
0077,Ponyta,Yellow,Catchable,kanto-route-17-area (walk)
0077,Ponyta (Galarian Form),Sword,Catchable,Unknown
0078,Rapidash,Yellow,Evolve,N/A
0078,Rapidash (Galarian Form),Sword,Evolve,N/A
0079,Slowpoke,Yellow,Catchable,seafoam-islands-1f (walk) | seafoam-islands-b1f (walk) | seafoam-islands-b2f (walk) | kanto-route-12-area (surf) | kanto-route-13-area (surf)
0079,Slowpoke (Galarian Form),Sword,Catchable,Unknown
0080,Slowbro,Yellow,Evolve,N/A
0080,Slowbro (Galarian Form),Sword,Evolve,N/A
0081,Magnemite,Yellow,Catchable,kanto-route-10-area (walk) | power-plant-area (walk)
0082,Magneton,Yellow,Evolve,N/A
0083,Farfetch'd,Yellow,Catchable,kanto-route-12-area (walk) | kanto-route-13-area (walk)
0083,Farfetch'd (Galarian Form),Sword,Catchable,Unknown
0084,Doduo,Yellow,Catchable,kanto-route-16-area (walk) | kanto-route-17-area (walk) | kanto-route-18-area (walk)
0085,Dodrio,Yellow,Evolve,N/A
0086,Seel,Yellow,Catchable,seafoam-islands-b1f (walk) | seafoam-islands-b2f (walk) | seafoam-islands-b3f (walk) | seafoam-islands-b4f (walk)
0087,Dewgong,Yellow,Evolve,N/A
0088,Grimer,Yellow,Catchable,power-plant-area (walk) | pokemon-mansion-1f (walk) | pokemon-mansion-2f (walk) | pokemon-mansion-3f (walk) | pokemon-mansion-b1f (walk)
0088,Grimer (Alolan Form),Ultra Sun,Catchable,Unknown
0089,Muk,Yellow,Evolve,N/A
0089,Muk (Alolan Form),Ultra Sun,Evolve,N/A
0090,Shellder,Yellow,Catchable,kanto-route-17-area (super-rod) | kanto-route-18-area (super-rod) | vermilion-city-ss-anne-dock (super-rod)
0091,Cloyster,Yellow,Evolve,N/A
0092,Gastly,Yellow,Catchable,pokemon-tower-3f (walk) | pokemon-tower-4f (walk) | pokemon-tower-5f (walk) | pokemon-tower-6f (walk) | pokemon-tower-7f (walk)
0093,Haunter,Yellow,Evolve,N/A
0094,Gengar,Yellow,Evolve,N/A
0095,Onix,Yellow,Catchable,rock-tunnel-b2f (walk) | kanto-victory-road-2-1f (walk) | kanto-victory-road-2-2f (walk) | kanto-victory-road-2-3f (walk)
0096,Drowzee,Yellow,Catchable,kanto-route-11-area (walk)
0097,Hypno,Yellow,Evolve,N/A
0098,Krabby,Yellow,Catchable,seafoam-islands-1f (walk) | seafoam-islands-b1f (walk) | seafoam-islands-b2f (walk) | seafoam-islands-b3f (walk) | seafoam-islands-b3f (super-rod) | seafoam-islands-b4f (walk) | seafoam-islands-b4f (super-rod) | kanto-route-10-area (super-rod) | kanto-route-25-area (super-rod)
0099,Kingler,Yellow,Evolve,N/A
0100,Voltorb,Yellow,Catchable,power-plant-area (walk) | power-plant-area (only-one)
0100,Voltorb (Hisuian Form),Legends: Arceus,Catchable,Unknown
0101,Electrode,Yellow,Evolve,N/A
0101,Electrode (Hisuian Form),Legends: Arceus,Evolve,N/A
0102,Exeggcute,Yellow,Catchable,kanto-safari-zone-middle (walk) | kanto-safari-zone-area-1-east (walk) | kanto-safari-zone-area-2-north (walk) | kanto-safari-zone-area-3-west (walk)
0103,Exeggutor,Yellow,Evolve,N/A
0103,Exeggutor (Alolan Form),Ultra Sun,Catchable,Unknown
0104,Cubone,Yellow,Catchable,pokemon-tower-5f (walk) | pokemon-tower-6f (walk) | pokemon-tower-7f (walk) | kanto-safari-zone-area-1-east (walk) | kanto-safari-zone-area-2-north (walk) | kanto-safari-zone-area-3-west (walk)
0105,Marowak,Yellow,Evolve,N/A
0105,Marowak (Alolan Form),Ultra Sun,Gift,N/A
0106,Hitmonlee,Yellow,Gift,N/A
0107,Hitmonchan,Yellow,Evolve,N/A
0108,Lickitung,Yellow,Catchable,cerulean-cave-b1f (walk)
0109,Koffing,Red,Catchable,pokemon-mansion-1f (walk) | pokemon-mansion-2f (walk) | pokemon-mansion-3f (walk) | pokemon-mansion-b1f (walk)
0110,Weezing,Red,Evolve,N/A
0110,Weezing (Galarian Form),Sword,Catchable,Unknown
0111,Rhyhorn,Yellow,Catchable,cerulean-cave-2f (walk) | cerulean-cave-b1f (walk) | kanto-safari-zone-middle (walk) | kanto-safari-zone-area-2-north (walk)
0112,Rhydon,Yellow,Evolve,N/A
0113,Chansey,Yellow,Catchable,cerulean-cave-b1f (walk) | kanto-safari-zone-middle (walk) | kanto-safari-zone-area-1-east (walk)
0114,Tangela,Yellow,Catchable,kanto-safari-zone-middle (walk) | kanto-safari-zone-area-3-west (walk)
1 number name earliest_game obtain_method encounter_locations
number name earliest_game obtain_method encounter_locations
0001 Bulbasaur Yellow Gift N/A
0002 Ivysaur Yellow Evolve N/A
0003 Venusaur Yellow Evolve N/A
0004 Charmander Yellow Gift N/A
0005 Charmeleon Yellow Evolve N/A
0006 Charizard Yellow Evolve N/A
0007 Squirtle Yellow Gift N/A
0008 Wartortle Yellow Evolve N/A
0009 Blastoise Yellow Evolve N/A
0010 Caterpie Yellow Catchable viridian-forest-area (walk)
0011 Metapod Yellow Evolve N/A
0012 Butterfree Yellow Evolve N/A
0013 Weedle Red Catchable kanto-route-2-south-towards-viridian-city (walk) | kanto-route-24-area (walk) | kanto-route-25-area (walk) | viridian-forest-area (walk)
0014 Kakuna Red Evolve N/A
0015 Beedrill Red Evolve N/A
0016 Pidgey Yellow Catchable kanto-route-12-area (walk) | kanto-route-1-area (walk) | kanto-route-2-south-towards-viridian-city (walk) | kanto-route-5-area (walk) | kanto-route-6-area (walk) | kanto-route-7-area (walk) | kanto-route-8-area (walk) | kanto-route-11-area (walk) | kanto-route-13-area (walk) | kanto-sea-route-21-area (walk) | kanto-route-24-area (walk) | kanto-route-25-area (walk) | viridian-forest-area (walk)
0017 Pidgeotto Yellow Evolve N/A
0018 Pidgeot Yellow Evolve N/A
0019 Rattata Yellow Catchable kanto-route-1-area (walk) | kanto-route-2-south-towards-viridian-city (walk) | kanto-route-3-area (walk) | kanto-route-4-area (walk) | kanto-route-5-area (walk) | kanto-route-6-area (walk) | kanto-route-7-area (walk) | kanto-route-8-area (walk) | kanto-route-9-area (walk) | kanto-route-10-area (walk) | kanto-route-11-area (walk) | kanto-route-16-area (walk) | kanto-route-18-area (walk) | kanto-sea-route-21-area (walk) | kanto-route-22-area (walk) | pokemon-mansion-1f (walk) | pokemon-mansion-2f (walk) | pokemon-mansion-3f (walk)
0019 Rattata (Alolan Form) Ultra Sun Catchable Unknown
0020 Raticate Yellow Evolve N/A
0020 Raticate (Alolan Form) Ultra Sun Evolve N/A
0021 Spearow Yellow Catchable kanto-route-3-area (walk) | kanto-route-4-area (walk) | kanto-route-9-area (walk) | kanto-route-16-area (walk) | kanto-route-18-area (walk) | kanto-route-22-area (walk)
0022 Fearow Yellow Evolve N/A
0023 Ekans Red Catchable kanto-route-4-area (walk) | kanto-route-8-area (walk) | kanto-route-9-area (walk) | kanto-route-10-area (walk) | kanto-route-11-area (walk) | kanto-route-23-area (walk)
0024 Arbok Red Evolve N/A
0025 Pikachu Yellow Catchable pallet-town-area (gift)
0025 Pikachu (Original Cap) Event Event N/A
0025 Pikachu (Hoenn Cap) Event Event N/A
0025 Pikachu (Sinnoh Cap) Event Event N/A
0025 Pikachu (Unova Cap) Event Event N/A
0025 Pikachu (Kalos Cap) Event Event N/A
0025 Pikachu (Alola Cap) Event Event N/A
0025 Pikachu (Partner Cap) Event Event N/A
0025 Pikachu (World Cap) Unknown Unknown N/A
0026 Raichu Yellow Evolve N/A
0026 Raichu (Alolan Form) Ultra Sun Evolve N/A
0027 Sandshrew Yellow Catchable mt-moon-1f (walk) | kanto-route-3-area (walk) | kanto-route-4-area (walk)
0027 Sandshrew (Alolan Form) Ultra Moon Catchable Unknown
0028 Sandslash Yellow Evolve N/A
0028 Sandslash (Alolan Form) Ultra Moon Evolve N/A
0029 Nidoran-f Unknown Unknown N/A
0030 Nidorina Yellow Catchable kanto-route-9-area (walk) | kanto-route-23-area (walk) | kanto-safari-zone-area-1-east (walk) | kanto-safari-zone-area-2-north (walk)
0031 Nidoqueen Yellow Evolve N/A
0032 Nidoran-m Unknown Unknown N/A
0033 Nidorino Yellow Catchable kanto-route-9-area (walk) | kanto-route-23-area (walk) | kanto-safari-zone-middle (walk) | kanto-safari-zone-area-3-west (walk)
0034 Nidoking Yellow Evolve N/A
0035 Clefairy Yellow Catchable mt-moon-1f (walk) | mt-moon-b1f (walk) | mt-moon-b2f (walk)
0036 Clefable Yellow Evolve N/A
0037 Vulpix Yellow Catchable Unknown
0037 Vulpix (Alolan Form) Ultra Sun Catchable Unknown
0038 Ninetales Yellow Evolve N/A
0038 Ninetales (Alolan Form) Ultra Sun Evolve N/A
0039 Jigglypuff Yellow Catchable kanto-route-5-area (walk) | kanto-route-6-area (walk) | kanto-route-7-area (walk) | kanto-route-8-area (walk)
0040 Wigglytuff Yellow Evolve N/A
0041 Zubat Yellow Catchable seafoam-islands-1f (walk) | seafoam-islands-b1f (walk) | seafoam-islands-b2f (walk) | seafoam-islands-b3f (walk) | seafoam-islands-b4f (walk) | mt-moon-1f (walk) | rock-tunnel-b1f (walk) | mt-moon-b1f (walk) | mt-moon-b2f (walk) | rock-tunnel-b2f (walk) | kanto-victory-road-2-1f (walk) | kanto-victory-road-2-2f (walk)
0042 Golbat Yellow Evolve N/A
0043 Oddish Yellow Catchable kanto-route-12-area (walk) | kanto-route-13-area (walk) | kanto-route-14-area (walk) | kanto-route-15-area (walk) | kanto-route-24-area (walk) | kanto-route-25-area (walk)
0044 Gloom Yellow Evolve N/A
0045 Vileplume Yellow Evolve N/A
0046 Paras Yellow Catchable mt-moon-b1f (walk) | mt-moon-b2f (walk) | kanto-safari-zone-middle (walk)
0047 Parasect Yellow Evolve N/A
0048 Venonat Yellow Catchable kanto-route-14-area (walk) | kanto-route-15-area (walk) | kanto-route-24-area (walk) | kanto-route-25-area (walk)
0049 Venomoth Yellow Evolve N/A
0050 Diglett Yellow Catchable digletts-cave-area (walk)
0050 Diglett (Alolan Form) Ultra Sun Catchable Unknown
0051 Dugtrio Yellow Evolve N/A
0051 Dugtrio (Alolan Form) Ultra Sun Evolve N/A
0052 Meowth Blue Catchable kanto-route-5-area (walk) | kanto-route-6-area (walk) | kanto-route-7-area (walk) | kanto-route-8-area (walk)
0052 Meowth (Alolan Form) Ultra Sun Catchable Unknown
0052 Meowth (Galarian Form) Sword Catchable Unknown
0053 Persian Blue Evolve N/A
0053 Persian (Alolan Form) Ultra Sun Evolve N/A
0054 Psyduck Yellow Catchable kanto-route-6-area (surf)
0055 Golduck Yellow Evolve N/A
0056 Mankey Yellow Catchable kanto-route-3-area (walk) | kanto-route-4-area (walk) | kanto-route-22-area (walk) | kanto-route-23-area (walk)
0057 Primeape Yellow Evolve N/A
0058 Growlithe Yellow Catchable pokemon-mansion-1f (walk)
0058 Growlithe (Hisuian Form) Legends: Arceus Catchable Unknown
0059 Arcanine Yellow Evolve N/A
0059 Arcanine (Hisuian Form) Legends: Arceus Evolve N/A
0060 Poliwag Yellow Catchable seafoam-islands-b3f (good-rod) | seafoam-islands-b4f (good-rod) | kanto-route-12-area (good-rod) | kanto-sea-route-19-area (good-rod) | kanto-sea-route-20-area (good-rod) | cinnabar-island-area (good-rod) | viridian-city-area (good-rod) | viridian-city-area (super-rod) | cerulean-city-area (good-rod) | vermilion-city-area (good-rod) | celadon-city-area (good-rod) | fuchsia-city-area (good-rod) | pallet-town-area (good-rod) | kanto-route-6-area (good-rod) | kanto-route-10-area (good-rod) | kanto-route-11-area (good-rod) | kanto-route-13-area (good-rod) | kanto-route-17-area (good-rod) | kanto-route-18-area (good-rod) | kanto-sea-route-21-area (good-rod) | kanto-route-22-area (good-rod) | kanto-route-22-area (super-rod) | kanto-route-24-area (good-rod) | kanto-route-25-area (good-rod) | cerulean-cave-1f (good-rod) | cerulean-cave-b1f (good-rod) | kanto-route-23-area (good-rod) | kanto-route-23-area (super-rod) | kanto-safari-zone-middle (good-rod) | kanto-safari-zone-area-1-east (good-rod) | kanto-safari-zone-area-2-north (good-rod) | kanto-safari-zone-area-3-west (good-rod)
0061 Poliwhirl Yellow Evolve N/A
0062 Poliwrath Yellow Evolve N/A
0063 Abra Yellow Catchable kanto-route-5-area (walk) | kanto-route-6-area (walk) | kanto-route-7-area (walk) | kanto-route-8-area (walk)
0064 Kadabra Yellow Evolve N/A
0065 Alakazam Yellow Evolve N/A
0066 Machop Yellow Catchable rock-tunnel-b1f (walk) | kanto-route-10-area (walk) | rock-tunnel-b2f (walk)
0067 Machoke Yellow Evolve N/A
0068 Machamp Yellow Evolve N/A
0069 Bellsprout Yellow Catchable kanto-route-12-area (walk) | kanto-route-13-area (walk) | kanto-route-14-area (walk) | kanto-route-15-area (walk) | kanto-route-24-area (walk) | kanto-route-25-area (walk)
0070 Weepinbell Yellow Evolve N/A
0071 Victreebel Yellow Evolve N/A
0072 Tentacool Yellow Catchable seafoam-islands-b3f (surf) | seafoam-islands-b4f (surf) | kanto-sea-route-19-area (surf) | kanto-sea-route-19-area (super-rod) | kanto-sea-route-20-area (surf) | kanto-sea-route-20-area (super-rod) | cinnabar-island-area (super-rod) | vermilion-city-area (super-rod) | pallet-town-area (super-rod) | kanto-route-11-area (super-rod) | kanto-route-13-area (super-rod) | kanto-route-17-area (super-rod) | kanto-route-18-area (super-rod) | kanto-sea-route-21-area (surf) | kanto-sea-route-21-area (super-rod) | vermilion-city-ss-anne-dock (super-rod)
0073 Tentacruel Yellow Evolve N/A
0074 Geodude Yellow Catchable mt-moon-1f (walk) | rock-tunnel-b1f (walk) | mt-moon-b1f (walk) | mt-moon-b2f (walk) | rock-tunnel-b2f (walk) | kanto-victory-road-2-1f (walk) | kanto-victory-road-2-2f (walk) | kanto-victory-road-2-3f (walk)
0074 Geodude (Alolan Form) Ultra Sun Catchable Unknown
0075 Graveler Yellow Evolve N/A
0075 Graveler (Alolan Form) Ultra Sun Evolve N/A
0076 Golem Yellow Evolve N/A
0076 Golem (Alolan Form) Ultra Sun Evolve N/A
0077 Ponyta Yellow Catchable kanto-route-17-area (walk)
0077 Ponyta (Galarian Form) Sword Catchable Unknown
0078 Rapidash Yellow Evolve N/A
0078 Rapidash (Galarian Form) Sword Evolve N/A
0079 Slowpoke Yellow Catchable seafoam-islands-1f (walk) | seafoam-islands-b1f (walk) | seafoam-islands-b2f (walk) | kanto-route-12-area (surf) | kanto-route-13-area (surf)
0079 Slowpoke (Galarian Form) Sword Catchable Unknown
0080 Slowbro Yellow Evolve N/A
0080 Slowbro (Galarian Form) Sword Evolve N/A
0081 Magnemite Yellow Catchable kanto-route-10-area (walk) | power-plant-area (walk)
0082 Magneton Yellow Evolve N/A
0083 Farfetch'd Yellow Catchable kanto-route-12-area (walk) | kanto-route-13-area (walk)
0083 Farfetch'd (Galarian Form) Sword Catchable Unknown
0084 Doduo Yellow Catchable kanto-route-16-area (walk) | kanto-route-17-area (walk) | kanto-route-18-area (walk)
0085 Dodrio Yellow Evolve N/A
0086 Seel Yellow Catchable seafoam-islands-b1f (walk) | seafoam-islands-b2f (walk) | seafoam-islands-b3f (walk) | seafoam-islands-b4f (walk)
0087 Dewgong Yellow Evolve N/A
0088 Grimer Yellow Catchable power-plant-area (walk) | pokemon-mansion-1f (walk) | pokemon-mansion-2f (walk) | pokemon-mansion-3f (walk) | pokemon-mansion-b1f (walk)
0088 Grimer (Alolan Form) Ultra Sun Catchable Unknown
0089 Muk Yellow Evolve N/A
0089 Muk (Alolan Form) Ultra Sun Evolve N/A
0090 Shellder Yellow Catchable kanto-route-17-area (super-rod) | kanto-route-18-area (super-rod) | vermilion-city-ss-anne-dock (super-rod)
0091 Cloyster Yellow Evolve N/A
0092 Gastly Yellow Catchable pokemon-tower-3f (walk) | pokemon-tower-4f (walk) | pokemon-tower-5f (walk) | pokemon-tower-6f (walk) | pokemon-tower-7f (walk)
0093 Haunter Yellow Evolve N/A
0094 Gengar Yellow Evolve N/A
0095 Onix Yellow Catchable rock-tunnel-b2f (walk) | kanto-victory-road-2-1f (walk) | kanto-victory-road-2-2f (walk) | kanto-victory-road-2-3f (walk)
0096 Drowzee Yellow Catchable kanto-route-11-area (walk)
0097 Hypno Yellow Evolve N/A
0098 Krabby Yellow Catchable seafoam-islands-1f (walk) | seafoam-islands-b1f (walk) | seafoam-islands-b2f (walk) | seafoam-islands-b3f (walk) | seafoam-islands-b3f (super-rod) | seafoam-islands-b4f (walk) | seafoam-islands-b4f (super-rod) | kanto-route-10-area (super-rod) | kanto-route-25-area (super-rod)
0099 Kingler Yellow Evolve N/A
0100 Voltorb Yellow Catchable power-plant-area (walk) | power-plant-area (only-one)
0100 Voltorb (Hisuian Form) Legends: Arceus Catchable Unknown
0101 Electrode Yellow Evolve N/A
0101 Electrode (Hisuian Form) Legends: Arceus Evolve N/A
0102 Exeggcute Yellow Catchable kanto-safari-zone-middle (walk) | kanto-safari-zone-area-1-east (walk) | kanto-safari-zone-area-2-north (walk) | kanto-safari-zone-area-3-west (walk)
0103 Exeggutor Yellow Evolve N/A
0103 Exeggutor (Alolan Form) Ultra Sun Catchable Unknown
0104 Cubone Yellow Catchable pokemon-tower-5f (walk) | pokemon-tower-6f (walk) | pokemon-tower-7f (walk) | kanto-safari-zone-area-1-east (walk) | kanto-safari-zone-area-2-north (walk) | kanto-safari-zone-area-3-west (walk)
0105 Marowak Yellow Evolve N/A
0105 Marowak (Alolan Form) Ultra Sun Gift N/A
0106 Hitmonlee Yellow Gift N/A
0107 Hitmonchan Yellow Evolve N/A
0108 Lickitung Yellow Catchable cerulean-cave-b1f (walk)
0109 Koffing Red Catchable pokemon-mansion-1f (walk) | pokemon-mansion-2f (walk) | pokemon-mansion-3f (walk) | pokemon-mansion-b1f (walk)
0110 Weezing Red Evolve N/A
0110 Weezing (Galarian Form) Sword Catchable Unknown
0111 Rhyhorn Yellow Catchable cerulean-cave-2f (walk) | cerulean-cave-b1f (walk) | kanto-safari-zone-middle (walk) | kanto-safari-zone-area-2-north (walk)
0112 Rhydon Yellow Evolve N/A
0113 Chansey Yellow Catchable cerulean-cave-b1f (walk) | kanto-safari-zone-middle (walk) | kanto-safari-zone-area-1-east (walk)
0114 Tangela Yellow Catchable kanto-safari-zone-middle (walk) | kanto-safari-zone-area-3-west (walk)
Loading…
Cancel
Save