Skip to content

Commit d9afc70

Browse files
authored
catchfix (#404)
* fix infinite loop when pokemon flees using catch(), removed pokemon from catchable list after being caught/fleeing * fix infinite loop when pokemon flees using catch(), removed pokemon from catchable list after being caught/fleeing
1 parent ce63142 commit d9afc70

File tree

2 files changed

+99
-89
lines changed

2 files changed

+99
-89
lines changed

src/main/java/com/pokegoapi/api/map/pokemon/CatchablePokemon.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import POGOProtos.Networking.Requests.Messages.UseItemCaptureMessageOuterClass.UseItemCaptureMessage;
2626
import POGOProtos.Networking.Requests.RequestTypeOuterClass;
2727
import POGOProtos.Networking.Responses.CatchPokemonResponseOuterClass.CatchPokemonResponse;
28+
import POGOProtos.Networking.Responses.CatchPokemonResponseOuterClass.CatchPokemonResponse.CatchStatus;
2829
import POGOProtos.Networking.Responses.EncounterResponseOuterClass;
2930
import POGOProtos.Networking.Responses.EncounterResponseOuterClass.EncounterResponse;
3031
import POGOProtos.Networking.Responses.UseItemCaptureResponseOuterClass.UseItemCaptureResponse;
@@ -342,8 +343,9 @@ public CatchResult catchPokemon(double normalizedHitPosition,
342343
razberries++;
343344
}
344345
result = catchPokemonAsync(normalizedHitPosition, normalizedReticleSize, spinModifier, type).toBlocking();
345-
if (!result.isFailed() && result.getStatus() != CatchPokemonResponse.CatchStatus.CATCH_ESCAPE
346-
&& result.getStatus() != CatchPokemonResponse.CatchStatus.CATCH_MISSED) {
346+
if (!result.isFailed() && result.getStatus() != CatchStatus.CATCH_ESCAPE
347+
&& result.getStatus() != CatchStatus.CATCH_MISSED
348+
|| result.getStatus() == CatchStatus.CATCH_FLEE) {
347349
break;
348350
}
349351
numThrows++;
@@ -394,14 +396,22 @@ public PokemonFuture<CatchResult> catchPokemonAsync(double normalizedHitPosition
394396
@Override
395397
protected CatchResult handle(ByteString result) throws RemoteServerException, LoginFailedException {
396398
CatchPokemonResponse response;
399+
397400
try {
398401
response = CatchPokemonResponse.parseFrom(result);
402+
System.out.println(response);
399403
} catch (InvalidProtocolBufferException e) {
400404
throw new RemoteServerException(e);
401405
}
402406

403-
if (response.getStatus() != CatchPokemonResponse.CatchStatus.CATCH_ESCAPE
404-
&& response.getStatus() != CatchPokemonResponse.CatchStatus.CATCH_MISSED) {
407+
if (response.getStatus() == CatchStatus.CATCH_FLEE
408+
|| response.getStatus() == CatchStatus.CATCH_SUCCESS) {
409+
api.getMap().getCatchablePokemon().remove(this);
410+
}
411+
412+
413+
if (response.getStatus() != CatchStatus.CATCH_ESCAPE
414+
&& response.getStatus() != CatchStatus.CATCH_MISSED) {
405415
api.getInventories().updateInventories();
406416
return new CatchResult(response);
407417
} else {

src/main/java/com/pokegoapi/api/pokemon/EvolutionInfo.java

Lines changed: 85 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import java.util.List;
66
import java.util.Map;
77

8-
import POGOProtos.Enums.PokemonIdOuterClass;
98

9+
import static POGOProtos.Enums.PokemonIdOuterClass.*;
1010
import static POGOProtos.Enums.PokemonIdOuterClass.PokemonId.ABRA;
1111
import static POGOProtos.Enums.PokemonIdOuterClass.PokemonId.AERODACTYL;
1212
import static POGOProtos.Enums.PokemonIdOuterClass.PokemonId.ALAKAZAM;
@@ -161,89 +161,89 @@
161161
import static java.util.Arrays.asList;
162162

163163
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};
230230

231231
// 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};
233233

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};
245245

246-
private static final Map<PokemonIdOuterClass.PokemonId, PokemonIdOuterClass.PokemonId[]> EVOLUTION_INFO = new HashMap<>();
246+
private static final Map<PokemonId, PokemonId[]> EVOLUTION_INFO = new HashMap<>();
247247

248248
static {
249249
EVOLUTION_INFO.put(BULBASAUR, BULBASAUR_EVOLUTION);
@@ -408,9 +408,9 @@ class EvolutionInfo {
408408
* @param pokemonId pokemon id
409409
* @return ordered evolution forms
410410
*/
411-
public static List<EvolutionForm> getEvolutionForms(PokemonIdOuterClass.PokemonId pokemonId) {
411+
public static List<EvolutionForm> getEvolutionForms(PokemonId pokemonId) {
412412
List<EvolutionForm> evolutionForms = new ArrayList<>();
413-
for (PokemonIdOuterClass.PokemonId id : EVOLUTION_INFO.get(pokemonId)) {
413+
for (PokemonId id : EVOLUTION_INFO.get(pokemonId)) {
414414
evolutionForms.add(new EvolutionForm(id));
415415
}
416416
return evolutionForms;
@@ -422,8 +422,8 @@ public static List<EvolutionForm> getEvolutionForms(PokemonIdOuterClass.PokemonI
422422
* @param pokemonId pokemon id
423423
* @return true if a pokemon is fully evolved, false otherwise
424424
*/
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);
427427
return info[info.length] == pokemonId;
428428
}
429429

@@ -433,7 +433,7 @@ public static boolean isFullyEvolved(PokemonIdOuterClass.PokemonId pokemonId) {
433433
* @param pokemonId pokemon id
434434
* @return 0 based evolution stage number
435435
*/
436-
public static int getEvolutionStage(PokemonIdOuterClass.PokemonId pokemonId) {
436+
public static int getEvolutionStage(PokemonId pokemonId) {
437437
return asList(VAPOREON, JOLTEON, FLAREON).contains(pokemonId)
438438
? 1
439439
: asList(EVOLUTION_INFO.get(pokemonId)).indexOf(pokemonId);

0 commit comments

Comments
 (0)