feat(*): Add improvements to the UX and the data seeding

This commit is contained in:
Josh Creek
2026-01-07 20:13:07 +00:00
parent b9a49686c1
commit 28bb39d558
18 changed files with 1069 additions and 623 deletions
+12 -6
View File
@@ -1,6 +1,12 @@
id,displayName,region,generation
red,Red,Kanto,1
blue,Blue,Kanto,1
yellow,Yellow,Kanto,1
lg--pikachu,LG: Pikachu,Kanto,7
lg--eevee,LG: Eevee,Kanto,7
id,displayName,region,generation,releaseYear
red,Red,Kanto,1,1996
blue,Blue,Kanto,1,1996
yellow,Yellow,Kanto,1,1998
lg--pikachu,LG: Pikachu,Kanto,7,2018
lg--eevee,LG: Eevee,Kanto,7,2018
gold,Gold,Johto,2,1999
silver,Silver,Johto,2,1999
crystal,Crystal,Johto,2,2000
heartgold,HeartGold,Johto,4,2009
soulsilver,SoulSilver,Johto,4,2009
legends-arceus,Legends: Arceus,Hisui,8,2022
1 id displayName region generation releaseYear
2 red Red Kanto 1 1996
3 blue Blue Kanto 1 1996
4 yellow Yellow Kanto 1 1998
5 lg--pikachu LG: Pikachu Kanto 7 2018
6 lg--eevee LG: Eevee Kanto 7 2018
7 gold Gold Johto 2 1999
8 silver Silver Johto 2 1999
9 crystal Crystal Johto 2 2000
10 heartgold HeartGold Johto 4 2009
11 soulsilver SoulSilver Johto 4 2009
12 legends-arceus Legends: Arceus Hisui 8 2022
+175 -175
View File
@@ -1,175 +1,175 @@
pokedexNumber,name,form,games,regionalNumber
1,Bulbasaur,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,1
2,Ivysaur,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,2
3,Venusaur,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,3
3,Venusaur,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
4,Charmander,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,4
5,Charmeleon,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,5
6,Charizard,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,6
7,Squirtle,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,7
8,Wartortle,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,8
9,Blastoise,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,9
10,Caterpie,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,10
11,Metapod,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,11
12,Butterfree,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,12
12,Butterfree,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
13,Weedle,,Red|Blue|LG: Pikachu|LG: Eevee,13
14,Kakuna,,Red|Blue|LG: Pikachu|LG: Eevee,14
15,Beedrill,,Red|Blue|LG: Pikachu|LG: Eevee,15
16,Pidgey,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,16
17,Pidgeotto,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,17
18,Pidgeot,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,18
19,Rattata,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,19
19,Rattata,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
20,Raticate,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,20
20,Raticate,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
21,Spearow,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,21
22,Fearow,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,22
23,Ekans,,Red|Blue|LG: Eevee,23
24,Arbok,,Red|Blue|LG: Eevee,24
25,Pikachu,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,25
25,Pikachu,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
26,Raichu,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,26
26,Raichu,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
27,Sandshrew,,Blue|Yellow|LG: Pikachu,27
28,Sandslash,,Blue|Yellow|LG: Pikachu,28
29,Nidoran♀,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,29
30,Nidorina,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,30
31,Nidoqueen,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,31
32,Nidoran♂,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,32
33,Nidorino,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,33
34,Nidoking,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,34
35,Clefairy,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,35
36,Clefable,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,36
37,Vulpix,,Blue|Yellow|LG: Eevee,37
38,Ninetales,,Blue|Yellow|LG: Eevee,38
39,Jigglypuff,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,39
40,Wigglytuff,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,40
41,Zubat,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,41
41,Zubat,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
42,Golbat,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,42
42,Golbat,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
43,Oddish,,Red|Yellow|LG: Pikachu,43
44,Gloom,,Red|Yellow|LG: Pikachu,44
44,Gloom,Female,Red|Yellow|LG: Pikachu,
45,Vileplume,,Red|Yellow|LG: Pikachu,45
45,Vileplume,Female,Red|Yellow|LG: Pikachu,
46,Paras,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,46
47,Parasect,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,47
48,Venonat,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,48
49,Venomoth,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,49
50,Diglett,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,50
51,Dugtrio,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,51
52,Meowth,,Blue|LG: Eevee,52
53,Persian,,Blue|LG: Eevee,53
54,Psyduck,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,54
55,Golduck,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,55
56,Mankey,,Red|Yellow|LG: Pikachu,56
57,Primeape,,Red|Yellow|LG: Pikachu,57
58,Growlithe,,Red|Yellow|LG: Pikachu,58
59,Arcanine,,Red|Yellow|LG: Pikachu|LG: Eevee,59
60,Poliwag,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,60
61,Poliwhirl,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,61
62,Poliwrath,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,62
63,Abra,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,63
64,Kadabra,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,64
64,Kadabra,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
65,Alakazam,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,65
65,Alakazam,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
66,Machop,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,66
67,Machoke,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,67
68,Machamp,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,68
69,Bellsprout,,Blue|Yellow|LG: Eevee,69
70,Weepinbell,,Blue|Yellow|LG: Eevee,70
71,Victreebel,,Blue|Yellow|LG: Eevee,71
72,Tentacool,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,72
73,Tentacruel,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,73
74,Geodude,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,74
75,Graveler,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,75
76,Golem,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,76
77,Ponyta,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,77
78,Rapidash,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,78
79,Slowpoke,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,79
80,Slowbro,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,80
81,Magnemite,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,81
82,Magneton,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,82
83,Farfetchd,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,83
84,Doduo,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,84
84,Doduo,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
85,Dodrio,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,85
85,Dodrio,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
86,Seel,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,86
87,Dewgong,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,87
88,Grimer,,Red|Blue|Yellow|LG: Pikachu,88
89,Muk,,Red|Blue|Yellow|LG: Pikachu,89
90,Shellder,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,90
91,Cloyster,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,91
92,Gastly,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,92
93,Haunter,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,93
94,Gengar,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,94
95,Onix,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,95
96,Drowzee,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,96
97,Hypno,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,97
97,Hypno,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
98,Krabby,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,98
99,Kingler,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,99
100,Voltorb,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,100
101,Electrode,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,101
102,Exeggcute,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,102
103,Exeggutor,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,103
104,Cubone,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,104
105,Marowak,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,105
106,Hitmonlee,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,106
107,Hitmonchan,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,107
108,Lickitung,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,108
109,Koffing,,Red|Blue|LG: Eevee,109
110,Weezing,,Red|Blue|LG: Eevee,110
111,Rhyhorn,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,111
111,Rhyhorn,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
112,Rhydon,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,112
112,Rhydon,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
113,Chansey,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,113
114,Tangela,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,114
115,Kangaskhan,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,115
116,Horsea,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,116
117,Seadra,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,117
118,Goldeen,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,118
118,Goldeen,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
119,Seaking,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,119
119,Seaking,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
120,Staryu,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,120
121,Starmie,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,121
122,Mr. Mime,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,122
123,Scyther,,Red|Yellow|LG: Pikachu,123
123,Scyther,Female,Red|Yellow|LG: Pikachu,
124,Jynx,,Red|Blue|LG: Pikachu|LG: Eevee,124
125,Electabuzz,,Red|LG: Pikachu|LG: Eevee,125
126,Magmar,,Blue|LG: Pikachu|LG: Eevee,126
127,Pinsir,,Blue|Yellow|LG: Eevee,127
128,Tauros,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,128
129,Magikarp,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,129
129,Magikarp,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
130,Gyarados,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,130
130,Gyarados,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
131,Lapras,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,131
132,Ditto,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,132
133,Eevee,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,133
133,Eevee,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
134,Vaporeon,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,134
135,Jolteon,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,135
136,Flareon,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,136
137,Porygon,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,137
138,Omanyte,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,138
139,Omastar,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,139
140,Kabuto,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,140
141,Kabutops,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,141
142,Aerodactyl,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,142
143,Snorlax,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,143
144,Articuno,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,144
145,Zapdos,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,145
146,Moltres,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,146
147,Dratini,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,147
148,Dragonair,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,148
149,Dragonite,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,149
150,Mewtwo,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,150
151,Mew,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,151
pokedexNumber,name,form,originGames,regionalDexGames,regionalNumber
1,Bulbasaur,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,1
2,Ivysaur,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,2
3,Venusaur,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,3
3,Venusaur,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
4,Charmander,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,4
5,Charmeleon,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,5
6,Charizard,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,6
7,Squirtle,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,7
8,Wartortle,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,8
9,Blastoise,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,9
10,Caterpie,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,10
11,Metapod,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,11
12,Butterfree,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,12
12,Butterfree,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
13,Weedle,,Red|Blue|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,13
14,Kakuna,,Red|Blue|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,14
15,Beedrill,,Red|Blue|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,15
16,Pidgey,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,16
17,Pidgeotto,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,17
18,Pidgeot,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,18
19,Rattata,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,19
19,Rattata,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
20,Raticate,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,20
20,Raticate,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
21,Spearow,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,21
22,Fearow,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,22
23,Ekans,,Red|Blue|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,23
24,Arbok,,Red|Blue|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,24
25,Pikachu,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,25
25,Pikachu,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
26,Raichu,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,26
26,Raichu,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
27,Sandshrew,,Blue|Yellow|LG: Pikachu,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,27
28,Sandslash,,Blue|Yellow|LG: Pikachu,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,28
29,Nidoran♀,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,29
30,Nidorina,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,30
31,Nidoqueen,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,31
32,Nidoran♂,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,32
33,Nidorino,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,33
34,Nidoking,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,34
35,Clefairy,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,35
36,Clefable,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,36
37,Vulpix,,Blue|Yellow|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,37
38,Ninetales,,Blue|Yellow|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,38
39,Jigglypuff,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,39
40,Wigglytuff,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,40
41,Zubat,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,41
41,Zubat,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
42,Golbat,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,42
42,Golbat,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
43,Oddish,,Red|Yellow|LG: Pikachu,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,43
44,Gloom,,Red|Yellow|LG: Pikachu,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,44
44,Gloom,Female,Red|Yellow|LG: Pikachu,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
45,Vileplume,,Red|Yellow|LG: Pikachu,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,45
45,Vileplume,Female,Red|Yellow|LG: Pikachu,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
46,Paras,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,46
47,Parasect,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,47
48,Venonat,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,48
49,Venomoth,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,49
50,Diglett,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,50
51,Dugtrio,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,51
52,Meowth,,Blue|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,52
53,Persian,,Blue|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,53
54,Psyduck,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,54
55,Golduck,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,55
56,Mankey,,Red|Yellow|LG: Pikachu,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,56
57,Primeape,,Red|Yellow|LG: Pikachu,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,57
58,Growlithe,,Red|Yellow|LG: Pikachu,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,58
59,Arcanine,,Red|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,59
60,Poliwag,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,60
61,Poliwhirl,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,61
62,Poliwrath,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,62
63,Abra,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,63
64,Kadabra,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,64
64,Kadabra,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
65,Alakazam,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,65
65,Alakazam,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
66,Machop,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,66
67,Machoke,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,67
68,Machamp,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,68
69,Bellsprout,,Blue|Yellow|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,69
70,Weepinbell,,Blue|Yellow|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,70
71,Victreebel,,Blue|Yellow|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,71
72,Tentacool,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,72
73,Tentacruel,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,73
74,Geodude,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,74
75,Graveler,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,75
76,Golem,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,76
77,Ponyta,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,77
78,Rapidash,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,78
79,Slowpoke,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,79
80,Slowbro,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,80
81,Magnemite,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,81
82,Magneton,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,82
83,Farfetchd,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,83
84,Doduo,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,84
84,Doduo,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
85,Dodrio,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,85
85,Dodrio,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
86,Seel,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,86
87,Dewgong,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,87
88,Grimer,,Red|Blue|Yellow|LG: Pikachu,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,88
89,Muk,,Red|Blue|Yellow|LG: Pikachu,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,89
90,Shellder,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,90
91,Cloyster,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,91
92,Gastly,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,92
93,Haunter,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,93
94,Gengar,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,94
95,Onix,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,95
96,Drowzee,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,96
97,Hypno,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,97
97,Hypno,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
98,Krabby,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,98
99,Kingler,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,99
100,Voltorb,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,100
101,Electrode,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,101
102,Exeggcute,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,102
103,Exeggutor,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,103
104,Cubone,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,104
105,Marowak,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,105
106,Hitmonlee,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,106
107,Hitmonchan,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,107
108,Lickitung,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,108
109,Koffing,,Red|Blue|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,109
110,Weezing,,Red|Blue|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,110
111,Rhyhorn,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,111
111,Rhyhorn,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
112,Rhydon,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,112
112,Rhydon,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
113,Chansey,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,113
114,Tangela,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,114
115,Kangaskhan,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,115
116,Horsea,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,116
117,Seadra,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,117
118,Goldeen,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,118
118,Goldeen,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
119,Seaking,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,119
119,Seaking,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
120,Staryu,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,120
121,Starmie,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,121
122,Mr. Mime,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,122
123,Scyther,,Red|Yellow|LG: Pikachu,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,123
123,Scyther,Female,Red|Yellow|LG: Pikachu,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
124,Jynx,,Red|Blue|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,124
125,Electabuzz,,Red|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,125
126,Magmar,,Blue|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,126
127,Pinsir,,Blue|Yellow|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,127
128,Tauros,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,128
129,Magikarp,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,129
129,Magikarp,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
130,Gyarados,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,130
130,Gyarados,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
131,Lapras,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,131
132,Ditto,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,132
133,Eevee,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,133
133,Eevee,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,
134,Vaporeon,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,134
135,Jolteon,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,135
136,Flareon,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,136
137,Porygon,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,137
138,Omanyte,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,138
139,Omastar,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,139
140,Kabuto,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,140
141,Kabutops,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,141
142,Aerodactyl,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,142
143,Snorlax,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,143
144,Articuno,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,144
145,Zapdos,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,145
146,Moltres,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,146
147,Dratini,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,147
148,Dragonair,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,148
149,Dragonite,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,149
150,Mewtwo,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,150
151,Mew,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,151
1 pokedexNumber name form games originGames regionalDexGames regionalNumber
2 1 Bulbasaur Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 1
3 2 Ivysaur Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 2
4 3 Venusaur Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 3
5 3 Venusaur Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
6 4 Charmander Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 4
7 5 Charmeleon Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 5
8 6 Charizard Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 6
9 7 Squirtle Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 7
10 8 Wartortle Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 8
11 9 Blastoise Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 9
12 10 Caterpie Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 10
13 11 Metapod Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 11
14 12 Butterfree Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 12
15 12 Butterfree Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
16 13 Weedle Red|Blue|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 13
17 14 Kakuna Red|Blue|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 14
18 15 Beedrill Red|Blue|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 15
19 16 Pidgey Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 16
20 17 Pidgeotto Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 17
21 18 Pidgeot Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 18
22 19 Rattata Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 19
23 19 Rattata Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
24 20 Raticate Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 20
25 20 Raticate Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
26 21 Spearow Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 21
27 22 Fearow Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 22
28 23 Ekans Red|Blue|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 23
29 24 Arbok Red|Blue|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 24
30 25 Pikachu Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 25
31 25 Pikachu Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
32 26 Raichu Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 26
33 26 Raichu Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
34 27 Sandshrew Blue|Yellow|LG: Pikachu Red|Blue|Yellow|LG: Pikachu|LG: Eevee 27
35 28 Sandslash Blue|Yellow|LG: Pikachu Red|Blue|Yellow|LG: Pikachu|LG: Eevee 28
36 29 Nidoran♀ Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 29
37 30 Nidorina Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 30
38 31 Nidoqueen Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 31
39 32 Nidoran♂ Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 32
40 33 Nidorino Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 33
41 34 Nidoking Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 34
42 35 Clefairy Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 35
43 36 Clefable Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 36
44 37 Vulpix Blue|Yellow|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 37
45 38 Ninetales Blue|Yellow|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 38
46 39 Jigglypuff Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 39
47 40 Wigglytuff Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 40
48 41 Zubat Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 41
49 41 Zubat Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
50 42 Golbat Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 42
51 42 Golbat Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
52 43 Oddish Red|Yellow|LG: Pikachu Red|Blue|Yellow|LG: Pikachu|LG: Eevee 43
53 44 Gloom Red|Yellow|LG: Pikachu Red|Blue|Yellow|LG: Pikachu|LG: Eevee 44
54 44 Gloom Female Red|Yellow|LG: Pikachu Red|Blue|Yellow|LG: Pikachu|LG: Eevee
55 45 Vileplume Red|Yellow|LG: Pikachu Red|Blue|Yellow|LG: Pikachu|LG: Eevee 45
56 45 Vileplume Female Red|Yellow|LG: Pikachu Red|Blue|Yellow|LG: Pikachu|LG: Eevee
57 46 Paras Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 46
58 47 Parasect Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 47
59 48 Venonat Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 48
60 49 Venomoth Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 49
61 50 Diglett Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 50
62 51 Dugtrio Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 51
63 52 Meowth Blue|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 52
64 53 Persian Blue|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 53
65 54 Psyduck Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 54
66 55 Golduck Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 55
67 56 Mankey Red|Yellow|LG: Pikachu Red|Blue|Yellow|LG: Pikachu|LG: Eevee 56
68 57 Primeape Red|Yellow|LG: Pikachu Red|Blue|Yellow|LG: Pikachu|LG: Eevee 57
69 58 Growlithe Red|Yellow|LG: Pikachu Red|Blue|Yellow|LG: Pikachu|LG: Eevee 58
70 59 Arcanine Red|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 59
71 60 Poliwag Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 60
72 61 Poliwhirl Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 61
73 62 Poliwrath Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 62
74 63 Abra Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 63
75 64 Kadabra Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 64
76 64 Kadabra Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
77 65 Alakazam Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 65
78 65 Alakazam Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
79 66 Machop Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 66
80 67 Machoke Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 67
81 68 Machamp Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 68
82 69 Bellsprout Blue|Yellow|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 69
83 70 Weepinbell Blue|Yellow|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 70
84 71 Victreebel Blue|Yellow|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 71
85 72 Tentacool Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 72
86 73 Tentacruel Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 73
87 74 Geodude Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 74
88 75 Graveler Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 75
89 76 Golem Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 76
90 77 Ponyta Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 77
91 78 Rapidash Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 78
92 79 Slowpoke Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 79
93 80 Slowbro Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 80
94 81 Magnemite Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 81
95 82 Magneton Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 82
96 83 Farfetch’d Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 83
97 84 Doduo Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 84
98 84 Doduo Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
99 85 Dodrio Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 85
100 85 Dodrio Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
101 86 Seel Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 86
102 87 Dewgong Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 87
103 88 Grimer Red|Blue|Yellow|LG: Pikachu Red|Blue|Yellow|LG: Pikachu|LG: Eevee 88
104 89 Muk Red|Blue|Yellow|LG: Pikachu Red|Blue|Yellow|LG: Pikachu|LG: Eevee 89
105 90 Shellder Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 90
106 91 Cloyster Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 91
107 92 Gastly Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 92
108 93 Haunter Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 93
109 94 Gengar Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 94
110 95 Onix Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 95
111 96 Drowzee Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 96
112 97 Hypno Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 97
113 97 Hypno Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
114 98 Krabby Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 98
115 99 Kingler Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 99
116 100 Voltorb Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 100
117 101 Electrode Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 101
118 102 Exeggcute Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 102
119 103 Exeggutor Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 103
120 104 Cubone Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 104
121 105 Marowak Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 105
122 106 Hitmonlee Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 106
123 107 Hitmonchan Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 107
124 108 Lickitung Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 108
125 109 Koffing Red|Blue|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 109
126 110 Weezing Red|Blue|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 110
127 111 Rhyhorn Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 111
128 111 Rhyhorn Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
129 112 Rhydon Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 112
130 112 Rhydon Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
131 113 Chansey Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 113
132 114 Tangela Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 114
133 115 Kangaskhan Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 115
134 116 Horsea Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 116
135 117 Seadra Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 117
136 118 Goldeen Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 118
137 118 Goldeen Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
138 119 Seaking Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 119
139 119 Seaking Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
140 120 Staryu Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 120
141 121 Starmie Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 121
142 122 Mr. Mime Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 122
143 123 Scyther Red|Yellow|LG: Pikachu Red|Blue|Yellow|LG: Pikachu|LG: Eevee 123
144 123 Scyther Female Red|Yellow|LG: Pikachu Red|Blue|Yellow|LG: Pikachu|LG: Eevee
145 124 Jynx Red|Blue|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 124
146 125 Electabuzz Red|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 125
147 126 Magmar Blue|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 126
148 127 Pinsir Blue|Yellow|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 127
149 128 Tauros Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 128
150 129 Magikarp Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 129
151 129 Magikarp Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
152 130 Gyarados Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 130
153 130 Gyarados Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
154 131 Lapras Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 131
155 132 Ditto Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 132
156 133 Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 133
157 133 Eevee Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee
158 134 Vaporeon Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 134
159 135 Jolteon Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 135
160 136 Flareon Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 136
161 137 Porygon Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 137
162 138 Omanyte Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 138
163 139 Omastar Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 139
164 140 Kabuto Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 140
165 141 Kabutops Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 141
166 142 Aerodactyl Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 142
167 143 Snorlax Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 143
168 144 Articuno Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 144
169 145 Zapdos Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 145
170 146 Moltres Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 146
171 147 Dratini Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 147
172 148 Dragonair Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 148
173 149 Dragonite Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 149
174 150 Mewtwo Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 150
175 151 Mew Red|Blue|Yellow|LG: Pikachu|LG: Eevee Red|Blue|Yellow|LG: Pikachu|LG: Eevee 151
+149
View File
@@ -0,0 +1,149 @@
pokedexNumber,name,form,originGames,regionalDexGames,regionalNumber
152,Chikorita,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,1
153,Bayleef,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,2
154,Meganium,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,3
154,Meganium,Female,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
155,Cyndaquil,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,4
156,Quilava,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,5
157,Typhlosion,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,6
158,Totodile,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,7
159,Croconaw,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,8
160,Feraligatr,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,9
161,Sentret,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,10
162,Furret,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,11
163,Hoothoot,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,12
164,Noctowl,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,13
165,Ledyba,,Silver|Crystal|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,14
165,Ledyba,Female,Silver|Crystal|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
166,Ledian,,Silver|Crystal|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,15
166,Ledian,Female,Silver|Crystal|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
167,Spinarak,,Gold|Crystal|HeartGold,Gold|Silver|Crystal|HeartGold|SoulSilver,16
168,Ariados,,Gold|Crystal|HeartGold,Gold|Silver|Crystal|HeartGold|SoulSilver,17
169,Crobat,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Gold|Silver|Crystal|HeartGold|SoulSilver,18
170,Chinchou,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,19
171,Lanturn,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,20
172,Pichu,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,21
173,Cleffa,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,22
174,Igglybuff,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,23
175,Togepi,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,24
176,Togetic,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,25
177,Natu,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,26
178,Xatu,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,27
178,Xatu,Female,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
179,Mareep,,Gold|Silver|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,28
180,Flaaffy,,Gold|Silver|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,29
181,Ampharos,,Gold|Silver|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,30
182,Bellossom,,Red|Yellow|LG: Pikachu,Gold|Silver|Crystal|HeartGold|SoulSilver,31
183,Marill,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,32
184,Azumarill,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,33
185,Sudowoodo,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,34
185,Sudowoodo,Female,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
186,Politoed,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Gold|Silver|Crystal|HeartGold|SoulSilver,35
186,Politoed,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Gold|Silver|Crystal|HeartGold|SoulSilver,
187,Hoppip,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,36
188,Skiploom,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,37
189,Jumpluff,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,38
190,Aipom,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,39
190,Aipom,Female,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
191,Sunkern,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,40
192,Sunflora,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,41
193,Yanma,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,42
194,Wooper,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,43
194,Wooper,Female,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
195,Quagsire,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,44
195,Quagsire,Female,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
196,Espeon,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Gold|Silver|Crystal|HeartGold|SoulSilver,45
197,Umbreon,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Gold|Silver|Crystal|HeartGold|SoulSilver,46
198,Murkrow,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,47
198,Murkrow,Female,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
199,Slowking,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Gold|Silver|Crystal|HeartGold|SoulSilver,48
200,Misdreavus,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,49
201,Unown,A,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,50
201,Unown,B,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,C,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,D,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,E,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,F,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,G,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,H,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,I,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,J,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,K,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,L,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,M,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,N,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,O,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,P,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,Q,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,R,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,S,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,T,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,U,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,V,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,W,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,X,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,Y,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,Z,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,!,HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
201,Unown,?,HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
202,Wobbuffet,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,51
202,Wobbuffet,Female,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
203,Girafarig,,Gold|Silver|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,52
203,Girafarig,Female,Gold|Silver|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
204,Pineco,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,53
205,Forretress,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,54
206,Dunsparce,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,55
207,Gligar,,Gold|Crystal|HeartGold,Gold|Silver|Crystal|HeartGold|SoulSilver,56
207,Gligar,Female,Gold|Crystal|HeartGold,Gold|Silver|Crystal|HeartGold|SoulSilver,
208,Steelix,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Gold|Silver|Crystal|HeartGold|SoulSilver,57
208,Steelix,Female,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Gold|Silver|Crystal|HeartGold|SoulSilver,
209,Snubbull,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,58
210,Granbull,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,59
211,Qwilfish,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,60
212,Scizor,,Red|Yellow|LG: Pikachu,Gold|Silver|Crystal|HeartGold|SoulSilver,61
212,Scizor,Female,Red|Yellow|LG: Pikachu,Gold|Silver|Crystal|HeartGold|SoulSilver,
213,Shuckle,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,62
214,Heracross,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,63
214,Heracross,Female,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
215,Sneasel,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,64
215,Sneasel,Female,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
216,Teddiursa,,Gold|Crystal|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,65
217,Ursaring,,Gold|Crystal|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,66
217,Ursaring,Female,Gold|Crystal|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
218,Slugma,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,67
219,Magcargo,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,68
220,Swinub,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,69
221,Piloswine,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,70
221,Piloswine,Female,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
222,Corsola,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,71
223,Remoraid,,Gold|Silver|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,72
224,Octillery,,Gold|Silver|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,73
224,Octillery,Female,Gold|Silver|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
225,Delibird,,Silver|Crystal|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,74
226,Mantine,,Gold|Crystal|HeartGold,Gold|Silver|Crystal|HeartGold|SoulSilver,75
227,Skarmory,,Silver|Crystal|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,76
228,Houndour,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,77
229,Houndoom,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,78
229,Houndoom,Female,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,
230,Kingdra,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Gold|Silver|Crystal|HeartGold|SoulSilver,79
231,Phanpy,,Silver|Crystal|HeartGold,Gold|Silver|Crystal|HeartGold|SoulSilver,80
232,Donphan,,Silver|Crystal|HeartGold,Gold|Silver|Crystal|HeartGold|SoulSilver,81
232,Donphan,Female,Silver|Crystal|HeartGold,Gold|Silver|Crystal|HeartGold|SoulSilver,
234,Stantler,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,83
235,Smeargle,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,84
236,Tyrogue,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,85
237,Hitmontop,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,86
238,Smoochum,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,87
239,Elekid,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,88
240,Magby,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,89
241,Miltank,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,90
242,Blissey,,Red|Blue|Yellow|LG: Pikachu|LG: Eevee,Gold|Silver|Crystal|HeartGold|SoulSilver,91
243,Raikou,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,92
244,Entei,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,93
245,Suicune,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,94
246,Larvitar,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,95
247,Pupitar,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,96
248,Tyranitar,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,97
249,Lugia,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,98
250,Ho-Oh,,Gold|Silver|Crystal|HeartGold|SoulSilver,Gold|Silver|Crystal|HeartGold|SoulSilver,99
251,Celebi,,Crystal,Crystal|HeartGold|SoulSilver,100
1 pokedexNumber name form originGames regionalDexGames regionalNumber
2 152 Chikorita Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 1
3 153 Bayleef Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 2
4 154 Meganium Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 3
5 154 Meganium Female Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
6 155 Cyndaquil Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 4
7 156 Quilava Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 5
8 157 Typhlosion Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 6
9 158 Totodile Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 7
10 159 Croconaw Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 8
11 160 Feraligatr Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 9
12 161 Sentret Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 10
13 162 Furret Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 11
14 163 Hoothoot Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 12
15 164 Noctowl Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 13
16 165 Ledyba Silver|Crystal|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 14
17 165 Ledyba Female Silver|Crystal|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
18 166 Ledian Silver|Crystal|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 15
19 166 Ledian Female Silver|Crystal|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
20 167 Spinarak Gold|Crystal|HeartGold Gold|Silver|Crystal|HeartGold|SoulSilver 16
21 168 Ariados Gold|Crystal|HeartGold Gold|Silver|Crystal|HeartGold|SoulSilver 17
22 169 Crobat Red|Blue|Yellow|LG: Pikachu|LG: Eevee Gold|Silver|Crystal|HeartGold|SoulSilver 18
23 170 Chinchou Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 19
24 171 Lanturn Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 20
25 172 Pichu Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 21
26 173 Cleffa Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 22
27 174 Igglybuff Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 23
28 175 Togepi Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 24
29 176 Togetic Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 25
30 177 Natu Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 26
31 178 Xatu Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 27
32 178 Xatu Female Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
33 179 Mareep Gold|Silver|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 28
34 180 Flaaffy Gold|Silver|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 29
35 181 Ampharos Gold|Silver|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 30
36 182 Bellossom Red|Yellow|LG: Pikachu Gold|Silver|Crystal|HeartGold|SoulSilver 31
37 183 Marill Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 32
38 184 Azumarill Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 33
39 185 Sudowoodo Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 34
40 185 Sudowoodo Female Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
41 186 Politoed Red|Blue|Yellow|LG: Pikachu|LG: Eevee Gold|Silver|Crystal|HeartGold|SoulSilver 35
42 186 Politoed Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Gold|Silver|Crystal|HeartGold|SoulSilver
43 187 Hoppip Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 36
44 188 Skiploom Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 37
45 189 Jumpluff Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 38
46 190 Aipom Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 39
47 190 Aipom Female Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
48 191 Sunkern Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 40
49 192 Sunflora Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 41
50 193 Yanma Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 42
51 194 Wooper Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 43
52 194 Wooper Female Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
53 195 Quagsire Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 44
54 195 Quagsire Female Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
55 196 Espeon Red|Blue|Yellow|LG: Pikachu|LG: Eevee Gold|Silver|Crystal|HeartGold|SoulSilver 45
56 197 Umbreon Red|Blue|Yellow|LG: Pikachu|LG: Eevee Gold|Silver|Crystal|HeartGold|SoulSilver 46
57 198 Murkrow Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 47
58 198 Murkrow Female Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
59 199 Slowking Red|Blue|Yellow|LG: Pikachu|LG: Eevee Gold|Silver|Crystal|HeartGold|SoulSilver 48
60 200 Misdreavus Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 49
61 201 Unown A Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 50
62 201 Unown B Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
63 201 Unown C Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
64 201 Unown D Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
65 201 Unown E Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
66 201 Unown F Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
67 201 Unown G Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
68 201 Unown H Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
69 201 Unown I Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
70 201 Unown J Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
71 201 Unown K Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
72 201 Unown L Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
73 201 Unown M Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
74 201 Unown N Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
75 201 Unown O Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
76 201 Unown P Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
77 201 Unown Q Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
78 201 Unown R Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
79 201 Unown S Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
80 201 Unown T Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
81 201 Unown U Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
82 201 Unown V Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
83 201 Unown W Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
84 201 Unown X Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
85 201 Unown Y Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
86 201 Unown Z Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
87 201 Unown ! HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
88 201 Unown ? HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
89 202 Wobbuffet Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 51
90 202 Wobbuffet Female Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
91 203 Girafarig Gold|Silver|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 52
92 203 Girafarig Female Gold|Silver|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
93 204 Pineco Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 53
94 205 Forretress Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 54
95 206 Dunsparce Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 55
96 207 Gligar Gold|Crystal|HeartGold Gold|Silver|Crystal|HeartGold|SoulSilver 56
97 207 Gligar Female Gold|Crystal|HeartGold Gold|Silver|Crystal|HeartGold|SoulSilver
98 208 Steelix Red|Blue|Yellow|LG: Pikachu|LG: Eevee Gold|Silver|Crystal|HeartGold|SoulSilver 57
99 208 Steelix Female Red|Blue|Yellow|LG: Pikachu|LG: Eevee Gold|Silver|Crystal|HeartGold|SoulSilver
100 209 Snubbull Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 58
101 210 Granbull Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 59
102 211 Qwilfish Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 60
103 212 Scizor Red|Yellow|LG: Pikachu Gold|Silver|Crystal|HeartGold|SoulSilver 61
104 212 Scizor Female Red|Yellow|LG: Pikachu Gold|Silver|Crystal|HeartGold|SoulSilver
105 213 Shuckle Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 62
106 214 Heracross Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 63
107 214 Heracross Female Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
108 215 Sneasel Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 64
109 215 Sneasel Female Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
110 216 Teddiursa Gold|Crystal|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 65
111 217 Ursaring Gold|Crystal|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 66
112 217 Ursaring Female Gold|Crystal|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
113 218 Slugma Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 67
114 219 Magcargo Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 68
115 220 Swinub Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 69
116 221 Piloswine Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 70
117 221 Piloswine Female Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
118 222 Corsola Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 71
119 223 Remoraid Gold|Silver|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 72
120 224 Octillery Gold|Silver|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 73
121 224 Octillery Female Gold|Silver|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
122 225 Delibird Silver|Crystal|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 74
123 226 Mantine Gold|Crystal|HeartGold Gold|Silver|Crystal|HeartGold|SoulSilver 75
124 227 Skarmory Silver|Crystal|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 76
125 228 Houndour Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 77
126 229 Houndoom Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 78
127 229 Houndoom Female Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver
128 230 Kingdra Red|Blue|Yellow|LG: Pikachu|LG: Eevee Gold|Silver|Crystal|HeartGold|SoulSilver 79
129 231 Phanpy Silver|Crystal|HeartGold Gold|Silver|Crystal|HeartGold|SoulSilver 80
130 232 Donphan Silver|Crystal|HeartGold Gold|Silver|Crystal|HeartGold|SoulSilver 81
131 232 Donphan Female Silver|Crystal|HeartGold Gold|Silver|Crystal|HeartGold|SoulSilver
132 234 Stantler Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 83
133 235 Smeargle Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 84
134 236 Tyrogue Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 85
135 237 Hitmontop Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 86
136 238 Smoochum Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 87
137 239 Elekid Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 88
138 240 Magby Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 89
139 241 Miltank Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 90
140 242 Blissey Red|Blue|Yellow|LG: Pikachu|LG: Eevee Gold|Silver|Crystal|HeartGold|SoulSilver 91
141 243 Raikou Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 92
142 244 Entei Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 93
143 245 Suicune Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 94
144 246 Larvitar Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 95
145 247 Pupitar Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 96
146 248 Tyranitar Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 97
147 249 Lugia Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 98
148 250 Ho-Oh Gold|Silver|Crystal|HeartGold|SoulSilver Gold|Silver|Crystal|HeartGold|SoulSilver 99
149 251 Celebi Crystal Crystal|HeartGold|SoulSilver 100
+11 -8
View File
@@ -113,7 +113,10 @@ function generateMigration(region) {
const rows = pokemon.map(p => {
const form = p.form ? `'${p.form}'` : 'NULL';
const gamesList = p.games.split('|');
// Use regionalDexGames for the database (regional dex availability)
// originGames column is for future origin dex feature
const gamesField = p.regionalDexGames || p.games; // Fallback to old 'games' column for compatibility
const gamesList = gamesField.split('|');
const gamesArray = `ARRAY[${gamesList.map(g => `'${g}'`).join(', ')}]`;
return `(${p.pokedexNumber}, '${p.name}', ${form}, false, '${region}', ${gamesArray})`;
@@ -124,11 +127,6 @@ function generateMigration(region) {
// Regional dex numbers (separate table)
sql += `-- Insert ${region} regional dex numbers\n`;
sql += `INSERT INTO regional_dex_numbers (\n`;
sql += ` pokedex_entry_id,\n`;
sql += ` region,\n`;
sql += ` dex_number\n`;
sql += `) VALUES\n`;
const dexRows = pokemon
.filter(p => p.regionalNumber) // Only entries with regional dex numbers
@@ -141,10 +139,15 @@ function generateMigration(region) {
});
if (dexRows.length > 0) {
sql += `INSERT INTO regional_dex_numbers (\n`;
sql += ` pokedex_entry_id,\n`;
sql += ` region,\n`;
sql += ` dex_number\n`;
sql += `) VALUES\n`;
sql += dexRows.join(',\n');
sql += ';\n\n';
} else {
sql += ' -- No regional dex numbers for this region\n\n';
sql += '-- No regional dex numbers for this region\n\n';
}
// Add metadata
@@ -155,7 +158,7 @@ function generateMigration(region) {
sql += ` ('${region.toLowerCase()}_pokemon_count', '${pokemon.filter(p => !p.form).length}');\n`;
// 4. Write file
const timestamp = new Date().toISOString().replace(/[-:.]/g, '').slice(0, 14);
const timestamp = new Date().toISOString().replace(/[-:T.]/g, '').slice(0, 14);
const filename = `${timestamp}_seed_${region.toLowerCase()}.sql`;
const outputPath = path.join(__dirname, '..', 'supabase', 'migrations', filename);
+18 -14
View File
@@ -31,13 +31,20 @@
// Sanitise the pokemon name by making it all lowercase and replacing any spaces with hyphens and removing other characters
let sanitisedPokemonName = pokemonName.toLowerCase().replace(/[^a-z]/g, '');
// Get the PokeApi id for the pokemon
/**
* Sprite Resolution Strategy:
* 1. For forms with PokeAPI entries (regional forms): Use PokeAPI ID (e.g., 10107.png)
* 2. For forms without PokeAPI entries (Unown, Burmy, etc.): Use {pokedexNumber}-{form} (e.g., 201-a.png)
* 3. For base forms: Use PokeAPI ID matching species_id
*/
let pokeApiId;
if (form && form.length > 0 && form !== 'Female') {
// Sanitise the form by making it all lowercase and replacing spaces with hyphens
let sanitisedForm = form
.toLowerCase()
.replaceAll(' ', '-')
.replaceAll('!', 'exclamation')
.replaceAll('?', 'question')
.replaceAll('2', 'two')
.replaceAll('3', 'three')
.replaceAll('4', 'four');
@@ -59,20 +66,17 @@
break;
}
// If the form is contained in the identifier, use that
if (
pokeApiPokemon.find(
(pokemon) => pokemon.identifier === sanitisedPokemonName + '-' + sanitisedForm
)
) {
pokeApiId = pokeApiPokemon.find(
(pokemon) => pokemon.identifier === sanitisedPokemonName + '-' + sanitisedForm
)?.id;
// Try to find by PokeAPI identifier (e.g., "meowth-alola" -> 10107)
const pokeApiEntry = pokeApiPokemon.find(
(pokemon) => pokemon.identifier === sanitisedPokemonName + '-' + sanitisedForm
);
if (pokeApiEntry) {
// Pattern 1: Use PokeAPI ID (e.g., 10107.png for Meowth-Alola)
pokeApiId = pokeApiEntry.id;
} else {
// If the form is not contained in the identifier, use the species_id
pokeApiId = pokeApiPokemon.find(
(pokemon) => pokemon.species_id.toString() === strippedPokedexNumber
)?.id;
// Pattern 2: Use {pokedexNumber}-{form} (e.g., 201-a.png for Unown-A)
pokeApiId = `${strippedPokedexNumber}-${sanitisedForm}`;
}
} else {
pokeApiId = pokeApiPokemon.find(
@@ -139,6 +139,7 @@
bind:value={catchRecord.personalNotes}
id={`personalNotesInput-${catchRecord._id || pokedexEntry._id}`}
class="form-textarea w-full p-2 border rounded"
style="min-height: 120px;"
on:change={updateCatchRecord}
></textarea>
</p>
@@ -199,7 +200,8 @@
<style>
.dex-column {
width: 300px;
flex: 1;
min-width: 250px;
}
.sprite-container {
+34 -8
View File
@@ -1,4 +1,5 @@
<script lang="ts">
import { onMount } from 'svelte';
import type { Pokedex } from '$lib/models/Pokedex';
export let pokedex: Partial<Pokedex> = {
@@ -14,6 +15,26 @@
export let onSubmit: () => void;
export let onCancel: () => void;
let games: string[] = [];
let loadingGames = true;
// Fetch available games from the database
onMount(async () => {
try {
const response = await fetch('/api/games');
if (response.ok) {
const data = await response.json();
games = data.games || [];
} else {
console.error('Failed to fetch games');
}
} catch (error) {
console.error('Error fetching games:', error);
} finally {
loadingGames = false;
}
});
// Validation
$: hasAtLeastOneType =
pokedex.isLivingDex || pokedex.isShinyDex || pokedex.isOriginDex || pokedex.isFormDex;
@@ -83,15 +104,20 @@
<label class="label" for="game-scope">
<span class="label-text">Game Scope</span>
</label>
<select id="game-scope" class="select select-bordered" bind:value={pokedex.gameScope}>
<select
id="game-scope"
class="select select-bordered"
bind:value={pokedex.gameScope}
disabled={loadingGames}
>
<option value={null}>All Games</option>
<option value="Scarlet">Scarlet</option>
<option value="Violet">Violet>
<option value="Sword">Sword</option>
<option value="Shield">Shield</option>
<option value="Brilliant Diamond">Brilliant Diamond</option>
<option value="Shining Pearl">Shining Pearl</option>
<option value="Legends: Arceus">Legends: Arceus</option>
{#if loadingGames}
<option disabled>Loading games...</option>
{:else}
{#each games as game}
<option value={game}>{game}</option>
{/each}
{/if}
</select>
</div>
@@ -0,0 +1,109 @@
<script lang="ts">
import { onMount, onDestroy } from 'svelte';
export let isOpen: boolean;
export let onClose: () => void;
function handleBackdropClick() {
onClose();
}
function handleKeyDown(event: KeyboardEvent) {
if (event.key === 'Escape' && isOpen) {
onClose();
}
}
onMount(() => {
window.addEventListener('keydown', handleKeyDown);
});
onDestroy(() => {
window.removeEventListener('keydown', handleKeyDown);
});
</script>
{#if isOpen}
<div class="modal modal-open" role="dialog" aria-modal="true">
<div class="modal-box-custom">
<button class="close-button" on:click={onClose} aria-label="Close"></button>
<div class="modal-content">
<slot />
</div>
</div>
<div
class="modal-backdrop bg-black/50"
on:click={handleBackdropClick}
on:keydown={() => {}}
></div>
</div>
{/if}
<style>
.modal-backdrop {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.modal-box-custom {
max-width: 72rem;
width: 100%;
max-height: 90vh;
background-color: rgba(220, 38, 38, 0.95);
border: none;
box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.5);
outline: none;
position: relative;
border-radius: 1rem;
padding: 0.5rem;
overflow-y: auto;
box-sizing: border-box;
}
.close-button {
position: absolute;
right: 1rem;
top: 1rem;
width: 2.5rem;
height: 2.5rem;
border-radius: 50%;
background-color: rgba(0, 0, 0, 0.3);
color: white;
border: 2px solid rgba(255, 255, 255, 0.3);
font-size: 1.5rem;
font-weight: bold;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.2s;
z-index: 10;
line-height: 1;
}
.close-button:hover {
background-color: rgba(0, 0, 0, 0.5);
border-color: rgba(255, 255, 255, 0.5);
transform: scale(1.1);
}
.modal-content {
width: 100%;
}
/* Remove margin and background from card inside modal */
.modal-content :global(.dex-entry) {
margin-bottom: 0;
background-color: transparent !important;
box-shadow: none;
}
@media (min-width: 768px) {
.modal-box-custom {
width: 91.666667%;
}
}
</style>
@@ -1,149 +0,0 @@
<script lang="ts">
import Pagination from '$lib/components/Pagination.svelte';
import type { Pokedex } from '$lib/models/Pokedex';
export let pokedex: Pokedex | null = null;
export let viewAsBoxes = false;
export let currentPage = 1;
export let itemsPerPage = 20;
export let totalPages = 0;
export let showOrigins = true;
export let showShiny = false;
export let catchRegion = '';
export let catchGame = '';
export let toggleOrigins = () => {};
export let toggleShiny = () => {};
export let getData = () => {};
export let toggleViewAsBoxes = () => {};
// Get active type badges
$: typeBadges = pokedex
? [
pokedex.isLivingDex && 'Living',
pokedex.isShinyDex && 'Shiny',
pokedex.isOriginDex && 'Origin',
pokedex.isFormDex && 'Form'
].filter(Boolean)
: [];
</script>
<aside
class="menu bg-gray-800 text-white min-h-full w-64 p-4 lg:fixed xs:top-0 lg:left-0 h-full lg:h-5/6"
>
<!-- Pokédex Info Section -->
{#if pokedex}
<div class="mb-6 pb-4 border-b border-gray-700">
<h2 class="text-xl font-semibold mb-2">{pokedex.name}</h2>
<div class="flex flex-wrap gap-1 mb-2">
{#each typeBadges as badge}
<span class="badge badge-sm badge-primary">{badge}</span>
{/each}
</div>
{#if pokedex.gameScope}
<p class="text-sm text-gray-400">Game: {pokedex.gameScope}</p>
{/if}
<a href="/my-pokedexes" class="btn btn-ghost btn-sm mt-2 w-full"> Manage Pokédexes </a>
</div>
{/if}
<h2 class="text-2xl font-semibold mb-4">Views</h2>
<ul>
<li class="mb-2">
<button class="block p-2 hover:bg-gray-700 rounded" on:click={toggleViewAsBoxes}>
{viewAsBoxes ? 'Switch to List View' : 'Switch to Box View'}
</button>
</li>
</ul>
<h2 class="text-2xl font-semibold mb-4">Filters</h2>
<ul>
<li class="mb-2">
<button class="block p-2 hover:bg-gray-700 rounded" on:click={toggleOrigins}>
Toggle Origins (Currently {showOrigins ? 'On' : 'Off'})
</button>
</li>
<li class="mb-2">
<button class="block p-2 hover:bg-gray-700 rounded" on:click={toggleShiny}>
Toggle Shiny (Currently {showShiny ? 'On' : 'Off'})
</button>
</li>
</ul>
<div class="mb-4">
<label for="catchRegionSelect">Region to catch in:</label>
<select
id="catchRegionSelect"
class="select select-bordered w-full max-w-xs text-black"
bind:value={catchRegion}
on:change={getData}
>
<option value="">All</option>
<option value="Kanto">Kanto (Red, Blue, Yellow, LG: Pikachu, LG: Eevee)</option>
<option value="Johto">Johto (Gold, Silver, Crystal, HG, SS)</option>
<option value="Hoenn">Hoenn (Ruby, Sapphire, Emerald, OR, AS)</option>
<option value="Sinnoh">Sinnoh (Diamond, Pearl, Platinum, BD, SP)</option>
<option value="Unova">Unova (Black, White, Black2, White2, Dream Radar)</option>
<option value="Kalos">Kalos (X, Y)</option>
<option value="Alola">Alola (Sun, Moon, Moon Demo, US, UM)</option>
<option value="Galar">Galar (Sword, Shield)</option>
<option value="Hisui">Hisui (PLA)</option>
<option value="Paldea">Paldea (Scarlet, Violet)</option>
<option value="Unknown">Unknown (Home, Go)</option>
</select>
</div>
<div class="mb-4">
<label for="catchGameSelect">Game to catch in: {catchGame}</label>
<select
id="catchGameSelect"
class="select select-bordered w-full max-w-xs text-black"
bind:value={catchGame}
on:change={getData}
>
<option value="">All</option>
<option value="Red">Red (Kanto)</option>
<option value="Blue">Blue (Kanto)</option>
<option value="Yellow">Yellow (Kanto)</option>
<option value="LG: Pikachu">LG: Pikachu (Kanto)</option>
<option value="LG: Eevee">LG: Eevee (Kanto)</option>
<option value="Gold">Gold (Johto)</option>
<option value="Silver">Silver (Johto)</option>
<option value="Crystal">Crystal (Johto)</option>
<option value="HG">HG (Johto)</option>
<option value="SS">SS (Johto)</option>
<option value="Ruby">Ruby (Hoenn)</option>
<option value="Sapphire">Sapphire (Hoenn)</option>
<option value="Emerald">Emerald (Hoenn)</option>
<option value="OR">OR (Hoenn)</option>
<option value="AS">AS (Hoenn)</option>
<option value="Diamond">Diamond (Sinnoh)</option>
<option value="Pearl">Pearl (Sinnoh)</option>
<option value="Platinum">Platinum (Sinnoh)</option>
<option value="BD">BD (Sinnoh)</option>
<option value="SP">SP (Sinnoh)</option>
<option value="Black">Black (Unova)</option>
<option value="White">White (Unova)</option>
<option value="Black2">Black2 (Unova)</option>
<option value="White2">White2 (Unova)</option>
<option value="Dream Radar">Dream Radar (Unova)</option>
<option value="X">X (Kalos)</option>
<option value="Y">Y (Kalos)</option>
<option value="Sun">Sun (Alola)</option>
<option value="Moon">Moon (Alola)</option>
<option value="Moon Demo">Moon Demo (Alola)</option>
<option value="US">US (Alola)</option>
<option value="UM">UM (Alola)</option>
<option value="Sword">Sword (Galar)</option>
<option value="Shield">Shield (Galar)</option>
<option value="PLA">PLA (Hisui)</option>
<option value="Scarlet">Scarlet (Paldea)</option>
<option value="Violet">Violet (Paldea)</option>
<option value="Home">Home (Unknown)</option>
<option value="Go">Go (Unknown)</option>
</select>
</div>
{#if !viewAsBoxes}
<h2 class="text-2xl font-semibold mb-4">Paging</h2>
<div>
<Pagination bind:currentPage bind:itemsPerPage bind:totalPages />
</div>
{/if}
</aside>
@@ -18,6 +18,7 @@
export let markBoxAsInHome = (boxNumber: number) => {};
export let markBoxAsNotInHome = (boxNumber: number) => {};
export let createCatchRecords = () => {};
export let onPokemonClick: (pokemon: CombinedData) => void = () => {};
function cellBackgroundColourClass(catchRecord: CatchRecord | null) {
if (catchRecord?.caught) {
@@ -51,19 +52,19 @@
{#each boxNumbers as boxNumber}
<div class="mb-8 md:w-1/2 px-2">
<h2 class="text-xl font-bold mb-4">Box {boxNumber}</h2>
<button class="btn" on:click={markBoxAsNotCaught(boxNumber)}>
<button class="btn" on:click={() => markBoxAsNotCaught(boxNumber)}>
Mark box as not 'caught'
</button>
<button class="btn" on:click={markBoxAsCaught(boxNumber)}>
<button class="btn" on:click={() => markBoxAsCaught(boxNumber)}>
Mark box as 'caught'
</button>
<button class="btn" on:click={markBoxAsNeedsToEvolve(boxNumber)}
<button class="btn" on:click={() => markBoxAsNeedsToEvolve(boxNumber)}
>Mark box as 'needs to evolve'</button
>
<button class="btn" on:click={markBoxAsInHome(boxNumber)}
<button class="btn" on:click={() => markBoxAsInHome(boxNumber)}
>Mark box as 'in Home'</button
>
<button class="btn" on:click={markBoxAsNotInHome(boxNumber)}
<button class="btn" on:click={() => markBoxAsNotInHome(boxNumber)}
>Mark box as not 'in Home'</button
>
<div class="grid grid-cols-6">
@@ -72,10 +73,13 @@
? pokedexEntry.boxPlacementForms
: pokedexEntry.boxPlacement}
{#if placement.box === boxNumber}
<div
class="pokemon-box {cellBackgroundColourClass(catchRecord)}"
<button
type="button"
class="pokemon-box {cellBackgroundColourClass(catchRecord)} hover:scale-105 hover:shadow-lg hover:z-50 transition-all cursor-pointer relative"
style="grid-column-start: {placement.column}; grid-row-start: {placement.row};
{cellBackgroundColourStyle(pokedexEntry, catchRecord)}"
on:click={() => onPokemonClick({ pokedexEntry, catchRecord })}
aria-label="View details for {pokedexEntry.pokemon}"
>
<Tooltip>
<div slot="hover-target">
@@ -106,7 +110,7 @@
</div>
</div>
</Tooltip>
</div>
</button>
{/if}
{/each}
</div>
@@ -1,55 +0,0 @@
<script lang="ts">
import PokedexEntryCatchRecord from './PokedexEntryCatchRecord.svelte';
import type { CombinedData } from '$lib/models/CombinedData';
export let showOrigins = true;
export let showForms = true;
export let showShiny = false;
export let combinedData: CombinedData[] | null;
export let creatingRecords = false;
export let totalRecordsCreated = 0;
export let failedToLoad = false;
export let updateACatch = (event: any) => {};
export let createCatchRecords = () => {};
export let userId: string | null = null;
export let pokedexId: string;
</script>
<main class="flex-1 p-4 w-full">
<div class="max-w-min mx-auto">
{#if combinedData && combinedData.length > 0}
{#each combinedData as { pokedexEntry, catchRecord }}
<PokedexEntryCatchRecord
{pokedexEntry}
{showOrigins}
{showForms}
{showShiny}
{userId}
{pokedexId}
bind:catchRecord
on:updateCatch={updateACatch}
/>
{/each}
{:else if failedToLoad}
{#if creatingRecords && totalRecordsCreated > 0}
<p>Processed {totalRecordsCreated} Pokédex entries so far...</p>
<p>Please be patient, this may take some time.</p>
{:else if creatingRecords}
<p>Processing...</p>
<p>Please be patient, this may take some time.</p>
{:else}
<h1>Failed to load</h1>
<p>
If you're seeing this, you probably haven't created your Pokédex data yet. Please do so by
clicking this button.
</p>
<button class="btn" on:click={createCatchRecords}>Create Pokédex data</button>
{/if}
{:else}
<div class="min-w-max mx-auto">
<h1>Loading Pokédex</h1>
<span class="loading loading-spinner loading-xl"></span>
</div>
{/if}
</div>
</main>
+2 -34
View File
@@ -12,23 +12,7 @@ export interface PokedexEntry {
regionToEvolveIn: string;
evolutionInformation: string;
catchInformation: string[];
// Regional dex numbers
kantoDexNumber?: number;
johtoDexNumber?: number;
hoennDexNumber?: number;
sinnohDexNumber?: number;
unovaBwDexNumber?: number;
unovaB2w2DexNumber?: number;
kalosCentralDexNumber?: number;
kalosCoastalDexNumber?: number;
kalosMountainDexNumber?: number;
alolaSmDexNumber?: number;
alolaUsumDexNumber?: number;
galarDexNumber?: number;
galarIsleOfArmorDexNumber?: number;
galarCrownTundraDexNumber?: number;
hisuiDexNumber?: number;
paldeaDexNumber?: number;
// Note: Regional dex numbers stored in separate regional_dex_numbers table
}
// Database record type for Supabase
@@ -43,23 +27,7 @@ export interface PokedexEntryDB {
regionToEvolveIn: string | null;
evolutionInformation: string | null;
catchInformation: string[] | null;
// Regional dex numbers - snake_case to match database
kanto_dex_number: number | null;
johto_dex_number: number | null;
hoenn_dex_number: number | null;
sinnoh_dex_number: number | null;
unova_bw_dex_number: number | null;
unova_b2w2_dex_number: number | null;
kalos_central_dex_number: number | null;
kalos_coastal_dex_number: number | null;
kalos_mountain_dex_number: number | null;
alola_sm_dex_number: number | null;
alola_usum_dex_number: number | null;
galar_dex_number: number | null;
galar_isle_of_armor_dex_number: number | null;
galar_crown_tundra_dex_number: number | null;
hisui_dex_number: number | null;
paldea_dex_number: number | null;
// Note: Regional dex numbers stored in separate regional_dex_numbers table
createdAt: string;
updatedAt: string;
}
+14 -57
View File
@@ -2,8 +2,6 @@ import { type PokedexEntry, type PokedexEntryDB } from '$lib/models/PokedexEntry
import { type CatchRecord, type CatchRecordDB } from '$lib/models/CatchRecord';
import { type CombinedData } from '$lib/models/CombinedData';
import type { SupabaseClient } from '@supabase/supabase-js';
import { getRegionalDexColumnName } from '$lib/utils/regionalDexMapping';
import { calculateBoxPlacement } from '$lib/utils/boxPlacement';
class CombinedDataRepository {
constructor(
@@ -27,23 +25,8 @@ class CombinedDataRepository {
catchInformation: entry.catchInformation || [],
// Box placement will be calculated dynamically after sorting
boxPlacementForms: { box: 0, row: 0, column: 0 },
boxPlacement: { box: 0, row: 0, column: 0 },
kantoDexNumber: entry.kanto_dex_number ?? undefined,
johtoDexNumber: entry.johto_dex_number ?? undefined,
hoennDexNumber: entry.hoenn_dex_number ?? undefined,
sinnohDexNumber: entry.sinnoh_dex_number ?? undefined,
unovaBwDexNumber: entry.unova_bw_dex_number ?? undefined,
unovaB2w2DexNumber: entry.unova_b2w2_dex_number ?? undefined,
kalosCentralDexNumber: entry.kalos_central_dex_number ?? undefined,
kalosCoastalDexNumber: entry.kalos_coastal_dex_number ?? undefined,
kalosMountainDexNumber: entry.kalos_mountain_dex_number ?? undefined,
alolaSmDexNumber: entry.alola_sm_dex_number ?? undefined,
alolaUsumDexNumber: entry.alola_usum_dex_number ?? undefined,
galarDexNumber: entry.galar_dex_number ?? undefined,
galarIsleOfArmorDexNumber: entry.galar_isle_of_armor_dex_number ?? undefined,
galarCrownTundraDexNumber: entry.galar_crown_tundra_dex_number ?? undefined,
hisuiDexNumber: entry.hisui_dex_number ?? undefined,
paldeaDexNumber: entry.paldea_dex_number ?? undefined
boxPlacement: { box: 0, row: 0, column: 0 }
// Note: Regional dex numbers are stored in separate regional_dex_numbers table
};
}
@@ -71,8 +54,8 @@ class CombinedDataRepository {
// Apply filters
if (!enableForms) {
// Filter to only base forms (form is NULL)
query = query.is('form', null);
// Filter to only base forms (form is NULL) OR Unown "A" (since Unown has no base form)
query = query.or('form.is.null,and(pokemon.eq.Unown,form.eq.A)');
}
if (region) {
@@ -83,22 +66,9 @@ class CombinedDataRepository {
query = query.contains('gamesToCatchIn', [game]);
}
// Determine ordering strategy based on game filter
if (game) {
const regionalColumn = getRegionalDexColumnName(game);
if (regionalColumn) {
// Order by regional dex with national dex fallback for NULLs
query = query
.order(regionalColumn, { ascending: true, nullsFirst: false })
.order('pokedexNumber', { ascending: true });
} else {
// Game specified but has no regional dex mapping
query = query.order('pokedexNumber', { ascending: true });
}
} else {
// No game filter - order by national dex number
query = query.order('pokedexNumber', { ascending: true });
}
// Always order by national dex number
// Note: Regional dex ordering would require joining with regional_dex_numbers table
query = query.order('pokedexNumber', { ascending: true });
const { data: entries, error: entriesError } = await query;
@@ -162,8 +132,8 @@ class CombinedDataRepository {
// Apply filters
if (!enableForms) {
// Filter to only base forms (form is NULL)
query = query.is('form', null);
// Filter to only base forms (form is NULL) OR Unown "A" (since Unown has no base form)
query = query.or('form.is.null,and(pokemon.eq.Unown,form.eq.A)');
}
if (region) {
@@ -174,22 +144,9 @@ class CombinedDataRepository {
query = query.contains('gamesToCatchIn', [game]);
}
// Determine ordering strategy based on game filter
if (game) {
const regionalColumn = getRegionalDexColumnName(game);
if (regionalColumn) {
// Order by regional dex with national dex fallback for NULLs
query = query
.order(regionalColumn, { ascending: true, nullsFirst: false })
.order('pokedexNumber', { ascending: true });
} else {
// Game specified but has no regional dex mapping
query = query.order('pokedexNumber', { ascending: true });
}
} else {
// No game filter - order by national dex number
query = query.order('pokedexNumber', { ascending: true });
}
// Always order by national dex number
// Note: Regional dex ordering would require joining with regional_dex_numbers table
query = query.order('pokedexNumber', { ascending: true });
const { data: entries, error: entriesError } = await query;
@@ -247,8 +204,8 @@ class CombinedDataRepository {
// Apply same filters as in findCombinedData
if (!enableForms) {
// Filter to only base forms (form is NULL)
query = query.is('form', null);
// Filter to only base forms (form is NULL) OR Unown "A" (since Unown has no base form)
query = query.or('form.is.null,and(pokemon.eq.Unown,form.eq.A)');
}
if (region) {
+32
View File
@@ -0,0 +1,32 @@
import { json } from '@sveltejs/kit';
import type { RequestHandler } from './$types';
/**
* GET /api/games
* Returns all games from the games table, sorted by release year descending (newest first)
*/
export const GET: RequestHandler = async ({ locals }) => {
const { supabase } = locals;
try {
// Query games table for all games, sorted by release year descending
const { data, error } = await supabase
.from('games')
.select('displayName, releaseYear')
.order('releaseYear', { ascending: false })
.order('displayName', { ascending: true }); // Secondary sort by name for same year
if (error) {
console.error('Error fetching games:', error);
return json({ error: 'Failed to fetch games' }, { status: 500 });
}
// Extract just the display names
const gameNames = data.map((row) => row.displayName);
return json({ games: gameNames });
} catch (err) {
console.error('Unexpected error fetching games:', err);
return json({ error: 'Internal server error' }, { status: 500 });
}
};
+143 -75
View File
@@ -5,9 +5,9 @@
import { type CombinedData } from '$lib/models/CombinedData';
import { browser } from '$app/environment';
import type { PokedexEntry } from '$lib/models/PokedexEntry';
import PokedexSidebar from '$lib/components/pokedex/PokedexSidebar.svelte';
import PokedexViewList from '$lib/components/pokedex/PokedexViewList.svelte';
import PokedexViewBoxes from '$lib/components/pokedex/PokedexViewBoxes.svelte';
import PokedexModal from '$lib/components/pokedex/PokedexModal.svelte';
import PokedexEntryCatchRecord from '$lib/components/pokedex/PokedexEntryCatchRecord.svelte';
import type { PageData } from './$types';
export let data: PageData;
@@ -23,40 +23,49 @@
let creatingRecords = false;
let totalRecordsCreated = 0;
let failedToLoad = false;
let catchRegion = '';
let catchGame = '';
let localUser: User | null;
let showOrigins = true;
let showShiny = false;
let drawerOpen = false;
let viewAsBoxes = false;
let boxNumbers: number[] = [];
let showModal = false;
let selectedPokemon: CombinedData | null = null;
// Derive from pokedex config
$: showOrigins = pokedex.isOriginDex;
$: showShiny = pokedex.isShinyDex;
const unsubscribe = user.subscribe((value) => {
localUser = value;
});
onDestroy(unsubscribe);
function toggleOrigins() {
showOrigins = !showOrigins;
function openPokemonModal(pokemon: CombinedData) {
selectedPokemon = pokemon;
showModal = true;
}
async function toggleShiny() {
showShiny = !showShiny;
await getData();
function closePokemonModal() {
showModal = false;
selectedPokemon = null;
}
async function toggleViewAsBoxes() {
viewAsBoxes = !viewAsBoxes;
await getData();
async function handleModalCatchUpdate(event: any) {
await updateACatch(event); // Existing handler
// Sync modal with refreshed data
if (selectedPokemon && combinedData) {
const updated = combinedData.find(
(cd) => cd.pokedexEntry._id === selectedPokemon!.pokedexEntry._id
);
if (updated) {
selectedPokemon = updated;
}
}
}
async function getData(setCombinedDataToNull = true) {
if (setCombinedDataToNull) {
combinedData = null;
}
// Use new pokédex-scoped endpoint
let endpoint = `/api/pokedexes/${pokedexId}/combined-data?page=${currentPage}&limit=${viewAsBoxes ? 9999 : itemsPerPage}&enableForms=${pokedex.isFormDex}&region=${catchRegion}&game=${catchGame}`;
// Use new pokédex-scoped endpoint - always fetch all data for box view
let endpoint = `/api/pokedexes/${pokedexId}/combined-data?page=${currentPage}&limit=9999&enableForms=${pokedex.isFormDex}`;
const response = await fetch(endpoint);
const fetchedData = await response.json();
@@ -66,7 +75,8 @@
}
combinedData = fetchedData.combinedData;
totalPages = fetchedData.totalPages || 0;
if (viewAsBoxes) {
// Always extract box numbers for box view
if (combinedData) {
boxNumbers = [
...new Set(
combinedData.map(({ pokedexEntry }) =>
@@ -116,6 +126,8 @@
needsToEvolve: boolean,
inHome: boolean | null = null
) {
if (!combinedData) return;
let catchRecordsToUpdate = combinedData
.filter(({ pokedexEntry }) =>
(pokedex.isFormDex ? pokedexEntry.boxPlacementForms.box : pokedexEntry.boxPlacement.box) ===
@@ -260,63 +272,119 @@
{#if !localUser}
<p>Please <a href="/signin" class="underline text-primary hover:text-secondary">sign in</a></p>
{:else}
<div class="drawer lg:drawer-open">
<input id="my-drawer" type="checkbox" class="drawer-toggle" bind:checked={drawerOpen} />
<div class="drawer-content flex flex-col items-center justify-center md:ml-64">
<label
for="my-drawer"
class="btn btn-secondary drawer-button lg:hidden fixed -left-10 top-1/2 -rotate-90"
>
{drawerOpen ? 'Close Filters' : 'Open Filters'}
</label>
<div class="container mx-auto p-4 max-w-screen-2xl">
<!-- Pokédex Header -->
<div class="card bg-base-100 shadow-xl mb-6">
<div class="card-body">
<div class="flex flex-col lg:flex-row lg:items-center lg:justify-between gap-4">
<!-- Left side: Title and metadata -->
<div class="flex-1">
<h1 class="card-title text-3xl mb-3">{pokedex.name}</h1>
{#if viewAsBoxes}
<PokedexViewBoxes
bind:showShiny
showForms={pokedex.isFormDex}
bind:combinedData
bind:boxNumbers
bind:creatingRecords
bind:failedToLoad
{markBoxAsNotCaught}
{markBoxAsCaught}
{markBoxAsNeedsToEvolve}
{markBoxAsInHome}
{markBoxAsNotInHome}
/>
{:else}
<PokedexViewList
bind:showOrigins
showForms={pokedex.isFormDex}
bind:showShiny
bind:combinedData
bind:creatingRecords
bind:totalRecordsCreated
bind:failedToLoad
userId={localUser?.id}
pokedexId={pokedexId}
{updateACatch}
{createCatchRecords}
/>
{/if}
</div>
<div class="drawer-side lg:relative">
<label for="my-drawer" class="drawer-overlay lg:hidden"></label>
<PokedexSidebar
{pokedex}
bind:viewAsBoxes
bind:currentPage
bind:itemsPerPage
bind:totalPages
bind:showOrigins
bind:showShiny
bind:catchRegion
bind:catchGame
{getData}
{toggleOrigins}
{toggleShiny}
{toggleViewAsBoxes}
/>
<div class="flex flex-wrap items-center gap-3">
<!-- Type badges -->
{#if pokedex.isLivingDex}
<div class="badge badge-primary badge-lg gap-1">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd" />
</svg>
Living
</div>
{/if}
{#if pokedex.isShinyDex}
<div class="badge badge-secondary badge-lg gap-1">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor">
<path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" />
</svg>
Shiny
</div>
{/if}
{#if pokedex.isOriginDex}
<div class="badge badge-accent badge-lg gap-1">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" d="M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z" clip-rule="evenodd" />
</svg>
Origin
</div>
{/if}
{#if pokedex.isFormDex}
<div class="badge badge-info badge-lg gap-1">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor">
<path d="M7 3a1 1 0 000 2h6a1 1 0 100-2H7zM4 7a1 1 0 011-1h10a1 1 0 110 2H5a1 1 0 01-1-1zM2 11a2 2 0 012-2h12a2 2 0 012 2v4a2 2 0 01-2 2H4a2 2 0 01-2-2v-4z" />
</svg>
Form
</div>
{/if}
<!-- Game scope -->
{#if pokedex.gameScope}
<div class="divider divider-horizontal mx-0"></div>
<div class="flex items-center gap-2 text-base-content/70">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 20 20" fill="currentColor">
<path d="M10 12a2 2 0 100-4 2 2 0 000 4z" />
<path fill-rule="evenodd" d="M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z" clip-rule="evenodd" />
</svg>
<span class="font-semibold">{pokedex.gameScope}</span>
</div>
{:else}
<div class="divider divider-horizontal mx-0"></div>
<div class="flex items-center gap-2 text-base-content/70">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM4.332 8.027a6.012 6.012 0 011.912-2.706C6.512 5.73 6.974 6 7.5 6A1.5 1.5 0 019 7.5V8a2 2 0 004 0 2 2 0 011.523-1.943A5.977 5.977 0 0116 10c0 .34-.028.675-.083 1H15a2 2 0 00-2 2v2.197A5.973 5.973 0 0110 16v-2a2 2 0 00-2-2 2 2 0 01-2-2 2 2 0 00-1.668-1.973z" clip-rule="evenodd" />
</svg>
<span class="font-semibold">All Games</span>
</div>
{/if}
</div>
{#if pokedex.description}
<p class="text-sm text-base-content/70 mt-3">{pokedex.description}</p>
{/if}
</div>
<!-- Right side: Actions -->
<div class="flex flex-row lg:flex-col gap-2">
<a href="/my-pokedexes" class="btn btn-outline btn-sm">
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" viewBox="0 0 20 20" fill="currentColor">
<path d="M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z" />
</svg>
My Pokédexes
</a>
</div>
</div>
</div>
</div>
<!-- Box View -->
<PokedexViewBoxes
{showShiny}
showForms={pokedex.isFormDex}
bind:combinedData
bind:boxNumbers
bind:creatingRecords
bind:failedToLoad
{markBoxAsNotCaught}
{markBoxAsCaught}
{markBoxAsNeedsToEvolve}
{markBoxAsInHome}
{markBoxAsNotInHome}
{createCatchRecords}
onPokemonClick={openPokemonModal}
/>
</div>
{#if showModal && selectedPokemon}
<PokedexModal isOpen={showModal} onClose={closePokemonModal}>
<PokedexEntryCatchRecord
pokedexEntry={selectedPokemon.pokedexEntry}
bind:catchRecord={selectedPokemon.catchRecord}
{showOrigins}
showForms={pokedex.isFormDex}
{showShiny}
userId={localUser?.id}
pokedexId={pokedexId}
on:updateCatch={handleModalCatchUpdate}
/>
</PokedexModal>
{/if}
{/if}
@@ -0,0 +1,40 @@
-- Create games table to store game metadata
CREATE TABLE IF NOT EXISTS games (
id TEXT PRIMARY KEY,
"displayName" TEXT NOT NULL,
region TEXT NOT NULL,
generation INTEGER NOT NULL,
"releaseYear" INTEGER NOT NULL,
"createdAt" TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
"updatedAt" TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Enable RLS
ALTER TABLE games ENABLE ROW LEVEL SECURITY;
-- Allow anyone to read games (public reference data)
CREATE POLICY "Games are publicly readable"
ON games
FOR SELECT
TO public
USING (true);
-- Insert games data from games.csv
INSERT INTO games (id, "displayName", region, generation, "releaseYear") VALUES
('red', 'Red', 'Kanto', 1, 1996),
('blue', 'Blue', 'Kanto', 1, 1996),
('yellow', 'Yellow', 'Kanto', 1, 1998),
('lg--pikachu', 'LG: Pikachu', 'Kanto', 7, 2018),
('lg--eevee', 'LG: Eevee', 'Kanto', 7, 2018),
('gold', 'Gold', 'Johto', 2, 1999),
('silver', 'Silver', 'Johto', 2, 1999),
('crystal', 'Crystal', 'Johto', 2, 2000),
('heartgold', 'HeartGold', 'Johto', 4, 2009),
('soulsilver', 'SoulSilver', 'Johto', 4, 2009),
('legends-arceus', 'Legends: Arceus', 'Hisui', 8, 2022)
ON CONFLICT (id) DO UPDATE SET
"displayName" = EXCLUDED."displayName",
region = EXCLUDED.region,
generation = EXCLUDED.generation,
"releaseYear" = EXCLUDED."releaseYear",
"updatedAt" = NOW();
@@ -33,9 +33,9 @@ INSERT INTO pokedex_entries (
(11, 'Metapod', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(12, 'Butterfree', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(12, 'Butterfree', 'Female', false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(13, 'Weedle', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'LG: Pikachu', 'LG: Eevee']),
(14, 'Kakuna', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'LG: Pikachu', 'LG: Eevee']),
(15, 'Beedrill', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'LG: Pikachu', 'LG: Eevee']),
(13, 'Weedle', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(14, 'Kakuna', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(15, 'Beedrill', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(16, 'Pidgey', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(17, 'Pidgeotto', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(18, 'Pidgeot', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
@@ -45,14 +45,14 @@ INSERT INTO pokedex_entries (
(20, 'Raticate', 'Female', false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(21, 'Spearow', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(22, 'Fearow', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(23, 'Ekans', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'LG: Eevee']),
(24, 'Arbok', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'LG: Eevee']),
(23, 'Ekans', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(24, 'Arbok', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(25, 'Pikachu', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(25, 'Pikachu', 'Female', false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(26, 'Raichu', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(26, 'Raichu', 'Female', false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(27, 'Sandshrew', NULL, false, 'Kanto', ARRAY['Blue', 'Yellow', 'LG: Pikachu']),
(28, 'Sandslash', NULL, false, 'Kanto', ARRAY['Blue', 'Yellow', 'LG: Pikachu']),
(27, 'Sandshrew', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(28, 'Sandslash', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(29, 'Nidoran♀', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(30, 'Nidorina', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(31, 'Nidoqueen', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
@@ -61,33 +61,33 @@ INSERT INTO pokedex_entries (
(34, 'Nidoking', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(35, 'Clefairy', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(36, 'Clefable', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(37, 'Vulpix', NULL, false, 'Kanto', ARRAY['Blue', 'Yellow', 'LG: Eevee']),
(38, 'Ninetales', NULL, false, 'Kanto', ARRAY['Blue', 'Yellow', 'LG: Eevee']),
(37, 'Vulpix', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(38, 'Ninetales', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(39, 'Jigglypuff', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(40, 'Wigglytuff', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(41, 'Zubat', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(41, 'Zubat', 'Female', false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(42, 'Golbat', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(42, 'Golbat', 'Female', false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(43, 'Oddish', NULL, false, 'Kanto', ARRAY['Red', 'Yellow', 'LG: Pikachu']),
(44, 'Gloom', NULL, false, 'Kanto', ARRAY['Red', 'Yellow', 'LG: Pikachu']),
(44, 'Gloom', 'Female', false, 'Kanto', ARRAY['Red', 'Yellow', 'LG: Pikachu']),
(45, 'Vileplume', NULL, false, 'Kanto', ARRAY['Red', 'Yellow', 'LG: Pikachu']),
(45, 'Vileplume', 'Female', false, 'Kanto', ARRAY['Red', 'Yellow', 'LG: Pikachu']),
(43, 'Oddish', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(44, 'Gloom', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(44, 'Gloom', 'Female', false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(45, 'Vileplume', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(45, 'Vileplume', 'Female', false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(46, 'Paras', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(47, 'Parasect', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(48, 'Venonat', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(49, 'Venomoth', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(50, 'Diglett', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(51, 'Dugtrio', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(52, 'Meowth', NULL, false, 'Kanto', ARRAY['Blue', 'LG: Eevee']),
(53, 'Persian', NULL, false, 'Kanto', ARRAY['Blue', 'LG: Eevee']),
(52, 'Meowth', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(53, 'Persian', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(54, 'Psyduck', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(55, 'Golduck', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(56, 'Mankey', NULL, false, 'Kanto', ARRAY['Red', 'Yellow', 'LG: Pikachu']),
(57, 'Primeape', NULL, false, 'Kanto', ARRAY['Red', 'Yellow', 'LG: Pikachu']),
(58, 'Growlithe', NULL, false, 'Kanto', ARRAY['Red', 'Yellow', 'LG: Pikachu']),
(59, 'Arcanine', NULL, false, 'Kanto', ARRAY['Red', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(56, 'Mankey', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(57, 'Primeape', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(58, 'Growlithe', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(59, 'Arcanine', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(60, 'Poliwag', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(61, 'Poliwhirl', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(62, 'Poliwrath', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
@@ -99,9 +99,9 @@ INSERT INTO pokedex_entries (
(66, 'Machop', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(67, 'Machoke', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(68, 'Machamp', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(69, 'Bellsprout', NULL, false, 'Kanto', ARRAY['Blue', 'Yellow', 'LG: Eevee']),
(70, 'Weepinbell', NULL, false, 'Kanto', ARRAY['Blue', 'Yellow', 'LG: Eevee']),
(71, 'Victreebel', NULL, false, 'Kanto', ARRAY['Blue', 'Yellow', 'LG: Eevee']),
(69, 'Bellsprout', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(70, 'Weepinbell', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(71, 'Victreebel', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(72, 'Tentacool', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(73, 'Tentacruel', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(74, 'Geodude', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
@@ -120,8 +120,8 @@ INSERT INTO pokedex_entries (
(85, 'Dodrio', 'Female', false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(86, 'Seel', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(87, 'Dewgong', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(88, 'Grimer', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu']),
(89, 'Muk', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu']),
(88, 'Grimer', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(89, 'Muk', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(90, 'Shellder', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(91, 'Cloyster', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(92, 'Gastly', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
@@ -142,8 +142,8 @@ INSERT INTO pokedex_entries (
(106, 'Hitmonlee', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(107, 'Hitmonchan', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(108, 'Lickitung', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(109, 'Koffing', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'LG: Eevee']),
(110, 'Weezing', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'LG: Eevee']),
(109, 'Koffing', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(110, 'Weezing', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(111, 'Rhyhorn', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(111, 'Rhyhorn', 'Female', false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(112, 'Rhydon', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
@@ -160,12 +160,12 @@ INSERT INTO pokedex_entries (
(120, 'Staryu', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(121, 'Starmie', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(122, 'Mr. Mime', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(123, 'Scyther', NULL, false, 'Kanto', ARRAY['Red', 'Yellow', 'LG: Pikachu']),
(123, 'Scyther', 'Female', false, 'Kanto', ARRAY['Red', 'Yellow', 'LG: Pikachu']),
(124, 'Jynx', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'LG: Pikachu', 'LG: Eevee']),
(125, 'Electabuzz', NULL, false, 'Kanto', ARRAY['Red', 'LG: Pikachu', 'LG: Eevee']),
(126, 'Magmar', NULL, false, 'Kanto', ARRAY['Blue', 'LG: Pikachu', 'LG: Eevee']),
(127, 'Pinsir', NULL, false, 'Kanto', ARRAY['Blue', 'Yellow', 'LG: Eevee']),
(123, 'Scyther', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(123, 'Scyther', 'Female', false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(124, 'Jynx', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(125, 'Electabuzz', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(126, 'Magmar', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(127, 'Pinsir', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(128, 'Tauros', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(129, 'Magikarp', NULL, false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
(129, 'Magikarp', 'Female', false, 'Kanto', ARRAY['Red', 'Blue', 'Yellow', 'LG: Pikachu', 'LG: Eevee']),
@@ -0,0 +1,282 @@
-- Seed Johto region Pokémon (Gen 2)
-- Auto-generated from CSV files
-- Insert Johto region-game mappings
INSERT INTO region_game_mappings (region, game) VALUES
('Johto', 'Gold'),
('Johto', 'Silver'),
('Johto', 'Crystal'),
('Johto', 'HeartGold'),
('Johto', 'SoulSilver')
ON CONFLICT (region, game) DO NOTHING;
-- Insert Johto Pokémon entries
INSERT INTO pokedex_entries (
"pokedexNumber",
pokemon,
form,
"canGigantamax",
"regionToCatchIn",
"gamesToCatchIn"
) VALUES
(152, 'Chikorita', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(153, 'Bayleef', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(154, 'Meganium', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(154, 'Meganium', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(155, 'Cyndaquil', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(156, 'Quilava', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(157, 'Typhlosion', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(158, 'Totodile', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(159, 'Croconaw', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(160, 'Feraligatr', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(161, 'Sentret', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(162, 'Furret', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(163, 'Hoothoot', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(164, 'Noctowl', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(165, 'Ledyba', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(165, 'Ledyba', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(166, 'Ledian', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(166, 'Ledian', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(167, 'Spinarak', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(168, 'Ariados', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(169, 'Crobat', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(170, 'Chinchou', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(171, 'Lanturn', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(172, 'Pichu', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(173, 'Cleffa', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(174, 'Igglybuff', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(175, 'Togepi', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(176, 'Togetic', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(177, 'Natu', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(178, 'Xatu', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(178, 'Xatu', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(179, 'Mareep', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(180, 'Flaaffy', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(181, 'Ampharos', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(182, 'Bellossom', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(183, 'Marill', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(184, 'Azumarill', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(185, 'Sudowoodo', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(185, 'Sudowoodo', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(186, 'Politoed', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(186, 'Politoed', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(187, 'Hoppip', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(188, 'Skiploom', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(189, 'Jumpluff', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(190, 'Aipom', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(190, 'Aipom', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(191, 'Sunkern', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(192, 'Sunflora', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(193, 'Yanma', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(194, 'Wooper', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(194, 'Wooper', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(195, 'Quagsire', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(195, 'Quagsire', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(196, 'Espeon', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(197, 'Umbreon', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(198, 'Murkrow', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(198, 'Murkrow', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(199, 'Slowking', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(200, 'Misdreavus', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'A', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'B', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'C', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'D', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'E', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'F', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'G', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'H', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'I', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'J', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'K', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'L', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'M', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'N', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'O', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'P', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'Q', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'R', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'S', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'T', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'U', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'V', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'W', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'X', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'Y', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', 'Z', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', '!', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(201, 'Unown', '?', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(202, 'Wobbuffet', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(202, 'Wobbuffet', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(203, 'Girafarig', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(203, 'Girafarig', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(204, 'Pineco', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(205, 'Forretress', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(206, 'Dunsparce', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(207, 'Gligar', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(207, 'Gligar', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(208, 'Steelix', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(208, 'Steelix', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(209, 'Snubbull', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(210, 'Granbull', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(211, 'Qwilfish', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(212, 'Scizor', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(212, 'Scizor', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(213, 'Shuckle', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(214, 'Heracross', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(214, 'Heracross', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(215, 'Sneasel', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(215, 'Sneasel', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(216, 'Teddiursa', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(217, 'Ursaring', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(217, 'Ursaring', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(218, 'Slugma', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(219, 'Magcargo', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(220, 'Swinub', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(221, 'Piloswine', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(221, 'Piloswine', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(222, 'Corsola', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(223, 'Remoraid', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(224, 'Octillery', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(224, 'Octillery', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(225, 'Delibird', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(226, 'Mantine', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(227, 'Skarmory', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(228, 'Houndour', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(229, 'Houndoom', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(229, 'Houndoom', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(230, 'Kingdra', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(231, 'Phanpy', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(232, 'Donphan', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(232, 'Donphan', 'Female', false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(234, 'Stantler', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(235, 'Smeargle', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(236, 'Tyrogue', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(237, 'Hitmontop', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(238, 'Smoochum', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(239, 'Elekid', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(240, 'Magby', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(241, 'Miltank', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(242, 'Blissey', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(243, 'Raikou', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(244, 'Entei', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(245, 'Suicune', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(246, 'Larvitar', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(247, 'Pupitar', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(248, 'Tyranitar', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(249, 'Lugia', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(250, 'Ho-Oh', NULL, false, 'Johto', ARRAY['Gold', 'Silver', 'Crystal', 'HeartGold', 'SoulSilver']),
(251, 'Celebi', NULL, false, 'Johto', ARRAY['Crystal', 'HeartGold', 'SoulSilver'])
ON CONFLICT ON CONSTRAINT unique_pokemon_form DO NOTHING;
-- Insert Johto regional dex numbers
INSERT INTO regional_dex_numbers (
pokedex_entry_id,
region,
dex_number
) VALUES
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 152 AND form IS NULL), 'Johto', 1),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 153 AND form IS NULL), 'Johto', 2),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 154 AND form IS NULL), 'Johto', 3),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 155 AND form IS NULL), 'Johto', 4),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 156 AND form IS NULL), 'Johto', 5),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 157 AND form IS NULL), 'Johto', 6),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 158 AND form IS NULL), 'Johto', 7),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 159 AND form IS NULL), 'Johto', 8),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 160 AND form IS NULL), 'Johto', 9),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 161 AND form IS NULL), 'Johto', 10),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 162 AND form IS NULL), 'Johto', 11),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 163 AND form IS NULL), 'Johto', 12),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 164 AND form IS NULL), 'Johto', 13),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 165 AND form IS NULL), 'Johto', 14),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 166 AND form IS NULL), 'Johto', 15),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 167 AND form IS NULL), 'Johto', 16),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 168 AND form IS NULL), 'Johto', 17),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 169 AND form IS NULL), 'Johto', 18),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 170 AND form IS NULL), 'Johto', 19),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 171 AND form IS NULL), 'Johto', 20),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 172 AND form IS NULL), 'Johto', 21),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 173 AND form IS NULL), 'Johto', 22),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 174 AND form IS NULL), 'Johto', 23),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 175 AND form IS NULL), 'Johto', 24),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 176 AND form IS NULL), 'Johto', 25),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 177 AND form IS NULL), 'Johto', 26),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 178 AND form IS NULL), 'Johto', 27),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 179 AND form IS NULL), 'Johto', 28),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 180 AND form IS NULL), 'Johto', 29),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 181 AND form IS NULL), 'Johto', 30),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 182 AND form IS NULL), 'Johto', 31),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 183 AND form IS NULL), 'Johto', 32),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 184 AND form IS NULL), 'Johto', 33),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 185 AND form IS NULL), 'Johto', 34),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 186 AND form IS NULL), 'Johto', 35),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 187 AND form IS NULL), 'Johto', 36),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 188 AND form IS NULL), 'Johto', 37),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 189 AND form IS NULL), 'Johto', 38),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 190 AND form IS NULL), 'Johto', 39),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 191 AND form IS NULL), 'Johto', 40),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 192 AND form IS NULL), 'Johto', 41),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 193 AND form IS NULL), 'Johto', 42),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 194 AND form IS NULL), 'Johto', 43),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 195 AND form IS NULL), 'Johto', 44),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 196 AND form IS NULL), 'Johto', 45),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 197 AND form IS NULL), 'Johto', 46),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 198 AND form IS NULL), 'Johto', 47),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 199 AND form IS NULL), 'Johto', 48),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 200 AND form IS NULL), 'Johto', 49),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 201 AND form = 'A'), 'Johto', 50),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 202 AND form IS NULL), 'Johto', 51),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 203 AND form IS NULL), 'Johto', 52),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 204 AND form IS NULL), 'Johto', 53),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 205 AND form IS NULL), 'Johto', 54),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 206 AND form IS NULL), 'Johto', 55),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 207 AND form IS NULL), 'Johto', 56),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 208 AND form IS NULL), 'Johto', 57),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 209 AND form IS NULL), 'Johto', 58),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 210 AND form IS NULL), 'Johto', 59),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 211 AND form IS NULL), 'Johto', 60),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 212 AND form IS NULL), 'Johto', 61),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 213 AND form IS NULL), 'Johto', 62),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 214 AND form IS NULL), 'Johto', 63),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 215 AND form IS NULL), 'Johto', 64),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 216 AND form IS NULL), 'Johto', 65),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 217 AND form IS NULL), 'Johto', 66),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 218 AND form IS NULL), 'Johto', 67),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 219 AND form IS NULL), 'Johto', 68),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 220 AND form IS NULL), 'Johto', 69),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 221 AND form IS NULL), 'Johto', 70),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 222 AND form IS NULL), 'Johto', 71),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 223 AND form IS NULL), 'Johto', 72),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 224 AND form IS NULL), 'Johto', 73),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 225 AND form IS NULL), 'Johto', 74),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 226 AND form IS NULL), 'Johto', 75),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 227 AND form IS NULL), 'Johto', 76),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 228 AND form IS NULL), 'Johto', 77),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 229 AND form IS NULL), 'Johto', 78),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 230 AND form IS NULL), 'Johto', 79),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 231 AND form IS NULL), 'Johto', 80),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 232 AND form IS NULL), 'Johto', 81),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 234 AND form IS NULL), 'Johto', 83),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 235 AND form IS NULL), 'Johto', 84),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 236 AND form IS NULL), 'Johto', 85),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 237 AND form IS NULL), 'Johto', 86),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 238 AND form IS NULL), 'Johto', 87),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 239 AND form IS NULL), 'Johto', 88),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 240 AND form IS NULL), 'Johto', 89),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 241 AND form IS NULL), 'Johto', 90),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 242 AND form IS NULL), 'Johto', 91),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 243 AND form IS NULL), 'Johto', 92),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 244 AND form IS NULL), 'Johto', 93),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 245 AND form IS NULL), 'Johto', 94),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 246 AND form IS NULL), 'Johto', 95),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 247 AND form IS NULL), 'Johto', 96),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 248 AND form IS NULL), 'Johto', 97),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 249 AND form IS NULL), 'Johto', 98),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 250 AND form IS NULL), 'Johto', 99),
((SELECT id FROM pokedex_entries WHERE "pokedexNumber" = 251 AND form IS NULL), 'Johto', 100);
-- Add metadata
INSERT INTO metadata (key, value) VALUES
('johto_seeded', 'true'),
('johto_seed_date', NOW()::TEXT),
('johto_pokemon_count', '98');