diff --git a/public/audio/bgm/island.mp3 b/public/audio/bgm/island.mp3 new file mode 100644 index 000000000..08aecab84 Binary files /dev/null and b/public/audio/bgm/island.mp3 differ diff --git a/public/audio/bgm/laboratory.mp3 b/public/audio/bgm/laboratory.mp3 new file mode 100644 index 000000000..62694e3e0 Binary files /dev/null and b/public/audio/bgm/laboratory.mp3 differ diff --git a/src/arena.ts b/src/arena.ts index a5f04f39a..88f5b57aa 100644 --- a/src/arena.ts +++ b/src/arena.ts @@ -135,6 +135,16 @@ export class Arena { case Species.SPEWPA: case Species.VIVILLON: return 0; + case Species.LYCANROC: + switch (this.biomeType) { + case Biome.CAVE: + case Biome.ICE_CAVE: + case Biome.FAIRY_CAVE: + return 2; + default: + if (!this.isDaytime()) + return 1; + } } return 0; @@ -169,6 +179,7 @@ export class Arena { return Type.ICE; case Biome.MEADOW: case Biome.FAIRY_CAVE: + case Biome.ISLAND: return Type.FAIRY; case Biome.POWER_PLANT: return Type.ELECTRIC; @@ -287,7 +298,7 @@ export class Arena { case Biome.MEADOW: case Biome.DOJO: case Biome.CONSTRUCTION_SITE: - case Biome.FAIRY_CAVE: + case Biome.ISLAND: return true; } } @@ -393,6 +404,10 @@ export class Arena { return 4.542; case Biome.TEMPLE: return 2.547; + case Biome.ISLAND: + return 2.751; + case Biome.LABORATORY: + return 0.797; } } } @@ -408,6 +423,10 @@ export function getBiomeKey(biome: Biome): string { return 'tall_grass'; case Biome.FAIRY_CAVE: return 'cave'; + case Biome.ISLAND: + return 'beach'; + case Biome.LABORATORY: + return 'factory'; case Biome.END: return 'wasteland'; } diff --git a/src/battle-phases.ts b/src/battle-phases.ts index 62c559de0..d64788ce2 100644 --- a/src/battle-phases.ts +++ b/src/battle-phases.ts @@ -534,8 +534,13 @@ export class SelectBiomePhase extends BattlePhase { else if (this.scene.gameMode !== GameMode.CLASSIC) setNextBiome(this.generateNextBiome()); else if (Array.isArray(biomeLinks[currentBiome])) { - const biomes = biomeLinks[currentBiome] as Biome[]; - if (this.scene.findModifier(m => m instanceof MapModifier)) { + let biomes: Biome[]; + this.scene.executeWithSeedOffset(() => { + biomes = (biomeLinks[currentBiome] as (Biome | [Biome, integer])[]) + .filter(b => !Array.isArray(b) || !Utils.randSeedInt(b[1])) + .map(b => !Array.isArray(b) ? b : b[0]); + }, this.scene.currentBattle.waveIndex); + if (biomes.length > 1 && this.scene.findModifier(m => m instanceof MapModifier)) { this.scene.ui.setMode(Mode.BIOME_SELECT, currentBiome, (biomeIndex: integer) => { this.scene.ui.setMode(Mode.MESSAGE); setNextBiome(biomes[biomeIndex]); @@ -551,14 +556,14 @@ export class SelectBiomePhase extends BattlePhase { return Biome.END; else { const relWave = this.scene.currentBattle.waveIndex % 250; - const biomes = Utils.getEnumValues(Biome).slice(1, -1); - const maxDepth = biomeDepths[Biome.END] - 2; + const biomes = Utils.getEnumValues(Biome).slice(1, Utils.getEnumValues(Biome).filter(b => b >= 40).length * -1); + const maxDepth = biomeDepths[Biome.END][0] - 2; const depthWeights = new Array(maxDepth + 1).fill(null) .map((_, i: integer) => ((1 - Math.min(Math.abs((i / (maxDepth - 1)) - (relWave / 250)) + 0.25, 1)) / 0.75) * 250); const biomeThresholds: integer[] = []; let totalWeight = 0; for (let biome of biomes) { - totalWeight += depthWeights[biomeDepths[biome] - 1]; + totalWeight += Math.ceil(depthWeights[biomeDepths[biome][0] - 1] / biomeDepths[biome][1]); biomeThresholds.push(totalWeight); } diff --git a/src/battle-scene.ts b/src/battle-scene.ts index 567a5d8a9..f1ec883e4 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -750,6 +750,7 @@ export default class BattleScene extends Phaser.Scene { case Species.UNOWN: case Species.DEERLING: case Species.SAWSBUCK: + case Species.ORICORIO: return Utils.randSeedInt(species.forms.length); } @@ -853,13 +854,13 @@ export default class BattleScene extends Phaser.Scene { randomSpecies(waveIndex: integer, level: integer, fromArenaPool?: boolean, speciesFilter?: PokemonSpeciesFilter, filterAllEvolutions?: boolean): PokemonSpecies { if (fromArenaPool) return this.arena.randomSpecies(waveIndex, level); - const filteredSpecies = speciesFilter ? [...new Set(allSpecies.filter(s => s.generation <= 6).filter(speciesFilter).map(s => { + const filteredSpecies = speciesFilter ? [...new Set(allSpecies.filter(s => s.generation <= 7).filter(speciesFilter).map(s => { if (!filterAllEvolutions) { while (pokemonPrevolutions.hasOwnProperty(s.speciesId)) s = getPokemonSpecies(pokemonPrevolutions[s.speciesId]); } return s; - }))] : allSpecies.filter(s => s.generation <= 6); + }))] : allSpecies.filter(s => s.generation <= 7); let ret = filteredSpecies[Utils.randSeedInt(filteredSpecies.length)]; if (!filterAllEvolutions) ret = getPokemonSpecies(ret.getSpeciesForLevel(level, true)); diff --git a/src/data/biome.ts b/src/data/biome.ts index 2b38202aa..8b617ff79 100644 --- a/src/data/biome.ts +++ b/src/data/biome.ts @@ -37,6 +37,8 @@ export enum Biome { JUNGLE, FAIRY_CAVE, TEMPLE, + ISLAND = 40, + LABORATORY, END = 50 }; @@ -58,11 +60,11 @@ export function getBiomeName(biome: Biome) { } interface BiomeLinks { - [key: integer]: Biome | Biome[] + [key: integer]: Biome | (Biome | [Biome, integer])[] } interface BiomeDepths { - [key: integer]: integer + [key: integer]: [integer, integer] } export const biomeLinks: BiomeLinks = { @@ -74,28 +76,30 @@ export const biomeLinks: BiomeLinks = { [Biome.FOREST]: [ Biome.JUNGLE, Biome.MEADOW ], [Biome.SEA]: [ Biome.SEABED, Biome.ICE_CAVE ], [Biome.SWAMP]: [ Biome.GRAVEYARD, Biome.TALL_GRASS ], - [Biome.BEACH]: Biome.SEA, + [Biome.BEACH]: [ Biome.SEA, [ Biome.ISLAND, 4 ] ], [Biome.LAKE]: [ Biome.BEACH, Biome.SWAMP ], - [Biome.SEABED]: Biome.CAVE, - [Biome.MOUNTAIN]: [ Biome.WASTELAND, Biome.VOLCANO ], + [Biome.SEABED]: [ Biome.CAVE, [ Biome.VOLCANO, 4 ] ], + [Biome.MOUNTAIN]: [ Biome.VOLCANO, [ Biome.WASTELAND, 3 ] ], [Biome.BADLANDS]: [ Biome.DESERT, Biome.MOUNTAIN ], [Biome.CAVE]: [ Biome.BADLANDS, Biome.BEACH ], [Biome.DESERT]: Biome.RUINS, [Biome.ICE_CAVE]: Biome.LAKE, - [Biome.MEADOW]: Biome.FAIRY_CAVE, + [Biome.MEADOW]: [ Biome.PLAINS, [ Biome.FAIRY_CAVE, 2 ] ], [Biome.POWER_PLANT]: Biome.FACTORY, - [Biome.VOLCANO]: Biome.ICE_CAVE, + [Biome.VOLCANO]: [ Biome.BEACH, [ Biome.ICE_CAVE, 4 ] ], [Biome.GRAVEYARD]: Biome.ABYSS, - [Biome.DOJO]: Biome.PLAINS, - [Biome.FACTORY]: Biome.PLAINS, - [Biome.RUINS]: Biome.FOREST, + [Biome.DOJO]: [ Biome.PLAINS, [ Biome.TEMPLE, 3 ] ], + [Biome.FACTORY]: [ Biome.PLAINS, [ Biome.LABORATORY, 8 ] ], + [Biome.RUINS]: [ Biome.FOREST ], [Biome.WASTELAND]: Biome.BADLANDS, - [Biome.ABYSS]: Biome.SPACE, + [Biome.ABYSS]: [ Biome.CAVE, [ Biome.SPACE, 3 ], [ Biome.WASTELAND, 3 ] ], [Biome.SPACE]: Biome.RUINS, [Biome.CONSTRUCTION_SITE]: [ Biome.DOJO, Biome.POWER_PLANT ], - [Biome.JUNGLE]: Biome.TEMPLE, - [Biome.FAIRY_CAVE]: Biome.ICE_CAVE, - [Biome.TEMPLE]: Biome.SWAMP + [Biome.JUNGLE]: [ Biome.TEMPLE ], + [Biome.FAIRY_CAVE]: [ Biome.ICE_CAVE, [ Biome.SPACE, 3 ] ], + [Biome.ISLAND]: Biome.SEA, + [Biome.LABORATORY]: Biome.CITY, + [Biome.TEMPLE]: [ Biome.SWAMP, [ Biome.RUINS, 3 ] ] }; export const biomeDepths: BiomeDepths = {} @@ -198,7 +202,8 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.SENTRET ], 15: [ Species.FURRET ] }, { 1: [ Species.POOCHYENA ], 18: [ Species.MIGHTYENA ] }, { 1: [ Species.ZIGZAGOON ], 20: [ Species.LINOONE ] }, - { 1: [ Species.BIDOOF ], 15: [ Species.BIBAREL ] } + { 1: [ Species.BIDOOF ], 15: [ Species.BIBAREL ] }, + { 1: [ Species.YUNGOOS ], 30: [ Species.GUMSHOOS ] } ], [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.PIDGEY ], 18: [ Species.PIDGEOTTO ], 36: [ Species.PIDGEOT ] }, @@ -208,13 +213,14 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.DODUO ], 31: [ Species.DODRIO ] }, { 1: [ Species.STARLY ], 14: [ Species.STARAVIA ], 34: [ Species.STARAPTOR ] }, { 1: [ Species.PIDOVE ], 21: [ Species.TRANQUILL ], 32: [ Species.UNFEZANT ] }, - { 1: [ Species.FLETCHLING ], 17: [ Species.FLETCHINDER ], 35: [ Species.TALONFLAME ] } + { 1: [ Species.FLETCHLING ], 17: [ Species.FLETCHINDER ], 35: [ Species.TALONFLAME ] }, + { 1: [ Species.ROCKRUFF ], 25: [ Species.LYCANROC ] } ], [BiomePoolTier.RARE]: [ { 1: [ Species.ABRA ], 16: [ Species.KADABRA ] }, { 1: [ Species.SHINX ], 15: [ Species.LUXIO ], 30: [ Species.LUXRAY ] }, { 1: [ Species.BUNEARY ], 20: [ Species.LOPUNNY ] } ], [BiomePoolTier.SUPER_RARE]: [ Species.FARFETCHD, Species.LICKITUNG, Species.CHANSEY, Species.EEVEE, Species.SNORLAX, Species.DUNSPARCE ], [BiomePoolTier.ULTRA_RARE]: [ Species.DITTO, Species.LATIAS, Species.LATIOS ], - [BiomePoolTier.BOSS]: [ Species.PERSIAN, Species.DODRIO, Species.FURRET, Species.MIGHTYENA, Species.LINOONE, Species.BIBAREL, Species.LOPUNNY ], - [BiomePoolTier.BOSS_RARE]: [ Species.FARFETCHD, Species.SNORLAX, Species.LICKILICKY ], + [BiomePoolTier.BOSS]: [ Species.PERSIAN, Species.DODRIO, Species.FURRET, Species.MIGHTYENA, Species.LINOONE, Species.BIBAREL, Species.LOPUNNY, Species.GUMSHOOS ], + [BiomePoolTier.BOSS_RARE]: [ Species.FARFETCHD, Species.SNORLAX, Species.LICKILICKY, Species.LYCANROC ], [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.LATIAS, Species.LATIOS ], [BiomePoolTier.BOSS_ULTRA_RARE]: [] }, @@ -241,13 +247,15 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.NIDORAN_M ], 16: [ Species.NIDORINO ] }, { 1: [ Species.ODDISH ], 21: [ Species.GLOOM ] }, { 1: [ Species.NINCADA ], 20: [ Species.NINJASK ] }, - { 1: [ Species.KRICKETOT ], 10: [ Species.KRICKETUNE ] } + { 1: [ Species.KRICKETOT ], 10: [ Species.KRICKETUNE ] }, + { 1: [ Species.FOMANTIS ], 44: [ Species.LURANTIS ] }, + { 1: [ Species.BOUNSWEET ], 18: [ Species.STEENEE ], 30: [ Species.TSAREENA ] } ], [BiomePoolTier.UNCOMMON]: [ Species.VULPIX, { 1: [ Species.PARAS ], 24: [ Species.PARASECT ] }, { 1: [ Species.VENONAT ], 31: [ Species.VENOMOTH ] }, { 1: [ Species.SPINARAK ], 22: [ Species.ARIADOS ] } ], [BiomePoolTier.RARE]: [ Species.PINSIR, { 1: [ Species.CHIKORITA ], 16: [ Species.BAYLEEF ], 32: [ Species.MEGANIUM ] }, Species.GIRAFARIG, Species.ZANGOOSE, Species.KECLEON, Species.TROPIUS ], [BiomePoolTier.SUPER_RARE]: [ Species.SCYTHER, Species.SHEDINJA ], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ Species.NIDOQUEEN, Species.NIDOKING, Species.VILEPLUME, Species.NINJASK, Species.ZANGOOSE, Species.KECLEON, Species.KRICKETUNE ], + [BiomePoolTier.BOSS]: [ Species.NIDOQUEEN, Species.NIDOKING, Species.VILEPLUME, Species.NINJASK, Species.ZANGOOSE, Species.KECLEON, Species.KRICKETUNE, Species.LURANTIS, Species.TSAREENA ], [BiomePoolTier.BOSS_RARE]: [ Species.PINSIR, Species.MEGANIUM, Species.BELLOSSOM, Species.GIRAFARIG ], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -295,7 +303,8 @@ export const biomePokemonPools: BiomePokemonPools = { Species.ROSELIA, { 1: [ Species.BURMY ], 20: [ Species.MOTHIM, Species.WORMADAM ] }, { 1: [ Species.PANSAGE ], 20: [ Species.SIMISAGE ] }, - { 1: [ Species.SEWADDLE ], 20: [ Species.SWADLOON ], 30: [ Species.LEAVANNY ] } + { 1: [ Species.SEWADDLE ], 20: [ Species.SWADLOON ], 30: [ Species.LEAVANNY ] }, + { 1: [ Species.ROCKRUFF ], 25: [ Species.LYCANROC ] } ], [BiomePoolTier.RARE]: [ Species.EXEGGCUTE, @@ -306,10 +315,11 @@ export const biomePokemonPools: BiomePokemonPools = { Species.TROPIUS, Species.KARRABLAST, Species.SHELMET, - { 1: [ Species.CHESPIN ], 16: [ Species.QUILLADIN ], 36: [ Species.CHESNAUGHT ] } + { 1: [ Species.CHESPIN ], 16: [ Species.QUILLADIN ], 36: [ Species.CHESNAUGHT ] }, + { 1: [ Species.ROWLET ], 17: [ Species.DARTRIX ], 36: [ Species.DECIDUEYE ] } ], [BiomePoolTier.SUPER_RARE]: [ Species.DURANT ], - [BiomePoolTier.ULTRA_RARE]: [ Species.CELEBI ], + [BiomePoolTier.ULTRA_RARE]: [ Species.CELEBI, Species.KARTANA ], [BiomePoolTier.BOSS]: [ Species.VENOMOTH, Species.VICTREEBEL, @@ -328,8 +338,8 @@ export const biomePokemonPools: BiomePokemonPools = { Species.LILLIGANT, Species.SAWSBUCK ], - [BiomePoolTier.BOSS_RARE]: [ Species.HERACROSS, Species.STANTLER, Species.SCEPTILE, Species.ESCAVALIER, Species.ACCELGOR, Species.DURANT, Species.CHESNAUGHT ], - [BiomePoolTier.BOSS_SUPER_RARE]: [], + [BiomePoolTier.BOSS_RARE]: [ Species.HERACROSS, Species.STANTLER, Species.SCEPTILE, Species.ESCAVALIER, Species.ACCELGOR, Species.DURANT, Species.CHESNAUGHT, Species.DECIDUEYE, Species.LYCANROC ], + [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.KARTANA ], [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.CELEBI ] }, [Biome.SEA]: { @@ -352,11 +362,11 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.WAILMER ], 40: [ Species.WAILORD ] }, { 1: [ Species.PANPOUR ], 20: [ Species.SIMIPOUR ] } ], - [BiomePoolTier.RARE]: [ Species.LAPRAS, { 1: [ Species.PIPLUP ], 16: [ Species.PRINPLUP ], 36: [ Species.EMPOLEON ] } ], + [BiomePoolTier.RARE]: [ Species.LAPRAS, { 1: [ Species.PIPLUP ], 16: [ Species.PRINPLUP ], 36: [ Species.EMPOLEON ] }, { 1: [ Species.POPPLIO ], 17: [ Species.BRIONNE ], 36: [ Species.PRIMARINA ] } ], [BiomePoolTier.SUPER_RARE]: [ Species.KINGDRA, { 1: [ Species.TIRTOUGA ], 37: [ Species.CARRACOSTA ] } ], [BiomePoolTier.ULTRA_RARE]: [], [BiomePoolTier.BOSS]: [ Species.TENTACRUEL, Species.PELIPPER, Species.SHARPEDO, Species.FLOATZEL, Species.LUMINEON, Species.SIMIPOUR, Species.MALAMAR ], - [BiomePoolTier.BOSS_RARE]: [ Species.KINGDRA, Species.EMPOLEON ], + [BiomePoolTier.BOSS_RARE]: [ Species.KINGDRA, Species.EMPOLEON, Species.PRIMARINA ], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.LUGIA ] }, @@ -375,14 +385,15 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.BARBOACH ], 30: [ Species.WHISCASH ] }, { 1: [ Species.SKORUPI ], 40: [ Species.DRAPION ] }, { 1: [ Species.CROAGUNK ], 37: [ Species.TOXICROAK ] }, - Species.STUNFISK + Species.STUNFISK, + { 1: [ Species.MAREANIE ], 38: [ Species.TOXAPEX ] } ], [BiomePoolTier.RARE]: [ { 1: [ Species.TOTODILE ], 18: [ Species.CROCONAW ], 30: [ Species.FERALIGATR ] }, { 1: [ Species.MUDKIP ], 16: [ Species.MARSHTOMP ], 36: [ Species.SWAMPERT ] } ], [BiomePoolTier.SUPER_RARE]: [ Species.POLITOED ], - [BiomePoolTier.ULTRA_RARE]: [ Species.AZELF ], - [BiomePoolTier.BOSS]: [ Species.ARBOK, Species.POLIWRATH, Species.QUAGSIRE, Species.LUDICOLO, Species.SWALOT, Species.WHISCASH, Species.GASTRODON, Species.SEISMITOAD, Species.STUNFISK ], + [BiomePoolTier.ULTRA_RARE]: [ Species.AZELF, Species.POIPOLE ], + [BiomePoolTier.BOSS]: [ Species.ARBOK, Species.POLIWRATH, Species.QUAGSIRE, Species.LUDICOLO, Species.SWALOT, Species.WHISCASH, Species.GASTRODON, Species.SEISMITOAD, Species.STUNFISK, Species.TOXAPEX ], [BiomePoolTier.BOSS_RARE]: [ Species.FERALIGATR, Species.POLITOED, Species.SWAMPERT ], - [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.AZELF ], + [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.AZELF, Species.NAGANADEL ], [BiomePoolTier.BOSS_ULTRA_RARE]: [] }, [Biome.BEACH]: { @@ -394,11 +405,11 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.DWEBBLE ], 34: [ Species.CRUSTLE ] }, { 1: [ Species.BINACLE ], 39: [ Species.BARBARACLE ] } ], - [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.BURMY ], 20: [ Species.WORMADAM ] }, { 1: [ Species.CLAUNCHER ], 37: [ Species.CLAWITZER ] } ], + [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.BURMY ], 20: [ Species.WORMADAM ] }, { 1: [ Species.CLAUNCHER ], 37: [ Species.CLAWITZER ] }, { 1: [ Species.SANDYGAST ], 48: [ Species.PALOSSAND ] } ], [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [ { 1: [ Species.TIRTOUGA ], 37: [ Species.CARRACOSTA ] } ], [BiomePoolTier.ULTRA_RARE]: [ Species.KELDEO ], - [BiomePoolTier.BOSS]: [ Species.CLOYSTER, Species.KINGLER, Species.STARMIE, Species.CRAWDAUNT, Species.WORMADAM, Species.CRUSTLE, Species.BARBARACLE, Species.CLAWITZER ], + [BiomePoolTier.BOSS]: [ Species.CLOYSTER, Species.KINGLER, Species.STARMIE, Species.CRAWDAUNT, Species.WORMADAM, Species.CRUSTLE, Species.BARBARACLE, Species.CLAWITZER, Species.PALOSSAND ], [BiomePoolTier.BOSS_RARE]: [ Species.CARRACOSTA ], [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.KELDEO ], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -413,7 +424,7 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.LOTAD ], 14: [ Species.LOMBRE ] }, { 1: [ Species.DUCKLETT ], 35: [ Species.SWANNA ] } ], - [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.WOOPER ], 20: [ Species.QUAGSIRE ] }, { 1: [ Species.SURSKIT ], 22: [ Species.MASQUERAIN ] } ], + [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.WOOPER ], 20: [ Species.QUAGSIRE ] }, { 1: [ Species.SURSKIT ], 22: [ Species.MASQUERAIN ] }, Species.WISHIWASHI, { 1: [ Species.DEWPIDER ], 22: [ Species.ARAQUANID ] } ], [BiomePoolTier.RARE]: [ { 1: [ Species.SQUIRTLE ], 16: [ Species.WARTORTLE ], 36: [ Species.BLASTOISE ] }, { 1: [ Species.OSHAWOTT ], 17: [ Species.DEWOTT ], 36: [ Species.SAMUROTT ] }, @@ -421,7 +432,7 @@ export const biomePokemonPools: BiomePokemonPools = { ], [BiomePoolTier.SUPER_RARE]: [ Species.VAPOREON, Species.SLOWKING ], [BiomePoolTier.ULTRA_RARE]: [ Species.SUICUNE, Species.MESPRIT ], - [BiomePoolTier.BOSS]: [ Species.GOLDUCK, Species.SLOWBRO, Species.SEAKING, Species.GYARADOS, Species.AZUMARILL, Species.MASQUERAIN, Species.SWANNA ], + [BiomePoolTier.BOSS]: [ Species.GOLDUCK, Species.SLOWBRO, Species.SEAKING, Species.GYARADOS, Species.AZUMARILL, Species.MASQUERAIN, Species.SWANNA, Species.WISHIWASHI, Species.ARAQUANID ], [BiomePoolTier.BOSS_RARE]: [ Species.BLASTOISE, Species.VAPOREON, Species.SLOWKING, Species.SAMUROTT, Species.GRENINJA ], [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.SUICUNE, Species.MESPRIT ], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -436,12 +447,12 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.SHELLOS ], 30: [ Species.GASTRODON ] }, { 1: [ Species.SKRELP ], 48: [ Species.DRAGALGE ] } ], - [BiomePoolTier.RARE]: [ Species.QWILFISH, Species.CORSOLA, Species.OCTILLERY, { 1: [ Species.MANTYKE ], 20: [ Species.MANTINE ] }, Species.PHIONE, Species.ALOMOMOLA, { 1: [ Species.TYNAMO ], 39: [ Species.EELEKTRIK ] } ], - [BiomePoolTier.SUPER_RARE]: [ { 1: [ Species.OMANYTE ], 40: [ Species.OMASTAR ] }, { 1: [ Species.KABUTO ], 40: [ Species.KABUTOPS ] }, Species.RELICANTH ], - [BiomePoolTier.ULTRA_RARE]: [ Species.FEEBAS, Species.MANAPHY ], + [BiomePoolTier.RARE]: [ Species.QWILFISH, Species.CORSOLA, Species.OCTILLERY, { 1: [ Species.MANTYKE ], 20: [ Species.MANTINE ] }, Species.PHIONE, Species.ALOMOMOLA, { 1: [ Species.TYNAMO ], 39: [ Species.EELEKTRIK ] }, Species.DHELMISE ], + [BiomePoolTier.SUPER_RARE]: [ { 1: [ Species.OMANYTE ], 40: [ Species.OMASTAR ] }, { 1: [ Species.KABUTO ], 40: [ Species.KABUTOPS ] }, Species.RELICANTH, Species.PYUKUMUKU ], + [BiomePoolTier.ULTRA_RARE]: [ Species.FEEBAS, Species.MANAPHY, Species.NIHILEGO ], [BiomePoolTier.BOSS]: [ Species.LANTURN, Species.QWILFISH, Species.CORSOLA, Species.OCTILLERY, Species.MANTINE, Species.WAILORD, Species.HUNTAIL, Species.GOREBYSS, Species.LUVDISC, Species.JELLICENT, Species.ALOMOMOLA, Species.DRAGALGE ], - [BiomePoolTier.BOSS_RARE]: [ Species.OMASTAR, Species.KABUTOPS, Species.RELICANTH, Species.PHIONE, Species.EELEKTROSS ], - [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.MILOTIC, Species.MANAPHY ], + [BiomePoolTier.BOSS_RARE]: [ Species.OMASTAR, Species.KABUTOPS, Species.RELICANTH, Species.PHIONE, Species.EELEKTROSS, Species.PYUKUMUKU, Species.DHELMISE ], + [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.MILOTIC, Species.MANAPHY, Species.NIHILEGO ], [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.KYOGRE ] }, [Biome.MOUNTAIN]: { @@ -488,13 +499,14 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.CUBONE ], 28: [ Species.MAROWAK ] }, { 1: [ Species.RHYHORN ], 42: [ Species.RHYDON ] }, { 1: [ Species.PHANPY ], 25: [ Species.DONPHAN ] }, - { 1: [ Species.DRILBUR ], 31: [ Species.EXCADRILL ] } + { 1: [ Species.DRILBUR ], 31: [ Species.EXCADRILL ] }, + { 1: [ Species.MUDBRAY ], 30: [ Species.MUDSDALE ] } ], [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.SANDSHREW ], 22: [ Species.SANDSLASH ] }, { 1: [ Species.NUMEL ], 33: [ Species.CAMERUPT ] }, { 1: [ Species.ROGGENROLA ], 25: [ Species.BOLDORE ] } ], [BiomePoolTier.RARE]: [ Species.ONIX, Species.GLIGAR ], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [ Species.LANDORUS ], - [BiomePoolTier.BOSS]: [ Species.DUGTRIO, Species.GOLEM, Species.MAROWAK, Species.DONPHAN, Species.RHYPERIOR, Species.GLISCOR, Species.EXCADRILL ], + [BiomePoolTier.BOSS]: [ Species.DUGTRIO, Species.GOLEM, Species.MAROWAK, Species.DONPHAN, Species.RHYPERIOR, Species.GLISCOR, Species.EXCADRILL, Species.MUDSDALE ], [BiomePoolTier.BOSS_RARE]: [ Species.STEELIX ], [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.LANDORUS ], [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.GROUDON ] @@ -509,12 +521,19 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.WOOBAT ], 20: [ Species.SWOOBAT ] }, { 1: [ Species.BUNNELBY ], 20: [ Species.DIGGERSBY ] } ], - [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.GEODUDE ], 25: [ Species.GRAVELER ] }, { 1: [ Species.MAKUHITA ], 24: [ Species.HARIYAMA ] }, Species.NOSEPASS, { 1: [ Species.NOIBAT ], 48: [ Species.NOIVERN ] } ], + [BiomePoolTier.UNCOMMON]: [ + { 1: [ Species.GEODUDE ], 25: [ Species.GRAVELER ] }, + { 1: [ Species.MAKUHITA ], 24: [ Species.HARIYAMA ] }, + Species.NOSEPASS, + { 1: [ Species.NOIBAT ], 48: [ Species.NOIVERN ] }, + { 1: [ Species.ROCKRUFF ], 25: [ Species.LYCANROC ] }, + { 1: [ Species.WIMPOD ], 30: [ Species.GOLISOPOD ] } + ], [BiomePoolTier.RARE]: [ Species.ONIX, { 1: [ Species.FERROSEED ], 40: [ Species.FERROTHORN ] }, Species.CARBINK ], [BiomePoolTier.SUPER_RARE]: [ Species.SHUCKLE ], [BiomePoolTier.ULTRA_RARE]: [ Species.REGISTEEL, Species.UXIE ], - [BiomePoolTier.BOSS]: [ Species.PARASECT, Species.ONIX, Species.CROBAT, Species.URSARING, Species.EXPLOUD, Species.PROBOPASS, Species.GIGALITH, Species.SWOOBAT, Species.DIGGERSBY, Species.NOIVERN ], - [BiomePoolTier.BOSS_RARE]: [ Species.SHUCKLE, Species.FERROTHORN ], + [BiomePoolTier.BOSS]: [ Species.PARASECT, Species.ONIX, Species.CROBAT, Species.URSARING, Species.EXPLOUD, Species.PROBOPASS, Species.GIGALITH, Species.SWOOBAT, Species.DIGGERSBY, Species.NOIVERN, Species.GOLISOPOD ], + [BiomePoolTier.BOSS_RARE]: [ Species.SHUCKLE, Species.FERROTHORN, Species.LYCANROC ], [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.REGISTEEL, Species.UXIE ], [BiomePoolTier.BOSS_ULTRA_RARE]: [] }, @@ -530,10 +549,10 @@ export const biomePokemonPools: BiomePokemonPools = { [BiomePoolTier.UNCOMMON]: [ Species.MARACTUS, Species.HELIOPTILE ], [BiomePoolTier.RARE]: [ { 1: [ Species.VIBRAVA ], 45: [ Species.FLYGON ] }, { 1: [ Species.DARUMAKA ], 35: [ Species.DARMANITAN ] } ], [BiomePoolTier.SUPER_RARE]: [ { 1: [ Species.LILEEP ], 40: [ Species.CRADILY ] }, { 1: [ Species.ANORITH ], 40: [ Species.ARMALDO ] } ], - [BiomePoolTier.ULTRA_RARE]: [ Species.REGIROCK ], + [BiomePoolTier.ULTRA_RARE]: [ Species.REGIROCK, Species.PHEROMOSA ], [BiomePoolTier.BOSS]: [ Species.SANDSLASH, Species.CACTURNE, Species.HIPPOWDON, Species.DRAPION, Species.KROOKODILE, Species.DARMANITAN, Species.MARACTUS, Species.HELIOLISK ], [BiomePoolTier.BOSS_RARE]: [ Species.CRADILY, Species.ARMALDO ], - [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.REGIROCK ], + [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.REGIROCK, Species.PHEROMOSA ], [BiomePoolTier.BOSS_ULTRA_RARE]: [] }, [Biome.ICE_CAVE]: { @@ -544,13 +563,14 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.SNOVER ], 40: [ Species.ABOMASNOW ] }, { 1: [ Species.VANILLITE ], 35: [ Species.VANILLISH ], 47: [ Species.VANILLUXE ] }, { 1: [ Species.CUBCHOO ], 37: [ Species.BEARTIC ] }, - { 1: [ Species.BERGMITE ], 37: [ Species.AVALUGG ] } + { 1: [ Species.BERGMITE ], 37: [ Species.AVALUGG ] }, + { 0: [ Species.CRABOMINABLE ], 1: [ Species.CRABRAWLER ] } ], [BiomePoolTier.UNCOMMON]: [ Species.SNEASEL, { 1: [ Species.SNORUNT ], 42: [ Species.GLALIE ] } ], [BiomePoolTier.RARE]: [ Species.JYNX, Species.LAPRAS, Species.FROSLASS, Species.CRYOGONAL ], [BiomePoolTier.SUPER_RARE]: [ Species.DELIBIRD, { 1: [ Species.AMAURA ], 59: [ Species.AURORUS ] } ], [BiomePoolTier.ULTRA_RARE]: [ Species.REGICE ], - [BiomePoolTier.BOSS]: [ Species.DEWGONG, Species.GLALIE, Species.WALREIN, Species.ABOMASNOW, Species.WEAVILE, Species.MAMOSWINE, Species.FROSLASS, Species.VANILLUXE, Species.BEARTIC, Species.CRYOGONAL, Species.AVALUGG ], + [BiomePoolTier.BOSS]: [ Species.DEWGONG, Species.GLALIE, Species.WALREIN, Species.ABOMASNOW, Species.WEAVILE, Species.MAMOSWINE, Species.FROSLASS, Species.VANILLUXE, Species.BEARTIC, Species.CRYOGONAL, Species.AVALUGG, Species.CRABOMINABLE ], [BiomePoolTier.BOSS_RARE]: [ Species.JYNX, Species.LAPRAS, Species.GLACEON, Species.AURORUS ], [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.ARTICUNO, Species.REGICE ], [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.KYUREM ] @@ -589,31 +609,40 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.VOLTORB ], 30: [ Species.ELECTRODE ] }, { 1: [ Species.ELECTRIKE ], 26: [ Species.MANECTRIC ] }, { 1: [ Species.SHINX ], 15: [ Species.LUXIO ], 30: [ Species.LUXRAY ] }, - Species.DEDENNE + Species.DEDENNE, + { 1: [ Species.GRUBBIN ], 20: [ Species.CHARJABUG ] } ], - [BiomePoolTier.UNCOMMON]: [ Species.ELECTABUZZ, Species.PLUSLE, Species.MINUN, Species.PACHIRISU, Species.EMOLGA ], + [BiomePoolTier.UNCOMMON]: [ Species.ELECTABUZZ, Species.PLUSLE, Species.MINUN, Species.PACHIRISU, Species.EMOLGA, Species.TOGEDEMARU ], [BiomePoolTier.RARE]: [ { 1: [ Species.MAREEP ], 15: [ Species.FLAAFFY ] } ], [BiomePoolTier.SUPER_RARE]: [ Species.JOLTEON ], - [BiomePoolTier.ULTRA_RARE]: [ Species.RAIKOU, Species.ROTOM, Species.THUNDURUS ], - [BiomePoolTier.BOSS]: [ Species.RAICHU, Species.MANECTRIC, Species.LUXRAY, Species.MAGNEZONE, Species.ELECTIVIRE, Species.DEDENNE ], + [BiomePoolTier.ULTRA_RARE]: [ Species.RAIKOU, Species.THUNDURUS, Species.XURKITREE, Species.ZERAORA ], + [BiomePoolTier.BOSS]: [ Species.RAICHU, Species.MANECTRIC, Species.LUXRAY, Species.MAGNEZONE, Species.ELECTIVIRE, Species.DEDENNE, Species.VIKAVOLT, Species.TOGEDEMARU ], [BiomePoolTier.BOSS_RARE]: [ Species.JOLTEON, Species.AMPHAROS ], - [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.ZAPDOS, Species.RAIKOU, Species.ROTOM, Species.THUNDURUS ], + [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.ZAPDOS, Species.RAIKOU, Species.THUNDURUS, Species.XURKITREE, Species.ZERAORA ], [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.ZEKROM ] }, [Biome.VOLCANO]: { - [BiomePoolTier.COMMON]: [ Species.VULPIX, Species.GROWLITHE, { 1: [ Species.PONYTA ], 40: [ Species.RAPIDASH ] }, { 1: [ Species.SLUGMA ], 38: [ Species.MAGCARGO ] }, { 1: [ Species.NUMEL ], 33: [ Species.CAMERUPT ] } ], - [BiomePoolTier.UNCOMMON]: [ Species.MAGMAR, Species.TORKOAL, { 1: [ Species.PANSEAR ], 20: [ Species.SIMISEAR ] }, Species.HEATMOR ], + [BiomePoolTier.COMMON]: [ + Species.VULPIX, + Species.GROWLITHE, + { 1: [ Species.PONYTA ], 40: [ Species.RAPIDASH ] }, + { 1: [ Species.SLUGMA ], 38: [ Species.MAGCARGO ] }, + { 1: [ Species.NUMEL ], 33: [ Species.CAMERUPT ] }, + { 1: [ Species.SALANDIT ], 33: [ Species.SALAZZLE ] } + ], + [BiomePoolTier.UNCOMMON]: [ Species.MAGMAR, Species.TORKOAL, { 1: [ Species.PANSEAR ], 20: [ Species.SIMISEAR ] }, Species.HEATMOR, Species.TURTONATOR ], [BiomePoolTier.RARE]: [ { 1: [ Species.CHARMANDER ], 16: [ Species.CHARMELEON ], 36: [ Species.CHARIZARD ] }, { 1: [ Species.CYNDAQUIL ], 14: [ Species.QUILAVA ], 36: [ Species.TYPHLOSION ] }, { 1: [ Species.CHIMCHAR ], 14: [ Species.MONFERNO ], 36: [ Species.INFERNAPE ] }, { 1: [ Species.TEPIG ], 17: [ Species.PIGNITE ], 36: [ Species.EMBOAR ] }, - { 1: [ Species.FENNEKIN ], 16: [ Species.BRAIXEN ], 36: [ Species.DELPHOX ] } + { 1: [ Species.FENNEKIN ], 16: [ Species.BRAIXEN ], 36: [ Species.DELPHOX ] }, + { 1: [ Species.LITTEN ], 17: [ Species.TORRACAT ], 36: [ Species.INCINEROAR ] } ], [BiomePoolTier.SUPER_RARE]: [ Species.FLAREON, { 1: [ Species.LARVESTA ], 59: [ Species.VOLCARONA ] } ], [BiomePoolTier.ULTRA_RARE]: [ Species.ENTEI, Species.HEATRAN, Species.VOLCANION ], - [BiomePoolTier.BOSS]: [ Species.NINETALES, Species.ARCANINE, Species.RAPIDASH, Species.MAGCARGO, Species.CAMERUPT, Species.TORKOAL, Species.MAGMORTAR, Species.SIMISEAR, Species.HEATMOR ], - [BiomePoolTier.BOSS_RARE]: [ Species.CHARIZARD, Species.FLAREON, Species.TYPHLOSION, Species.INFERNAPE, Species.EMBOAR, Species.VOLCARONA, Species.DELPHOX ], + [BiomePoolTier.BOSS]: [ Species.NINETALES, Species.ARCANINE, Species.RAPIDASH, Species.MAGCARGO, Species.CAMERUPT, Species.TORKOAL, Species.MAGMORTAR, Species.SIMISEAR, Species.HEATMOR, Species.SALAZZLE, Species.TURTONATOR ], + [BiomePoolTier.BOSS_RARE]: [ Species.CHARIZARD, Species.FLAREON, Species.TYPHLOSION, Species.INFERNAPE, Species.EMBOAR, Species.VOLCARONA, Species.DELPHOX, Species.INCINEROAR ], [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.MOLTRES, Species.ENTEI, Species.HEATRAN, Species.VOLCANION ], [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.RESHIRAM ] }, @@ -628,21 +657,26 @@ export const biomePokemonPools: BiomePokemonPools = { Species.PUMPKABOO ], [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.CUBONE ], 28: [ Species.MAROWAK ] }, { 1: [ Species.YAMASK ], 34: [ Species.COFAGRIGUS ] }, { 1: [ Species.ESPURR ], 25: [ Species.MEOWSTIC ] } ], - [BiomePoolTier.RARE]: [ Species.MISDREAVUS ], + [BiomePoolTier.RARE]: [ Species.MISDREAVUS, Species.MIMIKYU ], [BiomePoolTier.SUPER_RARE]: [ Species.SPIRITOMB ], - [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ Species.GENGAR, Species.BANETTE, Species.DRIFBLIM, Species.MISMAGIUS, Species.DUSKNOIR, Species.CHANDELURE, Species.MEOWSTIC, Species.TREVENANT, Species.GOURGEIST ], + [BiomePoolTier.ULTRA_RARE]: [ Species.MARSHADOW ], + [BiomePoolTier.BOSS]: [ Species.GENGAR, Species.BANETTE, Species.DRIFBLIM, Species.MISMAGIUS, Species.DUSKNOIR, Species.CHANDELURE, Species.MEOWSTIC, Species.TREVENANT, Species.GOURGEIST, Species.MIMIKYU ], [BiomePoolTier.BOSS_RARE]: [], - [BiomePoolTier.BOSS_SUPER_RARE]: [], + [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.MARSHADOW ], [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.GIRATINA ] }, [Biome.DOJO]: { - [BiomePoolTier.COMMON]: [ { 1: [ Species.MANKEY ], 28: [ Species.PRIMEAPE ] }, { 1: [ Species.MAKUHITA ], 24: [ Species.HARIYAMA ] }, { 1: [ Species.MEDITITE ], 37: [ Species.MEDICHAM ] } ], + [BiomePoolTier.COMMON]: [ + { 1: [ Species.MANKEY ], 28: [ Species.PRIMEAPE ] }, + { 1: [ Species.MAKUHITA ], 24: [ Species.HARIYAMA ] }, + { 1: [ Species.MEDITITE ], 37: [ Species.MEDICHAM ] }, + { 1: [ Species.STUFFUL ], 27: [ Species.BEWEAR ] } + ], [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.CROAGUNK ], 37: [ Species.TOXICROAK ] }, { 1: [ Species.SCRAGGY ], 39: [ Species.SCRAFTY ] }, { 1: [ Species.MIENFOO ], 50: [ Species.MIENSHAO ] } ], [BiomePoolTier.RARE]: [ { 1: [ Species.TYROGUE ], 20: [ Species.HITMONLEE ] }, Species.HITMONCHAN, Species.LUCARIO, Species.THROH, Species.SAWK ], [BiomePoolTier.SUPER_RARE]: [ Species.HITMONTOP, Species.GALLADE ], [BiomePoolTier.ULTRA_RARE]: [ Species.TERRAKION ], - [BiomePoolTier.BOSS]: [ Species.PRIMEAPE, Species.HITMONLEE, Species.HITMONCHAN, Species.HARIYAMA, Species.MEDICHAM, Species.LUCARIO, Species.TOXICROAK, Species.THROH, Species.SAWK, Species.SCRAFTY, Species.MIENSHAO ], + [BiomePoolTier.BOSS]: [ Species.PRIMEAPE, Species.HITMONLEE, Species.HITMONCHAN, Species.HARIYAMA, Species.MEDICHAM, Species.LUCARIO, Species.TOXICROAK, Species.THROH, Species.SAWK, Species.SCRAFTY, Species.MIENSHAO, Species.BEWEAR ], [BiomePoolTier.BOSS_RARE]: [ Species.HITMONTOP, Species.GALLADE ], [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.TERRAKION ], [BiomePoolTier.BOSS_ULTRA_RARE]: [] @@ -658,11 +692,11 @@ export const biomePokemonPools: BiomePokemonPools = { [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.BRONZOR ], 33: [ Species.BRONZONG ] }, Species.KLEFKI ], [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [ { 1: [ Species.PORYGON ], 20: [ Species.PORYGON2 ] }, { 1: [ Species.BELDUM ], 20: [ Species.METANG ], 45: [ Species.METAGROSS ] } ], - [BiomePoolTier.ULTRA_RARE]: [ Species.GENESECT ], + [BiomePoolTier.ULTRA_RARE]: [ Species.GENESECT, Species.MAGEARNA, Species.MELTAN ], [BiomePoolTier.BOSS]: [ Species.KLINKLANG, Species.KLEFKI ], [BiomePoolTier.BOSS_RARE]: [], - [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.GENESECT ], - [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.MEWTWO ] + [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.GENESECT, Species.MAGEARNA ], + [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.MELMETAL ] }, [Biome.RUINS]: { [BiomePoolTier.COMMON]: [ @@ -673,7 +707,7 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.BALTOY ], 36: [ Species.CLAYDOL ] }, { 1: [ Species.ELGYEM ], 42: [ Species.BEHEEYEM ] } ], - [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.ABRA ], 16: [ Species.KADABRA ] }, { 1: [ Species.BRONZOR ], 33: [ Species.BRONZONG ] }, Species.SIGILYPH ], + [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.ABRA ], 16: [ Species.KADABRA ] }, Species.SIGILYPH ], [BiomePoolTier.RARE]: [ Species.MR_MIME, Species.WOBBUFFET, { 1: [ Species.GOTHITA ], 32: [ Species.GOTHORITA ], 41: [ Species.GOTHITELLE ] } ], [BiomePoolTier.SUPER_RARE]: [ Species.ESPEON, { 1: [ Species.ARCHEN ], 37: [ Species.ARCHEOPS ] } ], [BiomePoolTier.ULTRA_RARE]: [ Species.MEW, Species.VICTINI ], @@ -689,13 +723,14 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.BAGON ], 30: [ Species.SHELGON ], 50: [ Species.SALAMENCE ] }, { 1: [ Species.GIBLE ], 24: [ Species.GABITE ], 48: [ Species.GARCHOMP ] }, { 1: [ Species.AXEW ], 38: [ Species.FRAXURE ], 48: [ Species.HAXORUS ] }, - { 1: [ Species.GOOMY ], 40: [ Species.SLIGGOO ], 80: [ Species.GOODRA ] } + { 1: [ Species.GOOMY ], 40: [ Species.SLIGGOO ], 80: [ Species.GOODRA ] }, + { 1: [ Species.JANGMO_O ], 35: [ Species.HAKAMO_O ], 45: [ Species.KOMMO_O ] } ], - [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.SWABLU ], 35: [ Species.ALTARIA ] }, { 1: [ Species.DEINO ], 50: [ Species.ZWEILOUS ], 64: [ Species.HYDREIGON ] } ], + [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.SWABLU ], 35: [ Species.ALTARIA ] }, { 1: [ Species.DEINO ], 50: [ Species.ZWEILOUS ], 64: [ Species.HYDREIGON ] }, Species.DRAMPA ], [BiomePoolTier.RARE]: [ { 1: [ Species.DRATINI ], 30: [ Species.DRAGONAIR ], 55: [ Species.DRAGONITE ] } ], [BiomePoolTier.SUPER_RARE]: [ Species.AERODACTYL, Species.DRUDDIGON, { 1: [ Species.TYRUNT ], 59: [ Species.TYRANTRUM ] } ], [BiomePoolTier.ULTRA_RARE]: [], - [BiomePoolTier.BOSS]: [ Species.DRAGONITE, Species.TYRANITAR, Species.FLYGON, Species.SALAMENCE, Species.GARCHOMP, Species.HAXORUS, Species.GOODRA ], + [BiomePoolTier.BOSS]: [ Species.DRAGONITE, Species.TYRANITAR, Species.FLYGON, Species.SALAMENCE, Species.GARCHOMP, Species.HAXORUS, Species.GOODRA, Species.DRAMPA, Species.KOMMO_O ], [BiomePoolTier.BOSS_RARE]: [ Species.AERODACTYL, Species.DRUDDIGON, Species.TYRANTRUM ], [BiomePoolTier.BOSS_SUPER_RARE]: [], [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.DIALGA ] @@ -705,22 +740,22 @@ export const biomePokemonPools: BiomePokemonPools = { [BiomePoolTier.UNCOMMON]: [], [BiomePoolTier.RARE]: [ Species.ABSOL, Species.SPIRITOMB, { 1: [ Species.ZORUA ], 30: [ Species.ZOROARK ] }, { 1: [ Species.DEINO ], 50: [ Species.ZWEILOUS ], 64: [ Species.HYDREIGON ] } ], [BiomePoolTier.SUPER_RARE]: [ Species.UMBREON ], - [BiomePoolTier.ULTRA_RARE]: [ Species.DARKRAI ], + [BiomePoolTier.ULTRA_RARE]: [ Species.DARKRAI, Species.GUZZLORD ], [BiomePoolTier.BOSS]: [ Species.HOUNDOOM, Species.SABLEYE, Species.ABSOL, Species.HONCHKROW, Species.SPIRITOMB, Species.LIEPARD, Species.ZOROARK, Species.BISHARP, Species.HYDREIGON ], [BiomePoolTier.BOSS_RARE]: [ Species.UMBREON ], - [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.DARKRAI ], + [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.DARKRAI, Species.GUZZLORD ], [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.PALKIA, Species.YVELTAL ] }, [Biome.SPACE]: { - [BiomePoolTier.COMMON]: [ Species.CLEFAIRY, Species.LUNATONE, Species.SOLROCK, { 1: [ Species.BRONZOR ], 33: [ Species.BRONZONG ] }, { 1: [ Species.MUNNA ], 30: [ Species.MUSHARNA ] } ], + [BiomePoolTier.COMMON]: [ Species.CLEFAIRY, Species.LUNATONE, Species.SOLROCK, { 1: [ Species.BRONZOR ], 33: [ Species.BRONZONG ] }, { 1: [ Species.MUNNA ], 30: [ Species.MUSHARNA ] }, Species.MINIOR ], [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.BALTOY ], 36: [ Species.CLAYDOL ] }, { 1: [ Species.ELGYEM ], 42: [ Species.BEHEEYEM ] } ], [BiomePoolTier.RARE]: [ { 1: [ Species.BELDUM ], 20: [ Species.METANG ], 45: [ Species.METAGROSS ] }, Species.SIGILYPH, { 1: [ Species.SOLOSIS ], 32: [ Species.DUOSION ], 41: [ Species.REUNICLUS ] } ], [BiomePoolTier.SUPER_RARE]: [ { 1: [ Species.PORYGON ], 20: [ Species.PORYGON2 ] } ], - [BiomePoolTier.ULTRA_RARE]: [ Species.JIRACHI, Species.DEOXYS, Species.CRESSELIA ], - [BiomePoolTier.BOSS]: [ Species.CLEFABLE, Species.LUNATONE, Species.SOLROCK, Species.BRONZONG, Species.MUSHARNA, Species.REUNICLUS ], + [BiomePoolTier.ULTRA_RARE]: [ Species.JIRACHI, Species.DEOXYS, Species.CRESSELIA, { 1: [ Species.COSMOG ], 43: [ Species.COSMOEM ] }, Species.CELESTEELA ], + [BiomePoolTier.BOSS]: [ Species.CLEFABLE, Species.LUNATONE, Species.SOLROCK, Species.BRONZONG, Species.MUSHARNA, Species.REUNICLUS, Species.MINIOR ], [BiomePoolTier.BOSS_RARE]: [ Species.METAGROSS, Species.PORYGON_Z ], - [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.JIRACHI, Species.DEOXYS, Species.CRESSELIA ], - [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.RAYQUAZA, Species.ARCEUS, Species.ZYGARDE ] + [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.JIRACHI, Species.DEOXYS, Species.CRESSELIA, Species.CELESTEELA ], + [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.RAYQUAZA, Species.ARCEUS, Species.SOLGALEO, Species.LUNALA, Species.NECROZMA ] }, [Biome.CONSTRUCTION_SITE]: { [BiomePoolTier.COMMON]: [ @@ -747,19 +782,18 @@ export const biomePokemonPools: BiomePokemonPools = { [BiomePoolTier.COMMON]: [ { 1: [ Species.SPINARAK ], 22: [ Species.ARIADOS ] }, Species.AIPOM, - Species.DONPHAN, Species.SHROOMISH, Species.VESPIQUEN, { 1: [ Species.CHERUBI ], 25: [ Species.CHERRIM ] }, { 1: [ Species.PURRLOIN ], 20: [ Species.LIEPARD ] }, { 1: [ Species.BLITZLE ], 27: [ Species.ZEBSTRIKA ] }, { 1: [ Species.SEWADDLE ], 20: [ Species.SWADLOON ], 30: [ Species.LEAVANNY ] }, - { 1: [ Species.FOONGUS ], 39: [ Species.AMOONGUSS ] } + { 1: [ Species.FOONGUS ], 39: [ Species.AMOONGUSS ] }, + { 1: [ Species.PIKIPEK ], 14: [ Species.TRUMBEAK ], 36: [ Species.TOUCANNON ] } ], [BiomePoolTier.UNCOMMON]: [ Species.EXEGGCUTE, Species.TANGELA, - Species.PHANPY, Species.TROPIUS, Species.COMBEE, { 1: [ Species.PANSAGE ], 20: [ Species.SIMISAGE ] }, @@ -767,7 +801,8 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.PANPOUR ], 20: [ Species.SIMIPOUR ] }, { 1: [ Species.JOLTIK ], 36: [ Species.GALVANTULA ] }, { 1: [ Species.LITLEO ], 35: [ Species.PYROAR ] }, - { 1: [ Species.PANCHAM ], 52: [ Species.PANGORO ] } + { 1: [ Species.PANCHAM ], 52: [ Species.PANGORO ] }, + Species.KOMALA ], [BiomePoolTier.RARE]: [ Species.SCYTHER, @@ -775,13 +810,32 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.SLAKOTH ], 18: [ Species.VIGOROTH ], 36: [ Species.SLAKING ] }, Species.SEVIPER, Species.CARNIVINE, - { 1: [ Species.SNIVY ], 17: [ Species.SERVINE ], 36: [ Species.SERPERIOR ] } + { 1: [ Species.SNIVY ], 17: [ Species.SERVINE ], 36: [ Species.SERPERIOR ] }, + Species.ORANGURU, + Species.PASSIMIAN ], [BiomePoolTier.SUPER_RARE]: [ Species.KANGASKHAN, Species.CHATOT ], - [BiomePoolTier.ULTRA_RARE]: [ Species.VIRIZION ], - [BiomePoolTier.BOSS]: [ Species.EXEGGUTOR, Species.BRELOOM, Species.SEVIPER, Species.TROPIUS, Species.CHERRIM, Species.AMBIPOM, Species.CARNIVINE, Species.TANGROWTH, Species.YANMEGA, Species.LEAVANNY, Species.AMOONGUSS, Species.GALVANTULA, Species.PYROAR, Species.PANGORO ], + [BiomePoolTier.ULTRA_RARE]: [ Species.VIRIZION, Species.BUZZWOLE ], + [BiomePoolTier.BOSS]: [ + Species.EXEGGUTOR, + Species.BRELOOM, + Species.SEVIPER, + Species.TROPIUS, + Species.CHERRIM, + Species.AMBIPOM, + Species.CARNIVINE, + Species.TANGROWTH, + Species.YANMEGA, + Species.LEAVANNY, + Species.AMOONGUSS, + Species.GALVANTULA, + Species.PYROAR, + Species.PANGORO, + Species.TOUCANNON, + Species.KOMALA + ], [BiomePoolTier.BOSS_RARE]: [ Species.KANGASKHAN, Species.SCIZOR, Species.SLAKING, Species.LEAFEON, Species.SERPERIOR ], - [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.VIRIZION ], + [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.VIRIZION, Species.BUZZWOLE ], [BiomePoolTier.BOSS_ULTRA_RARE]: [] }, [Biome.FAIRY_CAVE]: { @@ -790,13 +844,15 @@ export const biomePokemonPools: BiomePokemonPools = { { 1: [ Species.MARILL ], 18: [ Species.AZUMARILL ] }, Species.MAWILE, { 1: [ Species.SPRITZEE ], 20: [ Species.AROMATISSE ] }, - { 1: [ Species.SWIRLIX ], 20: [ Species.SLURPUFF ] } + { 1: [ Species.SWIRLIX ], 20: [ Species.SLURPUFF ] }, + { 1: [ Species.CUTIEFLY ], 25: [ Species.RIBOMBEE ] }, + { 1: [ Species.MORELULL ], 24: [ Species.SHIINOTIC ] } ], - [BiomePoolTier.UNCOMMON]: [ Species.CLEFAIRY, Species.TOGETIC, { 1: [ Species.RALTS ], 20: [ Species.KIRLIA ], 30: [ Species.GARDEVOIR ] }, Species.CARBINK ], + [BiomePoolTier.UNCOMMON]: [ Species.CLEFAIRY, Species.TOGETIC, { 1: [ Species.RALTS ], 20: [ Species.KIRLIA ], 30: [ Species.GARDEVOIR ] }, Species.CARBINK, Species.COMFEY ], [BiomePoolTier.RARE]: [ Species.AUDINO ], [BiomePoolTier.SUPER_RARE]: [], [BiomePoolTier.ULTRA_RARE]: [ Species.DIANCIE ], - [BiomePoolTier.BOSS]: [ Species.WIGGLYTUFF, Species.MAWILE, Species.TOGEKISS, Species.AUDINO, Species.AROMATISSE, Species.SLURPUFF, Species.CARBINK ], + [BiomePoolTier.BOSS]: [ Species.WIGGLYTUFF, Species.MAWILE, Species.TOGEKISS, Species.AUDINO, Species.AROMATISSE, Species.SLURPUFF, Species.CARBINK, Species.RIBOMBEE, Species.SHIINOTIC, Species.COMFEY ], [BiomePoolTier.BOSS_RARE]: [], [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.DIANCIE ], [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.XERNEAS ] @@ -819,12 +875,60 @@ export const biomePokemonPools: BiomePokemonPools = { ], [BiomePoolTier.RARE]: [], [BiomePoolTier.SUPER_RARE]: [], - [BiomePoolTier.ULTRA_RARE]: [ Species.HOOPA ], + [BiomePoolTier.ULTRA_RARE]: [ Species.HOOPA, Species.TAPU_KOKO, Species.TAPU_LELE, Species.TAPU_BULU, Species.TAPU_FINI ], [BiomePoolTier.BOSS]: [ Species.CHIMECHO, Species.COFAGRIGUS, Species.GOLURK, Species.AEGISLASH ], [BiomePoolTier.BOSS_RARE]: [], - [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.HOOPA ], + [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.HOOPA, Species.TAPU_KOKO, Species.TAPU_LELE, Species.TAPU_BULU, Species.TAPU_FINI ], [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.REGIGIGAS ] }, + [Biome.ISLAND]: { + [BiomePoolTier.COMMON]: [ + { 1: [ Species.ALOLA_RATTATA ], 30: [ Species.ALOLA_RATICATE ] }, + { 1: [ Species.ALOLA_SANDSHREW ], 30: [ Species.ALOLA_SANDSLASH ] }, + { 1: [ Species.ALOLA_VULPIX ], 30: [ Species.ALOLA_NINETALES ] }, + { 1: [ Species.ALOLA_DIGLETT ], 26: [ Species.ALOLA_DUGTRIO ] }, + { 1: [ Species.ALOLA_MEOWTH ], 30: [ Species.ALOLA_PERSIAN ] }, + { 1: [ Species.ALOLA_GEODUDE ], 20: [ Species.ALOLA_GOLEM ], 25: [ Species.ALOLA_GRAVELER ] }, + { 1: [ Species.ALOLA_GRIMER ], 38: [ Species.ALOLA_MUK ] } + ], + [BiomePoolTier.UNCOMMON]: [ Species.ORICORIO, Species.BRUXISH, Species.ALOLA_RAICHU, Species.ALOLA_SANDSLASH, Species.ALOLA_EXEGGUTOR, Species.ALOLA_MAROWAK ], + [BiomePoolTier.RARE]: [], + [BiomePoolTier.SUPER_RARE]: [], + [BiomePoolTier.ULTRA_RARE]: [ Species.STAKATAKA, Species.BLACEPHALON ], + [BiomePoolTier.BOSS]: [ + Species.ORICORIO, + Species.BRUXISH, + Species.ALOLA_RATICATE, + Species.ALOLA_RAICHU, + Species.ALOLA_NINETALES, + Species.ALOLA_DUGTRIO, + Species.ALOLA_PERSIAN, + Species.ALOLA_GOLEM, + Species.ALOLA_MUK, + Species.ALOLA_EXEGGUTOR, + Species.ALOLA_MAROWAK + ], + [BiomePoolTier.BOSS_RARE]: [], + [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.STAKATAKA, Species.BLACEPHALON ], + [BiomePoolTier.BOSS_ULTRA_RARE]: [] + }, + [Biome.LABORATORY]: { + [BiomePoolTier.COMMON]: [ + { 1: [ Species.MAGNEMITE ], 30: [ Species.MAGNETON ] }, + { 1: [ Species.GRIMER ], 38: [ Species.MUK ] }, + { 1: [ Species.VOLTORB ], 30: [ Species.ELECTRODE ] }, + { 1: [ Species.BRONZOR ], 33: [ Species.BRONZONG ] }, + { 1: [ Species.KLINK ], 38: [ Species.KLANG ], 49: [ Species.KLINKLANG ] } + ], + [BiomePoolTier.UNCOMMON]: [ { 1: [ Species.SOLOSIS ], 32: [ Species.DUOSION ], 41: [ Species.REUNICLUS ] } ], + [BiomePoolTier.RARE]: [ Species.DITTO, { 1: [ Species.PORYGON ], 20: [ Species.PORYGON2 ] } ], + [BiomePoolTier.SUPER_RARE]: [], + [BiomePoolTier.ULTRA_RARE]: [ Species.ROTOM, Species.TYPE_NULL ], + [BiomePoolTier.BOSS]: [ Species.MUK, Species.ELECTRODE, Species.BRONZONG, Species.MAGNEZONE, Species.PORYGON_Z, Species.REUNICLUS, Species.KLINKLANG ], + [BiomePoolTier.BOSS_RARE]: [], + [BiomePoolTier.BOSS_SUPER_RARE]: [ Species.ROTOM, Species.ZYGARDE, Species.SILVALLY ], + [BiomePoolTier.BOSS_ULTRA_RARE]: [ Species.MEWTWO ] + }, [Biome.END]: { [BiomePoolTier.COMMON]: [ Species.ARCANINE, Species.DRAGONITE, Species.TYRANITAR, Species.SALAMENCE, Species.GARCHOMP, Species.HYDREIGON, Species.VOLCARONA ], [BiomePoolTier.UNCOMMON]: [ Species.KINGDRA, Species.METAGROSS, Species.MAGNEZONE, Species.RHYPERIOR, Species.TANGROWTH, Species.ELECTIVIRE, Species.MAGMORTAR, Species.TOGEKISS, Species.MAMOSWINE ], @@ -1578,13 +1682,15 @@ export const biomeTrainerPools: BiomeTrainerPools = { [ Species.MAGNEMITE, Type.ELECTRIC, Type.STEEL, [ [ Biome.POWER_PLANT, BiomePoolTier.COMMON ], [ Biome.FACTORY, BiomePoolTier.COMMON ], - [ Biome.CONSTRUCTION_SITE, BiomePoolTier.COMMON ] + [ Biome.CONSTRUCTION_SITE, BiomePoolTier.COMMON ], + [ Biome.LABORATORY, BiomePoolTier.COMMON ] ] ], [ Species.MAGNETON, Type.ELECTRIC, Type.STEEL, [ [ Biome.POWER_PLANT, BiomePoolTier.COMMON ], [ Biome.FACTORY, BiomePoolTier.COMMON ], - [ Biome.CONSTRUCTION_SITE, BiomePoolTier.COMMON ] + [ Biome.CONSTRUCTION_SITE, BiomePoolTier.COMMON ], + [ Biome.LABORATORY, BiomePoolTier.COMMON ] ] ], [ Species.FARFETCHD, Type.NORMAL, Type.FLYING, [ @@ -1612,13 +1718,16 @@ export const biomeTrainerPools: BiomeTrainerPools = { ], [ Species.GRIMER, Type.POISON, -1, [ [ Biome.CITY, BiomePoolTier.COMMON ], - [ Biome.CONSTRUCTION_SITE, BiomePoolTier.UNCOMMON ] + [ Biome.CONSTRUCTION_SITE, BiomePoolTier.UNCOMMON ], + [ Biome.LABORATORY, BiomePoolTier.COMMON ] ] ], [ Species.MUK, Type.POISON, -1, [ [ Biome.CONSTRUCTION_SITE, BiomePoolTier.UNCOMMON ], [ Biome.CITY, BiomePoolTier.COMMON ], - [ Biome.CITY, BiomePoolTier.BOSS ] + [ Biome.CITY, BiomePoolTier.BOSS ], + [ Biome.LABORATORY, BiomePoolTier.COMMON ], + [ Biome.LABORATORY, BiomePoolTier.BOSS ] ] ], [ Species.SHELLDER, Type.WATER, -1, [ @@ -1672,12 +1781,15 @@ export const biomeTrainerPools: BiomeTrainerPools = { ], [ Species.VOLTORB, Type.ELECTRIC, -1, [ [ Biome.POWER_PLANT, BiomePoolTier.COMMON ], - [ Biome.FACTORY, BiomePoolTier.COMMON ] + [ Biome.FACTORY, BiomePoolTier.COMMON ], + [ Biome.LABORATORY, BiomePoolTier.COMMON ] ] ], [ Species.ELECTRODE, Type.ELECTRIC, -1, [ [ Biome.POWER_PLANT, BiomePoolTier.COMMON ], - [ Biome.FACTORY, BiomePoolTier.COMMON ] + [ Biome.FACTORY, BiomePoolTier.COMMON ], + [ Biome.LABORATORY, BiomePoolTier.COMMON ], + [ Biome.LABORATORY, BiomePoolTier.BOSS ] ] ], [ Species.EXEGGCUTE, Type.GRASS, Type.PSYCHIC, [ @@ -1840,7 +1952,8 @@ export const biomeTrainerPools: BiomeTrainerPools = { [ Biome.TOWN, BiomePoolTier.ULTRA_RARE ], [ Biome.PLAINS, BiomePoolTier.ULTRA_RARE ], [ Biome.CITY, BiomePoolTier.SUPER_RARE ], - [ Biome.CONSTRUCTION_SITE, BiomePoolTier.SUPER_RARE ] + [ Biome.CONSTRUCTION_SITE, BiomePoolTier.SUPER_RARE ], + [ Biome.LABORATORY, BiomePoolTier.RARE ] ] ], [ Species.EEVEE, Type.NORMAL, -1, [ @@ -1867,7 +1980,8 @@ export const biomeTrainerPools: BiomeTrainerPools = { ], [ Species.PORYGON, Type.NORMAL, -1, [ [ Biome.FACTORY, BiomePoolTier.SUPER_RARE ], - [ Biome.SPACE, BiomePoolTier.SUPER_RARE ] + [ Biome.SPACE, BiomePoolTier.SUPER_RARE ], + [ Biome.LABORATORY, BiomePoolTier.RARE ] ] ], [ Species.OMANYTE, Type.ROCK, Type.WATER, [ @@ -1925,7 +2039,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ Species.MEWTWO, Type.PSYCHIC, -1, [ - [ Biome.FACTORY, BiomePoolTier.BOSS_ULTRA_RARE ], + [ Biome.LABORATORY, BiomePoolTier.BOSS_ULTRA_RARE ], [ Biome.END, BiomePoolTier.ULTRA_RARE ] ] ], @@ -2308,19 +2422,18 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ Species.PHANPY, Type.GROUND, -1, [ - [ Biome.BADLANDS, BiomePoolTier.COMMON ], - [ Biome.JUNGLE, BiomePoolTier.UNCOMMON ] + [ Biome.BADLANDS, BiomePoolTier.COMMON ] ] ], [ Species.DONPHAN, Type.GROUND, -1, [ [ Biome.BADLANDS, BiomePoolTier.COMMON ], - [ Biome.BADLANDS, BiomePoolTier.BOSS ], - [ Biome.JUNGLE, BiomePoolTier.COMMON ] + [ Biome.BADLANDS, BiomePoolTier.BOSS ] ] ], [ Species.PORYGON2, Type.NORMAL, -1, [ [ Biome.FACTORY, BiomePoolTier.SUPER_RARE ], - [ Biome.SPACE, BiomePoolTier.SUPER_RARE ] + [ Biome.SPACE, BiomePoolTier.SUPER_RARE ], + [ Biome.LABORATORY, BiomePoolTier.RARE ] ] ], [ Species.STANTLER, Type.NORMAL, -1, [ @@ -3303,15 +3416,16 @@ export const biomeTrainerPools: BiomeTrainerPools = { ], [ Species.BRONZOR, Type.STEEL, Type.PSYCHIC, [ [ Biome.FACTORY, BiomePoolTier.UNCOMMON ], - [ Biome.RUINS, BiomePoolTier.UNCOMMON ], - [ Biome.SPACE, BiomePoolTier.COMMON ] + [ Biome.SPACE, BiomePoolTier.COMMON ], + [ Biome.LABORATORY, BiomePoolTier.COMMON ] ] ], [ Species.BRONZONG, Type.STEEL, Type.PSYCHIC, [ [ Biome.FACTORY, BiomePoolTier.UNCOMMON ], - [ Biome.RUINS, BiomePoolTier.UNCOMMON ], [ Biome.SPACE, BiomePoolTier.COMMON ], - [ Biome.SPACE, BiomePoolTier.BOSS ] + [ Biome.SPACE, BiomePoolTier.BOSS ], + [ Biome.LABORATORY, BiomePoolTier.COMMON ], + [ Biome.LABORATORY, BiomePoolTier.BOSS ] ] ], [ Species.BONSLY, Type.ROCK, -1, [ @@ -3432,6 +3546,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { ], [ Species.MAGNEZONE, Type.ELECTRIC, Type.STEEL, [ [ Biome.POWER_PLANT, BiomePoolTier.BOSS ], + [ Biome.LABORATORY, BiomePoolTier.BOSS ], [ Biome.END, BiomePoolTier.UNCOMMON ] ] ], @@ -3487,6 +3602,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { ], [ Species.PORYGON_Z, Type.NORMAL, -1, [ [ Biome.SPACE, BiomePoolTier.BOSS_RARE ], + [ Biome.LABORATORY, BiomePoolTier.BOSS ], [ Biome.END, BiomePoolTier.RARE ] ] ], @@ -3509,8 +3625,8 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ Species.ROTOM, Type.ELECTRIC, Type.GHOST, [ - [ Biome.POWER_PLANT, BiomePoolTier.ULTRA_RARE ], - [ Biome.POWER_PLANT, BiomePoolTier.BOSS_SUPER_RARE ] + [ Biome.LABORATORY, BiomePoolTier.ULTRA_RARE ], + [ Biome.LABORATORY, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.UXIE, Type.PSYCHIC, -1, [ @@ -3988,16 +4104,20 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ Species.SOLOSIS, Type.PSYCHIC, -1, [ - [ Biome.SPACE, BiomePoolTier.RARE ] + [ Biome.SPACE, BiomePoolTier.RARE ], + [ Biome.LABORATORY, BiomePoolTier.UNCOMMON ] ] ], [ Species.DUOSION, Type.PSYCHIC, -1, [ - [ Biome.SPACE, BiomePoolTier.RARE ] + [ Biome.SPACE, BiomePoolTier.RARE ], + [ Biome.LABORATORY, BiomePoolTier.UNCOMMON ] ] ], [ Species.REUNICLUS, Type.PSYCHIC, -1, [ [ Biome.SPACE, BiomePoolTier.RARE ], - [ Biome.SPACE, BiomePoolTier.BOSS ] + [ Biome.SPACE, BiomePoolTier.BOSS ], + [ Biome.LABORATORY, BiomePoolTier.UNCOMMON ], + [ Biome.LABORATORY, BiomePoolTier.BOSS ] ] ], [ Species.DUCKLETT, Type.WATER, Type.FLYING, [ @@ -4087,16 +4207,20 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ Species.KLINK, Type.STEEL, -1, [ - [ Biome.FACTORY, BiomePoolTier.COMMON ] + [ Biome.FACTORY, BiomePoolTier.COMMON ], + [ Biome.LABORATORY, BiomePoolTier.COMMON ] ] ], [ Species.KLANG, Type.STEEL, -1, [ - [ Biome.FACTORY, BiomePoolTier.COMMON ] + [ Biome.FACTORY, BiomePoolTier.COMMON ], + [ Biome.LABORATORY, BiomePoolTier.COMMON ] ] ], [ Species.KLINKLANG, Type.STEEL, -1, [ [ Biome.FACTORY, BiomePoolTier.COMMON ], - [ Biome.FACTORY, BiomePoolTier.BOSS ] + [ Biome.FACTORY, BiomePoolTier.BOSS ], + [ Biome.LABORATORY, BiomePoolTier.COMMON ], + [ Biome.LABORATORY, BiomePoolTier.BOSS ] ] ], [ Species.TYNAMO, Type.ELECTRIC, -1, [ @@ -4632,7 +4756,7 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ Species.ZYGARDE, Type.DRAGON, Type.GROUND, [ - [ Biome.SPACE, BiomePoolTier.BOSS_ULTRA_RARE ] + [ Biome.LABORATORY, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.DIANCIE, Type.ROCK, Type.FAIRY, [ @@ -4651,267 +4775,408 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ Species.ROWLET, Type.GRASS, Type.FLYING, [ + [ Biome.FOREST, BiomePoolTier.RARE ] ] ], [ Species.DARTRIX, Type.GRASS, Type.FLYING, [ + [ Biome.FOREST, BiomePoolTier.RARE ] ] ], [ Species.DECIDUEYE, Type.GRASS, Type.GHOST, [ + [ Biome.FOREST, BiomePoolTier.RARE ], + [ Biome.FOREST, BiomePoolTier.BOSS_RARE ] ] ], [ Species.LITTEN, Type.FIRE, -1, [ + [ Biome.VOLCANO, BiomePoolTier.RARE ] ] ], [ Species.TORRACAT, Type.FIRE, -1, [ + [ Biome.VOLCANO, BiomePoolTier.RARE ] ] ], [ Species.INCINEROAR, Type.FIRE, Type.DARK, [ + [ Biome.VOLCANO, BiomePoolTier.RARE ], + [ Biome.VOLCANO, BiomePoolTier.BOSS_RARE ] ] ], [ Species.POPPLIO, Type.WATER, -1, [ + [ Biome.SEA, BiomePoolTier.RARE ] ] ], [ Species.BRIONNE, Type.WATER, -1, [ + [ Biome.SEA, BiomePoolTier.RARE ] ] ], [ Species.PRIMARINA, Type.WATER, Type.FAIRY, [ + [ Biome.SEA, BiomePoolTier.RARE ], + [ Biome.SEA, BiomePoolTier.BOSS_RARE ] ] ], [ Species.PIKIPEK, Type.NORMAL, Type.FLYING, [ + [ Biome.JUNGLE, BiomePoolTier.COMMON ] ] ], [ Species.TRUMBEAK, Type.NORMAL, Type.FLYING, [ + [ Biome.JUNGLE, BiomePoolTier.COMMON ] ] ], [ Species.TOUCANNON, Type.NORMAL, Type.FLYING, [ + [ Biome.JUNGLE, BiomePoolTier.COMMON ], + [ Biome.JUNGLE, BiomePoolTier.BOSS ] ] ], [ Species.YUNGOOS, Type.NORMAL, -1, [ + [ Biome.PLAINS, BiomePoolTier.COMMON ] ] ], [ Species.GUMSHOOS, Type.NORMAL, -1, [ + [ Biome.PLAINS, BiomePoolTier.COMMON ], + [ Biome.PLAINS, BiomePoolTier.BOSS ] ] ], [ Species.GRUBBIN, Type.BUG, -1, [ + [ Biome.POWER_PLANT, BiomePoolTier.COMMON ] ] ], [ Species.CHARJABUG, Type.BUG, Type.ELECTRIC, [ + [ Biome.POWER_PLANT, BiomePoolTier.COMMON ] ] ], [ Species.VIKAVOLT, Type.BUG, Type.ELECTRIC, [ + [ Biome.POWER_PLANT, BiomePoolTier.BOSS ] ] ], [ Species.CRABRAWLER, Type.FIGHTING, -1, [ + [ Biome.ICE_CAVE, BiomePoolTier.COMMON ] ] ], [ Species.CRABOMINABLE, Type.FIGHTING, Type.ICE, [ + [ Biome.ICE_CAVE, BiomePoolTier.COMMON ], + [ Biome.ICE_CAVE, BiomePoolTier.BOSS ] ] ], [ Species.ORICORIO, Type.FIRE, Type.FLYING, [ + [ Biome.ISLAND, BiomePoolTier.UNCOMMON ], + [ Biome.ISLAND, BiomePoolTier.BOSS ] ] ], [ Species.CUTIEFLY, Type.BUG, Type.FAIRY, [ + [ Biome.FAIRY_CAVE, BiomePoolTier.COMMON ] ] ], [ Species.RIBOMBEE, Type.BUG, Type.FAIRY, [ + [ Biome.FAIRY_CAVE, BiomePoolTier.COMMON ], + [ Biome.FAIRY_CAVE, BiomePoolTier.BOSS ] ] ], [ Species.ROCKRUFF, Type.ROCK, -1, [ + [ Biome.PLAINS, BiomePoolTier.UNCOMMON ], + [ Biome.FOREST, BiomePoolTier.UNCOMMON ], + [ Biome.CAVE, BiomePoolTier.UNCOMMON ] ] ], [ Species.LYCANROC, Type.ROCK, -1, [ + [ Biome.PLAINS, BiomePoolTier.UNCOMMON ], + [ Biome.PLAINS, BiomePoolTier.BOSS_RARE ], + [ Biome.FOREST, BiomePoolTier.UNCOMMON ], + [ Biome.FOREST, BiomePoolTier.BOSS_RARE ], + [ Biome.CAVE, BiomePoolTier.UNCOMMON ], + [ Biome.CAVE, BiomePoolTier.BOSS_RARE ] ] ], [ Species.WISHIWASHI, Type.WATER, -1, [ + [ Biome.LAKE, BiomePoolTier.UNCOMMON ], + [ Biome.LAKE, BiomePoolTier.BOSS ] ] ], [ Species.MAREANIE, Type.POISON, Type.WATER, [ + [ Biome.SWAMP, BiomePoolTier.UNCOMMON ] ] ], [ Species.TOXAPEX, Type.POISON, Type.WATER, [ + [ Biome.SWAMP, BiomePoolTier.UNCOMMON ], + [ Biome.SWAMP, BiomePoolTier.BOSS ] ] ], [ Species.MUDBRAY, Type.GROUND, -1, [ + [ Biome.BADLANDS, BiomePoolTier.COMMON ] ] ], [ Species.MUDSDALE, Type.GROUND, -1, [ + [ Biome.BADLANDS, BiomePoolTier.COMMON ], + [ Biome.BADLANDS, BiomePoolTier.BOSS ] ] ], [ Species.DEWPIDER, Type.WATER, Type.BUG, [ + [ Biome.LAKE, BiomePoolTier.UNCOMMON ] ] ], [ Species.ARAQUANID, Type.WATER, Type.BUG, [ + [ Biome.LAKE, BiomePoolTier.UNCOMMON ], + [ Biome.LAKE, BiomePoolTier.BOSS ] ] ], [ Species.FOMANTIS, Type.GRASS, -1, [ + [ Biome.TALL_GRASS, BiomePoolTier.COMMON ] ] ], [ Species.LURANTIS, Type.GRASS, -1, [ + [ Biome.TALL_GRASS, BiomePoolTier.COMMON ], + [ Biome.TALL_GRASS, BiomePoolTier.BOSS ] ] ], [ Species.MORELULL, Type.GRASS, Type.FAIRY, [ + [ Biome.FAIRY_CAVE, BiomePoolTier.COMMON ] ] ], [ Species.SHIINOTIC, Type.GRASS, Type.FAIRY, [ + [ Biome.FAIRY_CAVE, BiomePoolTier.COMMON ], + [ Biome.FAIRY_CAVE, BiomePoolTier.BOSS ] ] ], [ Species.SALANDIT, Type.POISON, Type.FIRE, [ + [ Biome.VOLCANO, BiomePoolTier.COMMON ] ] ], [ Species.SALAZZLE, Type.POISON, Type.FIRE, [ + [ Biome.VOLCANO, BiomePoolTier.COMMON ], + [ Biome.VOLCANO, BiomePoolTier.BOSS ] ] ], [ Species.STUFFUL, Type.NORMAL, Type.FIGHTING, [ + [ Biome.DOJO, BiomePoolTier.COMMON ] ] ], [ Species.BEWEAR, Type.NORMAL, Type.FIGHTING, [ + [ Biome.DOJO, BiomePoolTier.COMMON ], + [ Biome.DOJO, BiomePoolTier.BOSS ] ] ], [ Species.BOUNSWEET, Type.GRASS, -1, [ + [ Biome.TALL_GRASS, BiomePoolTier.COMMON ] ] ], [ Species.STEENEE, Type.GRASS, -1, [ + [ Biome.TALL_GRASS, BiomePoolTier.COMMON ] ] ], [ Species.TSAREENA, Type.GRASS, -1, [ + [ Biome.TALL_GRASS, BiomePoolTier.COMMON ], + [ Biome.TALL_GRASS, BiomePoolTier.BOSS ] ] ], [ Species.COMFEY, Type.FAIRY, -1, [ + [ Biome.FAIRY_CAVE, BiomePoolTier.UNCOMMON ], + [ Biome.FAIRY_CAVE, BiomePoolTier.BOSS ] ] ], [ Species.ORANGURU, Type.NORMAL, Type.PSYCHIC, [ + [ Biome.JUNGLE, BiomePoolTier.RARE ] ] ], [ Species.PASSIMIAN, Type.FIGHTING, -1, [ + [ Biome.JUNGLE, BiomePoolTier.RARE ] ] ], [ Species.WIMPOD, Type.BUG, Type.WATER, [ + [ Biome.CAVE, BiomePoolTier.UNCOMMON ] ] ], [ Species.GOLISOPOD, Type.BUG, Type.WATER, [ + [ Biome.CAVE, BiomePoolTier.UNCOMMON ], + [ Biome.CAVE, BiomePoolTier.BOSS ] ] ], [ Species.SANDYGAST, Type.GHOST, Type.GROUND, [ + [ Biome.BEACH, BiomePoolTier.UNCOMMON ] ] ], [ Species.PALOSSAND, Type.GHOST, Type.GROUND, [ + [ Biome.BEACH, BiomePoolTier.UNCOMMON ], + [ Biome.BEACH, BiomePoolTier.BOSS ] ] ], [ Species.PYUKUMUKU, Type.WATER, -1, [ + [ Biome.SEABED, BiomePoolTier.SUPER_RARE ], + [ Biome.SEABED, BiomePoolTier.BOSS_RARE ] ] ], [ Species.TYPE_NULL, Type.NORMAL, -1, [ + [ Biome.LABORATORY, BiomePoolTier.ULTRA_RARE ] ] ], [ Species.SILVALLY, Type.NORMAL, -1, [ + [ Biome.LABORATORY, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.MINIOR, Type.ROCK, Type.FLYING, [ + [ Biome.SPACE, BiomePoolTier.COMMON ], + [ Biome.SPACE, BiomePoolTier.BOSS ] ] ], [ Species.KOMALA, Type.NORMAL, -1, [ + [ Biome.JUNGLE, BiomePoolTier.UNCOMMON ], + [ Biome.JUNGLE, BiomePoolTier.BOSS ] ] ], [ Species.TURTONATOR, Type.FIRE, Type.DRAGON, [ + [ Biome.VOLCANO, BiomePoolTier.UNCOMMON ], + [ Biome.VOLCANO, BiomePoolTier.BOSS ] ] ], [ Species.TOGEDEMARU, Type.ELECTRIC, Type.STEEL, [ + [ Biome.POWER_PLANT, BiomePoolTier.UNCOMMON ], + [ Biome.POWER_PLANT, BiomePoolTier.BOSS ] ] ], [ Species.MIMIKYU, Type.GHOST, Type.FAIRY, [ + [ Biome.GRAVEYARD, BiomePoolTier.RARE ], + [ Biome.GRAVEYARD, BiomePoolTier.BOSS ] ] ], [ Species.BRUXISH, Type.WATER, Type.PSYCHIC, [ + [ Biome.ISLAND, BiomePoolTier.UNCOMMON ], + [ Biome.ISLAND, BiomePoolTier.BOSS ] ] ], [ Species.DRAMPA, Type.NORMAL, Type.DRAGON, [ + [ Biome.WASTELAND, BiomePoolTier.UNCOMMON ], + [ Biome.WASTELAND, BiomePoolTier.BOSS ] ] ], [ Species.DHELMISE, Type.GHOST, Type.GRASS, [ + [ Biome.SEABED, BiomePoolTier.RARE ], + [ Biome.SEABED, BiomePoolTier.BOSS_RARE ] ] ], [ Species.JANGMO_O, Type.DRAGON, -1, [ + [ Biome.WASTELAND, BiomePoolTier.COMMON ] ] ], [ Species.HAKAMO_O, Type.DRAGON, Type.FIGHTING, [ + [ Biome.WASTELAND, BiomePoolTier.COMMON ] ] ], [ Species.KOMMO_O, Type.DRAGON, Type.FIGHTING, [ + [ Biome.WASTELAND, BiomePoolTier.COMMON ], + [ Biome.WASTELAND, BiomePoolTier.BOSS ] ] ], [ Species.TAPU_KOKO, Type.ELECTRIC, Type.FAIRY, [ + [ Biome.TEMPLE, BiomePoolTier.ULTRA_RARE ], + [ Biome.TEMPLE, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.TAPU_LELE, Type.PSYCHIC, Type.FAIRY, [ + [ Biome.TEMPLE, BiomePoolTier.ULTRA_RARE ], + [ Biome.TEMPLE, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.TAPU_BULU, Type.GRASS, Type.FAIRY, [ + [ Biome.TEMPLE, BiomePoolTier.ULTRA_RARE ], + [ Biome.TEMPLE, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.TAPU_FINI, Type.WATER, Type.FAIRY, [ + [ Biome.TEMPLE, BiomePoolTier.ULTRA_RARE ], + [ Biome.TEMPLE, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.COSMOG, Type.PSYCHIC, -1, [ + [ Biome.SPACE, BiomePoolTier.ULTRA_RARE ] ] ], [ Species.COSMOEM, Type.PSYCHIC, -1, [ + [ Biome.SPACE, BiomePoolTier.ULTRA_RARE ] ] ], [ Species.SOLGALEO, Type.PSYCHIC, Type.STEEL, [ + [ Biome.SPACE, BiomePoolTier.BOSS_ULTRA_RARE ] ] ], [ Species.LUNALA, Type.PSYCHIC, Type.GHOST, [ + [ Biome.SPACE, BiomePoolTier.BOSS_ULTRA_RARE ] ] ], [ Species.NIHILEGO, Type.ROCK, Type.POISON, [ + [ Biome.SEABED, BiomePoolTier.ULTRA_RARE ], + [ Biome.SEABED, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.BUZZWOLE, Type.BUG, Type.FIGHTING, [ + [ Biome.JUNGLE, BiomePoolTier.ULTRA_RARE ], + [ Biome.JUNGLE, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.PHEROMOSA, Type.BUG, Type.FIGHTING, [ + [ Biome.DESERT, BiomePoolTier.ULTRA_RARE ], + [ Biome.DESERT, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.XURKITREE, Type.ELECTRIC, -1, [ + [ Biome.POWER_PLANT, BiomePoolTier.ULTRA_RARE ], + [ Biome.POWER_PLANT, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.CELESTEELA, Type.STEEL, Type.FLYING, [ + [ Biome.SPACE, BiomePoolTier.ULTRA_RARE ], + [ Biome.SPACE, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.KARTANA, Type.GRASS, Type.STEEL, [ + [ Biome.FOREST, BiomePoolTier.ULTRA_RARE ], + [ Biome.FOREST, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.GUZZLORD, Type.DARK, Type.DRAGON, [ + [ Biome.ABYSS, BiomePoolTier.ULTRA_RARE ], + [ Biome.ABYSS, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.NECROZMA, Type.PSYCHIC, -1, [ + [ Biome.SPACE, BiomePoolTier.BOSS_ULTRA_RARE ] ] ], [ Species.MAGEARNA, Type.STEEL, Type.FAIRY, [ + [ Biome.FACTORY, BiomePoolTier.ULTRA_RARE ], + [ Biome.FACTORY, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.MARSHADOW, Type.FIGHTING, Type.GHOST, [ + [ Biome.GRAVEYARD, BiomePoolTier.ULTRA_RARE ], + [ Biome.GRAVEYARD, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.POIPOLE, Type.POISON, -1, [ + [ Biome.SWAMP, BiomePoolTier.ULTRA_RARE ] ] ], [ Species.NAGANADEL, Type.POISON, Type.DRAGON, [ + [ Biome.SWAMP, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.STAKATAKA, Type.ROCK, Type.STEEL, [ + [ Biome.ISLAND, BiomePoolTier.ULTRA_RARE ], + [ Biome.ISLAND, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.BLACEPHALON, Type.FIRE, Type.GHOST, [ + [ Biome.ISLAND, BiomePoolTier.ULTRA_RARE ], + [ Biome.ISLAND, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.ZERAORA, Type.ELECTRIC, -1, [ + [ Biome.POWER_PLANT, BiomePoolTier.ULTRA_RARE ], + [ Biome.POWER_PLANT, BiomePoolTier.BOSS_SUPER_RARE ] ] ], [ Species.MELTAN, Type.STEEL, -1, [ + [ Biome.FACTORY, BiomePoolTier.ULTRA_RARE ] ] ], [ Species.MELMETAL, Type.STEEL, -1, [ + [ Biome.FACTORY, BiomePoolTier.BOSS_ULTRA_RARE ] ] ], [ Species.GROOKEY, Type.GRASS, -1, [ @@ -5540,57 +5805,85 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ Species.ALOLA_RATTATA, Type.DARK, -1, [ + [ Biome.ISLAND, BiomePoolTier.COMMON ] ] ], [ Species.ALOLA_RATICATE, Type.DARK, -1, [ + [ Biome.ISLAND, BiomePoolTier.COMMON ], + [ Biome.ISLAND, BiomePoolTier.BOSS ] ] ], [ Species.ALOLA_RAICHU, Type.ELECTRIC, Type.PSYCHIC, [ + [ Biome.ISLAND, BiomePoolTier.UNCOMMON ], + [ Biome.ISLAND, BiomePoolTier.BOSS ] ] ], [ Species.ALOLA_SANDSHREW, Type.ICE, Type.STEEL, [ + [ Biome.ISLAND, BiomePoolTier.COMMON ] ] ], [ Species.ALOLA_SANDSLASH, Type.ICE, Type.STEEL, [ + [ Biome.ISLAND, BiomePoolTier.COMMON ], + [ Biome.ISLAND, BiomePoolTier.UNCOMMON ] ] ], [ Species.ALOLA_VULPIX, Type.ICE, -1, [ + [ Biome.ISLAND, BiomePoolTier.COMMON ] ] ], [ Species.ALOLA_NINETALES, Type.ICE, Type.FAIRY, [ + [ Biome.ISLAND, BiomePoolTier.COMMON ], + [ Biome.ISLAND, BiomePoolTier.BOSS ] ] ], [ Species.ALOLA_DIGLETT, Type.GROUND, Type.STEEL, [ + [ Biome.ISLAND, BiomePoolTier.COMMON ] ] ], [ Species.ALOLA_DUGTRIO, Type.GROUND, Type.STEEL, [ + [ Biome.ISLAND, BiomePoolTier.COMMON ], + [ Biome.ISLAND, BiomePoolTier.BOSS ] ] ], [ Species.ALOLA_MEOWTH, Type.DARK, -1, [ + [ Biome.ISLAND, BiomePoolTier.COMMON ] ] ], [ Species.ALOLA_PERSIAN, Type.DARK, -1, [ + [ Biome.ISLAND, BiomePoolTier.COMMON ], + [ Biome.ISLAND, BiomePoolTier.BOSS ] ] ], [ Species.ALOLA_GEODUDE, Type.ROCK, Type.ELECTRIC, [ + [ Biome.ISLAND, BiomePoolTier.COMMON ] ] ], [ Species.ALOLA_GRAVELER, Type.ROCK, Type.ELECTRIC, [ + [ Biome.ISLAND, BiomePoolTier.COMMON ] ] ], [ Species.ALOLA_GOLEM, Type.ROCK, Type.ELECTRIC, [ + [ Biome.ISLAND, BiomePoolTier.COMMON ], + [ Biome.ISLAND, BiomePoolTier.BOSS ] ] ], [ Species.ALOLA_GRIMER, Type.POISON, Type.DARK, [ + [ Biome.ISLAND, BiomePoolTier.COMMON ] ] ], [ Species.ALOLA_MUK, Type.POISON, Type.DARK, [ + [ Biome.ISLAND, BiomePoolTier.COMMON ], + [ Biome.ISLAND, BiomePoolTier.BOSS ] ] ], [ Species.ALOLA_EXEGGUTOR, Type.GRASS, Type.DRAGON, [ + [ Biome.ISLAND, BiomePoolTier.UNCOMMON ], + [ Biome.ISLAND, BiomePoolTier.BOSS ] ] ], [ Species.ALOLA_MAROWAK, Type.FIRE, Type.GHOST, [ + [ Biome.ISLAND, BiomePoolTier.UNCOMMON ], + [ Biome.ISLAND, BiomePoolTier.BOSS ] ] ], [ Species.GALAR_MEOWTH, Type.STEEL, -1, [ @@ -5889,7 +6182,8 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ TrainerType.GIOVANNI, [ - [ Biome.ABYSS, BiomePoolTier.BOSS ] + [ Biome.ABYSS, BiomePoolTier.BOSS ], + [ Biome.LABORATORY, BiomePoolTier.BOSS ] // Temporary ] ], [ TrainerType.BLAINE, [ @@ -5992,7 +6286,8 @@ export const biomeTrainerPools: BiomeTrainerPools = { ] ], [ TrainerType.CANDICE, [ - [ Biome.ICE_CAVE, BiomePoolTier.BOSS ] + [ Biome.ICE_CAVE, BiomePoolTier.BOSS ], + [ Biome.ISLAND, BiomePoolTier.BOSS ] // Temporary ] ], [ TrainerType.VOLKNER, [ @@ -6060,22 +6355,28 @@ export const biomeTrainerPools: BiomeTrainerPools = { [ TrainerType.RIVAL, [] ] ]; - biomeDepths[Biome.TOWN] = 0; + biomeDepths[Biome.TOWN] = [ 0, 1 ]; const traverseBiome = (biome: Biome, depth: integer) => { - const linkedBiomes: Biome[] = Array.isArray(biomeLinks[biome]) - ? biomeLinks[biome] as Biome[] + const linkedBiomes: (Biome | [ Biome, integer ])[] = Array.isArray(biomeLinks[biome]) + ? biomeLinks[biome] as (Biome | [ Biome, integer ])[] : [ biomeLinks[biome] as Biome ]; - for (let linkedBiome of linkedBiomes) { - if (!biomeDepths.hasOwnProperty(linkedBiome) || depth < biomeDepths[linkedBiome]) { - biomeDepths[linkedBiome] = depth + 1; + for (let linkedBiomeEntry of linkedBiomes) { + const linkedBiome = !Array.isArray(linkedBiomeEntry) + ? linkedBiomeEntry as Biome + : linkedBiomeEntry[0]; + const biomeChance = !Array.isArray(linkedBiomeEntry) + ? 1 + : linkedBiomeEntry[1]; + if (!biomeDepths.hasOwnProperty(linkedBiome) || biomeChance < biomeDepths[linkedBiome][1] || (depth < biomeDepths[linkedBiome][0] && biomeChance === biomeDepths[linkedBiome][1])) { + biomeDepths[linkedBiome] = [ depth + 1, biomeChance ]; traverseBiome(linkedBiome, depth + 1); } } }; traverseBiome(Biome.TOWN, 0); - biomeDepths[Biome.END] = Object.values(biomeDepths).reduce((max: integer, value: integer) => Math.max(max, value), 0) + 1; + biomeDepths[Biome.END] = [ Object.values(biomeDepths).map(d => d[0]).reduce((max: integer, value: integer) => Math.max(max, value), 0) + 1, 1 ]; for (let biome of Utils.getEnumValues(Biome)) { biomePokemonPools[biome] = {}; diff --git a/src/data/pokemon-evolutions.ts b/src/data/pokemon-evolutions.ts index 7ae37f41d..cc62993b4 100644 --- a/src/data/pokemon-evolutions.ts +++ b/src/data/pokemon-evolutions.ts @@ -10,6 +10,7 @@ import { Type } from "./type"; import * as Utils from "../utils"; import { SpeciesFormKey } from "./pokemon-species"; import { WeatherType } from "./weather"; +import { Biome } from "./biome"; export enum SpeciesWildEvolutionDelay { NONE, @@ -17,7 +18,8 @@ export enum SpeciesWildEvolutionDelay { MEDIUM, LONG, VERY_LONG, - MEGA + MEGA, + NEVER } export enum EvolutionItem { @@ -256,6 +258,7 @@ export const pokemonEvolutions: PokemonEvolutions = { new SpeciesEvolution(Species.ELECTRODE, 30, null, null) ], [Species.CUBONE]: [ + new SpeciesEvolution(Species.ALOLA_EXEGGUTOR, 28, null, new SpeciesEvolutionCondition((p: Pokemon) => p.scene.arena.biomeType === Biome.ISLAND), SpeciesWildEvolutionDelay.NEVER), new SpeciesEvolution(Species.MAROWAK, 28, null, null) ], [Species.TYROGUE]: [ @@ -896,7 +899,99 @@ export const pokemonEvolutions: PokemonEvolutions = { [Species.NOIBAT]: [ new SpeciesEvolution(Species.NOIVERN, 48, null, null) ], + [Species.ROWLET]: [ + new SpeciesEvolution(Species.DARTRIX, 17, null, null) + ], + [Species.DARTRIX]: [ + new SpeciesEvolution(Species.DECIDUEYE, 36, null, null) + ], + [Species.LITTEN]: [ + new SpeciesEvolution(Species.TORRACAT, 17, null, null) + ], + [Species.TORRACAT]: [ + new SpeciesEvolution(Species.INCINEROAR, 36, null, null) + ], + [Species.POPPLIO]: [ + new SpeciesEvolution(Species.BRIONNE, 17, null, null) + ], + [Species.BRIONNE]: [ + new SpeciesEvolution(Species.PRIMARINA, 36, null, null) + ], + [Species.PIKIPEK]: [ + new SpeciesEvolution(Species.TRUMBEAK, 14, null, null) + ], + [Species.TRUMBEAK]: [ + new SpeciesEvolution(Species.TOUCANNON, 36, null, null) + ], + [Species.YUNGOOS]: [ + new SpeciesEvolution(Species.GUMSHOOS, 20, null, new SpeciesEvolutionCondition((p: Pokemon) => p.scene.arena.isDaytime()), SpeciesWildEvolutionDelay.SHORT) + ], + [Species.GRUBBIN]: [ + new SpeciesEvolution(Species.CHARJABUG, 20, null, null) + ], + [Species.CUTIEFLY]: [ + new SpeciesEvolution(Species.RIBOMBEE, 25, null, null) + ], + [Species.MAREANIE]: [ + new SpeciesEvolution(Species.TOXAPEX, 38, null, null) + ], + [Species.MUDBRAY]: [ + new SpeciesEvolution(Species.MUDSDALE, 30, null, null) + ], + [Species.DEWPIDER]: [ + new SpeciesEvolution(Species.ARAQUANID, 22, null, null) + ], + [Species.FOMANTIS]: [ + new SpeciesEvolution(Species.LURANTIS, 34, null, new SpeciesEvolutionCondition((p: Pokemon) => p.scene.arena.isDaytime()), SpeciesWildEvolutionDelay.SHORT) + ], + [Species.MORELULL]: [ + new SpeciesEvolution(Species.SHIINOTIC, 24, null, null) + ], + [Species.SALANDIT]: [ + new SpeciesEvolution(Species.SALAZZLE, 33, null, new SpeciesEvolutionCondition((p: Pokemon) => p.gender === Gender.FEMALE, (p: Pokemon) => p.gender = Gender.FEMALE), null) + ], + [Species.STUFFUL]: [ + new SpeciesEvolution(Species.BEWEAR, 27, null, null) + ], + [Species.BOUNSWEET]: [ + new SpeciesEvolution(Species.STEENEE, 18, null, null) + ], + [Species.WIMPOD]: [ + new SpeciesEvolution(Species.GOLISOPOD, 30, null, null) + ], + [Species.SANDYGAST]: [ + new SpeciesEvolution(Species.PALOSSAND, 48, null, null) + ], + [Species.JANGMO_O]: [ + new SpeciesEvolution(Species.HAKAMO_O, 35, null, null) + ], + [Species.HAKAMO_O]: [ + new SpeciesEvolution(Species.KOMMO_O, 45, null, null) + ], + [Species.COSMOG]: [ + new SpeciesEvolution(Species.COSMOEM, 43, null, null) + ], + [Species.COSMOEM]: [ + new SpeciesEvolution(Species.SOLGALEO, 53, null, new SpeciesEvolutionCondition((p: Pokemon) => p.scene.arena.biomeType !== Biome.SPACE && p.scene.arena.isDaytime()), null), + new SpeciesEvolution(Species.LUNALA, 53, null, new SpeciesEvolutionCondition((p: Pokemon) => p.scene.arena.biomeType !== Biome.SPACE && !p.scene.arena.isDaytime()), null) + ], + [Species.MELTAN]: [ + new SpeciesEvolution(Species.MELMETAL, 48, null, null) + ], + [Species.ALOLA_RATTATA]: [ + new SpeciesEvolution(Species.ALOLA_RATICATE, 20, null, new SpeciesEvolutionCondition((p: Pokemon) => !p.scene.arena.isDaytime()), SpeciesWildEvolutionDelay.SHORT) + ], + [Species.ALOLA_DIGLETT]: [ + new SpeciesEvolution(Species.ALOLA_DUGTRIO, 26, null, null) + ], + [Species.ALOLA_GEODUDE]: [ + new SpeciesEvolution(Species.ALOLA_GRAVELER, 25, null, null) + ], + [Species.ALOLA_GRIMER]: [ + new SpeciesEvolution(Species.ALOLA_MUK, 38, null, null) + ], [Species.PIKACHU]: [ + new SpeciesEvolution(Species.ALOLA_RAICHU, 1, EvolutionItem.THUNDER_STONE, new SpeciesEvolutionCondition((p: Pokemon) => p.scene.arena.biomeType === Biome.ISLAND), SpeciesWildEvolutionDelay.NEVER), new SpeciesEvolution(Species.RAICHU, 1, EvolutionItem.THUNDER_STONE, null, SpeciesWildEvolutionDelay.LONG) ], [Species.NIDORINA]: [ @@ -935,6 +1030,7 @@ export const pokemonEvolutions: PokemonEvolutions = { new SpeciesEvolution(Species.CLOYSTER, 1, EvolutionItem.WATER_STONE, null, SpeciesWildEvolutionDelay.MEDIUM) ], [Species.EXEGGCUTE]: [ + new SpeciesEvolution(Species.ALOLA_EXEGGUTOR, 1, EvolutionItem.LEAF_STONE, new SpeciesEvolutionCondition((p: Pokemon) => p.scene.arena.biomeType === Biome.ISLAND), SpeciesWildEvolutionDelay.NEVER), new SpeciesEvolution(Species.EXEGGUTOR, 1, EvolutionItem.LEAF_STONE, null, SpeciesWildEvolutionDelay.LONG) ], [Species.TANGELA]: [ @@ -1043,6 +1139,29 @@ export const pokemonEvolutions: PokemonEvolutions = { [Species.HELIOPTILE]: [ new SpeciesEvolution(Species.HELIOLISK, 1, EvolutionItem.SUN_STONE, null, SpeciesWildEvolutionDelay.LONG) ], + [Species.CHARJABUG]: [ + new SpeciesEvolution(Species.VIKAVOLT, 1, EvolutionItem.THUNDER_STONE, null) + ], + [Species.CRABRAWLER]: [ + new SpeciesEvolution(Species.CRABOMINABLE, 1, EvolutionItem.ICE_STONE, null) + ], + [Species.ROCKRUFF]: [ + new SpeciesFormEvolution(Species.LYCANROC, '', 'midday', 25, null, new SpeciesEvolutionCondition((p: Pokemon) => p.scene.arena.isDaytime()), null), + new SpeciesFormEvolution(Species.LYCANROC, '', 'dusk', 25, null, new SpeciesEvolutionCondition((p: Pokemon) => p.scene.getSpeciesFormIndex(p.species) === 2), null), + new SpeciesFormEvolution(Species.LYCANROC, '', 'midnight', 25, null, new SpeciesEvolutionCondition((p: Pokemon) => !p.scene.arena.isDaytime()), null) + ], + [Species.STEENEE]: [ + new SpeciesEvolution(Species.TSAREENA, 1, null, new SpeciesEvolutionCondition((p: Pokemon) => p.moveset.filter(m => m.moveId === Moves.STOMP).length > 0), SpeciesWildEvolutionDelay.LONG) + ], + [Species.POIPOLE]: [ + new SpeciesEvolution(Species.NAGANADEL, 1, null, new SpeciesEvolutionCondition((p: Pokemon) => p.moveset.filter(m => m.moveId === Moves.DRAGON_PULSE).length > 0), SpeciesWildEvolutionDelay.LONG) + ], + [Species.ALOLA_SANDSHREW]: [ + new SpeciesEvolution(Species.ALOLA_SANDSLASH, 1, EvolutionItem.ICE_STONE, null, SpeciesWildEvolutionDelay.LONG) + ], + [Species.ALOLA_VULPIX]: [ + new SpeciesEvolution(Species.ALOLA_NINETALES, 1, EvolutionItem.ICE_STONE, null, SpeciesWildEvolutionDelay.LONG) + ], [Species.KADABRA]: [ new SpeciesEvolution(Species.ALAKAZAM, 1, EvolutionItem.LINKING_CORD, null, SpeciesWildEvolutionDelay.VERY_LONG) ], @@ -1117,6 +1236,9 @@ export const pokemonEvolutions: PokemonEvolutions = { [Species.PUMPKABOO]: [ new SpeciesEvolution(Species.GOURGEIST, 1, EvolutionItem.LINKING_CORD, null, SpeciesWildEvolutionDelay.MEDIUM) ], + [Species.ALOLA_GRAVELER]: [ + new SpeciesEvolution(Species.ALOLA_GOLEM, 1, EvolutionItem.LINKING_CORD, null, SpeciesWildEvolutionDelay.MEDIUM) + ], [Species.PRIMEAPE]: [ new SpeciesEvolution(Species.ANNIHILAPE, 1, null, new SpeciesEvolutionCondition((p: Pokemon) => p.moveset.filter(m => m.moveId === Moves.RAGE_FIST).length > 0), SpeciesWildEvolutionDelay.VERY_LONG) ], @@ -1165,6 +1287,12 @@ export const pokemonEvolutions: PokemonEvolutions = { [Species.SWADLOON]: [ new SpeciesEvolution(Species.LEAVANNY, 1, null, new SpeciesEvolutionCondition((p: Pokemon) => p.winCount >= 10), SpeciesWildEvolutionDelay.LONG) ], + [Species.TYPE_NULL]: [ + new SpeciesEvolution(Species.SILVALLY, 1, null, new SpeciesEvolutionCondition((p: Pokemon) => p.winCount >= 100), SpeciesWildEvolutionDelay.LONG) + ], + [Species.ALOLA_MEOWTH]: [ + new SpeciesEvolution(Species.ALOLA_PERSIAN, 1, null, new SpeciesEvolutionCondition((p: Pokemon) => p.winCount >= 10), SpeciesWildEvolutionDelay.LONG) + ], [Species.VENUSAUR]: [ new SpeciesFormEvolution(Species.VENUSAUR, '', SpeciesFormKey.MEGA, 1, EvolutionItem.VENUSAURITE, null, SpeciesWildEvolutionDelay.MEGA) ], diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 1a2bad323..4b30f144e 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -7,6 +7,8 @@ import { Type } from './type'; import { LevelMoves, pokemonFormLevelMoves as pokemonSpeciesFormLevelMoves, pokemonSpeciesLevelMoves } from './pokemon-level-moves'; export function getPokemonSpecies(species: Species): PokemonSpecies { + if (species >= 2000) + return allSpecies.find(s => s.speciesId === species); return allSpecies[species - 1]; } @@ -104,7 +106,7 @@ export abstract class PokemonSpeciesForm { } isObtainable() { - return (this.generation <= 6 || pokemonPrevolutions.hasOwnProperty(this.speciesId)); + return (this.generation <= 7 || pokemonPrevolutions.hasOwnProperty(this.speciesId)); } getSpriteAtlasPath(female: boolean, formIndex?: integer, shiny?: boolean): string { @@ -324,7 +326,7 @@ export default class PokemonSpecies extends PokemonSpeciesForm { let noEvolutionChance = 1; for (let ev of evolutions) { - if (ev.level > level) + if (ev.level > level || ev.wildDelay === SpeciesWildEvolutionDelay.NEVER) continue; let evolutionChance: number; @@ -2045,9 +2047,9 @@ export function initSpecies() { new PokemonForm("Hearthflame Mask", "hearthflame-mask", Type.GRASS, Type.FIRE, 1.2, 39.8, Abilities.MOLD_BREAKER, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 0, null), new PokemonForm("Cornerstone Mask", "cornerstone-mask", Type.GRASS, Type.ROCK, 1.2, 39.8, Abilities.STURDY, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 0, null), ), - new PokemonSpecies(Species.ALOLA_RATTATA, "Rattata", 7, false, false, false, "Mouse Pokémon", Type.DARK, null, 0.3, 3.8, Abilities.GLUTTONY, Abilities.HUSTLE, Abilities.THICK_FAT, 253, 30, 56, 35, 25, 35, 72, 255, 70, 51, GrowthRate.MEDIUM_FAST, 50, true), - new PokemonSpecies(Species.ALOLA_RATICATE, "Raticate", 7, false, false, false, "Mouse Pokémon", Type.DARK, null, 0.7, 25.5, Abilities.GLUTTONY, Abilities.HUSTLE, Abilities.THICK_FAT, 413, 75, 71, 70, 40, 80, 77, 127, 70, 145, GrowthRate.MEDIUM_FAST, 50, true), - new PokemonSpecies(Species.ALOLA_RAICHU, "Raichu", 7, false, false, false, "Mouse Pokémon", Type.ELECTRIC, Type.PSYCHIC, 0.7, 21, Abilities.SURGE_SURFER, Abilities.NONE, Abilities.NONE, 485, 60, 85, 50, 95, 85, 110, 75, 50, 243, GrowthRate.MEDIUM_FAST, 50, true), + new PokemonSpecies(Species.ALOLA_RATTATA, "Rattata", 7, false, false, false, "Mouse Pokémon", Type.DARK, null, 0.3, 3.8, Abilities.GLUTTONY, Abilities.HUSTLE, Abilities.THICK_FAT, 253, 30, 56, 35, 25, 35, 72, 255, 70, 51, GrowthRate.MEDIUM_FAST, 50, false), + new PokemonSpecies(Species.ALOLA_RATICATE, "Raticate", 7, false, false, false, "Mouse Pokémon", Type.DARK, null, 0.7, 25.5, Abilities.GLUTTONY, Abilities.HUSTLE, Abilities.THICK_FAT, 413, 75, 71, 70, 40, 80, 77, 127, 70, 145, GrowthRate.MEDIUM_FAST, 50, false), + new PokemonSpecies(Species.ALOLA_RAICHU, "Raichu", 7, false, false, false, "Mouse Pokémon", Type.ELECTRIC, Type.PSYCHIC, 0.7, 21, Abilities.SURGE_SURFER, Abilities.NONE, Abilities.NONE, 485, 60, 85, 50, 95, 85, 110, 75, 50, 243, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.ALOLA_SANDSHREW, "Sandshrew", 7, false, false, false, "Mouse Pokémon", Type.ICE, Type.STEEL, 0.7, 40, Abilities.SNOW_CLOAK, Abilities.NONE, Abilities.SLUSH_RUSH, 300, 50, 75, 90, 10, 35, 40, 255, 50, 60, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.ALOLA_SANDSLASH, "Sandslash", 7, false, false, false, "Mouse Pokémon", Type.ICE, Type.STEEL, 1.2, 55, Abilities.SNOW_CLOAK, Abilities.NONE, Abilities.SLUSH_RUSH, 450, 75, 100, 120, 25, 65, 65, 90, 50, 158, GrowthRate.MEDIUM_FAST, 50, false), new PokemonSpecies(Species.ALOLA_VULPIX, "Vulpix", 7, false, false, false, "Fox Pokémon", Type.ICE, null, 0.6, 9.9, Abilities.SNOW_CLOAK, Abilities.NONE, Abilities.SNOW_WARNING, 299, 38, 41, 40, 50, 65, 65, 190, 50, 60, GrowthRate.MEDIUM_FAST, 25, false), @@ -2406,7 +2408,7 @@ export const speciesStarters = { [Species.DUCKLETT]: 3, [Species.VANILLITE]: 3, [Species.DEERLING]: 3, - [Species.EMOLGA]: 4, + [Species.EMOLGA]: 3, [Species.KARRABLAST]: 3, [Species.FOONGUS]: 3, [Species.FRILLISH]: 3, @@ -2469,7 +2471,7 @@ export const speciesStarters = { [Species.TYRUNT]: 3, [Species.AMAURA]: 3, [Species.HAWLUCHA]: 4, - [Species.DEDENNE]: 3, + [Species.DEDENNE]: 4, [Species.CARBINK]: 4, [Species.GOOMY]: 4, [Species.KLEFKI]: 4, @@ -2484,6 +2486,69 @@ export const speciesStarters = { [Species.HOOPA]: 7, [Species.VOLCANION]: 7, + [Species.ROWLET]: 3, + [Species.LITTEN]: 3, + [Species.POPPLIO]: 3, + [Species.PIKIPEK]: 3, + [Species.YUNGOOS]: 2, + [Species.GRUBBIN]: 2, + [Species.CRABRAWLER]: 4, + [Species.ORICORIO]: 3, + [Species.CUTIEFLY]: 3, + [Species.ROCKRUFF]: 3, + [Species.WISHIWASHI]: 3, + [Species.MAREANIE]: 3, + [Species.MUDBRAY]: 3, + [Species.DEWPIDER]: 3, + [Species.FOMANTIS]: 3, + [Species.MORELULL]: 3, + [Species.SALANDIT]: 3, + [Species.STUFFUL]: 3, + [Species.BOUNSWEET]: 3, + [Species.COMFEY]: 4, + [Species.ORANGURU]: 5, + [Species.PASSIMIAN]: 5, + [Species.WIMPOD]: 3, + [Species.SANDYGAST]: 3, + [Species.PYUKUMUKU]: 3, + [Species.TYPE_NULL]: 5, + [Species.MINIOR]: 5, + [Species.KOMALA]: 5, + [Species.TURTONATOR]: 5, + [Species.TOGEDEMARU]: 4, + [Species.MIMIKYU]: 5, + [Species.BRUXISH]: 5, + [Species.DRAMPA]: 5, + [Species.DHELMISE]: 5, + [Species.JANGMO_O]: 4, + [Species.TAPU_KOKO]: 6, + [Species.TAPU_LELE]: 6, + [Species.TAPU_BULU]: 6, + [Species.TAPU_FINI]: 6, + [Species.COSMOG]: 7, + [Species.NIHILEGO]: 7, + [Species.BUZZWOLE]: 7, + [Species.PHEROMOSA]: 7, + [Species.XURKITREE]: 7, + [Species.CELESTEELA]: 7, + [Species.KARTANA]: 7, + [Species.GUZZLORD]: 7, + [Species.NECROZMA]: 8, + [Species.MAGEARNA]: 7, + [Species.MARSHADOW]: 7, + [Species.POIPOLE]: 7, + [Species.STAKATAKA]: 7, + [Species.BLACEPHALON]: 7, + [Species.ZERAORA]: 7, + [Species.MELTAN]: 6, + [Species.ALOLA_RATTATA]: 2, + [Species.ALOLA_SANDSHREW]: 4, + [Species.ALOLA_VULPIX]: 4, + [Species.ALOLA_DIGLETT]: 3, + [Species.ALOLA_MEOWTH]: 4, + [Species.ALOLA_GEODUDE]: 3, + [Species.ALOLA_GRIMER]: 3, + [Species.ETERNATUS]: 10, }; @@ -2491,7 +2556,7 @@ export const speciesStarters = { { //setTimeout(() => { /*for (let tc of Object.keys(trainerConfigs)) { - console.log(TrainerType[tc], !trainerConfigs[tc].speciesFilter ? 'all' : [...new Set(allSpecies.filter(s => s.generation <= 6).filter(trainerConfigs[tc].speciesFilter).map(s => { + console.log(TrainerType[tc], !trainerConfigs[tc].speciesFilter ? 'all' : [...new Set(allSpecies.filter(s => s.generation <= 7).filter(trainerConfigs[tc].speciesFilter).map(s => { while (pokemonPrevolutions.hasOwnProperty(s.speciesId)) s = getPokemonSpecies(pokemonPrevolutions[s.speciesId]); return s; @@ -2499,7 +2564,7 @@ export const speciesStarters = { } const speciesFilter = (species: PokemonSpecies) => !species.legendary && !species.pseudoLegendary && !species.mythical && species.baseTotal >= 540; - console.log(!speciesFilter ? 'all' : [...new Set(allSpecies.filter(s => s.generation <= 6).filter(speciesFilter).map(s => { + console.log(!speciesFilter ? 'all' : [...new Set(allSpecies.filter(s => s.generation <= 7).filter(speciesFilter).map(s => { while (pokemonPrevolutions.hasOwnProperty(s.speciesId)) s = getPokemonSpecies(pokemonPrevolutions[s.speciesId]); return s; diff --git a/src/data/trainer-type.ts b/src/data/trainer-type.ts index 38daa73c5..b830f3b53 100644 --- a/src/data/trainer-type.ts +++ b/src/data/trainer-type.ts @@ -569,7 +569,7 @@ export const trainerConfigs: TrainerConfigs = { .setPartyTemplates(trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.ONE_WEAK_ONE_STRONG, trainerPartyTemplates.ONE_AVG_ONE_STRONG) .setSpeciesPools({ [TrainerPoolTier.COMMON]: [ Species.RHYHORN, Species.AIPOM, Species.MAKUHITA, Species.MAWILE, Species.NUMEL, Species.LILLIPUP, Species.SANDILE, /* Species.WOOLOO */ ], - [TrainerPoolTier.UNCOMMON]: [ Species.GIRAFARIG, Species.ZANGOOSE, Species.SEVIPER, Species.CUBCHOO, Species.PANCHAM, /*Species.SKIDDO*/ /* Species.MUDBRAY */ ], + [TrainerPoolTier.UNCOMMON]: [ Species.GIRAFARIG, Species.ZANGOOSE, Species.SEVIPER, Species.CUBCHOO, Species.PANCHAM, Species.SKIDDO, Species.MUDBRAY ], [TrainerPoolTier.RARE]: [ Species.TAUROS, Species.STANTLER, Species.DARUMAKA, Species.BOUFFALANT, Species.DEERLING, /*Species.IMPIDIMP, */ ], [TrainerPoolTier.SUPER_RARE]: [ /* Species.GALAR_DARUMAKA */ /* Species.TEDDIURSA */ ] }), @@ -580,9 +580,9 @@ export const trainerConfigs: TrainerConfigs = { .setPartyTemplates(trainerPartyTemplates.TWO_WEAK_ONE_AVG, trainerPartyTemplates.TWO_WEAK_ONE_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_ONE_STRONG, trainerPartyTemplates.THREE_AVG, trainerPartyTemplates.TWO_AVG_ONE_STRONG) .setSpeciesPools({ [TrainerPoolTier.COMMON]: [ Species.NIDORAN_F, Species.NIDORAN_M, Species.MACHOP, Species.MAKUHITA, Species.MEDITITE, Species.CROAGUNK, Species.TIMBURR ], - [TrainerPoolTier.UNCOMMON]: [ Species.MANKEY, Species.POLIWRATH, Species.TYROGUE, Species.BRELOOM, Species.SCRAGGY, Species.MIENFOO, Species.PANCHAM, /* Species.STUFFUL */ /* Species.CRABRAWLER, */ ], - [TrainerPoolTier.RARE]: [ Species.HERACROSS, Species.RIOLU, Species.THROH, Species.SAWK, /* Species.CLOBBOPUS, */ /* Species.PASSIMIAN, */ ], - [TrainerPoolTier.SUPER_RARE]: [ Species.INFERNAPE, Species.GALLADE, Species.HITMONTOP, Species.HAWLUCHA, /* Species.HAKAMO_O, */ ], + [TrainerPoolTier.UNCOMMON]: [ Species.MANKEY, Species.POLIWRATH, Species.TYROGUE, Species.BRELOOM, Species.SCRAGGY, Species.MIENFOO, Species.PANCHAM, Species.STUFFUL, Species.CRABRAWLER ], + [TrainerPoolTier.RARE]: [ Species.HERACROSS, Species.RIOLU, Species.THROH, Species.SAWK, /* Species.CLOBBOPUS, */ Species.PASSIMIAN ], + [TrainerPoolTier.SUPER_RARE]: [ Species.INFERNAPE, Species.GALLADE, Species.HITMONTOP, Species.HAWLUCHA, Species.HAKAMO_O ], [TrainerPoolTier.ULTRA_RARE]: [ Species.KUBFU ] }), [TrainerType.BREEDER]: new TrainerConfig(++t).setMoneyMultiplier(1.325).setEncounterBgm(TrainerType.POKEFAN).setHasGenders().setDouble() @@ -591,8 +591,8 @@ export const trainerConfigs: TrainerConfigs = { .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.THREE_WEAK, trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_ONE_AVG) .setSpeciesPools({ [TrainerPoolTier.COMMON]: [ Species.MEOWTH, Species.PSYDUCK, Species.BUDEW, Species.PIDOVE, Species.CINCCINO, Species.LITLEO ], - [TrainerPoolTier.UNCOMMON]: [ Species.JIGGLYPUFF, Species.MAGNEMITE, Species.MARILL, Species.COTTONEE, /* Species.SKIDDO */ ], - [TrainerPoolTier.RARE]: [ Species.BUIZEL, Species.SNEASEL, Species.KLEFKI, /* Species.INDEEDEE, */ ] + [TrainerPoolTier.UNCOMMON]: [ Species.JIGGLYPUFF, Species.MAGNEMITE, Species.MARILL, Species.COTTONEE, Species.SKIDDO ], + [TrainerPoolTier.RARE]: [ Species.BUIZEL, Species.SNEASEL, Species.KLEFKI, Species.INDEEDEE ] }), [TrainerType.CYCLIST]: new TrainerConfig(++t).setMoneyMultiplier(1.3).setHasGenders().setEncounterBgm(TrainerType.CYCLIST).setSpeciesFilter(s => !!s.getLevelMoves().find(plm => plm[1] === Moves.QUICK_ATTACK)) .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.ONE_AVG) @@ -607,16 +607,16 @@ export const trainerConfigs: TrainerConfigs = { .setSpeciesPools({ [TrainerPoolTier.COMMON]: [ Species.RALTS, Species.SPOINK, Species.LOTAD, Species.BUDEW ], [TrainerPoolTier.UNCOMMON]: [ Species.SPINDA, Species.SWABLU, Species.MARACTUS,], - [TrainerPoolTier.RARE]: [ Species.BELLOSSOM, Species.HITMONTOP, Species.MIME_JR, /* Species.ORICORIO, */ ], - [TrainerPoolTier.SUPER_RARE]: [ /* Species.POPPLIO */ ] + [TrainerPoolTier.RARE]: [ Species.BELLOSSOM, Species.HITMONTOP, Species.MIME_JR, Species.ORICORIO ], + [TrainerPoolTier.SUPER_RARE]: [ Species.POPPLIO ] }), [TrainerType.DEPOT_AGENT]: new TrainerConfig(++t).setMoneyMultiplier(1.45).setEncounterBgm(TrainerType.CLERK), [TrainerType.DOCTOR]: new TrainerConfig(++t).setMoneyMultiplier(3).setEncounterBgm(TrainerType.CLERK), [TrainerType.FISHERMAN]: new TrainerConfig(++t).setMoneyMultiplier(1.25).setEncounterBgm(TrainerType.BACKPACKER) .setPartyTemplates(trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG, trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.THREE_WEAK_SAME, trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.SIX_WEAKER) .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.TENTACOOL, Species.MAGIKARP, Species.GOLDEEN, Species.STARYU, Species.REMORAID, /* Species.SKRELP, */ /* Species.CLAUNCHER */ /* Species.ARROKUDA */ ], - [TrainerPoolTier.UNCOMMON]: [ Species.POLIWAG, Species.SHELLDER, Species.KRABBY, Species.HORSEA, Species.CARVANHA, Species.BARBOACH, Species.CORPHISH, Species.FINNEON, Species.TYMPOLE, Species.BASCULIN, Species.FRILLISH, /* Species.INKAY */ ], + [TrainerPoolTier.COMMON]: [ Species.TENTACOOL, Species.MAGIKARP, Species.GOLDEEN, Species.STARYU, Species.REMORAID, Species.SKRELP, Species.CLAUNCHER, /* Species.ARROKUDA */ ], + [TrainerPoolTier.UNCOMMON]: [ Species.POLIWAG, Species.SHELLDER, Species.KRABBY, Species.HORSEA, Species.CARVANHA, Species.BARBOACH, Species.CORPHISH, Species.FINNEON, Species.TYMPOLE, Species.BASCULIN, Species.FRILLISH, Species.INKAY ], [TrainerPoolTier.RARE]: [ Species.CHINCHOU, Species.CORSOLA, Species.WAILMER, Species.BARBOACH, Species.CLAMPERL, Species.LUVDISC, Species.MANTYKE, Species.ALOMOMOLA, /* Species.TATSUGIRI */ /* Species.VELUZA */ ], [TrainerPoolTier.SUPER_RARE]: [ Species.LAPRAS, Species.FEEBAS, Species.RELICANTH, /* Species.DONDOZO */ ] }), @@ -627,7 +627,7 @@ export const trainerConfigs: TrainerConfigs = { .setSpeciesPools({ [TrainerPoolTier.COMMON]: [ Species.SANDSHREW, Species.DIGLETT, Species.GEODUDE, Species.MACHOP, Species.ARON, Species.ROGGENROLA, Species.DRILBUR, /* Species.NACLI */ ], [TrainerPoolTier.UNCOMMON]: [ Species.ZUBAT, Species.RHYHORN, Species.ONIX, Species.CUBONE, Species.WOOBAT, Species.SWINUB, Species.NOSEPASS, Species.HIPPOPOTAS, Species.DWEBBLE, /* Species.KLAWF */ /* Species.TOEDSCOOL */ ], - [TrainerPoolTier.RARE]: [ Species.TORKOAL, Species.TRAPINCH, Species.BARBOACH, Species.GOLETT, /* Species.ALOLA_DIGLETT */ /* Species.ALOLA_GEODUDE, */ /* Species.GALAR_STUNFISK */ /* Species.PALDEA_WOOPER */ ], + [TrainerPoolTier.RARE]: [ Species.TORKOAL, Species.TRAPINCH, Species.BARBOACH, Species.GOLETT, Species.ALOLA_DIGLETT, Species.ALOLA_GEODUDE, /* Species.GALAR_STUNFISK */ /* Species.PALDEA_WOOPER */ ], [TrainerPoolTier.SUPER_RARE]: [ Species.MAGBY, Species.LARVITAR ] }), [TrainerType.HOOLIGANS]: new TrainerConfig(++t).setDouble().setEncounterBgm(TrainerType.ROUGHNECK).setSpeciesFilter(s => s.isOfType(Type.POISON) || s.isOfType(Type.DARK)), @@ -643,7 +643,7 @@ export const trainerConfigs: TrainerConfigs = { .setPartyTemplates(trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.ONE_STRONG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG, ) .setSpeciesPools({ [TrainerPoolTier.COMMON]: [ Species.VULPIX, Species.GROWLITHE, Species.SNUBBULL, Species.POOCHYENA, Species.ELECTRIKE, Species.LILLIPUP, /* Species.YAMPER */ /* , Species.FIDOUGH */ ], - [TrainerPoolTier.UNCOMMON]: [ Species.HOUNDOUR /*, Species.ROCKRUFF */ /*, Species.MASCHIFF */ ], + [TrainerPoolTier.UNCOMMON]: [ Species.HOUNDOUR, Species.ROCKRUFF /*, Species.MASCHIFF */ ], [TrainerPoolTier.RARE]: [ Species.JOLTEON, Species.RIOLU ], [TrainerPoolTier.SUPER_RARE]: [], [TrainerPoolTier.ULTRA_RARE]: [ Species.ENTEI, Species.SUICUNE, Species.RAIKOU ] @@ -663,8 +663,8 @@ export const trainerConfigs: TrainerConfigs = { [TrainerType.PSYCHIC]: new TrainerConfig(++t).setHasGenders().setMoneyMultiplier(1.4).setEncounterBgm(TrainerType.PSYCHIC) .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_SAME_ONE_AVG, trainerPartyTemplates.TWO_WEAK_SAME_TWO_WEAK_SAME, trainerPartyTemplates.ONE_STRONGER) .setSpeciesPools({ - [TrainerPoolTier.COMMON]: [ Species.ABRA, Species.DROWZEE, Species.RALTS, Species.SPOINK, Species.GOTHITA, Species.SOLOSIS, /* Species.BLIPBUG, Species.ESPURR, Species.HATTENA */ ], - [TrainerPoolTier.UNCOMMON]: [ Species.MIME_JR, Species.EXEGGCUTE, Species.MEDITITE, Species.NATU, Species.EXEGGCUTE, Species.WOOBAT, /* Species.INKAY, Species.ORANGURU, */], + [TrainerPoolTier.COMMON]: [ Species.ABRA, Species.DROWZEE, Species.RALTS, Species.SPOINK, Species.GOTHITA, Species.SOLOSIS, Species.BLIPBUG, Species.ESPURR, /* Species.HATTENA */ ], + [TrainerPoolTier.UNCOMMON]: [ Species.MIME_JR, Species.EXEGGCUTE, Species.MEDITITE, Species.NATU, Species.EXEGGCUTE, Species.WOOBAT, Species.INKAY, Species.ORANGURU ], [TrainerPoolTier.RARE]: [ Species.ELGYEM, Species.SIGILYPH, Species.BALTOY, Species.GIRAFARIG, Species.MEOWSTIC ], [TrainerPoolTier.SUPER_RARE]: [ Species.BELDUM, Species.ESPEON /* Species.WYRDEER, */ ], }), @@ -681,7 +681,7 @@ export const trainerConfigs: TrainerConfigs = { [TrainerType.SCIENTIST]: new TrainerConfig(++t).setHasGenders().setMoneyMultiplier(1.7).setEncounterBgm(TrainerType.SCIENTIST) .setSpeciesPools({ [TrainerPoolTier.COMMON]: [ Species.MAGNEMITE, Species.GRIMER, Species.DROWZEE, Species.VOLTORB, Species.KOFFING ], - [TrainerPoolTier.UNCOMMON]: [ Species.BALTOY, Species.BRONZOR, Species.FERROSEED, Species.KLINK, /* Species.CHARJABUG */ /* Species.BLIPBUG */ /* Species.HELIOPTILE */ ], + [TrainerPoolTier.UNCOMMON]: [ Species.BALTOY, Species.BRONZOR, Species.FERROSEED, Species.KLINK, Species.CHARJABUG, Species.BLIPBUG, Species.HELIOPTILE ], [TrainerPoolTier.RARE ]: [ Species.ABRA, Species.DITTO, Species.PORYGON, Species.ELEKID, Species.SOLOSIS, /* Species.GALAR_WEEZING */ ], [TrainerPoolTier.SUPER_RARE ]: [ Species.OMANYTE, Species.KABUTO, Species.AERODACTYL, Species.LILEEP, Species.ANORITH, Species.CRANIDOS, Species.SHIELDON, Species.TIRTOUGA, Species.ARCHEN, /* Species.ARCTOVISH, Species.ARCTOZOLT, Species.DRACOVISH, Species.DRACOZOLT */ ], [TrainerPoolTier.ULTRA_RARE]: [ Species.ROTOM, /* Species.MELTAN */ ] @@ -904,8 +904,8 @@ export const trainerConfigs: TrainerConfigs = { $Just kidding! I lost fair and square, and now I know you'll do fine out there. $By the way, the professor wanted me to give you some items. Hopefully they're helpful! $Do your best like always! I believe in you!` - ]).setModifierRewardFuncs(() => modifierTypes.SUPER_EXP_CHARM, () => modifierTypes.EXP_SHARE).setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.BULBASAUR, Species.CHARMANDER, Species.SQUIRTLE, Species.CHIKORITA, Species.CYNDAQUIL, Species.TOTODILE, Species.TREECKO, Species.TORCHIC, Species.MUDKIP, Species.TURTWIG, Species.CHIMCHAR, Species.PIPLUP, Species.SNIVY, Species.TEPIG, Species.OSHAWOTT ])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEY, Species.HOOTHOOT, Species.TAILLOW, Species.STARLY, Species.PIDOVE ])), + ]).setModifierRewardFuncs(() => modifierTypes.SUPER_EXP_CHARM, () => modifierTypes.EXP_SHARE).setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.BULBASAUR, Species.CHARMANDER, Species.SQUIRTLE, Species.CHIKORITA, Species.CYNDAQUIL, Species.TOTODILE, Species.TREECKO, Species.TORCHIC, Species.MUDKIP, Species.TURTWIG, Species.CHIMCHAR, Species.PIPLUP, Species.SNIVY, Species.TEPIG, Species.OSHAWOTT, Species.CHESPIN, Species.FENNEKIN, Species.FROAKIE, Species.ROWLET, Species.LITTEN, Species.POPPLIO ])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEY, Species.TAILLOW, Species.STARLY, Species.PIDOVE, Species.FLETCHLING, Species.PIKIPEK ])), [TrainerType.RIVAL_2]: new TrainerConfig(++t).setStaticParty().setMoneyMultiplier(1.25).setEncounterBgm(TrainerType.RIVAL).setBattleBgm('battle_rival').setPartyTemplates(trainerPartyTemplates.RIVAL_2).setEncounterMessages([ `Oh, fancy meeting you here. Looks like you're still undefeated. Right on! $I know what you're thinking, and no, I wasn't following you. I just happened to be in the area. @@ -914,8 +914,8 @@ export const trainerConfigs: TrainerConfigs = { $In any case, I've been training hard for our rematch, so you'd better give it your all!` ]).setVictoryMessages([ `I… wasn't supposed to lose that time…` - ]).setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.IVYSAUR, Species.CHARMELEON, Species.WARTORTLE, Species.BAYLEEF, Species.QUILAVA, Species.CROCONAW, Species.GROVYLE, Species.COMBUSKEN, Species.MARSHTOMP, Species.GROTLE, Species.MONFERNO, Species.PRINPLUP, Species.SERVINE, Species.PIGNITE, Species.DEWOTT ])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOTTO, Species.HOOTHOOT, Species.TAILLOW, Species.STARAVIA, Species.TRANQUILL ])) + ]).setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.IVYSAUR, Species.CHARMELEON, Species.WARTORTLE, Species.BAYLEEF, Species.QUILAVA, Species.CROCONAW, Species.GROVYLE, Species.COMBUSKEN, Species.MARSHTOMP, Species.GROTLE, Species.MONFERNO, Species.PRINPLUP, Species.SERVINE, Species.PIGNITE, Species.DEWOTT, Species.QUILLADIN, Species.BRAIXEN, Species.FROGADIER, Species.DARTRIX, Species.TORRACAT, Species.BRIONNE ])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOTTO, Species.TAILLOW, Species.STARAVIA, Species.TRANQUILL, Species.FLETCHINDER, Species.TRUMBEAK ])) .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)), [TrainerType.RIVAL_3]: new TrainerConfig(++t).setStaticParty().setMoneyMultiplier(1.5).setEncounterBgm(TrainerType.RIVAL).setBattleBgm('battle_rival').setPartyTemplates(trainerPartyTemplates.RIVAL_3).setEncounterMessages([ `Long time no see! Still haven't lost, huh.\nYou're starting to get on my nerves. Just kidding! @@ -924,8 +924,8 @@ export const trainerConfigs: TrainerConfigs = { $And when you do, I'll be there for you like always.\nNow, let me show you how strong I've become!` ]).setVictoryMessages([ `After all that… it wasn't enough…?` - ]).setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT ])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT ])) + ]).setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA ])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOT, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON ])) .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) .setSpeciesFilter(species => species.baseTotal >= 540), [TrainerType.RIVAL_4]: new TrainerConfig(++t).setBoss().setStaticParty().setMoneyMultiplier(1.75).setEncounterBgm(TrainerType.RIVAL).setBattleBgm('battle_rival_2').setPartyTemplates(trainerPartyTemplates.RIVAL_4).setEncounterMessages([ @@ -938,19 +938,19 @@ export const trainerConfigs: TrainerConfigs = { $Prepare yourself.` ]).setVictoryMessages([ `What…@d{64} what are you?` - ]).setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT ])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT ])) + ]).setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA ])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOT, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON ])) .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) .setSpeciesFilter(species => species.baseTotal >= 540), [TrainerType.RIVAL_5]: new TrainerConfig(++t).setBoss().setStaticParty().setMoneyMultiplier(2.25).setEncounterBgm(TrainerType.RIVAL).setBattleBgm('battle_rival_3').setPartyTemplates(trainerPartyTemplates.RIVAL_5).setEncounterMessages([ `…` ]).setVictoryMessages([ '…' ]) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT ])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT ])) + .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA ])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOT, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON ])) .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) .setSpeciesFilter(species => species.baseTotal >= 540) .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.RAYQUAZA ])), [TrainerType.RIVAL_6]: new TrainerConfig(++t).setBoss().setStaticParty().setMoneyMultiplier(3).setEncounterBgm('final').setBattleBgm('battle_rival_3').setPartyTemplates(trainerPartyTemplates.RIVAL_6) - .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT ])) - .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOT, Species.NOCTOWL, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT ])) + .setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.VENUSAUR, Species.CHARIZARD, Species.BLASTOISE, Species.MEGANIUM, Species.TYPHLOSION, Species.FERALIGATR, Species.SCEPTILE, Species.BLAZIKEN, Species.SWAMPERT, Species.TORTERRA, Species.INFERNAPE, Species.EMPOLEON, Species.SERPERIOR, Species.EMBOAR, Species.SAMUROTT, Species.CHESNAUGHT, Species.DELPHOX, Species.GRENINJA, Species.DECIDUEYE, Species.INCINEROAR, Species.PRIMARINA ])) + .setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PIDGEOT, Species.SWELLOW, Species.STARAPTOR, Species.UNFEZANT, Species.TALONFLAME, Species.TOUCANNON ])) .setPartyMemberFunc(2, getSpeciesFilterRandomPartyMemberFunc((species: PokemonSpecies) => !pokemonEvolutions.hasOwnProperty(species.speciesId) && !pokemonPrevolutions.hasOwnProperty(species.speciesId) && species.baseTotal >= 450)) .setSpeciesFilter(species => species.baseTotal >= 540) .setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.RAYQUAZA ], p => p.formIndex = 1)), diff --git a/src/ui/biome-select-ui-handler.ts b/src/ui/biome-select-ui-handler.ts index 012c62cee..2d729d4e9 100644 --- a/src/ui/biome-select-ui-handler.ts +++ b/src/ui/biome-select-ui-handler.ts @@ -3,6 +3,7 @@ import { Biome, biomeLinks, getBiomeName } from "../data/biome"; import { addTextObject, TextStyle } from "./text"; import { Mode } from "./ui"; import UiHandler from "./uiHandler"; +import * as Utils from "../utils"; export default class BiomeSelectUiHandler extends UiHandler { private biomeSelectContainer: Phaser.GameObjects.Container; @@ -38,10 +39,17 @@ export default class BiomeSelectUiHandler extends UiHandler { if (args.length >= 2 && typeof(args[0]) === 'number' && args[1] instanceof Function) { super.show(args); - if (!Array.isArray(biomeLinks[args[0]])) + this.scene.executeWithSeedOffset(() => { + this.biomeChoices = (!Array.isArray(biomeLinks[args[0]]) + ? [ biomeLinks[args[0]] as Biome ] + : biomeLinks[args[0]] as (Biome | [Biome, integer])[]) + .filter((b, i) => !Array.isArray(b) || !Utils.randSeedInt(b[1])) + .map(b => Array.isArray(b) ? b[0] : b); + }, this.scene.currentBattle.waveIndex); + + if (this.biomeChoices.length <= 1) return; - this.biomeChoices = biomeLinks[args[0]] as Biome[]; this.biomeSelectBg.setTexture(`option_select_window_${this.biomeChoices.length}`) this.biomesText.setText(this.biomeChoices.map(b => getBiomeName(b)).join('\n')); this.biomesText.setPositionRelative(this.biomeSelectBg, 16, 9); diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index 6776b0fe9..e13257d2d 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -22,7 +22,7 @@ export interface Starter { pokerus: boolean; } -const gens = [ 'I', 'II', 'III', 'IV', 'V', 'VI' ]; +const gens = [ 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII' ]; const ivChartSize = 24; const ivChartStatCoordMultipliers = [ [ 0, 1 ], [ 0.825, 0.5 ], [ 0.825, -0.5 ], [ 0, -1 ], [ -0.825, -0.5 ], [ -0.825, 0.5 ] ]; const defaultIvChartData = new Array(12).fill(null).map(() => 0); @@ -198,8 +198,6 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.genSpecies.push([]); for (let species of allSpecies) { - if (species.generation > gens.length) - break; if (!speciesStarterValues.hasOwnProperty(species.speciesId) || species.generation !== g + 1) continue; starterSpecies.push(species.speciesId);