diff --git a/src/game-mode.ts b/src/game-mode.ts index e78b9017c12..f5dadad6f1b 100644 --- a/src/game-mode.ts +++ b/src/game-mode.ts @@ -62,7 +62,7 @@ export class GameMode implements GameModeConfig { * @returns true if the game mode has that challenge */ hasChallenge(challenge: Challenges): boolean { - return this.challenges.some(c => c.id === challenge); + return this.challenges.some(c => c.id === challenge && c.value !== 0); } /** diff --git a/src/phases.ts b/src/phases.ts index b881f0de819..88acfc825ef 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -2034,7 +2034,8 @@ export class CommandPhase extends FieldPhase { } break; case Command.BALL: - if (this.scene.arena.biomeType === Biome.END && (!this.scene.gameMode.isClassic || this.scene.gameMode.isFreshStartChallenge() || (this.scene.getEnemyField().filter(p => p.isActive(true)).some(p => !p.scene.gameData.dexData[p.species.speciesId].caughtAttr) && this.scene.gameData.getStarterCount(d => !!d.caughtAttr) < Object.keys(speciesStarters).length - 1))) { + const notInDex = (this.scene.getEnemyField().filter(p => p.isActive(true)).some(p => !p.scene.gameData.dexData[p.species.speciesId].caughtAttr) && this.scene.gameData.getStarterCount(d => !!d.caughtAttr) < Object.keys(speciesStarters).length - 1); + if (this.scene.arena.biomeType === Biome.END && (!this.scene.gameMode.isClassic || this.scene.gameMode.isFreshStartChallenge() || notInDex )) { this.scene.ui.setMode(Mode.COMMAND, this.fieldIndex); this.scene.ui.setMode(Mode.MESSAGE); this.scene.ui.showText(i18next.t("battle:noPokeballForce"), null, () => {