5
5
import java .util .List ;
6
6
import java .util .Map ;
7
7
8
- import POGOProtos .Enums .PokemonIdOuterClass ;
9
8
9
+ import static POGOProtos .Enums .PokemonIdOuterClass .*;
10
10
import static POGOProtos .Enums .PokemonIdOuterClass .PokemonId .ABRA ;
11
11
import static POGOProtos .Enums .PokemonIdOuterClass .PokemonId .AERODACTYL ;
12
12
import static POGOProtos .Enums .PokemonIdOuterClass .PokemonId .ALAKAZAM ;
161
161
import static java .util .Arrays .asList ;
162
162
163
163
class EvolutionInfo {
164
- private static final PokemonIdOuterClass . PokemonId [] BULBASAUR_EVOLUTION = {BULBASAUR , IVYSAUR , VENUSAUR };
165
- private static final PokemonIdOuterClass . PokemonId [] CHARMANDER_EVOLUTION = {CHARMANDER , CHARMELEON , CHARIZARD };
166
- private static final PokemonIdOuterClass . PokemonId [] SQUIRTLE_EVOLUTION = {SQUIRTLE , WARTORTLE , BLASTOISE };
167
- private static final PokemonIdOuterClass . PokemonId [] CATERPIE_EVOLUTION = {CATERPIE , METAPOD , BUTTERFREE };
168
- private static final PokemonIdOuterClass . PokemonId [] WEEDLE_EVOLUTION = {WEEDLE , KAKUNA , BEEDRILL };
169
- private static final PokemonIdOuterClass . PokemonId [] PIDGEY_EVOLUTION = {PIDGEY , PIDGEOTTO , PIDGEOT };
170
- private static final PokemonIdOuterClass . PokemonId [] RATTATA_EVOLUTION = {RATTATA , RATICATE };
171
- private static final PokemonIdOuterClass . PokemonId [] SPEAROW_EVOLUTION = {SPEAROW , FEAROW };
172
- private static final PokemonIdOuterClass . PokemonId [] EKANS_EVOLUTION = {EKANS , ARBOK };
173
- private static final PokemonIdOuterClass . PokemonId [] PIKACHU_EVOLUTION = {PIKACHU , RAICHU };
174
- private static final PokemonIdOuterClass . PokemonId [] SANDSHREW_EVOLUTION = {SANDSHREW , SANDSLASH };
175
- private static final PokemonIdOuterClass . PokemonId [] NIDORAN_FEMALE_EVOLUTION = {NIDORAN_FEMALE , NIDORINA , NIDOQUEEN };
176
- private static final PokemonIdOuterClass . PokemonId [] NIDORAN_MALE_EVOLUTION = {NIDORAN_MALE , NIDORINO , NIDOKING };
177
- private static final PokemonIdOuterClass . PokemonId [] CLEFAIRY_EVOLUTION = {CLEFAIRY , CLEFABLE };
178
- private static final PokemonIdOuterClass . PokemonId [] VULPIX_EVOLUTION = {VULPIX , NINETALES };
179
- private static final PokemonIdOuterClass . PokemonId [] JIGGLYPUFF_EVOLUTION = {JIGGLYPUFF , WIGGLYTUFF };
180
- private static final PokemonIdOuterClass . PokemonId [] ZUBAT_EVOLUTION = {ZUBAT , GOLBAT };
181
- private static final PokemonIdOuterClass . PokemonId [] ODDISH_EVOLUTION = {ODDISH , GLOOM , VILEPLUME };
182
- private static final PokemonIdOuterClass . PokemonId [] PARAS_EVOLUTION = {PARAS , PARASECT };
183
- private static final PokemonIdOuterClass . PokemonId [] VENONAT_EVOLUTION = {VENONAT , VENOMOTH };
184
- private static final PokemonIdOuterClass . PokemonId [] DIGLETT_EVOLUTION = {DIGLETT , DUGTRIO };
185
- private static final PokemonIdOuterClass . PokemonId [] MEOWTH_EVOLUTION = {MEOWTH , PERSIAN };
186
- private static final PokemonIdOuterClass . PokemonId [] PSYDUCK_EVOLUTION = {PSYDUCK , GOLDUCK };
187
- private static final PokemonIdOuterClass . PokemonId [] MANKEY_EVOLUTION = {MANKEY , PRIMEAPE };
188
- private static final PokemonIdOuterClass . PokemonId [] GROWLITHE_EVOLUTION = {GROWLITHE , ARCANINE };
189
- private static final PokemonIdOuterClass . PokemonId [] POLIWAG_EVOLUTION = {POLIWAG , POLIWHIRL , POLIWRATH };
190
- private static final PokemonIdOuterClass . PokemonId [] ABRA_EVOLUTION = {ABRA , KADABRA , ALAKAZAM };
191
- private static final PokemonIdOuterClass . PokemonId [] MACHOP_EVOLUTION = {MACHOP , MACHOKE , MACHAMP };
192
- private static final PokemonIdOuterClass . PokemonId [] BELLSPROUT_EVOLUTION = {BELLSPROUT , WEEPINBELL , VICTREEBEL };
193
- private static final PokemonIdOuterClass . PokemonId [] TENTACOOL_EVOLUTION = {TENTACOOL , TENTACRUEL };
194
- private static final PokemonIdOuterClass . PokemonId [] GEODUDE_EVOLUTION = {GEODUDE , GRAVELER , GOLEM };
195
- private static final PokemonIdOuterClass . PokemonId [] PONYTA_EVOLUTION = {PONYTA , RAPIDASH };
196
- private static final PokemonIdOuterClass . PokemonId [] SLOWPOKE_EVOLUTION = {SLOWPOKE , SLOWBRO };
197
- private static final PokemonIdOuterClass . PokemonId [] MAGNEMITE_EVOLUTION = {MAGNEMITE , MAGNETON };
198
- private static final PokemonIdOuterClass . PokemonId [] FARFETCHD_EVOLUTION = {FARFETCHD };
199
- private static final PokemonIdOuterClass . PokemonId [] DODUO_EVOLUTION = {DODUO , DODRIO };
200
- private static final PokemonIdOuterClass . PokemonId [] SEEL_EVOLUTION = {SEEL , DEWGONG };
201
- private static final PokemonIdOuterClass . PokemonId [] GRIMER_EVOLUTION = {GRIMER , MUK };
202
- private static final PokemonIdOuterClass . PokemonId [] SHELLDER_EVOLUTION = {SHELLDER , CLOYSTER };
203
- private static final PokemonIdOuterClass . PokemonId [] GASTLY_EVOLUTION = {GASTLY , HAUNTER , GENGAR };
204
- private static final PokemonIdOuterClass . PokemonId [] ONIX_EVOLUTION = {ONIX };
205
- private static final PokemonIdOuterClass . PokemonId [] DROWZEE_EVOLUTION = {DROWZEE , HYPNO };
206
- private static final PokemonIdOuterClass . PokemonId [] KRABBY_EVOLUTION = {KRABBY , KINGLER };
207
- private static final PokemonIdOuterClass . PokemonId [] VOLTORB_EVOLUTION = {VOLTORB , ELECTRODE };
208
- private static final PokemonIdOuterClass . PokemonId [] EXEGGCUTE_EVOLUTION = {EXEGGCUTE , EXEGGUTOR };
209
- private static final PokemonIdOuterClass . PokemonId [] CUBONE_EVOLUTION = {CUBONE , MAROWAK };
210
- private static final PokemonIdOuterClass . PokemonId [] HITMONLEE_EVOLUTION = {HITMONLEE , HITMONCHAN };
211
- private static final PokemonIdOuterClass . PokemonId [] LICKITUNG_EVOLUTION = {LICKITUNG };
212
- private static final PokemonIdOuterClass . PokemonId [] KOFFING_EVOLUTION = {KOFFING , WEEZING };
213
- private static final PokemonIdOuterClass . PokemonId [] RHYHORN_EVOLUTION = {RHYHORN , RHYDON };
214
- private static final PokemonIdOuterClass . PokemonId [] CHANSEY_EVOLUTION = {CHANSEY };
215
- private static final PokemonIdOuterClass . PokemonId [] TANGELA_EVOLUTION = {TANGELA };
216
- private static final PokemonIdOuterClass . PokemonId [] KANGASKHAN_EVOLUTION = {KANGASKHAN };
217
- private static final PokemonIdOuterClass . PokemonId [] HORSEA_EVOLUTION = {HORSEA , SEADRA };
218
- private static final PokemonIdOuterClass . PokemonId [] GOLDEEN_EVOLUTION = {GOLDEEN , SEAKING };
219
- private static final PokemonIdOuterClass . PokemonId [] STARYU_EVOLUTION = {STARYU , STARMIE };
220
- private static final PokemonIdOuterClass . PokemonId [] MR_MIME_EVOLUTION = {MR_MIME };
221
- private static final PokemonIdOuterClass . PokemonId [] SCYTHER_EVOLUTION = {SCYTHER };
222
- private static final PokemonIdOuterClass . PokemonId [] JYNX_EVOLUTION = {JYNX };
223
- private static final PokemonIdOuterClass . PokemonId [] ELECTABUZZ_EVOLUTION = {ELECTABUZZ };
224
- private static final PokemonIdOuterClass . PokemonId [] MAGMAR_EVOLUTION = {MAGMAR };
225
- private static final PokemonIdOuterClass . PokemonId [] PINSIR_EVOLUTION = {PINSIR };
226
- private static final PokemonIdOuterClass . PokemonId [] TAUROS_EVOLUTION = {TAUROS };
227
- private static final PokemonIdOuterClass . PokemonId [] MAGIKARP_EVOLUTION = {MAGIKARP , GYARADOS };
228
- private static final PokemonIdOuterClass . PokemonId [] LAPRAS_EVOLUTION = {LAPRAS };
229
- private static final PokemonIdOuterClass . PokemonId [] DITTO_EVOLUTION = {DITTO };
164
+ private static final PokemonId [] BULBASAUR_EVOLUTION = {BULBASAUR , IVYSAUR , VENUSAUR };
165
+ private static final PokemonId [] CHARMANDER_EVOLUTION = {CHARMANDER , CHARMELEON , CHARIZARD };
166
+ private static final PokemonId [] SQUIRTLE_EVOLUTION = {SQUIRTLE , WARTORTLE , BLASTOISE };
167
+ private static final PokemonId [] CATERPIE_EVOLUTION = {CATERPIE , METAPOD , BUTTERFREE };
168
+ private static final PokemonId [] WEEDLE_EVOLUTION = {WEEDLE , KAKUNA , BEEDRILL };
169
+ private static final PokemonId [] PIDGEY_EVOLUTION = {PIDGEY , PIDGEOTTO , PIDGEOT };
170
+ private static final PokemonId [] RATTATA_EVOLUTION = {RATTATA , RATICATE };
171
+ private static final PokemonId [] SPEAROW_EVOLUTION = {SPEAROW , FEAROW };
172
+ private static final PokemonId [] EKANS_EVOLUTION = {EKANS , ARBOK };
173
+ private static final PokemonId [] PIKACHU_EVOLUTION = {PIKACHU , RAICHU };
174
+ private static final PokemonId [] SANDSHREW_EVOLUTION = {SANDSHREW , SANDSLASH };
175
+ private static final PokemonId [] NIDORAN_FEMALE_EVOLUTION = {NIDORAN_FEMALE , NIDORINA , NIDOQUEEN };
176
+ private static final PokemonId [] NIDORAN_MALE_EVOLUTION = {NIDORAN_MALE , NIDORINO , NIDOKING };
177
+ private static final PokemonId [] CLEFAIRY_EVOLUTION = {CLEFAIRY , CLEFABLE };
178
+ private static final PokemonId [] VULPIX_EVOLUTION = {VULPIX , NINETALES };
179
+ private static final PokemonId [] JIGGLYPUFF_EVOLUTION = {JIGGLYPUFF , WIGGLYTUFF };
180
+ private static final PokemonId [] ZUBAT_EVOLUTION = {ZUBAT , GOLBAT };
181
+ private static final PokemonId [] ODDISH_EVOLUTION = {ODDISH , GLOOM , VILEPLUME };
182
+ private static final PokemonId [] PARAS_EVOLUTION = {PARAS , PARASECT };
183
+ private static final PokemonId [] VENONAT_EVOLUTION = {VENONAT , VENOMOTH };
184
+ private static final PokemonId [] DIGLETT_EVOLUTION = {DIGLETT , DUGTRIO };
185
+ private static final PokemonId [] MEOWTH_EVOLUTION = {MEOWTH , PERSIAN };
186
+ private static final PokemonId [] PSYDUCK_EVOLUTION = {PSYDUCK , GOLDUCK };
187
+ private static final PokemonId [] MANKEY_EVOLUTION = {MANKEY , PRIMEAPE };
188
+ private static final PokemonId [] GROWLITHE_EVOLUTION = {GROWLITHE , ARCANINE };
189
+ private static final PokemonId [] POLIWAG_EVOLUTION = {POLIWAG , POLIWHIRL , POLIWRATH };
190
+ private static final PokemonId [] ABRA_EVOLUTION = {ABRA , KADABRA , ALAKAZAM };
191
+ private static final PokemonId [] MACHOP_EVOLUTION = {MACHOP , MACHOKE , MACHAMP };
192
+ private static final PokemonId [] BELLSPROUT_EVOLUTION = {BELLSPROUT , WEEPINBELL , VICTREEBEL };
193
+ private static final PokemonId [] TENTACOOL_EVOLUTION = {TENTACOOL , TENTACRUEL };
194
+ private static final PokemonId [] GEODUDE_EVOLUTION = {GEODUDE , GRAVELER , GOLEM };
195
+ private static final PokemonId [] PONYTA_EVOLUTION = {PONYTA , RAPIDASH };
196
+ private static final PokemonId [] SLOWPOKE_EVOLUTION = {SLOWPOKE , SLOWBRO };
197
+ private static final PokemonId [] MAGNEMITE_EVOLUTION = {MAGNEMITE , MAGNETON };
198
+ private static final PokemonId [] FARFETCHD_EVOLUTION = {FARFETCHD };
199
+ private static final PokemonId [] DODUO_EVOLUTION = {DODUO , DODRIO };
200
+ private static final PokemonId [] SEEL_EVOLUTION = {SEEL , DEWGONG };
201
+ private static final PokemonId [] GRIMER_EVOLUTION = {GRIMER , MUK };
202
+ private static final PokemonId [] SHELLDER_EVOLUTION = {SHELLDER , CLOYSTER };
203
+ private static final PokemonId [] GASTLY_EVOLUTION = {GASTLY , HAUNTER , GENGAR };
204
+ private static final PokemonId [] ONIX_EVOLUTION = {ONIX };
205
+ private static final PokemonId [] DROWZEE_EVOLUTION = {DROWZEE , HYPNO };
206
+ private static final PokemonId [] KRABBY_EVOLUTION = {KRABBY , KINGLER };
207
+ private static final PokemonId [] VOLTORB_EVOLUTION = {VOLTORB , ELECTRODE };
208
+ private static final PokemonId [] EXEGGCUTE_EVOLUTION = {EXEGGCUTE , EXEGGUTOR };
209
+ private static final PokemonId [] CUBONE_EVOLUTION = {CUBONE , MAROWAK };
210
+ private static final PokemonId [] HITMONLEE_EVOLUTION = {HITMONLEE , HITMONCHAN };
211
+ private static final PokemonId [] LICKITUNG_EVOLUTION = {LICKITUNG };
212
+ private static final PokemonId [] KOFFING_EVOLUTION = {KOFFING , WEEZING };
213
+ private static final PokemonId [] RHYHORN_EVOLUTION = {RHYHORN , RHYDON };
214
+ private static final PokemonId [] CHANSEY_EVOLUTION = {CHANSEY };
215
+ private static final PokemonId [] TANGELA_EVOLUTION = {TANGELA };
216
+ private static final PokemonId [] KANGASKHAN_EVOLUTION = {KANGASKHAN };
217
+ private static final PokemonId [] HORSEA_EVOLUTION = {HORSEA , SEADRA };
218
+ private static final PokemonId [] GOLDEEN_EVOLUTION = {GOLDEEN , SEAKING };
219
+ private static final PokemonId [] STARYU_EVOLUTION = {STARYU , STARMIE };
220
+ private static final PokemonId [] MR_MIME_EVOLUTION = {MR_MIME };
221
+ private static final PokemonId [] SCYTHER_EVOLUTION = {SCYTHER };
222
+ private static final PokemonId [] JYNX_EVOLUTION = {JYNX };
223
+ private static final PokemonId [] ELECTABUZZ_EVOLUTION = {ELECTABUZZ };
224
+ private static final PokemonId [] MAGMAR_EVOLUTION = {MAGMAR };
225
+ private static final PokemonId [] PINSIR_EVOLUTION = {PINSIR };
226
+ private static final PokemonId [] TAUROS_EVOLUTION = {TAUROS };
227
+ private static final PokemonId [] MAGIKARP_EVOLUTION = {MAGIKARP , GYARADOS };
228
+ private static final PokemonId [] LAPRAS_EVOLUTION = {LAPRAS };
229
+ private static final PokemonId [] DITTO_EVOLUTION = {DITTO };
230
230
231
231
// needs to be handled exceptionally
232
- private static final PokemonIdOuterClass . PokemonId [] EEVEE_EVOLUTION = {EEVEE , VAPOREON , JOLTEON , FLAREON };
232
+ private static final PokemonId [] EEVEE_EVOLUTION = {EEVEE , VAPOREON , JOLTEON , FLAREON };
233
233
234
- private static final PokemonIdOuterClass . PokemonId [] PORYGON_EVOLUTION = {PORYGON };
235
- private static final PokemonIdOuterClass . PokemonId [] OMANYTE_EVOLUTION = {OMANYTE , OMASTAR };
236
- private static final PokemonIdOuterClass . PokemonId [] KABUTO_EVOLUTION = {KABUTO , KABUTOPS };
237
- private static final PokemonIdOuterClass . PokemonId [] AERODACTYL_EVOLUTION = {AERODACTYL };
238
- private static final PokemonIdOuterClass . PokemonId [] SNORLAX_EVOLUTION = {SNORLAX };
239
- private static final PokemonIdOuterClass . PokemonId [] ARTICUNO_EVOLUTION = {ARTICUNO };
240
- private static final PokemonIdOuterClass . PokemonId [] ZAPDOS_EVOLUTION = {ZAPDOS };
241
- private static final PokemonIdOuterClass . PokemonId [] MOLTRES_EVOLUTION = {MOLTRES };
242
- private static final PokemonIdOuterClass . PokemonId [] DRATINI_EVOLUTION = {DRATINI , DRAGONAIR , DRAGONITE };
243
- private static final PokemonIdOuterClass . PokemonId [] MEWTWO_EVOLUTION = {MEWTWO };
244
- private static final PokemonIdOuterClass . PokemonId [] MEW_EVOLUTION = {MEW };
234
+ private static final PokemonId [] PORYGON_EVOLUTION = {PORYGON };
235
+ private static final PokemonId [] OMANYTE_EVOLUTION = {OMANYTE , OMASTAR };
236
+ private static final PokemonId [] KABUTO_EVOLUTION = {KABUTO , KABUTOPS };
237
+ private static final PokemonId [] AERODACTYL_EVOLUTION = {AERODACTYL };
238
+ private static final PokemonId [] SNORLAX_EVOLUTION = {SNORLAX };
239
+ private static final PokemonId [] ARTICUNO_EVOLUTION = {ARTICUNO };
240
+ private static final PokemonId [] ZAPDOS_EVOLUTION = {ZAPDOS };
241
+ private static final PokemonId [] MOLTRES_EVOLUTION = {MOLTRES };
242
+ private static final PokemonId [] DRATINI_EVOLUTION = {DRATINI , DRAGONAIR , DRAGONITE };
243
+ private static final PokemonId [] MEWTWO_EVOLUTION = {MEWTWO };
244
+ private static final PokemonId [] MEW_EVOLUTION = {MEW };
245
245
246
- private static final Map <PokemonIdOuterClass . PokemonId , PokemonIdOuterClass . PokemonId []> EVOLUTION_INFO = new HashMap <>();
246
+ private static final Map <PokemonId , PokemonId []> EVOLUTION_INFO = new HashMap <>();
247
247
248
248
static {
249
249
EVOLUTION_INFO .put (BULBASAUR , BULBASAUR_EVOLUTION );
@@ -408,9 +408,9 @@ class EvolutionInfo {
408
408
* @param pokemonId pokemon id
409
409
* @return ordered evolution forms
410
410
*/
411
- public static List <EvolutionForm > getEvolutionForms (PokemonIdOuterClass . PokemonId pokemonId ) {
411
+ public static List <EvolutionForm > getEvolutionForms (PokemonId pokemonId ) {
412
412
List <EvolutionForm > evolutionForms = new ArrayList <>();
413
- for (PokemonIdOuterClass . PokemonId id : EVOLUTION_INFO .get (pokemonId )) {
413
+ for (PokemonId id : EVOLUTION_INFO .get (pokemonId )) {
414
414
evolutionForms .add (new EvolutionForm (id ));
415
415
}
416
416
return evolutionForms ;
@@ -422,8 +422,8 @@ public static List<EvolutionForm> getEvolutionForms(PokemonIdOuterClass.PokemonI
422
422
* @param pokemonId pokemon id
423
423
* @return true if a pokemon is fully evolved, false otherwise
424
424
*/
425
- public static boolean isFullyEvolved (PokemonIdOuterClass . PokemonId pokemonId ) {
426
- PokemonIdOuterClass . PokemonId [] info = EVOLUTION_INFO .get (pokemonId );
425
+ public static boolean isFullyEvolved (PokemonId pokemonId ) {
426
+ PokemonId [] info = EVOLUTION_INFO .get (pokemonId );
427
427
return info [info .length ] == pokemonId ;
428
428
}
429
429
@@ -433,7 +433,7 @@ public static boolean isFullyEvolved(PokemonIdOuterClass.PokemonId pokemonId) {
433
433
* @param pokemonId pokemon id
434
434
* @return 0 based evolution stage number
435
435
*/
436
- public static int getEvolutionStage (PokemonIdOuterClass . PokemonId pokemonId ) {
436
+ public static int getEvolutionStage (PokemonId pokemonId ) {
437
437
return asList (VAPOREON , JOLTEON , FLAREON ).contains (pokemonId )
438
438
? 1
439
439
: asList (EVOLUTION_INFO .get (pokemonId )).indexOf (pokemonId );
0 commit comments